Browse Source

Merge remote-tracking branch 'origin/hella_online_20240919' into hella_online_20240919

hella_online_20240919
陈薪名 1 day ago
parent
commit
139e3ff601
  1. 32
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordDetailController.java
  2. 182
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java
  3. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleShipmentRecord/SaleShipmentMainRecordServiceImpl.java

32
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordDetailController.java

@ -115,13 +115,15 @@ public class CustomerreturnRecordDetailController {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
CustomerreturnRecordMainDO customerreturnRecordMainDO = mainMap.get(vo.getMasterId());
customerreturnRecordMainDO.setId(null);
customerreturnRecordMainDO.setCreator(null);
customerreturnRecordMainDO.setCreateTime(null);
customerreturnRecordMainDO.setUpdateTime(null);
customerreturnRecordMainDO.setUpdateTime(null);
customerreturnRecordMainDO.setRemark(null);
BeanUtil.copyProperties(customerreturnRecordMainDO,vo,options);
if(customerreturnRecordMainDO != null){
customerreturnRecordMainDO.setId(null);
customerreturnRecordMainDO.setCreator(null);
customerreturnRecordMainDO.setCreateTime(null);
customerreturnRecordMainDO.setUpdateTime(null);
customerreturnRecordMainDO.setUpdateTime(null);
customerreturnRecordMainDO.setRemark(null);
BeanUtil.copyProperties(customerreturnRecordMainDO,vo,options);
}
ItemareaDO itemareaDO = jobUtils.getItemareaDOByLocationCodeToIssue(vo.getItemCode(),vo.getToLocationCode());
if(itemareaDO != null){
vo.setPackUnit(itemareaDO.getInPackUnit());
@ -151,13 +153,15 @@ public class CustomerreturnRecordDetailController {
vo.setCreator(userApi.getUserNickname(vo.getCreator()));
vo.setUpdater(userApi.getUserNickname(vo.getUpdater()));
CustomerreturnRecordMainDO customerreturnRecordMainDO = mainMap.get(vo.getMasterId());
customerreturnRecordMainDO.setId(null);
customerreturnRecordMainDO.setCreator(null);
customerreturnRecordMainDO.setCreateTime(null);
customerreturnRecordMainDO.setUpdateTime(null);
customerreturnRecordMainDO.setUpdateTime(null);
customerreturnRecordMainDO.setRemark(null);
BeanUtil.copyProperties(customerreturnRecordMainDO,vo,options);
if(customerreturnRecordMainDO != null){
customerreturnRecordMainDO.setId(null);
customerreturnRecordMainDO.setCreator(null);
customerreturnRecordMainDO.setCreateTime(null);
customerreturnRecordMainDO.setUpdateTime(null);
customerreturnRecordMainDO.setUpdateTime(null);
customerreturnRecordMainDO.setRemark(null);
BeanUtil.copyProperties(customerreturnRecordMainDO,vo,options);
}
ItemareaDO itemareaDO = jobUtils.getItemareaDOByLocationCodeToIssue(vo.getItemCode(),vo.getToLocationCode());
if(itemareaDO != null){
vo.setPackUnit(itemareaDO.getInPackUnit());

182
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java

@ -21,6 +21,7 @@ import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecor
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainCreateReqVO;
import com.win.module.wms.controller.customerreturnRequest.vo.*;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.customerreturnJob.CustomerreturnJobDetailConvert;
import com.win.module.wms.convert.customerreturnJob.CustomerreturnJobMainConvert;
import com.win.module.wms.convert.customerreturnRecord.CustomerreturnRecordDetailConvert;
@ -44,6 +45,7 @@ import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.packageMassage.PackageDO;
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.customerreturnJob.CustomerreturnJobDetailMapper;
import com.win.module.wms.dal.mysql.customerreturnJob.CustomerreturnJobMainMapper;
import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordDetailMapper;
@ -51,6 +53,7 @@ import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordMai
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestDetailMapper;
import com.win.module.wms.dal.mysql.customerreturnRequest.CustomerreturnRequestMainMapper;
import com.win.module.wms.dal.mysql.packageMassage.PackageMapper;
import com.win.module.wms.enums.common.HoldReceiveTypeEnum;
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.plan.PlanStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum;
@ -60,6 +63,7 @@ import com.win.module.wms.service.businesstype.BusinesstypeService;
import com.win.module.wms.service.customerdock.CustomerdockService;
import com.win.module.wms.service.customerreturnJob.CustomerreturnJobMainService;
import com.win.module.wms.service.deliverRecord.DeliverRecordMainService;
import com.win.module.wms.service.documentSwitch.SwitchService;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.jobsetting.JobsettingService;
@ -67,6 +71,7 @@ import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.packageMassage.PackageService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import groovy.lang.Lazy;
import lombok.extern.slf4j.Slf4j;
@ -167,6 +172,12 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
private AreabasicService areabasicService;
@Resource
private CustomerreturnJobMainService customerreturnJobMainService;
@Lazy
@Resource
private SwitchService switchService;
@Lazy
@Resource
private TransactionService transactionService;
@Override
public String createCustomerreturnRequestMain(CustomerreturnRequestMainCreateReqVO createReqVO) {
@ -321,37 +332,152 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
// 如果直接生成记录 修改申请状态为已完成
mainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
customerreturnRequestMainMapper.updateById(mainDO);
CustomerreturnRecordMainCreateReqVO customerreturnRecordMainCreateReqVO = new CustomerreturnRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, customerreturnRecordMainCreateReqVO);
// 记录主表数据 同名属性同名赋值
customerreturnRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
customerreturnRecordMainCreateReqVO.setId(null);
customerreturnRecordMainCreateReqVO.setCreator(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
customerreturnRecordMainCreateReqVO.setCreateTime(null);
customerreturnRecordMainCreateReqVO.setActiveDate(LocalDateTime.now());
customerreturnRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now());
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_RECORD.getCode());
customerreturnRecordMainCreateReqVO.setNumber(number);
// 增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRecord", "客户退货记录");
customerreturnRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
CustomerreturnRecordMainDO recordMainDO = CustomerreturnRecordMainConvert.INSTANCE.convert(customerreturnRecordMainCreateReqVO);
recordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString());
customerreturnRecordMainMapper.insert(recordMainDO);
String userIdStr = userApi.getUser(getLoginUserId()).getId().toString();
String userDepIdStr = userApi.getUser(getLoginUserId()).getDeptId().toString();
boolean customerreturnConfirmationSwitchFlag = false;
String inventorymoveConfirmationSwitch = switchService.selectSwitchExist("customerreturnConfirmationSwitch").getEffectiveSetValue();
if("TRUE".equals(inventorymoveConfirmationSwitch)){
log.debug("客户退货开启确认接收功能,申请单号:{}",mainDO.getNumber());
customerreturnConfirmationSwitchFlag = true;
}
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
// 根据申请生成任务,任务生成记录的逻辑重新修改 -->申请直接到记录的功能
for (CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) {
// 记录子表数据 同名属性同名赋值
CustomerreturnRecordDetailCreateReqVO customerreturnRecordDetailCreateReqVO = new CustomerreturnRecordDetailCreateReqVO();
CustomerreturnRecordDetailDO recordDetailDO = CustomerreturnRecordDetailConvert.INSTANCE.convert(customerreturnRecordDetailCreateReqVO);
BeanUtils.copyProperties(customerreturnRequestDetailDO, recordDetailDO);
recordDetailDO.setFromBatch(customerreturnRequestDetailDO.getBatch());
recordDetailDO.setMasterId(customerreturnRequestDetailDO.getId());
recordDetailDO.setId(null);
recordDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
recordDetailDO.setCreateTime(null);
recordDetailDO.setInventoryStatus(businesstypeDO.getInInventoryStatuses());
customerreturnRecordDetailMapper.insert(recordDetailDO);
// 根据 申请的包装条数 来创建任务
List<PackageDO> packageDOList = packageService.getPackageListByRequestNumber(mainDO.getNumber());
if (packageDOList == null || packageDOList.size() == 0) {
throw exception(PRODUCTRECEIPT_JOB_MAIN_PACKING_ERROR);
}
for (PackageDO packageDO : packageDOList) {
if (packageDO.getItemCode().equals(customerreturnRequestDetailDO.getItemCode()) && packageDO.getDetailId().equals(customerreturnRequestDetailDO.getId())) {
// 创建客户收货记录主表
CustomerreturnRecordMainDO customerreturnRecordMainDO = new CustomerreturnRecordMainDO();
BeanUtils.copyProperties(mainDO, customerreturnRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_RECORD.getCode());
customerreturnRecordMainDO.setNumber(number);
customerreturnRecordMainDO.setRequestNumber(mainDO.getNumber());
customerreturnRecordMainDO.setJobNumber(null);
customerreturnRecordMainDO.setId(null);
customerreturnRecordMainDO.setBusinessType(businesstypeDO.getCode());
customerreturnRecordMainDO.setDepartmentCode(userDepIdStr);
customerreturnRecordMainMapper.insert(customerreturnRecordMainDO);
CustomerreturnRecordDetailDO recordDetailDO = new CustomerreturnRecordDetailDO();
BeanUtils.copyProperties(customerreturnRequestDetailDO, recordDetailDO);
recordDetailDO.setMasterId(customerreturnRecordMainDO.getId());
recordDetailDO.setId(null);
recordDetailDO.setCreator(userIdStr);
recordDetailDO.setCreateTime(LocalDateTime.now());
recordDetailDO.setFromOwnerCode(customerreturnRequestDetailDO.getFromOwnerCode());
recordDetailDO.setToOwnerCode(customerreturnRequestDetailDO.getFromOwnerCode());
recordDetailDO.setFromBatch(customerreturnRequestDetailDO.getBatch());
recordDetailDO.setToBatch(customerreturnRequestDetailDO.getBatch());
recordDetailDO.setFromPackingNumber(customerreturnRequestDetailDO.getPackingNumber());
recordDetailDO.setToPackingNumber(packageDO.getNumber());
recordDetailDO.setFromLocationCode(customerreturnRequestDetailDO.getFromLocationCode());
if(StringUtils.isNotEmpty(recordDetailDO.getFromLocationCode())){
LocationDO locationDOFrom = locationService.selectLocation(recordDetailDO.getFromLocationCode());
if (locationDOFrom != null) {
recordDetailDO.setFromAreaCode(locationDOFrom.getAreaCode());
recordDetailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode());
}
}
recordDetailDO.setToLocationCode(customerreturnRequestDetailDO.getToLocationCode());
if(StringUtils.isNotEmpty(recordDetailDO.getToLocationCode())){
LocationDO locationDOTo = locationService.selectLocation(recordDetailDO.getToLocationCode());
if (locationDOTo != null) {
recordDetailDO.setToAreaCode(locationDOTo.getAreaCode());
recordDetailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode());
}
}
if(customerreturnConfirmationSwitchFlag){
recordDetailDO.setReceiveStatus(HoldReceiveTypeEnum.TO_BE_CONFIRMED.getCode());//待确认
}else{
recordDetailDO.setReceiveStatus(HoldReceiveTypeEnum.RECEIVED.getCode());//已接收
}
recordDetailDO.setFromContainerNumber(customerreturnRequestDetailDO.getContainerNumber());
recordDetailDO.setToContainerNumber(customerreturnRequestDetailDO.getContainerNumber());
recordDetailDO.setQty(packageDO.getQty());
recordDetailDO.setUom(packageDO.getUom());
recordDetailDO.setInventoryStatus(businesstypeDO.getInInventoryStatuses());
customerreturnRecordDetailMapper.insert(recordDetailDO);
if(!customerreturnConfirmationSwitchFlag){
// 添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(recordDetailDO, transactionCreateReqVO);
// 入库存事务
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
String inTransactionType = businesstypeDO.getInTransactionType();
if (inTransactionType != null && !"".equals(inTransactionType)) {
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(inTransactionType);
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(customerreturnRecordMainDO.getBusinessType());
transactionCreateReqVO.setLocationCode(recordDetailDO.getToLocationCode());
transactionCreateReqVO.setOwnerCode(recordDetailDO.getToOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setBatch(recordDetailDO.getToBatch());
transactionCreateReqVO.setPackingNumber(recordDetailDO.getToPackingNumber());
transactionCreateReqVO.setInventoryStatus(recordDetailDO.getInventoryStatus());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setQty(recordDetailDO.getQty());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setSiteId(recordDetailDO.getSiteId());
transactionCreateReqVO.setArriveDate(LocalDateTime.now());
transactionCreateReqVO.setProduceDate(LocalDateTime.now());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDO = jobUtils.getAreabasicDO(transactionCreateReqVO.getLocationCode());
transactionCreateReqVO.setAreaType(areabasicDO.getType());
transactionCreateReqVO.setAreaCode(areabasicDO.getCode());
transactionCreateReqVO.setPackUnit(jobUtils.getItemareaDO(recordDetailDO.getItemCode(), areabasicDO.getCode()).getInPackUnit());
transactionCreateReqVO.setPackQty(jobUtils.getItempackageDO(recordDetailDO.getItemCode(), transactionCreateReqVO.getPackUnit()).getPackQty());
transactionCreateReqVOList.add(transactionCreateReqVO);
}
TransactionCreateReqVO outTransactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(recordDetailDO, outTransactionCreateReqVO);
// 出库存事务
outTransactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
String outTransactionType = businesstypeDO.getOutTransactionType();
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(outTransactionType);
outTransactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
outTransactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
outTransactionCreateReqVO.setBusinessType(customerreturnRecordMainDO.getBusinessType());
outTransactionCreateReqVO.setLocationCode(recordDetailDO.getFromLocationCode());
outTransactionCreateReqVO.setOwnerCode(recordDetailDO.getFromOwnerCode());
outTransactionCreateReqVO.setRecordNumber(number);
outTransactionCreateReqVO.setInventoryStatus(recordDetailDO.getInventoryStatus());
outTransactionCreateReqVO.setBatch(recordDetailDO.getFromBatch());
outTransactionCreateReqVO.setPackingNumber(recordDetailDO.getFromPackingNumber());
outTransactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
outTransactionCreateReqVO.setId(null);
outTransactionCreateReqVO.setQty(recordDetailDO.getQty());
outTransactionCreateReqVO.setAmount(BigDecimal.ZERO);
outTransactionCreateReqVO.setSiteId(recordDetailDO.getSiteId());
outTransactionCreateReqVO.setArriveDate(LocalDateTime.now());
outTransactionCreateReqVO.setProduceDate(LocalDateTime.now());
// 根据 库位 获取 库区DO
AreabasicDO areabasicDOOut = jobUtils.getAreabasicDO(outTransactionCreateReqVO.getLocationCode());
outTransactionCreateReqVO.setAreaType(areabasicDOOut.getType());
outTransactionCreateReqVO.setAreaCode(areabasicDOOut.getCode());
outTransactionCreateReqVO.setPackUnit(jobUtils.getItemareaDO(recordDetailDO.getItemCode(), areabasicDOOut.getCode()).getOutPackUnit());
outTransactionCreateReqVO.setPackQty(jobUtils.getItempackageDO(recordDetailDO.getItemCode(), outTransactionCreateReqVO.getPackUnit()).getPackQty());
transactionCreateReqVOList.add(outTransactionCreateReqVO);
}
}
}
}
}
if(!customerreturnConfirmationSwitchFlag){
// 增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
}
trendsApi.createTrends(recordMainDO.getId(), "record_customerreturn_main", null, "客户退货申请生成客户退货记录", JSONUtil.toJsonStr(recordMainDO),TrendsTypeEnum.CREATE, String.valueOf(getLoginUserId()));
trendsApi.createTrends(mainDO.getId(), "record_customerreturn_main", null, "客户退货申请生成客户退货记录", JSONUtil.toJsonStr(mainDO),TrendsTypeEnum.CREATE, String.valueOf(getLoginUserId()));
return;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/saleShipmentRecord/SaleShipmentMainRecordServiceImpl.java

@ -149,7 +149,7 @@ public class SaleShipmentMainRecordServiceImpl implements SaleShipmentMainRecord
@Override
public Integer saleShipmentMainRecordDOAbort(Long id) {
SaleShipmentMainRecordDO mainDO = validateSaleShipmentMainRecordDOExists(id);
if (StringUtils.equals(mainDO.getRevokeFlag(), "TRUE")) {
if (StringUtils.equals(mainDO.getRevokeFlag(), "TRUE") || !StringUtils.isEmpty(mainDO.getRelateRecordNumber())) {
throw exception(SALE_SHIPMENT_MAIN_RECORD_CANNOT_ABORT);
}
this.generateAbort(mainDO, saleShipmentDetailRecordMapper.selectList(mainDO.getId()));

Loading…
Cancel
Save