diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordDetailExportReqVO.java index c3af8448..3353c6a0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordDetailExportReqVO.java @@ -133,4 +133,8 @@ public class InventorychangeRecordDetailExportReqVO { @Schema(description = "任务明细ID") private String jobDetailId; + @Schema(description = "主表ID") + private String masterId; + + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordMainBaseVO.java index 86660b5d..91c206a6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordMainBaseVO.java @@ -61,7 +61,6 @@ public class InventorychangeRecordMainBaseVO { private String interfaceType; @Schema(description = "代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "代码不能为空") private String code; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRecord/InventorychangeRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRecord/InventorychangeRecordDetailMapper.java index a48d936b..20702612 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRecord/InventorychangeRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRecord/InventorychangeRecordDetailMapper.java @@ -22,6 +22,7 @@ public interface InventorychangeRecordDetailMapper extends BaseMapperX selectPage(InventorychangeRecordDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InventorychangeRecordDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorychangeRecordDetailDO::getLocationCode, reqVO.getLocationCode()) .eqIfPresent(InventorychangeRecordDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(InventorychangeRecordDetailDO::getAreaCode, reqVO.getAreaCode()) @@ -66,6 +67,7 @@ public interface InventorychangeRecordDetailMapper extends BaseMapperX selectList(InventorychangeRecordDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eqIfPresent(InventorychangeRecordDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorychangeRecordDetailDO::getLocationCode, reqVO.getLocationCode()) .eqIfPresent(InventorychangeRecordDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(InventorychangeRecordDetailDO::getAreaCode, reqVO.getAreaCode()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java index 3e451746..982c97ff 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java @@ -10,12 +10,14 @@ import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.system.api.dept.DeptApi; import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.user.AdminUserApi; +import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordDetailCreateReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainCreateReqVO; import com.win.module.wms.controller.inventorychangeRequest.vo.*; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.convert.inventorychangeRecord.InventorychangeRecordDetailConvert; import com.win.module.wms.convert.inventorychangeRecord.InventorychangeRecordMainConvert; import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestDetailConvert; @@ -30,6 +32,7 @@ import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordDetailMapper; import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordMainMapper; @@ -54,12 +57,14 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import javax.validation.Validator; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.*; /** @@ -232,6 +237,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq * @param detailDOList 库存修改子 */ private void generateRecord(InventorychangeRequestMainDO mainDO, List detailDOList) { + AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); InventorychangeRecordMainCreateReqVO inventorychangeRecordMainCreateReqVO = new InventorychangeRecordMainCreateReqVO(); BeanUtils.copyProperties(mainDO, inventorychangeRecordMainCreateReqVO); inventorychangeRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); @@ -241,14 +247,16 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq inventorychangeRecordMainCreateReqVO.setActiveDate(mainDO.getCreateTime()); inventorychangeRecordMainCreateReqVO.setAvailable("TRUE"); //增加业务类型 - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("inventorychangeRecord"); - RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("inventorychangeRecord"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryChangeRecord"); + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("InventoryChangeRecord"); inventorychangeRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); inventorychangeRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); inventorychangeRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); inventorychangeRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType()); InventorychangeRecordMainDO convert = InventorychangeRecordMainConvert.INSTANCE.convert(inventorychangeRecordMainCreateReqVO); inventorychangeRecordMainMapper.insert(convert); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); List iinventorychangeRecordDetailCreateReqVOlDOList = new ArrayList<>(); for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : detailDOList) { InventorychangeRecordDetailCreateReqVO inventorychangeRecordDetailCreateReqVO = new InventorychangeRecordDetailCreateReqVO(); @@ -260,9 +268,34 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); validatorLocationReturnManagementAccuracy(mainDO, inventorychangeRequestDetailDO, inventoryStatus); iinventorychangeRecordDetailCreateReqVOlDOList.add(InventorychangeRecordDetailConvert.INSTANCE.convert(inventorychangeRecordDetailCreateReqVO)); + + // 库存事务——出 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(inventorychangeRequestDetailDO, transactionCreateReqVOOut); + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus()); + transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOOut.setBatch(inventorychangeRequestDetailDO.getToBatch()); + transactionCreateReqVOOut.setPackingNumber(inventorychangeRequestDetailDO.getToPackingNumber()); + transactionCreateReqVOOut.setLocationCode(inventorychangeRequestDetailDO.getLocationCode()); + transactionCreateReqVOOut.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setQty(inventorychangeRequestDetailDO.getFromQty().subtract(inventorychangeRequestDetailDO.getToQty())); + transactionCreateReqVOOut.setArriveDate(inventorychangeRequestDetailDO.getToArrivdAte()); + transactionCreateReqVOOut.setProduceDate(inventorychangeRequestDetailDO.getToProduceDate()); + transactionCreateReqVOOut.setExpireDate(inventorychangeRequestDetailDO.getToExpireDate()); + transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOOut); } inventorychangeRecordDetailMapper.insertBatch(iinventorychangeRecordDetailCreateReqVOlDOList); //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 trendsApi.createTrends(mainDO.getId(), "InventorychangeRecord", "库存修改申请生成库存修改记录", TrendsTypeEnum.CREATE); } @@ -538,9 +571,6 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, itembasicDO); validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, inventoryStatus); - inventorychangeRequestDetailDO.setToBatch(inventorychangeRequestDetailDO.getFromBatch()); - inventorychangeRequestDetailDO.setToPackingNumber(inventorychangeRequestDetailDO.getFromPackingNumber()); - inventorychangeRequestDetailDO.setToContainerNumber(inventorychangeRequestDetailDO.getFromContainerNumber()); } //子表校验来源库位基础信息 @@ -582,18 +612,21 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq if (balanceDOList != null) { BalanceDO balanceDO = balanceDOList.get(0); inventorychangeRequestMainDO.setWarehouseCode(balanceDO.getWarehouseCode()); + inventorychangeRequestDetailDO.setFromOwnerCode(balanceDO.getOwnerCode()); inventorychangeRequestDetailDO.setFromQty(balanceDO.getQty()); - inventorychangeRequestDetailDO.setToQty(balanceDO.getQty()); - inventorychangeRequestDetailDO.setQty(balanceDO.getQty()); inventorychangeRequestDetailDO.setFromArriveDate(balanceDO.getArriveDate()); - inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate()); - inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate()); inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); + inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate()); inventorychangeRequestDetailDO.setToProduceDate(balanceDO.getProduceDate()); - inventorychangeRequestDetailDO.setToExpireDate(balanceDO.getExpireDate()); -// balanceDO.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus()); -// balanceMapper.updateById(balanceDO); -// trendsApi.createTrends(Long.valueOf(balanceDO.getId()), "transaction_balance", "库存修改申请生成库存修改记录时修改了库存余额库存状态", TrendsTypeEnum.UPDATE); + inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate()); + // 修改后的值 + inventorychangeRequestDetailDO.setToQty(inventorychangeRequestDetailDO.getToQty()); + inventorychangeRequestDetailDO.setQty(inventorychangeRequestDetailDO.getToQty()); + inventorychangeRequestDetailDO.setToExpireDate(inventorychangeRequestDetailDO.getToExpireDate()); + inventorychangeRequestDetailDO.setToBatch(inventorychangeRequestDetailDO.getToBatch()); + inventorychangeRequestDetailDO.setToPackingNumber(inventorychangeRequestDetailDO.getToPackingNumber()); + inventorychangeRequestDetailDO.setToContainerNumber(inventorychangeRequestDetailDO.getToContainerNumber()); + inventorychangeRequestDetailDO.setToOwnerCode(inventorychangeRequestDetailDO.getToOwnerCode()); } } }