Browse Source

修改采购退货接口。

master
刘忱 2 years ago
parent
commit
95a833548a
  1. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailUpdateReqVO.java
  2. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java
  3. 75
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java
  4. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnJob/vo/PurchasereturnJobDetailUpdateReqVO.java

@ -3,10 +3,30 @@ package com.win.module.wms.controller.purchasereturnJob.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 采购退货任务子更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PurchasereturnJobDetailUpdateReqVO extends PurchasereturnJobDetailBaseVO {
@Schema(description = "实际收货数量")
private BigDecimal handleQty;
@Schema(description = "到包装")
private String toPackingNumber;
@Schema(description = "到器具")
private String toContainerNumber;
@Schema(description = "到批次")
private String toBatch;
@Schema(description = "到库存状态")
private String toInventoryStatus;
@Schema(description = "到库位")
private String toLocationCode;
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java

@ -25,12 +25,12 @@ import com.win.module.wms.dal.mysql.inspectJob.InspectJobDetailMapper;
import com.win.module.wms.dal.mysql.inspectJob.InspectJobMainMapper;
import com.win.module.wms.dal.mysql.inspectRecord.InspectRecordDetailMapper;
import com.win.module.wms.dal.mysql.inspectRecord.InspectRecordMainMapper;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.inspectRequest.InspectRequestDetailService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils;
@ -84,7 +84,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
@Resource
private BalanceMapper balanceMapper;
@Resource
private InspectRequestDetailService inspectRequestDetailService;
private InspectRequestDetailMapper inspectRequestDetailMapper;
@Override
public InspectJobMainDO getInspectJobMain(Long id) {
@ -318,6 +318,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
//全检,再次生成检验申请
if(inspectJobMainUpdateReqVO.getNextAction().equals("FULL_INSPECT")) {
InspectRequestMainDO requestMainDO = inspectRequestMainMapper.selectByNumber(inspectJobMainUpdateReqVO.getRequestNumber());
List<InspectRequestDetailDO> requestDetailDOList = inspectRequestDetailMapper.selectList(requestMainDO.getId());
String requestNumber = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode());
requestMainDO.setNumber(requestNumber);
requestMainDO.setSampleQty(requestMainDO.getReceiveQty());
@ -330,7 +331,6 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
requestMainDO.setUpdater(null);
requestMainDO.setUpdateTime(null);
inspectRequestMainMapper.insert(requestMainDO);
List<InspectRequestDetailDO> requestDetailDOList = inspectRequestDetailService.selectList(requestMainDO.getId());
for(InspectRequestDetailDO inspectRequestDetailDO : requestDetailDOList) {
inspectRequestDetailDO.setId(null);
inspectRequestDetailDO.setCreator(null);
@ -340,6 +340,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
inspectRequestDetailDO.setMasterId(requestMainDO.getId());
inspectRequestDetailDO.setNumber(requestNumber);
}
inspectRequestDetailMapper.insertBatch(requestDetailDOList);
} else {
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);

75
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnJob/PurchasereturnJobMainServiceImpl.java

@ -15,6 +15,8 @@ import com.win.module.wms.controller.purchasereturnJob.vo.PurchasereturnJobMainE
import com.win.module.wms.controller.purchasereturnJob.vo.PurchasereturnJobMainPageReqVO;
import com.win.module.wms.controller.purchasereturnJob.vo.PurchasereturnJobMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.purchasereturnJob.PurchasereturnJobDetailConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobDetailDO;
import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobMainDO;
@ -23,6 +25,7 @@ import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnReco
import com.win.module.wms.dal.dataobject.purchasereturnRequest.PurchasereturnRequestMainDO;
import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO;
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.purchasereturnJob.PurchasereturnJobMainMapper;
import com.win.module.wms.dal.mysql.purchasereturnRecord.PurchasereturnRecordDetailMapper;
import com.win.module.wms.dal.mysql.purchasereturnRecord.PurchasereturnRecordMainMapper;
@ -86,6 +89,8 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe
private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Resource
private BalanceMapper balanceMapper;
@Override
public PageResult<PurchasereturnJobMainDO> getPurchasereturnJobMainSenior(CustomConditions conditions) {
@ -204,7 +209,6 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe
public String executePurchasereturnJobMain(PurchasereturnJobMainUpdateReqVO purchasereturnJobMainUpdateReqVO) {
//查询数据
PurchasereturnJobMainDO purchasereturnJobMainDO = this.validatePurchasereturnJobMainExists(purchasereturnJobMainUpdateReqVO.getId());
List<PurchasereturnJobDetailDO> subList = purchasereturnJobDetailService.selectList(purchasereturnJobMainDO.getId());
JobStatusState jobStatusState = new JobStatusState(purchasereturnJobMainDO.getStatus());
boolean flag = jobStatusState.execute();
if(!flag) {
@ -236,16 +240,22 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe
List<PurchasereturnRecordDetailDO> purchasereturnRecordDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(PurchasereturnJobDetailDO purchasereturnJobDetailDO : subList) {
for(PurchasereturnJobDetailUpdateReqVO purchasereturnJobDetailUpdateReqVO : purchasereturnJobDetailUpdateReqVOList) {
PurchasereturnJobDetailDO purchasereturnJobDetailDO = PurchasereturnJobDetailConvert.INSTANCE.convert(purchasereturnJobDetailUpdateReqVO);
PurchasereturnRecordDetailDO purchasereturnRecordDetailDO = new PurchasereturnRecordDetailDO();
BeanUtils.copyProperties(purchasereturnJobDetailDO, purchasereturnRecordDetailDO);
purchasereturnRecordDetailDO.setMasterId(purchasereturnRecordMainDO.getId());
purchasereturnRecordDetailDO.setNumber(number);
purchasereturnRecordDetailDO.setJobDetailId(String.valueOf(purchasereturnJobDetailDO.getId()));
purchasereturnRecordDetailDO.setFromBatch(purchasereturnJobDetailDO.getBatch());
purchasereturnRecordDetailDO.setToBatch(purchasereturnJobDetailDO.getBatch());
purchasereturnRecordDetailDO.setFromPackingNumber(purchasereturnJobDetailDO.getPackingNumber());
purchasereturnRecordDetailDO.setToPackingNumber(purchasereturnJobDetailDO.getPackingNumber());
purchasereturnRecordDetailDO.setToPackingNumber(purchasereturnJobDetailUpdateReqVO.getToPackingNumber());
purchasereturnRecordDetailDO.setFromContainerNumber(purchasereturnJobDetailDO.getContainerNumber());
purchasereturnRecordDetailDO.setToContainerNumber(purchasereturnJobDetailUpdateReqVO.getToContainerNumber());
purchasereturnRecordDetailDO.setQty(purchasereturnJobDetailUpdateReqVO.getHandleQty());
purchasereturnRecordDetailDO.setFromBatch(purchasereturnJobDetailDO.getBatch());
purchasereturnRecordDetailDO.setToBatch(purchasereturnJobDetailUpdateReqVO.getToBatch());
purchasereturnRecordDetailDO.setInventoryStatus(purchasereturnJobDetailUpdateReqVO.getToInventoryStatus());
purchasereturnRecordDetailDO.setToLocationCode(purchasereturnJobDetailUpdateReqVO.getToLocationCode());
purchasereturnRecordDetailDO.setId(null);
purchasereturnRecordDetailDO.setCreateTime(null);
purchasereturnRecordDetailDO.setCreator(null);
@ -254,21 +264,52 @@ public class PurchasereturnJobMainServiceImpl implements PurchasereturnJobMainSe
purchasereturnRecordDetailDOList.add(purchasereturnRecordDetailDO);
//更新采购订单明细的退货数量
purchaseMainService.updateOrderPurchaseReturnQty(purchasereturnRecordDetailDO.getPoNumber(), purchasereturnRecordDetailDO.getPoLine(), purchasereturnRecordDetailDO.getItemCode(), purchasereturnRecordDetailDO.getQty());
//查询库存余额
BalanceDO balanceDO = balanceMapper.getBalanceQty(purchasereturnRecordDetailDO.getFromPackingNumber(), purchasereturnRecordDetailDO.getItemCode(), purchasereturnRecordDetailDO.getFromBatch(), purchasereturnRecordDetailDO.getInventoryStatus(), purchasereturnRecordDetailDO.getFromLocationCode());
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereturnRecordDetailDO, transactionCreateReqVO);
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereturnRecordDetailDO, transactionCreateReqVOOut);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReurnJob");
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(purchasereturnRecordMainDO.getBusinessType());
transactionCreateReqVO.setLocationCode(purchasereturnJobDetailDO.getFromLocationCode());
transactionCreateReqVO.setOwnerCode(purchasereturnRecordDetailDO.getFromOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVO);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactionTypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setInventoryAction(transactionTypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactionTypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(purchasereturnRecordMainDO.getBusinessType());
transactionCreateReqVOOut.setLocationCode(purchasereturnJobDetailDO.getFromLocationCode());
transactionCreateReqVOOut.setOwnerCode(purchasereturnRecordDetailDO.getFromOwnerCode());
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount());
transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setQty(purchasereturnJobDetailUpdateReqVO.getHandleQty());
transactionCreateReqVOOut.setInventoryStatus(purchasereturnJobDetailUpdateReqVO.getInventoryStatus());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut);
//判断businesstypeDO.getInTransactionType()是否为空,不为空时增加入库存事务
if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) {
//增加入库存事务
TransactiontypeDO transactionTypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereturnRecordDetailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setInventoryAction(transactionTypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactionTypeDOIn.getCode());
transactionCreateReqVOIn.setBusinessType(purchasereturnRecordMainDO.getBusinessType());
transactionCreateReqVOIn.setLocationCode(purchasereturnJobDetailDO.getToLocationCode());
transactionCreateReqVOIn.setOwnerCode(purchasereturnRecordDetailDO.getToOwnerCode());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setQty(purchasereturnJobDetailUpdateReqVO.getHandleQty());
transactionCreateReqVOIn.setInventoryStatus(purchasereturnJobDetailUpdateReqVO.getToInventoryStatus());
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
}
purchasereturnRecordDetailMapper.insertBatch(purchasereturnRecordDetailDOList);
List<String> typeList = new ArrayList<>();

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java

@ -114,13 +114,14 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
List<PurchasereturnRequestDetailDO> subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
validatorToCreate(mainDO, subDOList);
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDO.setRequestTime(LocalDateTime.now());
mainDO.setNumber(number);
purchasereturnRequestMainMapper.insert(mainDO);
for (PurchasereturnRequestDetailDO detailDO : subDOList) {
detailDO.setId(null);
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
}
purchasereturnRequestMainMapper.insert(mainDO);
purchasereturnRequestDetailMapper.insertBatch(subDOList);
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
@ -356,6 +357,7 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
purchasereturnJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete());
purchasereturnJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber());
purchasereturnJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach());
purchasereturnJobMainDO.setRequestTime(mainDO.getRequestTime());
purchasereturnJobMainDO.setId(null);
purchasereturnJobMainDO.setCreateTime(null);
purchasereturnJobMainDO.setCreator(null);

Loading…
Cancel
Save