|
|
@ -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<>(); |
|
|
|