Browse Source

完善完成采购收货任务执行功能

master
刘忱 2 years ago
parent
commit
6a4cbc2318
  1. 27
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java
  2. 43
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

27
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java

@ -15,6 +15,7 @@ import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMai
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
@ -22,6 +23,7 @@ import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRe
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchaseshortageDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchaseshortageDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO; 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.purchasereceiptJob.PurchasereceiptJobMainMapper; import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobMainMapper;
import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordDetailMapper;
import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper; import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper;
@ -32,6 +34,7 @@ import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService; import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService;
import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -76,6 +79,8 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
private TrendsApi trendsApi; private TrendsApi trendsApi;
@Resource @Resource
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Override @Override
public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) { public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) {
@ -233,6 +238,19 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRecordDetailDO.setUpdater(null); purchasereceiptRecordDetailDO.setUpdater(null);
purchasereceiptRecordDetailDO.setUpdateTime(null); purchasereceiptRecordDetailDO.setUpdateTime(null);
purchasereceiptRecordDetailMapper.insert(purchasereceiptRecordDetailDO); purchasereceiptRecordDetailMapper.insert(purchasereceiptRecordDetailDO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob");
transactionCreateReqVO.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVO);
} else {//生成缺货记录 } else {//生成缺货记录
PurchaseshortageDetailDO purchaseshortageDetailDO = new PurchaseshortageDetailDO(); PurchaseshortageDetailDO purchaseshortageDetailDO = new PurchaseshortageDetailDO();
BeanUtils.copyProperties(purchasereceiptJobDetailDO, purchaseshortageDetailDO); BeanUtils.copyProperties(purchasereceiptJobDetailDO, purchaseshortageDetailDO);
@ -246,13 +264,6 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchaseshortageDetailDO.setUpdateTime(null); purchaseshortageDetailDO.setUpdateTime(null);
purchaseshortageDetailMapper.insert(purchaseshortageDetailDO); purchaseshortageDetailMapper.insert(purchaseshortageDetailDO);
} }
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereceiptJobDetailDO, transactionCreateReqVO);
transactionCreateReqVO.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVO);
} }
List<String> typeList = new ArrayList<>(); List<String> typeList = new ArrayList<>();
typeList.add(JobStatusEnum.PENDING.getCode()); typeList.add(JobStatusEnum.PENDING.getCode());
@ -262,7 +273,7 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
if(count == 0) {//申请单下所有任务全部完成 if(count == 0) {//申请单下所有任务全部完成
purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
} else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//分完成 } else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//分完成
purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode()); purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode());
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
} }

43
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

@ -1,6 +1,5 @@
package com.win.module.wms.util; package com.win.module.wms.util;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -12,6 +11,7 @@ import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; 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.supplier.SupplierDO; import com.win.module.wms.dal.dataobject.supplier.SupplierDO;
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.expectout.ExpectoutMapper; import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper;
import com.win.module.wms.dal.mysql.location.LocationMapper; import com.win.module.wms.dal.mysql.location.LocationMapper;
@ -23,6 +23,7 @@ import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.service.supplier.SupplierService; import com.win.module.wms.service.supplier.SupplierService;
import com.win.module.wms.service.transactiontype.TransactiontypeService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -72,6 +73,9 @@ public class JobUtils {
@Resource @Resource
private BusinesstypeService businesstypeService; private BusinesstypeService businesstypeService;
@Resource
private TransactiontypeService transactiontypeService;
/** /**
* 解析JSON串,返回两个对象的集合 * 解析JSON串,返回两个对象的集合
@ -539,8 +543,7 @@ public class JobUtils {
List<ExpectoutDO> expectoutDO = selectLocatioNew(itemcode, packingnumber, batch, locationcode, inventoryStatus); List<ExpectoutDO> expectoutDO = selectLocatioNew(itemcode, packingnumber, batch, locationcode, inventoryStatus);
BigDecimal esum = BigDecimal.valueOf(expectoutDO.stream().mapToDouble(expectoutDO1 -> expectoutDO1.getQty().doubleValue()).sum()); BigDecimal esum = BigDecimal.valueOf(expectoutDO.stream().mapToDouble(expectoutDO1 -> expectoutDO1.getQty().doubleValue()).sum());
BigDecimal bsum = BigDecimal.valueOf(balanceDO.stream().mapToDouble(balanceDO1 -> balanceDO1.getQty().doubleValue()).sum()); BigDecimal bsum = BigDecimal.valueOf(balanceDO.stream().mapToDouble(balanceDO1 -> balanceDO1.getQty().doubleValue()).sum());
BigDecimal sum = bsum.subtract(esum); return bsum.subtract(esum);
return sum;
} }
/** /**
@ -591,15 +594,11 @@ public class JobUtils {
//查询库位BQ-QL //查询库位BQ-QL
public boolean selectlocation(String code) { public boolean selectlocation(String code) {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper<LocationDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code", code); queryWrapper.eq("code", code);
queryWrapper.eq("available", "TRUE"); queryWrapper.eq("available", "TRUE");
LocationDO locationDO = locationMapper.selectOne(queryWrapper); LocationDO locationDO = locationMapper.selectOne(queryWrapper);
if (locationDO == null) { return locationDO != null;
return true;
} else {
return false;
}
} }
//从库位未被其他任务占用,有可用库存 //从库位未被其他任务占用,有可用库存
@ -694,17 +693,27 @@ public class JobUtils {
*/ */
public BusinesstypeDO selectDocumentSettingFromBusinessType(String pcode){ public BusinesstypeDO selectDocumentSettingFromBusinessType(String pcode){
DocumentsettingDO documentsettingDO = documentsettingService.selectDocumentsettingExist(pcode); DocumentsettingDO documentsettingDO = documentsettingService.selectDocumentsettingExist(pcode);
if(documentsettingDO != null && documentsettingDO.getBusinessType() != null){ if(documentsettingDO == null || documentsettingDO.getBusinessType() == null) {
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist(documentsettingDO.getBusinessType());
if(businesstypeDO != null){
return businesstypeDO;
}else {
return null;
}
}else {
return null; return null;
} }
return businesstypeService.selectBusinesstypeExist(documentsettingDO.getBusinessType());
} }
/**
* DBT4
* 根据单据设置查询业务类型
* @author chenfang
* @param pcode
* @return
*/
public TransactiontypeDO selectDocumentFromTransactionType(String pcode){
TransactiontypeDO transactionType = transactiontypeService.selectTransactiontype(pcode);
if(transactionType == null || transactionType.getCode() == null) {
return null;
}
return transactionType;
}
/** /**
* 从库存有效状态正确(使用客户寄售库) * 从库存有效状态正确(使用客户寄售库)
* author:yejiaxing * author:yejiaxing

Loading…
Cancel
Save