From 1bcd5b89932fc7af7ba6c2da0023194a0f9dbea4 Mon Sep 17 00:00:00 2001 From: mashuai Date: Fri, 20 Dec 2024 19:46:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=97=A5=E5=BF=97=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/biz/aspect/StoreLogAspect.java | 74 ++++++++++++++++++- .../biz/domain/repair/RepairInputDetails.java | 5 ++ .../impl/LeaseOutDetailsServiceImpl.java | 4 +- .../mapper/RepairInputDetailsMapper.java | 7 ++ .../impl/RepairInputDetailsServiceImpl.java | 8 ++ .../repair/RepairInputDetailsMapper.xml | 27 +++++++ 6 files changed, 121 insertions(+), 4 deletions(-) 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 da5df570..fb16f3cd 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 @@ -7,6 +7,7 @@ import com.bonus.common.biz.domain.BmStorageLog; import com.bonus.common.biz.domain.lease.LeaseOutDetails; import com.bonus.common.biz.domain.lease.LeaseOutRequestVo; import com.bonus.common.biz.domain.purchase.PurchaseDto; +import com.bonus.common.biz.domain.repair.RepairInputDetails; import com.bonus.common.biz.enums.InputOutEnum; import com.bonus.common.biz.enums.MaTypeManageTypeEnum; import com.bonus.common.biz.service.AsyncStoreLogService; @@ -25,7 +26,6 @@ import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; import org.springframework.stereotype.Component; @@ -172,6 +172,25 @@ public class StoreLogAspect { bmStorageLog.setOutType(InputOutEnum.CODE_DEVICE.getTypeId()); bmStorageLogList.add(bmStorageLog); } + //标准箱 + if (leaseOutDetails.getManageType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) { + BmStorageLog bmStorageLog = new BmStorageLog(); + bmStorageLog.setTaskId(String.valueOf(leaseOutDetails.getParentId())); + bmStorageLog.setTypeId(leaseOutDetails.getTypeId()); + bmStorageLog.setTypeName(leaseOutDetails.getTypeName()); + bmStorageLog.setManageType(String.valueOf(leaseOutDetails.getManageType())); + bmStorageLog.setTypeModelName(leaseOutDetails.getTypeModelName()); + String maCode = lod.getLeaseOutDetailsList().stream() + .map(LeaseOutDetails::getMaCode) + .filter(Objects::nonNull) + .collect(Collectors.joining(",")); + bmStorageLog.setMaCode(maCode); + bmStorageLog.setPreStoreNum(leaseOutDetails.getPreStoreNum()); + bmStorageLog.setOutNum(BigDecimal.valueOf(lod.getLeaseOutDetailsList().size())); + bmStorageLog.setPostStoreNum(leaseOutDetails.getPreStoreNum().subtract(bmStorageLog.getOutNum())); + bmStorageLog.setOutType(InputOutEnum.STANDARD_BOX.getTypeId()); + bmStorageLogList.add(bmStorageLog); + } } // 新购验收任务 if (joinPoint.getArgs()[0] instanceof PurchaseDto) { @@ -203,7 +222,58 @@ public class StoreLogAspect { bmStorageLogList.add(bmStorageLog); } //修饰入库库存变化 /repair_input_details/warehouse - + if (joinPoint.getArgs()[0] instanceof RepairInputDetails) { + RepairInputDetails repairInputDetails = (RepairInputDetails) joinPoint.getArgs()[0]; + if (repairInputDetails.getTaskId() != null && repairInputDetails.getTypeId() != null && CollectionUtils.isEmpty(repairInputDetails.getTaskIdList())) { + // 内层入库 + BmStorageLog bmStorageLog = new BmStorageLog(); + bmStorageLog.setTaskId(String.valueOf(repairInputDetails.getTaskId())); + bmStorageLog.setTypeId(repairInputDetails.getTypeId()); + bmStorageLog.setPreStoreNum(repairInputDetails.getPreStoreNum()); + // 编码类型入库 + if (CollectionUtils.isNotEmpty(repairInputDetails.getMaCodeList())) { + bmStorageLog.setManageType(String.valueOf(InputOutEnum.CODE_DEVICE.getTypeId())); + bmStorageLog.setInNum(BigDecimal.valueOf(repairInputDetails.getMaCodeList().size())); + String maCode = repairInputDetails.getMaCodeList().stream() + .filter(Objects::nonNull) + .map(RepairInputDetails::getMaCode) + .collect(Collectors.joining(",")); + bmStorageLog.setMaCode(maCode); + bmStorageLog.setInputType(InputOutEnum.CODE_DEVICE.getTypeId()); + } else { + bmStorageLog.setManageType(String.valueOf(InputOutEnum.NUMBER_DEVICE.getTypeId())); + bmStorageLog.setInNum(repairInputDetails.getInputNum()); + bmStorageLog.setInputType(InputOutEnum.NUMBER_DEVICE.getTypeId()); + } + bmStorageLog.setPostStoreNum(repairInputDetails.getPreStoreNum().add(bmStorageLog.getInNum())); + bmStorageLogList.add(bmStorageLog); + // 外层入库 + } else if (CollectionUtils.isNotEmpty(repairInputDetails.getTaskIdList())) { + for (RepairInputDetails inputDetails : repairInputDetails.getDetailsList()) { + BmStorageLog bmStorageLog = new BmStorageLog(); + bmStorageLog.setTaskId(String.valueOf(inputDetails.getTaskId())); + bmStorageLog.setTypeId(inputDetails.getTypeId()); + bmStorageLog.setPreStoreNum(inputDetails.getPreStoreNum()); + bmStorageLog.setInNum(inputDetails.getPendingInputNum()); + // 编码类型入库 + if (inputDetails.getManageType().equals(String.valueOf(InputOutEnum.CODE_DEVICE.getTypeId()))) { + bmStorageLog.setManageType(String.valueOf(InputOutEnum.CODE_DEVICE.getTypeId())); + String maCode = inputDetails.getMaCodeList().stream() + .filter(Objects::nonNull) + .map(RepairInputDetails::getMaCode) + .collect(Collectors.joining(",")); + bmStorageLog.setMaCode(maCode); + bmStorageLog.setInputType(InputOutEnum.CODE_DEVICE.getTypeId()); + // 数量类型入库 + } else if (inputDetails.getManageType().equals(String.valueOf(InputOutEnum.NUMBER_DEVICE.getTypeId()))) { + bmStorageLog.setManageType(String.valueOf(InputOutEnum.NUMBER_DEVICE.getTypeId())); + bmStorageLog.setInputType(InputOutEnum.NUMBER_DEVICE.getTypeId()); + } + bmStorageLog.setPostStoreNum(inputDetails.getPreStoreNum().add(bmStorageLog.getInNum())); + bmStorageLogList.add(bmStorageLog); + } + } + } } } } diff --git a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/repair/RepairInputDetails.java b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/repair/RepairInputDetails.java index afcbe4d3..1425f27c 100644 --- a/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/repair/RepairInputDetails.java +++ b/bonus-common-biz/src/main/java/com/bonus/common/biz/domain/repair/RepairInputDetails.java @@ -131,6 +131,8 @@ public class RepairInputDetails extends BaseEntity { @ApiModelProperty(value = "协议号") private Integer agreementId; + private String manageType; + /** * 关键字 */ @@ -156,4 +158,7 @@ public class RepairInputDetails extends BaseEntity { @ApiModelProperty(value = "编码列表") private List maCodeList; + @ApiModelProperty(value = "详情列表") + private List detailsList; + } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseOutDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseOutDetailsServiceImpl.java index 87d72556..1631e21e 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseOutDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lease/service/impl/LeaseOutDetailsServiceImpl.java @@ -194,13 +194,13 @@ public class LeaseOutDetailsServiceImpl implements ILeaseOutDetailsService { if (res == 0) { throw new RuntimeException("出库失败,插入结算记录失败"); } - if (record.getManageType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) { + /*if (record.getManageType().equals(InputOutEnum.STANDARD_BOX.getTypeId())) { // 6、如果标准箱入库,需要将设备从标准箱移出 res = updateBoxBind(record); if (res == 0) { throw new RuntimeException("出库失败,移出设备失败"); } - } + }*/ } else { return AjaxResult.error("领料出库失败,机具库存不足"); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairInputDetailsMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairInputDetailsMapper.java index 24c7dcac..796a6261 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairInputDetailsMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/mapper/RepairInputDetailsMapper.java @@ -115,4 +115,11 @@ public interface RepairInputDetailsMapper { * @return */ Long selectBackIdByTaskId(Long taskId); + + /** + * 根据任务id集合查询维修详情 + * @param taskIdList + * @return + */ + List selectRepairDetails(@Param("list") List taskIdList); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java index 243d17c1..d7c11e0b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairInputDetailsServiceImpl.java @@ -172,6 +172,14 @@ public class RepairInputDetailsServiceImpl implements IRepairInputDetailsService // 内层入库 result += processInnerStorage(repairInputDetails); } else if (CollectionUtils.isNotEmpty(repairInputDetails.getTaskIdList())) { + // 查询外层任务列表,仅供库存日志使用 + List list = repairInputDetailsMapper.selectRepairDetails(repairInputDetails.getTaskIdList()); + if (CollectionUtils.isNotEmpty(list)) { + for (RepairInputDetails inputDetails : list) { + repairInputDetails.setPreStoreNum(getStorageNum(inputDetails)); + } + } + repairInputDetails.setDetailsList(list); // 外层入库 result += processOuterStorage(repairInputDetails); } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairInputDetailsMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairInputDetailsMapper.xml index 907d651d..f80e6d18 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairInputDetailsMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairInputDetailsMapper.xml @@ -189,6 +189,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" rid.task_id = #{taskId} + + insert into repair_input_details (task_id, audit_id, repair_id, ma_id, type_id, repair_num, input_num, create_by, create_time,