diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/aspect/StoreLogAspect.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/aspect/StoreLogAspect.java index 2376ada6..a3d77a31 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/aspect/StoreLogAspect.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/aspect/StoreLogAspect.java @@ -84,7 +84,7 @@ public class StoreLogAspect { bmStorageLog.setStatus(200L); // 请求的地址 bmStorageLog.setMethod(StringUtils.substring(Objects.requireNonNull(ServletUtils.getRequest()).getRequestURI(), 0, 255)); - String username = SecurityUtils.getUsername(); + String username = SecurityUtils.getLoginUser().getUsername(); R userInfo = remoteUserService.getUserInfo(username, SecurityConstants.INNER); if (ObjectUtils.isNotEmpty(userInfo)) { diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeSelect.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeSelect.java index f89bc980..f442b920 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeSelect.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/TreeSelect.java @@ -37,17 +37,21 @@ public class TreeSelect implements Serializable { @JsonInclude(JsonInclude.Include.NON_EMPTY) private List children; + /** 子节点数量 */ + private Integer number; + public TreeSelect() { } - public TreeSelect(Long id, String label, Long houseId, Integer level, Long parentId, List children) { + public TreeSelect(Long id, String label, Long houseId, Integer level, Long parentId, List children, Integer number) { this.id = id; this.label = label; this.houseId = houseId; this.level = level; this.parentId = parentId; this.children = children; + this.number = number; } public TreeSelect(Long id, String label, Integer level, Long parentId) { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Type.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Type.java index 88f21c1b..59832035 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Type.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/domain/Type.java @@ -45,11 +45,9 @@ public class Type extends BaseEntity { /** 库管员昵称 */ @ApiModelProperty(value = "库管员昵称id") - @Excel(name = "库管员昵称id",sort = 8) private String keeperId; /** 左侧树用户id */ - @Excel(name = "库管员昵称id") @ApiModelProperty(value = "左侧树用户id") private List keeperArr; @@ -60,12 +58,10 @@ public class Type extends BaseEntity { /** 维修员昵称 */ @ApiModelProperty(value = "维修员昵称id") - @Excel(name = "维修员昵称id",sort = 10) private String repairerId; private List repairerArr; /** 仓库名称 */ @ApiModelProperty(value = "物资仓库名称") - @Excel(name = "物资仓库名称", sort = 6) private String houseName; /** 仓库Id */ @@ -116,14 +112,13 @@ public class Type extends BaseEntity { /** 排序 */ @ApiModelProperty(value = "排序") - @Excel(name = "排序",sort = 14) private int sortNum; @ApiModelProperty(value = "最大排序,用于Tree排序") private transient int maxSortPriority; /** 管理方式(0编号 1计数) */ - @Excel(name = "管理方式(0编号 1计数)",sort = 15) + @Excel(name = "管理方式(0编码 1数量)",readConverterExp = "0=编码,1=数量") @ApiModelProperty(value = "管理方式(0编号 1计数)") private String manageType; @@ -188,7 +183,6 @@ public class Type extends BaseEntity { private String holdingTime; /** 库存预警数量 */ - @Excel(name = "库存预警数量",sort = 24) @ApiModelProperty(value = "库存预警数量") private Long warnNum; @@ -196,11 +190,9 @@ public class Type extends BaseEntity { private String delFlag; /** 是否计划管理(0代表否 1代表是) */ - @Excel(name = "是否计划管理", readConverterExp = "0=代表否,1=代表是",sort = 25) private String isPlan; /** 是否安措费机具(0代表否1代表是) */ - @Excel(name = "是否安措费机具", readConverterExp = "0=代表否1代表是",sort = 26) private String isAncuo; /** 厂家规格型号 */ @@ -209,7 +201,6 @@ public class Type extends BaseEntity { private String facModel; /** 左侧树用户id */ - @Excel(name = "左侧树用户id",sort = 28) @ApiModelProperty(value = "左侧树用户id") private Long userId; @@ -217,7 +208,6 @@ public class Type extends BaseEntity { private Long companyId; /** 推送智慧工程定义的门类分类机具编码 */ - @Excel(name = "推送智慧工程定义的门类分类机具编码",sort = 29) @ApiModelProperty(value = "推送智慧工程定义的门类分类机具编码") private String intelligentCode; @@ -232,4 +222,7 @@ public class Type extends BaseEntity { @ApiModelProperty(value = "抽检比例") private String samplingRatio; + /** 子节点数量 */ + private Integer number; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/TypeMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/TypeMapper.java index b6ca8868..a307fe51 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/TypeMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/mapper/TypeMapper.java @@ -196,4 +196,11 @@ public interface TypeMapper { * @return */ List getListLevel(MaTypeVo maTypeVo); + + /** + * 查询数量 + * @param type + * @return + */ + Integer getCount(Type type); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/StandardConfigManageServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/StandardConfigManageServiceImpl.java index 91f4bad6..ff4d14c2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/StandardConfigManageServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/StandardConfigManageServiceImpl.java @@ -302,6 +302,6 @@ public class StandardConfigManageServiceImpl implements StandardConfigManageServ .filter(Objects::nonNull) .map(this::convertToTreeSelect) .collect(Collectors.toList()); - return new TreeSelect(type.getId(), type.getConfigName(), null, Integer.valueOf(type.getLevel()), type.getParentId(), children); + return new TreeSelect(type.getId(), type.getConfigName(), null, Integer.valueOf(type.getLevel()), type.getParentId(), children, null); } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java index cee4c3c4..075b00aa 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/ma/service/impl/TypeServiceImpl.java @@ -585,6 +585,14 @@ public class TypeServiceImpl implements ITypeService { @Override public List getMaTypeTree(String typeName, String parentId) { List maTypes = typeMapper.selectMaTypeTree(); + if (CollectionUtils.isNotEmpty(maTypes)) { + // 根据typeId查询子集数量 + for (Type type : maTypes) { + if ("3".equals(type.getLevel())) { + type.setNumber(typeMapper.getCount(type)); + } + } + } List builtMaTypeList = buildMaTypeTree(maTypes); // 查询顶级节点的仓库配置信息 @@ -639,7 +647,7 @@ public class TypeServiceImpl implements ITypeService { .filter(Objects::nonNull) .map(this::convertToTreeSelect) .collect(Collectors.toList()); - return new TreeSelect(type.getTypeId(), type.getTypeName(), type.getHouseId(), Integer.valueOf(type.getLevel()),type.getParentId(), children); + return new TreeSelect(type.getTypeId(), type.getTypeName(), type.getHouseId(), Integer.valueOf(type.getLevel()),type.getParentId(), children, type.getNumber()); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/PartTypeCheckInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/PartTypeCheckInfo.java index f09fb256..8c712fa3 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/PartTypeCheckInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/domain/PartTypeCheckInfo.java @@ -135,4 +135,10 @@ public class PartTypeCheckInfo extends BaseEntity { @ApiModelProperty(value = "新购模块阶段名称") private String modelName; + @ApiModelProperty(value = "新购配件任务状态") + private Integer purchaseStatus; + + @ApiModelProperty(value = "会签层级 1 代表供应科层级,2 代表技术科层级,3 代表库管班层级") + private String signLevel; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/IPartCheckInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/IPartCheckInfoServiceImpl.java index b786ee4f..00711342 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/IPartCheckInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/IPartCheckInfoServiceImpl.java @@ -59,6 +59,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService { try { AjaxResult result = new AjaxResult(); if (!CollectionUtils.isEmpty(partChaseVerifyVo.getPurchaseCheckDetailsList())) { + Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); if (BooleanUtils.isTrue(partChaseVerifyVo.getVerifyPass())) { // 验收通过处理流程 for (PartTypeCheckDetails details : partChaseVerifyVo.getPurchaseCheckDetailsList()) { @@ -66,13 +67,13 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService { if (null != details && null != details.getTaskId()) { // 查询已进行会签的org_id集合 List purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId()); - Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); if (null == loginUserDeptId || 0 == loginUserDeptId) { return AjaxResult.error("会签失败!,请检查用户部门信息"); } if (CollectionUtils.isEmpty(purchaseSignRecordList)) { // 如果该任务没有进行过会签,则无需校验 直接进行会签流程 - int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId)); + int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getLoginUser().getUserid(), loginUserDeptId, + details.getCheckResult())); if (0 < addPurchaseSignResult) { return AjaxResult.success("会签成功"); } else { @@ -93,11 +94,21 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService { configSignOrgSet.removeAll(signedOrgSet); if (!CollectionUtils.isEmpty(configSignOrgSet)) { // 如果还有需要进行会签的数据,那么进行本次会签 - int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId)); + // 如果还有需要进行会签的数据,那么进行本次会签 + PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord(); + purchaseSignRecord.setTaskId(details.getTaskId()); + purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid()); + purchaseSignRecord.setOrgId(loginUserDeptId); + // 审核通过 + purchaseSignRecord.setAuditStatus("1"); + purchaseSignRecord.setCreateTime(DateUtils.getNowDate()); + purchaseSignRecord.setAuditRemark(details.getCheckResult()); + int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord); if (0 < addPurchaseSignResult) { // 会签成功,对配置的流程进行处理 configSignOrgSet.remove(loginUserDeptId); - if (configSignOrgSet.isEmpty()) { + // 如果loginUserDeptId包含库管一班、库管二班或者库管三班的任意一个组织id,那么库管班就算审核通过 + if (loginUserDeptId == 106L || loginUserDeptId == 334L || loginUserDeptId == 335L) { System.out.println("ONE会签成功,放行进行验收流程!"); } else { // 如果本次会签完成后还有需要进行会签的,那么本次会签完成,返回前端 @@ -115,7 +126,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService { } else { return AjaxResult.error("detail数据异常,任务ID为空"); } - details.setCheckUser(SecurityUtils.getUserId()); + details.setCheckUser(SecurityUtils.getLoginUser().getUserid()); details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus()); result = 0 < partCheckMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("验收成功") : AjaxResult.error("details无验证信息"); extractedFile(details); @@ -124,8 +135,23 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService { // 验收驳回处理流程 for (PartTypeCheckDetails details : partChaseVerifyVo.getPurchaseCheckDetailsList()) { details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus()); - result = 0 < partCheckMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("驳回成功") : AjaxResult.error("details无验证信息"); + int res = partCheckMapper.updatePurchaseDetails4Check(details); + if (res < 1) { + return AjaxResult.error("验收驳回失败,请联系管理员"); + } extractedFile(details); + PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord(); + purchaseSignRecord.setTaskId(details.getTaskId()); + purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid()); + purchaseSignRecord.setOrgId(loginUserDeptId); + // 审核驳回 + purchaseSignRecord.setAuditStatus("2"); + purchaseSignRecord.setCreateTime(DateUtils.getNowDate()); + purchaseSignRecord.setAuditRemark(details.getCheckResult()); + int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord); + if (addPurchaseSignResult < 1) { + return AjaxResult.error("会签失败,purchase_audit_record表插入0条数据"); + } } } List taskIdList = partChaseVerifyVo.getPurchaseCheckDetailsList().stream(). @@ -170,7 +196,7 @@ public class IPartCheckInfoServiceImpl implements IPartCheckInfoService { if (null != bmFileInfo.getTaskType() && Objects.equals(TmTaskTypeEnum.TM_TASK_AGREEMENT_MANAGEMENT.getTaskTypeId(), bmFileInfo.getTaskType())) { bmFileInfo.setTaskId(details.getTaskId()); bmFileInfo.setModelId(details.getId()); - bmFileInfo.setCreateBy(SecurityUtils.getUsername()); + bmFileInfo.setCreateBy(SecurityUtils.getLoginUser().getUsername()); bmFileInfo.setCreateTime(DateUtils.getNowDate()); bmFileInfoMapper.insertBmFileInfo(bmFileInfo); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/PartArrivedServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/PartArrivedServiceImpl.java index 5aafb65e..a2f90972 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/PartArrivedServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/part/service/impl/PartArrivedServiceImpl.java @@ -11,6 +11,7 @@ import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.biz.domain.BmFileInfo; import com.bonus.material.basic.mapper.BmFileInfoMapper; +import com.bonus.material.countersign.domain.SignProcessVo; import com.bonus.material.countersign.mapper.SignProcessMapper; import com.bonus.material.part.domain.*; import com.bonus.material.part.mapper.PartArrivedMapper; @@ -104,7 +105,7 @@ public class PartArrivedServiceImpl implements IPartArrivedService @Transactional public AjaxResult insertPartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto) { partTypeCheckDto.getPartTypeCheckInfo().setCreateTime(DateUtils.getNowDate()); - partTypeCheckDto.getPartTypeCheckInfo().setCreateBy(SecurityUtils.getUsername()); + partTypeCheckDto.getPartTypeCheckInfo().setCreateBy(SecurityUtils.getLoginUser().getUsername()); try { final int thisMonthMaxOrder = partArrivedMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PART_TYPE.getTaskTypeId()); String taskCode = genderTaskCode(thisMonthMaxOrder); @@ -250,10 +251,46 @@ public class PartArrivedServiceImpl implements IPartArrivedService partTypeCheckInfos.get(i).setPurchasePrice(purchasePrice); partTypeCheckInfos.get(i).setPurchaseTaxPrice(purchaseTaxPrice); partTypeCheckInfos.get(i).setPurchaseMaTypeName(partName); + // 将purchaseCheckDetails中的status取出来 + List statusList = partTypeCheckDetails.stream().map(PartTypeCheckDetails::getStatus).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(statusList)) { + if (statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus())) { + partTypeCheckInfos.get(i).setPurchaseStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus()); + } else if (statusList.contains(PurchaseTaskStatusEnum.IN_STORE.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TASK_IN_PROGRESS.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TASK_FINISHED.getStatus())) { + partTypeCheckInfos.get(i).setPurchaseStatus(PurchaseTaskStatusEnum.IN_STORE.getStatus()); + } else { + partTypeCheckInfos.get(i).setPurchaseStatus(0); + } + } } purchaseCheckInfoResult.add(partTypeCheckInfos.get(i)); } if (!CollectionUtils.isEmpty(purchaseCheckInfoResult)) { + // 根据taskId查询验收任务层级,返回前端,用于验收按钮显示 + for (PartTypeCheckInfo purchaseCheckInfo : purchaseCheckInfoResult) { + // 查询已进行会签的org_id集合 + List purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(purchaseCheckInfo.getTaskId()); + // 查询需要进行会签的org_id集合 + List signProcessVoList = signProcessMapper.getList(new SignProcessVo()); + if (!CollectionUtils.isEmpty(purchaseSignRecordList) && !CollectionUtils.isEmpty(signProcessVoList)) { + // 查询出配置需要会签的org_id集合 + Set configSignOrgSet = signProcessVoList.stream().map(SignProcessVo::getOrgId).collect(Collectors.toSet()); + // 获取已进行会签的org_id集合 + Set signedOrgSet = purchaseSignRecordList.stream().map(PurchaseSignRecord::getOrgId).collect(Collectors.toSet()); + // 移除已会签的org_id + configSignOrgSet.removeAll(signedOrgSet); + if (signedOrgSet.size() == 1) { + purchaseCheckInfo.setSignLevel("2"); + } else { + purchaseCheckInfo.setSignLevel("3"); + } + } + } String keyWord = partTypeQueryDto.getKeyWord(); // 如果关键字不为空,进行过滤 if (StringUtils.isNotBlank(keyWord)) { @@ -339,7 +376,7 @@ public class PartArrivedServiceImpl implements IPartArrivedService @Transactional public boolean updatePartTypeCheckInfo(PartTypeCheckDto partTypeCheckDto) { partTypeCheckDto.getPartTypeCheckInfo().setUpdateTime(DateUtils.getNowDate()); - partTypeCheckDto.getPartTypeCheckInfo().setUpdateBy(SecurityUtils.getUsername()); + partTypeCheckDto.getPartTypeCheckInfo().setUpdateBy(SecurityUtils.getLoginUser().getUsername()); // 先去查是否存在文件信息,存在就删除 BmFileInfo fileInfo = new BmFileInfo(); fileInfo.setTaskType(13); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckInfoController.java index 8eacb838..91d8b079 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/controller/PurchaseCheckInfoController.java @@ -12,6 +12,7 @@ import com.bonus.common.log.enums.OperaType; import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.material.common.annotation.PreventRepeatSubmit; import com.bonus.material.purchase.domain.PurchaseCheckDetails; +import com.bonus.material.purchase.domain.PurchaseSignRecord; import com.bonus.material.purchase.domain.dto.PurchaseCheckDto; import com.bonus.material.purchase.domain.dto.PurchaseQueryDto; import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo; @@ -188,4 +189,16 @@ public class PurchaseCheckInfoController extends BaseController { ExcelUtil util = new ExcelUtil<>(PurchaseCheckDetails.class); util.exportExcel(response, list, "新购验收任务详细数据"); } + + /** + * 根据任务id查询会签记录 + * @param purchaseSignRecord + * @return + */ + @ApiOperation("根据任务id查询会签记录") + @GetMapping("/getSignList") + public AjaxResult getSignList(PurchaseSignRecord purchaseSignRecord) { + List list = purchaseCheckInfoService.getSignList(purchaseSignRecord); + return AjaxResult.success(list); + } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java index 54a5c23b..261fe86a 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseCheckInfo.java @@ -145,6 +145,9 @@ public class PurchaseCheckInfo extends BaseEntity { @ApiModelProperty(value = "出厂日期") private String productionTime; + @ApiModelProperty(value = "新购任务状态") + private Integer purchaseStatus; + public String getCheckUser() { return checkUser; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseSignRecord.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseSignRecord.java index 4cddfe3c..4506e856 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseSignRecord.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/domain/PurchaseSignRecord.java @@ -32,19 +32,29 @@ public class PurchaseSignRecord { private String userName; + private String deptName; + /** * 审核状态(1 通过,2 驳回) */ private String auditStatus; + /** + * 审核状态名称(1 通过,2 驳回) + */ + private String auditStatusName; + + private String auditRemark; + @ApiModelProperty(value = "创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - public PurchaseSignRecord(Long taskId, Long userId, Long orgId) { + public PurchaseSignRecord(Long taskId, Long userId, Long orgId, String auditRemark) { this.taskId = taskId; this.userId = userId; this.orgId = orgId; + this.auditRemark = auditRemark; } public PurchaseSignRecord() { diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckInfoService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckInfoService.java index 2dfa3067..82d95047 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckInfoService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/IPurchaseCheckInfoService.java @@ -5,6 +5,7 @@ import java.util.List; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.purchase.domain.PurchaseCheckDetails; import com.bonus.material.purchase.domain.PurchaseCheckInfo; +import com.bonus.material.purchase.domain.PurchaseSignRecord; import com.bonus.material.purchase.domain.dto.PurchaseCheckDto; import com.bonus.material.purchase.domain.dto.PurchaseQueryDto; import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo; @@ -83,4 +84,11 @@ public interface IPurchaseCheckInfoService { int deletePurchaseCheckInfoById(Long id); List selectPurchaseCheckUserById(PurchaseQueryDto purchaseQueryDto); + + /** + * 查询新购验收任务签名列表 + * @param purchaseSignRecord + * @return + */ + List getSignList(PurchaseSignRecord purchaseSignRecord); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java index 2b799e20..4da50af7 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseCheckInfoServiceImpl.java @@ -34,6 +34,7 @@ import com.bonus.material.purchase.domain.vo.PurchaseCheckFormVo; import com.bonus.material.purchase.mapper.PurchaseMacodeInfoMapper; import com.bonus.material.task.domain.TmTask; import com.bonus.material.task.mapper.TmTaskMapper; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.BooleanUtils; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; @@ -52,6 +53,7 @@ import static com.bonus.common.biz.constant.MaterialConstants.PURCHASE_TASK_TYPE * @author syruan */ @Service +@Slf4j public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { @Resource @@ -92,7 +94,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { */ @Override public PurchaseCheckDto selectPurchaseCheckInfoById(PurchaseQueryDto purchaseQueryDto) { - purchaseQueryDto.setUserId(SecurityUtils.getUserId()); + purchaseQueryDto.setUserId(SecurityUtils.getLoginUser().getUserid()); PurchaseCheckDto purchaseCheckDtoResult = new PurchaseCheckDto(); PurchaseCheckInfo purchaseCheckInfo = purchaseCheckInfoMapper.selectPurchaseCheckInfoById(purchaseQueryDto.getId()); if (null != purchaseCheckInfo) { @@ -151,6 +153,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { final List bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo); if (!CollectionUtils.isEmpty(bmFileInfoList)) { purchaseCheckDetails.setIsExitFile(0); + purchaseCheckDetails.setBmFileInfos(bmFileInfoList); }else { purchaseCheckDetails.setIsExitFile(1); } @@ -191,7 +194,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { public List selectPurchaseCheckInfoList(PurchaseQueryDto purchaseQueryDto) { final List purchaseCheckInfos = purchaseCheckInfoMapper.selectPurchaseCheckInfoJoinList(purchaseQueryDto); if (CollectionUtils.isEmpty(purchaseCheckInfos) ) {return Collections.emptyList();} - final AtomicReference loginUserId = new AtomicReference<>(SecurityUtils.getUserId()); + final AtomicReference loginUserId = new AtomicReference<>(SecurityUtils.getLoginUser().getUserid()); if (Objects.isNull(loginUserId.get()) || Objects.isNull(purchaseQueryDto.getTaskStage())) {return Collections.emptyList();} List purchaseCheckInfoResult = new ArrayList<>(); @@ -287,6 +290,25 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { if (!isIncludeStage) {continue;} } } + // 判断purchaseCheckDetails集合里面status状态,对purchaseStatus进行赋值,用于前端展示验收单和入库单 + if (!CollectionUtils.isEmpty(purchaseCheckDetails)) { + // 将purchaseCheckDetails中的status取出来 + List statusList = purchaseCheckDetails.stream().map(PurchaseCheckDetails::getStatus).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(statusList)) { + if (statusList.contains(PurchaseTaskStatusEnum.TO_BIND.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TO_STORE.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus())) { + purchaseInfo.setPurchaseStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus()); + } else if (statusList.contains(PurchaseTaskStatusEnum.IN_STORE.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TASK_IN_PROGRESS.getStatus()) + || statusList.contains(PurchaseTaskStatusEnum.TASK_FINISHED.getStatus())) { + purchaseInfo.setPurchaseStatus(PurchaseTaskStatusEnum.IN_STORE.getStatus()); + } else { + purchaseInfo.setPurchaseStatus(0); + } + } + } purchaseInfo.setTaskStatus(tmTask.getTaskStatus()); // 设置外层任务列表 @@ -300,6 +322,28 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { } } if (!CollectionUtils.isEmpty(purchaseCheckInfoResult)) { + // 根据taskId查询验收任务层级,返回前端,用于验收按钮显示 + for (PurchaseCheckInfo purchaseCheckInfo : purchaseCheckInfoResult) { + // 查询已进行会签的org_id集合 + List purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(purchaseCheckInfo.getTaskId()); + // 查询需要进行会签的org_id集合 + List signProcessVoList = signProcessMapper.getList(new SignProcessVo()); + // 获取当前登录人组织id + Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); + if (!CollectionUtils.isEmpty(purchaseSignRecordList) && !CollectionUtils.isEmpty(signProcessVoList)) { + // 查询出配置需要会签的org_id集合 + Set configSignOrgSet = signProcessVoList.stream().map(SignProcessVo::getOrgId).collect(Collectors.toSet()); + // 获取已进行会签的org_id集合 + Set signedOrgSet = purchaseSignRecordList.stream().map(PurchaseSignRecord::getOrgId).collect(Collectors.toSet()); + // 移除已会签的org_id + configSignOrgSet.removeAll(signedOrgSet); + if (signedOrgSet.size() == 1) { + purchaseCheckInfo.setSignLevel("2"); + } else { + purchaseCheckInfo.setSignLevel("3"); + } + } + } String keyWord = purchaseQueryDto.getKeyWord(); // 如果关键字不为空,进行过滤 if (!StringUtils.isBlank(keyWord)) { @@ -363,7 +407,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { @Transactional(rollbackFor = Exception.class) public AjaxResult insertPurchaseCheckInfo(PurchaseCheckDto purchaseCheckInfo) { purchaseCheckInfo.getPurchaseCheckInfo().setCreateTime(DateUtils.getNowDate()); - purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getUsername()); + purchaseCheckInfo.getPurchaseCheckInfo().setCreateBy(SecurityUtils.getLoginUser().getUsername()); try { final int thisMonthMaxOrder = tmTaskMapper.getMonthMaxOrderByDate(DateUtils.getCurrentYear(), DateUtils.getCurrentMonth(), TmTaskTypeEnum.TM_TASK_PURCHASE.getTaskTypeId()); String taskCode = genderTaskCode(thisMonthMaxOrder); @@ -403,7 +447,12 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { details.setInputStatus("0"); final List bmFileInfos = details.getBmFileInfos(); if (!CollectionUtils.isEmpty(bmFileInfos)) { - bmFileInfos.forEach(o -> o.setTaskId(taskId)); + bmFileInfos.forEach(o -> { + o.setTaskId(taskId); + o.setModelId(details.getTypeId()); + o.setCreateBy(SecurityUtils.getLoginUser().getUserid().toString()); + o.setCreateTime(DateUtils.getNowDate()); + }); bmFileInfoMapper.insertBmFileInfos(bmFileInfos); } Type type = new Type(); @@ -412,7 +461,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { type.setTypeId(details.getTypeId()); type.setRentPrice(details.getRentPrice()); type.setUpdateTime(DateUtils.getNowDate()); - type.setUpdateBy(SecurityUtils.getUserId().toString()); + type.setUpdateBy(SecurityUtils.getLoginUser().getUserid().toString()); typeMapper.updateType(type); } } @@ -443,14 +492,14 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { if (!CollectionUtils.isEmpty(codeList)) { for (PurchaseCheckDetails details : codeList) { details.setStatus(PurchaseTaskStatusEnum.TO_BIND.getStatus()); - details.setCheckUser(SecurityUtils.getUserId()); + details.setCheckUser(SecurityUtils.getLoginUser().getUserid()); updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details); } } if (!CollectionUtils.isEmpty(numList)) { for (PurchaseCheckDetails details : numList) { details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus()); - details.setCheckUser(SecurityUtils.getUserId()); + details.setCheckUser(SecurityUtils.getLoginUser().getUserid()); updateCount += purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details); } } @@ -467,6 +516,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { try { AjaxResult result = new AjaxResult(); if (!CollectionUtils.isEmpty(purchaseVerifyVo.getPurchaseCheckDetailsList())) { + Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); if (BooleanUtils.isTrue(purchaseVerifyVo.getVerifyPass())) { // 验收通过处理流程 for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) { @@ -474,26 +524,18 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { if (null != details && null != details.getTaskId()) { // 查询已进行会签的org_id集合 List purchaseSignRecordList = signProcessMapper.getPurchaseSignRecordByTask(details.getTaskId()); - Long loginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); if (null == loginUserDeptId || 0 == loginUserDeptId) { return AjaxResult.error("会签失败!,请检查用户部门信息"); } if (CollectionUtils.isEmpty(purchaseSignRecordList)) { // 如果该任务没有进行过会签,则无需校验 直接进行会签流程 - int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId)); + int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getLoginUser().getUserid(), loginUserDeptId, details.getCheckResult())); if (0 < addPurchaseSignResult) { return AjaxResult.success("会签成功"); } else { return AjaxResult.error("会签失败!,插入0条数据"); } } else { - // 该任务进行过会签,进行下一步校验 - - // 首先判断本账户是否进行过会签,如果进行过 则禁止重复操作 -- 2025.1.23日经需求讨论关闭 by 阮世耀 - //List thisIsSignRecord = purchaseSignRecordList.stream().map(PurchaseSignRecord::getUserId).filter(o -> o.equals(SecurityUtils.getUserId())).collect(Collectors.toList()); - //if (!CollectionUtils.isEmpty(thisIsSignRecord)) { - // return AjaxResult.error("操作失败!您已进行过会签 无法重复操作!"); - //} // 查询需要进行会签的org_id集合 List signProcessVoList = signProcessMapper.getList(new SignProcessVo()); @@ -508,11 +550,21 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { configSignOrgSet.removeAll(signedOrgSet); if (!CollectionUtils.isEmpty(configSignOrgSet)) { // 如果还有需要进行会签的数据,那么进行本次会签 - int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(new PurchaseSignRecord(details.getTaskId(), SecurityUtils.getUserId(), loginUserDeptId)); + PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord(); + purchaseSignRecord.setTaskId(details.getTaskId()); + purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid()); + purchaseSignRecord.setOrgId(loginUserDeptId); + // 审核通过 + purchaseSignRecord.setAuditStatus("1"); + purchaseSignRecord.setCreateTime(DateUtils.getNowDate()); + purchaseSignRecord.setAuditRemark(details.getCheckResult()); + int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord); if (0 < addPurchaseSignResult) { // 会签成功,对配置的流程进行处理 configSignOrgSet.remove(loginUserDeptId); - if (configSignOrgSet.isEmpty()) { + // 如果loginUserDeptId包含库管一班、库管二班或者库管三班的任意一个组织id,那么库管班就算审核通过 + if (loginUserDeptId == 106L || loginUserDeptId == 334L || loginUserDeptId == 335L) { + // 库管班审核通过,放行进行验收流程 System.out.println("ONE会签成功,放行进行验收流程!"); } else { // 如果本次会签完成后还有需要进行会签的,那么本次会签完成,返回前端 @@ -537,7 +589,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { } else if (MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().equals(details.getManageType())) { details.setStatus(PurchaseTaskStatusEnum.TO_STORE.getStatus()); } - details.setCheckUser(SecurityUtils.getUserId()); + details.setCheckUser(SecurityUtils.getLoginUser().getUserid()); result = 0 < purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("验收成功") : AjaxResult.error("details无验证信息"); extractedFile(details); } @@ -545,8 +597,23 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { // 验收驳回处理流程 for (PurchaseCheckDetails details : purchaseVerifyVo.getPurchaseCheckDetailsList()) { details.setStatus(PurchaseTaskStatusEnum.TO_CHECK_AFTER_REJECT.getStatus()); - result = 0 < purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details) ? AjaxResult.success("驳回成功") : AjaxResult.error("details无验证信息"); + int res = purchaseCheckDetailsMapper.updatePurchaseDetails4Check(details); + if (res < 1) { + return AjaxResult.error("验收驳回失败,请联系管理员"); + } extractedFile(details); + PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord(); + purchaseSignRecord.setTaskId(details.getTaskId()); + purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid()); + purchaseSignRecord.setOrgId(loginUserDeptId); + // 审核驳回 + purchaseSignRecord.setAuditStatus("2"); + purchaseSignRecord.setCreateTime(DateUtils.getNowDate()); + purchaseSignRecord.setAuditRemark(details.getCheckResult()); + int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord); + if (addPurchaseSignResult < 1) { + return AjaxResult.error("会签失败,purchase_audit_record表插入0条数据"); + } } } } @@ -566,7 +633,7 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { if (null != bmFileInfo.getTaskType() && Objects.equals(TmTaskTypeEnum.TM_TASK_AGREEMENT_MANAGEMENT.getTaskTypeId(), bmFileInfo.getTaskType())) { bmFileInfo.setTaskId(details.getTaskId()); bmFileInfo.setModelId(details.getId()); - bmFileInfo.setCreateBy(SecurityUtils.getUsername()); + bmFileInfo.setCreateBy(SecurityUtils.getLoginUser().getUsername()); bmFileInfo.setCreateTime(DateUtils.getNowDate()); bmFileInfoMapper.insertBmFileInfo(bmFileInfo); } @@ -611,9 +678,23 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { }); } // 执行SQL查询内层信息 - final List purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(taskId, null, SecurityUtils.getUserId()); + List purchaseCheckDetails = purchaseCheckDetailsMapper.selectPurchaseCheckDetailsListByTaskId(taskId, null, SecurityUtils.getLoginUser().getUserid()); // 过滤掉空数据 purchaseCheckDetails.removeIf(Objects::isNull); + if (!CollectionUtils.isEmpty(purchaseCheckDetails)) { + for (PurchaseCheckDetails purchaseCheckDetail : purchaseCheckDetails) { + BmFileInfo fileInfo = new BmFileInfo(); + fileInfo.setTaskId(taskId); + fileInfo.setModelId(purchaseCheckDetail.getTypeId()); + fileInfo.setTaskType(0); + List bmFileInfos = bmFileInfoMapper.selectBmFileInfoList(fileInfo); + if (!CollectionUtils.isEmpty(bmFileInfos)) { + purchaseCheckDetail.setFileReceiveNum(bmFileInfos.size()); + } else { + purchaseCheckDetail.setFileReceiveNum(0); + } + } + } result.setMaterialList(purchaseCheckDetails); return result; } else { @@ -644,7 +725,15 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { @Transactional public boolean updatePurchaseCheckInfo(PurchaseCheckDto purchaseCheckDto) { purchaseCheckDto.getPurchaseCheckInfo().setUpdateTime(DateUtils.getNowDate()); - purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getUsername()); + purchaseCheckDto.getPurchaseCheckInfo().setUpdateBy(SecurityUtils.getLoginUser().getUsername()); + // 先去查是否存在文件信息,存在就删除 + BmFileInfo fileInfo = new BmFileInfo(); + fileInfo.setTaskType(0); + fileInfo.setTaskId(purchaseCheckDto.getPurchaseCheckInfo().getTaskId()); + List bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(fileInfo); + if (!CollectionUtils.isEmpty(bmFileInfoList)) { + bmFileInfoMapper.deleteBmFileList(purchaseCheckDto.getPurchaseCheckInfo().getTaskId()); + } if (!CollectionUtils.isEmpty(purchaseCheckDto.getPurchaseCheckDetailsList())) { purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(Objects::isNull); purchaseCheckDto.getPurchaseCheckDetailsList().removeIf(o -> Objects.isNull(o.getStatus())); @@ -693,4 +782,24 @@ public class PurchaseCheckInfoServiceImpl implements IPurchaseCheckInfoService { public List selectPurchaseCheckUserById(PurchaseQueryDto purchaseQueryDto) { return purchaseCheckInfoMapper.selectPurchaseCheckUserById(purchaseQueryDto); } + + /** + * 获取签名列表 + * @param purchaseSignRecord + * @return + */ + @Override + public List getSignList(PurchaseSignRecord purchaseSignRecord) { + List list = signProcessMapper.getPurchaseSignRecordByTask(purchaseSignRecord.getTaskId()); + if (!CollectionUtils.isEmpty(list)) { + for (PurchaseSignRecord signRecord : list) { + if ("1".equals(signRecord.getAuditStatus())) { + signRecord.setAuditStatusName("审核通过"); + } else if ("2".equals(signRecord.getAuditStatus())) { + signRecord.setAuditStatusName("审核驳回"); + } + } + } + return list; + } } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseNoticePersonServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseNoticePersonServiceImpl.java index e6bedeca..292fae33 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseNoticePersonServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/purchase/service/impl/PurchaseNoticePersonServiceImpl.java @@ -3,19 +3,16 @@ package com.bonus.material.purchase.service.impl; import java.util.List; import java.util.Objects; -import cn.hutool.json.JSONObject; -import com.ah.sbd.SmsTool; -import com.ah.sbd.utils.param.SmsParam; -import com.bonus.common.biz.constant.BmConfigItems; +import cn.hutool.core.collection.CollectionUtil; import com.bonus.common.biz.enums.PurchaseTaskStatusEnum; import com.bonus.common.biz.enums.TmTaskTypeEnum; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.utils.DateUtils; -import com.bonus.common.core.utils.encryption.AesCbcUtils; import com.bonus.common.core.utils.encryption.Sm4Utils; import com.bonus.common.core.utils.sms.SmsUtils; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.countersign.domain.SignProcessVo; import com.bonus.material.countersign.mapper.SignProcessMapper; import com.bonus.material.part.mapper.PartCheckMapper; import com.bonus.material.purchase.domain.PurchaseSignRecord; @@ -112,8 +109,8 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer String splitPhoneNumber = String.join(",", purchaseNoticePersonDto.getPhoneNumbers()); try { // 省公司短信发送 - JSONObject sendResult = SmsTool.sendSms(new SmsParam(splitPhoneNumber, purchaseNoticePersonDto.getContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY); - //String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(),""); + //JSONObject sendResult = SmsTool.sendSms(new SmsParam(splitPhoneNumber, purchaseNoticePersonDto.getContent()), BmConfigItems.ANHUI_COMPANY_SMS_KEY); + String sendResult = SmsUtils.smsToken(splitPhoneNumber, purchaseNoticePersonDto.getContent(),""); if (sendResult != null) { // 发送短信后修改任务状态 if (purchaseNoticePersonDto.getIsPartFlag() != null && purchaseNoticePersonDto.getIsPartFlag() == 0) { @@ -133,6 +130,27 @@ public class PurchaseNoticePersonServiceImpl implements IPurchaseNoticePersonSer // 修改采购明细的任务状态 purchaseCheckDetailsService.batchUpdateDetailsTaskStatus(purchaseNoticePersonDto.getTaskId(), PurchaseTaskStatusEnum.TO_CHECK.getStatus(), ""); } + // 发送验收通知,供应科默认验收通过,将数据存入验收记录表 + List signProcessVoList = signProcessMapper.getList(new SignProcessVo()); + Long loginUserDeptId = null; + if (CollectionUtil.isNotEmpty(signProcessVoList)) { + for (SignProcessVo signProcessVo : signProcessVoList) { + if ("供应科".equals(signProcessVo.getOrgName())) { + loginUserDeptId = signProcessVo.getOrgId(); + } + } + } + PurchaseSignRecord purchaseSignRecord = new PurchaseSignRecord(); + purchaseSignRecord.setTaskId(purchaseNoticePersonDto.getTaskId()); + purchaseSignRecord.setUserId(SecurityUtils.getLoginUser().getUserid()); + purchaseSignRecord.setOrgId(loginUserDeptId); + // 审核通过 + purchaseSignRecord.setAuditStatus("1"); + purchaseSignRecord.setCreateTime(DateUtils.getNowDate()); + int addPurchaseSignResult = signProcessMapper.insertPurchaseSignRecord(purchaseSignRecord); + if (addPurchaseSignResult < 1) { + return AjaxResult.error("插入验收通知表数据失败"); + } return AjaxResult.success("短信发送成功:" + sendResult); } else { return AjaxResult.error("短信发送失败,发送结果为空"); diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapReasonServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapReasonServiceImpl.java index b67e6669..4d8399aa 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapReasonServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/scrap/service/impl/ScrapReasonServiceImpl.java @@ -70,8 +70,8 @@ public class ScrapReasonServiceImpl implements IScrapReasonService { scrapReason.setCreateTime(DateUtils.getNowDate()); scrapReason.setUpdateTime(DateUtils.getNowDate()); - scrapReason.setCreateBy(String.valueOf(SecurityUtils.getUserId())); - scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + scrapReason.setCreateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid())); + scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid())); try { return scrapReasonMapper.insertScrapReasonInfo(scrapReason); } catch (Exception e) { @@ -105,7 +105,7 @@ public class ScrapReasonServiceImpl implements IScrapReasonService public int updateScrapReasonInfo(ScrapReason scrapReason) { scrapReason.setUpdateTime(DateUtils.getNowDate()); - scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getUserId())); + scrapReason.setUpdateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid())); try { // 先根据id查询报修记录,如果存在,修改报修记录的报废原因 List list = scrapReasonMapper.getRepairRecord(scrapReason); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/countersign/SignProcessMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/countersign/SignProcessMapper.xml index 2086a883..005b1be5 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/countersign/SignProcessMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/countersign/SignProcessMapper.xml @@ -161,17 +161,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into purchase_audit_record(task_id, auditor, org_id) - values(#{taskId}, #{userId}, #{orgId}) + insert into purchase_audit_record(task_id, auditor, audit_time, audit_status, org_id, creator, create_time, audit_remark) + values(#{taskId}, #{userId}, #{createTime}, #{auditStatus} ,#{orgId}, #{userId}, #{createTime}, #{auditRemark}) \ No newline at end of file diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml index ed3f7bb7..4d4c1fc3 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/ma/TypeMapper.xml @@ -940,4 +940,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ma_type WHERE `level` = '1' + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/part/PartArrivedMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/part/PartArrivedMapper.xml index a2427118..5d0712f3 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/part/PartArrivedMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/part/PartArrivedMapper.xml @@ -129,7 +129,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -157,7 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update - repair_apply_details + repair_apply_record set scrap_reason = #{scrapReason} where scrap_id = #{id}