Browse Source

库存修改申请 记录

master
陈薪名 2 years ago
parent
commit
8dfc3514c1
  1. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordDetailExportReqVO.java
  2. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/vo/InventorychangeRecordMainBaseVO.java
  3. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRecord/InventorychangeRecordDetailMapper.java
  4. 59
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java

4
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") @Schema(description = "任务明细ID")
private String jobDetailId; private String jobDetailId;
@Schema(description = "主表ID")
private String masterId;
} }

1
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; private String interfaceType;
@Schema(description = "代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "代码不能为空")
private String code; private String code;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)

2
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<Inventory
default PageResult<InventorychangeRecordDetailDO> selectPage(InventorychangeRecordDetailPageReqVO reqVO) { default PageResult<InventorychangeRecordDetailDO> selectPage(InventorychangeRecordDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventorychangeRecordDetailDO>() return selectPage(reqVO, new LambdaQueryWrapperX<InventorychangeRecordDetailDO>()
.eqIfPresent(InventorychangeRecordDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorychangeRecordDetailDO::getLocationCode, reqVO.getLocationCode()) .eqIfPresent(InventorychangeRecordDetailDO::getLocationCode, reqVO.getLocationCode())
.eqIfPresent(InventorychangeRecordDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(InventorychangeRecordDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode())
.eqIfPresent(InventorychangeRecordDetailDO::getAreaCode, reqVO.getAreaCode()) .eqIfPresent(InventorychangeRecordDetailDO::getAreaCode, reqVO.getAreaCode())
@ -66,6 +67,7 @@ public interface InventorychangeRecordDetailMapper extends BaseMapperX<Inventory
} }
default List<InventorychangeRecordDetailDO> selectList(InventorychangeRecordDetailExportReqVO reqVO) { default List<InventorychangeRecordDetailDO> selectList(InventorychangeRecordDetailExportReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<InventorychangeRecordDetailDO>() return selectList(new LambdaQueryWrapperX<InventorychangeRecordDetailDO>()
.eqIfPresent(InventorychangeRecordDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventorychangeRecordDetailDO::getLocationCode, reqVO.getLocationCode()) .eqIfPresent(InventorychangeRecordDetailDO::getLocationCode, reqVO.getLocationCode())
.eqIfPresent(InventorychangeRecordDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(InventorychangeRecordDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode())
.eqIfPresent(InventorychangeRecordDetailDO::getAreaCode, reqVO.getAreaCode()) .eqIfPresent(InventorychangeRecordDetailDO::getAreaCode, reqVO.getAreaCode())

59
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.dept.DeptApi;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi; 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.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; 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.InventorychangeRecordDetailCreateReqVO;
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainCreateReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainCreateReqVO;
import com.win.module.wms.controller.inventorychangeRequest.vo.*; 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.InventorychangeRecordDetailConvert;
import com.win.module.wms.convert.inventorychangeRecord.InventorychangeRecordMainConvert; import com.win.module.wms.convert.inventorychangeRecord.InventorychangeRecordMainConvert;
import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestDetailConvert; 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.location.LocationDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; 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.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.balance.BalanceMapper;
import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordDetailMapper; import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordDetailMapper;
import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordMainMapper; 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.annotation.Resource;
import javax.validation.Validator; import javax.validation.Validator;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; 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.*; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
@ -232,6 +237,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
* @param detailDOList 库存修改子 * @param detailDOList 库存修改子
*/ */
private void generateRecord(InventorychangeRequestMainDO mainDO, List<InventorychangeRequestDetailDO> detailDOList) { private void generateRecord(InventorychangeRequestMainDO mainDO, List<InventorychangeRequestDetailDO> detailDOList) {
AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId());
InventorychangeRecordMainCreateReqVO inventorychangeRecordMainCreateReqVO = new InventorychangeRecordMainCreateReqVO(); InventorychangeRecordMainCreateReqVO inventorychangeRecordMainCreateReqVO = new InventorychangeRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, inventorychangeRecordMainCreateReqVO); BeanUtils.copyProperties(mainDO, inventorychangeRecordMainCreateReqVO);
inventorychangeRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); inventorychangeRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
@ -241,14 +247,16 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
inventorychangeRecordMainCreateReqVO.setActiveDate(mainDO.getCreateTime()); inventorychangeRecordMainCreateReqVO.setActiveDate(mainDO.getCreateTime());
inventorychangeRecordMainCreateReqVO.setAvailable("TRUE"); inventorychangeRecordMainCreateReqVO.setAvailable("TRUE");
//增加业务类型 //增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("inventorychangeRecord"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryChangeRecord");
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("inventorychangeRecord"); RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("InventoryChangeRecord");
inventorychangeRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); inventorychangeRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType());
inventorychangeRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); inventorychangeRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType());
inventorychangeRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); inventorychangeRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
inventorychangeRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType()); inventorychangeRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType());
InventorychangeRecordMainDO convert = InventorychangeRecordMainConvert.INSTANCE.convert(inventorychangeRecordMainCreateReqVO); InventorychangeRecordMainDO convert = InventorychangeRecordMainConvert.INSTANCE.convert(inventorychangeRecordMainCreateReqVO);
inventorychangeRecordMainMapper.insert(convert); inventorychangeRecordMainMapper.insert(convert);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
List<InventorychangeRecordDetailDO> iinventorychangeRecordDetailCreateReqVOlDOList = new ArrayList<>(); List<InventorychangeRecordDetailDO> iinventorychangeRecordDetailCreateReqVOlDOList = new ArrayList<>();
for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : detailDOList) { for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : detailDOList) {
InventorychangeRecordDetailCreateReqVO inventorychangeRecordDetailCreateReqVO = new InventorychangeRecordDetailCreateReqVO(); InventorychangeRecordDetailCreateReqVO inventorychangeRecordDetailCreateReqVO = new InventorychangeRecordDetailCreateReqVO();
@ -260,9 +268,34 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus());
validatorLocationReturnManagementAccuracy(mainDO, inventorychangeRequestDetailDO, inventoryStatus); validatorLocationReturnManagementAccuracy(mainDO, inventorychangeRequestDetailDO, inventoryStatus);
iinventorychangeRecordDetailCreateReqVOlDOList.add(InventorychangeRecordDetailConvert.INSTANCE.convert(inventorychangeRecordDetailCreateReqVO)); 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); inventorychangeRecordDetailMapper.insertBatch(iinventorychangeRecordDetailCreateReqVOlDOList);
//增加库存事务 //增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "InventorychangeRecord", "库存修改申请生成库存修改记录", TrendsTypeEnum.CREATE); trendsApi.createTrends(mainDO.getId(), "InventorychangeRecord", "库存修改申请生成库存修改记录", TrendsTypeEnum.CREATE);
} }
@ -538,9 +571,6 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus());
CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, itembasicDO); CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, itembasicDO);
validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, inventoryStatus); 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) { if (balanceDOList != null) {
BalanceDO balanceDO = balanceDOList.get(0); BalanceDO balanceDO = balanceDOList.get(0);
inventorychangeRequestMainDO.setWarehouseCode(balanceDO.getWarehouseCode()); inventorychangeRequestMainDO.setWarehouseCode(balanceDO.getWarehouseCode());
inventorychangeRequestDetailDO.setFromOwnerCode(balanceDO.getOwnerCode());
inventorychangeRequestDetailDO.setFromQty(balanceDO.getQty()); inventorychangeRequestDetailDO.setFromQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setToQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setFromArriveDate(balanceDO.getArriveDate()); inventorychangeRequestDetailDO.setFromArriveDate(balanceDO.getArriveDate());
inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate());
inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate());
inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate());
inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate());
inventorychangeRequestDetailDO.setToProduceDate(balanceDO.getProduceDate()); inventorychangeRequestDetailDO.setToProduceDate(balanceDO.getProduceDate());
inventorychangeRequestDetailDO.setToExpireDate(balanceDO.getExpireDate()); inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate());
// balanceDO.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus()); // 修改后的值
// balanceMapper.updateById(balanceDO); inventorychangeRequestDetailDO.setToQty(inventorychangeRequestDetailDO.getToQty());
// trendsApi.createTrends(Long.valueOf(balanceDO.getId()), "transaction_balance", "库存修改申请生成库存修改记录时修改了库存余额库存状态", TrendsTypeEnum.UPDATE); inventorychangeRequestDetailDO.setQty(inventorychangeRequestDetailDO.getToQty());
inventorychangeRequestDetailDO.setToExpireDate(inventorychangeRequestDetailDO.getToExpireDate());
inventorychangeRequestDetailDO.setToBatch(inventorychangeRequestDetailDO.getToBatch());
inventorychangeRequestDetailDO.setToPackingNumber(inventorychangeRequestDetailDO.getToPackingNumber());
inventorychangeRequestDetailDO.setToContainerNumber(inventorychangeRequestDetailDO.getToContainerNumber());
inventorychangeRequestDetailDO.setToOwnerCode(inventorychangeRequestDetailDO.getToOwnerCode());
} }
} }
} }

Loading…
Cancel
Save