Browse Source

缺陷:HL-5739检验不合格修改

hella_online_20240829
赵雪冰 10 months ago
parent
commit
72e84207a0
  1. 4
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 530
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java

4
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java

@ -622,6 +622,10 @@ public interface ErrorCodeConstants {
ErrorCode INSPECT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_080_000, "检验记录主不存在"); ErrorCode INSPECT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_080_000, "检验记录主不存在");
// 检验记录子ErrorCode // 检验记录子ErrorCode
ErrorCode INSPECT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_080_001, "检验记录子不存在"); ErrorCode INSPECT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_080_001, "检验记录子不存在");
// 成品检验通知包装号不存在
ErrorCode INSPECT_RESULT_PRODUCT_INSPECT_PACKING_NUMBER_NOT_EXIST = new ErrorCode(1_000_079_003, "成品收货记录不存在,包装号【{}】,物料代码【{}】");
// 上架申请主ErrorCode // 上架申请主ErrorCode
ErrorCode PUTAWAY_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_081_000, "上架申请主不存在"); ErrorCode PUTAWAY_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_081_000, "上架申请主不存在");
// 上架申请子ErrorCode // 上架申请子ErrorCode

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

@ -16,8 +16,10 @@ import javax.annotation.Resource;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.win.framework.redis.util.RedisCache; import com.win.framework.redis.util.RedisCache;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO;
import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO; import com.win.module.wms.dal.dataobject.productreceiptJob.ProductreceiptJobDetailDO;
import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobDetailMapper; import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobDetailMapper;
import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobMainMapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
@ -174,7 +176,8 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
@Lazy @Lazy
@Resource @Resource
private RedisCache redisCache; private RedisCache redisCache;
@Resource
private ProductputawayJobMainMapper productputawayJobMainMapper;
@Override @Override
public InspectJobMainDO getInspectJobMain(Long id) { public InspectJobMainDO getInspectJobMain(Long id) {
@ -693,9 +696,9 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(mainDOLambdaQueryWrapperX, false); PurchasereceiptRecordMainDO purchasereceiptRecordMainDO = purchasereceiptRecordMainMapper.selectOne(mainDOLambdaQueryWrapperX, false);
if ("1".equals(inspectResultReqDTO.getInspectDecision())) {// 全都合格 if ("1".equals(inspectResultReqDTO.getInspectDecision())) {// 全都合格
allQualified(inspectResultReqDTO); allQualified(inspectResultReqDTO,packingNumberMap,packingNumberRecordList);
} else if ("3".equals(inspectResultReqDTO.getInspectDecision())) {// 全部不合格 } else if ("3".equals(inspectResultReqDTO.getInspectDecision())) {// 全部不合格
allUnQualified(inspectResultReqDTO,purchasereceiptRecordMainDO.getAsnNumber()); allUnQualified(inspectResultReqDTO,packingNumberMap,packingNumberRecordList,purchasereceiptRecordMainDO.getAsnNumber());
} else { } else {
String errorMsg = "检验结果接,收其他状态不支持处理"; String errorMsg = "检验结果接,收其他状态不支持处理";
executorService.execute(new Runnable() { executorService.execute(new Runnable() {
@ -857,171 +860,76 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
* 请求参数 * 请求参数
*/ */
@Transactional @Transactional
public void allUnQualified(PurchaseReceiptInspectResultReqDTO inspectResultReqDTO,String asnNUmber) { public void allUnQualified(PurchaseReceiptInspectResultReqDTO inspectResultReqDTO,Map<String,PurchasereceiptRecordDetailDO> packingNumberMap,List<String> packingNumberRecordList,String asnNUmber) {
// 作废当前未完成的上架任务 // 作废当前未完成的上架任务
LambdaQueryWrapperX<PutawayJobDetailDO> putawayQueryWrapper = new LambdaQueryWrapperX<>(); LambdaQueryWrapperX<PutawayJobDetailDO> putawayQueryWrapper = new LambdaQueryWrapperX<>();
putawayQueryWrapper.eq(PutawayJobDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber()); putawayQueryWrapper.in(PutawayJobDetailDO::getPackingNumber, packingNumberRecordList);
List<PutawayJobDetailDO> list = putawayJobDetailMapper.selectList(putawayQueryWrapper); List<PutawayJobDetailDO> list = putawayJobDetailMapper.selectList(putawayQueryWrapper);
if (list == null || list.size() == 0) {
throw exception(INSPECT_RESULT_PUTAWAY_REOCRD_NOT_EXIST);
}
Set<String> jobNumberSet = new HashSet<>(); Set<String> jobNumberSet = new HashSet<>();
for (PutawayJobDetailDO putawayJobDetailDO : list) { for (PutawayJobDetailDO putawayJobDetailDO : list) {
jobNumberSet.add(putawayJobDetailDO.getNumber()); jobNumberSet.add(putawayJobDetailDO.getNumber());
} }
if(jobNumberSet.size() > 0){
// 查询主表是否已经完成 // 查询主表是否已经完成
QueryWrapper<PutawayJobMainDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<PutawayJobMainDO> queryWrapper = new QueryWrapper<>();
queryWrapper.in("number", new ArrayList<>(jobNumberSet)); queryWrapper.in("number", new ArrayList<>(jobNumberSet));
List<PutawayJobMainDO> mainList = putawayJobMainMapper.selectList(queryWrapper); List<PutawayJobMainDO> mainList = putawayJobMainMapper.selectList(queryWrapper);
Set<String> notCloseSet = new HashSet<>();// 没有关闭的上架任务
for (PutawayJobMainDO putawayJobMainDO : mainList) { for (PutawayJobMainDO putawayJobMainDO : mainList) {
if (!JobStatusEnum.COMPLETED.getCode().equals(putawayJobMainDO.getStatus())) { if (!JobStatusEnum.COMPLETED.getCode().equals(putawayJobMainDO.getStatus())) {
// 还没有上架 则直接关闭 // 还没有上架 则直接关闭
putawayJobMainDO.setStatus(JobStatusEnum.CLOSED.getCode()); putawayJobMainDO.setStatus(JobStatusEnum.CLOSED.getCode());
putawayJobMainDO.setRemark("检验不合格,自动关闭上架任务");
putawayJobMainMapper.updateById(putawayJobMainDO); putawayJobMainMapper.updateById(putawayJobMainDO);
notCloseSet.add(putawayJobMainDO.getNumber()); }
} }
} }
// 创建库存事务,将库存余额状态变成不合格 // 创建库存事务,将库存余额状态变成不合格
List<PurchaseReceiptInspectResultPackingReqDTO> tranPackingList = inspectResultReqDTO.getPackingList(); List<PurchaseReceiptInspectResultPackingReqDTO> tranPackingList = inspectResultReqDTO.getPackingList();
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("Inspect"); BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("Inspect");
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (PurchaseReceiptInspectResultPackingReqDTO inspectPackingInfo : tranPackingList) {
// 校验上架记录是否存在
LambdaQueryWrapperX<PutawayRecordDetailDO> putawayRecordQueryWrapper = new LambdaQueryWrapperX<>();
putawayRecordQueryWrapper.eq(PutawayRecordDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
putawayRecordQueryWrapper.eq(PutawayRecordDetailDO::getPackingNumber, inspectPackingInfo.getPackingNumber());
PutawayRecordDetailDO putawayRecordDetailDO = putawayRecordDetailMapper.selectOne(putawayRecordQueryWrapper);
if (putawayRecordDetailDO != null) {
// 说明这个包装已经上架到对应的库位,已经生成了库存事务与库存余额,需要根据检验结果修改库存余额
List<String> inventoryStatusList = new ArrayList<>();
inventoryStatusList.add(InventoryStatusEnum.OK.getCode());
inventoryStatusList.add(InventoryStatusEnum.INSP.getCode());
BalanceDO balanceDO = balanceService.getBalanceListByStatusList(putawayRecordDetailDO.getPackingNumber(), putawayRecordDetailDO.getItemCode(), putawayRecordDetailDO.getFromBatch(),
inventoryStatusList, "");
if (balanceDO == null) {
String errorMsg = "校验库存余额不存在,包装号:"+putawayRecordDetailDO.getPackingNumber()+",物料:"+putawayRecordDetailDO.getItemCode()+",批次:"+putawayRecordDetailDO.getFromBatch()+",状态:"+String.join(",",inventoryStatusList)+"";
log.error(errorMsg);
executorService.execute(new Runnable() {
@Override
public void run() {
updatePurchaseReceiptRecordRemarkByPackingNumber(putawayRecordDetailDO.getPackingNumber(),errorMsg);
}
});
// 质检发现库存余额不存在
throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, putawayRecordDetailDO.getPackingNumber(), putawayRecordDetailDO.getItemCode(), putawayRecordDetailDO.getFromBatch(),
String.join(",",inventoryStatusList), "");
}
// 库存事务——出
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(putawayRecordDetailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
String outTransactionType = businesstypeDO.getOutTransactionType(); String outTransactionType = businesstypeDO.getOutTransactionType();
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType); TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号
transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); // 出库存未待检状态
transactionCreateReqVOOut.setWorker("1"); // 系统管理员
transactionCreateReqVOOut.setBatch(putawayRecordDetailDO.getFromBatch());
transactionCreateReqVOOut.setPackingNumber(putawayRecordDetailDO.getFromPackingNumber());
transactionCreateReqVOOut.setLocationCode(putawayRecordDetailDO.getToLocationCode());
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount());
transactionCreateReqVOOut.setQty(balanceDO.getQty());
transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty());
if (StringUtils.isNotEmpty(putawayRecordDetailDO.getCreator())) {
transactionCreateReqVOOut.setUserId(Long.valueOf(putawayRecordDetailDO.getCreator()));
} else {
transactionCreateReqVOOut.setUserId(1l);
}
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
// 库存事务——入
String inTransactionType = businesstypeDO.getInTransactionType(); String inTransactionType = businesstypeDO.getInTransactionType();
if (inTransactionType != null && !"".equals(inTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(putawayRecordDetailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType); TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType);
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); Map<String,BalanceDO> balanceDOMap = new HashMap<>();
transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber()); for (PurchaseReceiptInspectResultPackingReqDTO inspectPackingInfo : tranPackingList) {
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.NOK.getCode()); // 入库存状态为不合格 PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = packingNumberMap.get(inspectPackingInfo.getPackingNumber());
transactionCreateReqVOIn.setWorker("1");
transactionCreateReqVOIn.setBatch(putawayRecordDetailDO.getToBatch());
transactionCreateReqVOIn.setPackingNumber(putawayRecordDetailDO.getFromPackingNumber());
transactionCreateReqVOIn.setLocationCode(putawayRecordDetailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
transactionCreateReqVOIn.setQty(balanceDO.getQty());
transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode());
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty());
if (StringUtils.isNotEmpty(putawayRecordDetailDO.getCreator())) {
transactionCreateReqVOIn.setUserId(Long.valueOf(putawayRecordDetailDO.getCreator()));
} else {
transactionCreateReqVOIn.setUserId(1l);
}
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
} else {
// 校验上架记录是否存在 // 校验上架记录是否存在
LambdaQueryWrapperX<PutawayJobDetailDO> putawayJobQueryWrapper = new LambdaQueryWrapperX<>(); if (purchasereceiptRecordDetailDO != null) {
putawayJobQueryWrapper.eq(PutawayJobDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
putawayJobQueryWrapper.eq(PutawayJobDetailDO::getPackingNumber, inspectPackingInfo.getPackingNumber());
PutawayJobDetailDO putawayJobDetailDO = putawayJobDetailMapper.selectOne(putawayJobQueryWrapper);
if (putawayJobDetailDO == null) {
continue;
}
// 说明这个包装已经上架到对应的库位,已经生成了库存事务与库存余额,需要根据检验结果修改库存余额 // 说明这个包装已经上架到对应的库位,已经生成了库存事务与库存余额,需要根据检验结果修改库存余额
List<String> inventoryStatusList = new ArrayList<>(); List<String> inventoryStatusList = new ArrayList<>();
inventoryStatusList.add(InventoryStatusEnum.OK.getCode()); inventoryStatusList.add(InventoryStatusEnum.OK.getCode());
inventoryStatusList.add(InventoryStatusEnum.INSP.getCode()); inventoryStatusList.add(InventoryStatusEnum.INSP.getCode());
BalanceDO balanceDO = balanceService.getBalanceListByStatusList(putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getBatch(), BalanceDO balanceDO = balanceService.getBalanceListByStatusList(purchasereceiptRecordDetailDO.getPackingNumber(), purchasereceiptRecordDetailDO.getItemCode(), purchasereceiptRecordDetailDO.getFromBatch(),
inventoryStatusList, ""); inventoryStatusList, "");
if (balanceDO == null) { if (balanceDO == null) {
String errorMsg = "校验库存余额不存在,包装号:"+putawayJobDetailDO.getPackingNumber()+",物料:"+putawayJobDetailDO.getItemCode()+",批次:"+putawayJobDetailDO.getBatch()+",状态:"+String.join(",",inventoryStatusList)+""; String errorMsg = "校验库存余额不存在,包装号:"+purchasereceiptRecordDetailDO.getPackingNumber()+",物料:"+purchasereceiptRecordDetailDO.getItemCode()+",批次:"+purchasereceiptRecordDetailDO.getFromBatch()+",状态:"+String.join(",",inventoryStatusList)+"";
log.error(errorMsg); log.error(errorMsg);
executorService.execute(new Runnable() { executorService.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
updatePurchaseReceiptRecordRemarkByPackingNumber(putawayJobDetailDO.getPackingNumber(),errorMsg); updatePurchaseReceiptRecordRemarkByPackingNumber(purchasereceiptRecordDetailDO.getPackingNumber(),errorMsg);
} }
}); });
// 质检发现库存余额不存在 // 质检发现库存余额不存在
throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getBatch(), throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, purchasereceiptRecordDetailDO.getPackingNumber(), purchasereceiptRecordDetailDO.getItemCode(), purchasereceiptRecordDetailDO.getFromBatch(),
String.join(",",inventoryStatusList), ""); String.join(",",inventoryStatusList), "");
} }
LocationDO locationDO = locationService.queryByCode(balanceDO.getLocationCode());
balanceDOMap.put(purchasereceiptRecordDetailDO.getPackingNumber(),balanceDO);
// 库存事务——出 // 库存事务——出
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(putawayJobDetailDO, transactionCreateReqVOOut); BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
String outTransactionType = businesstypeDO.getOutTransactionType();
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号 transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号
transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); // 出库存未待检状态 transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); // 出库存未待检状态
transactionCreateReqVOOut.setWorker("1"); // 系统管理员 transactionCreateReqVOOut.setWorker(balanceDO.getCreator()); // 系统管理员
transactionCreateReqVOOut.setBatch(putawayJobDetailDO.getBatch()); transactionCreateReqVOOut.setBatch(balanceDO.getBatch());
transactionCreateReqVOOut.setPackingNumber(putawayJobDetailDO.getPackingNumber()); transactionCreateReqVOOut.setPackingNumber(balanceDO.getPackingNumber());
transactionCreateReqVOOut.setLocationCode(putawayJobDetailDO.getFromLocationCode()); transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode());
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount()); transactionCreateReqVOOut.setAmount(balanceDO.getAmount());
transactionCreateReqVOOut.setQty(balanceDO.getQty()); transactionCreateReqVOOut.setQty(balanceDO.getQty());
@ -1030,32 +938,27 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode()); transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode());
transactionCreateReqVOOut.setId(null); transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setSiteId(putawayJobDetailDO.getSiteId());
transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType()); transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit()); transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty()); transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty());
if (StringUtils.isNotEmpty(putawayJobDetailDO.getCreator())) { transactionCreateReqVOOut.setAreaCode(locationDO.getAreaCode());
transactionCreateReqVOOut.setUserId(Long.valueOf(putawayJobDetailDO.getCreator())); transactionCreateReqVOOut.setLocationGroupCode(locationDO.getLocationGroupCode());
} else { transactionCreateReqVOOut.setUserId(Long.valueOf(balanceDO.getCreator()));
transactionCreateReqVOOut.setUserId(1l);
}
transactionCreateReqVOList.add(transactionCreateReqVOOut); transactionCreateReqVOList.add(transactionCreateReqVOOut);
} }
// 库存事务——入 // 库存事务——入
String inTransactionType = businesstypeDO.getInTransactionType();
if (inTransactionType != null && !"".equals(inTransactionType)) { if (inTransactionType != null && !"".equals(inTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(putawayJobDetailDO, transactionCreateReqVOIn); BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType);
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber()); transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber());
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.NOK.getCode()); // 入库存为OK状态 transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.NOK.getCode()); // 入库存状态为不合格
transactionCreateReqVOIn.setWorker("1"); transactionCreateReqVOIn.setWorker(balanceDO.getCreator());
transactionCreateReqVOIn.setBatch(putawayJobDetailDO.getBatch()); transactionCreateReqVOIn.setBatch(balanceDO.getBatch());
transactionCreateReqVOIn.setPackingNumber(putawayJobDetailDO.getPackingNumber()); transactionCreateReqVOIn.setPackingNumber(balanceDO.getPackingNumber());
transactionCreateReqVOIn.setLocationCode(putawayJobDetailDO.getFromLocationCode()); transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
transactionCreateReqVOIn.setQty(balanceDO.getQty()); transactionCreateReqVOIn.setQty(balanceDO.getQty());
@ -1064,15 +967,12 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode()); transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode());
transactionCreateReqVOIn.setId(null); transactionCreateReqVOIn.setId(null);
transactionCreateReqVOIn.setSiteId(putawayJobDetailDO.getSiteId());
transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType()); transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit()); transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty()); transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty());
if (StringUtils.isNotEmpty(putawayJobDetailDO.getCreator())) { transactionCreateReqVOIn.setAreaCode(locationDO.getAreaCode());
transactionCreateReqVOIn.setUserId(Long.valueOf(putawayJobDetailDO.getCreator())); transactionCreateReqVOIn.setLocationGroupCode(locationDO.getLocationGroupCode());
} else { transactionCreateReqVOIn.setUserId(Long.valueOf(balanceDO.getCreator()));
transactionCreateReqVOIn.setUserId(1l);
}
transactionCreateReqVOList.add(transactionCreateReqVOIn); transactionCreateReqVOList.add(transactionCreateReqVOIn);
} }
} }
@ -1080,58 +980,27 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
if (transactionCreateReqVOList.size() > 0) { if (transactionCreateReqVOList.size() > 0) {
transactionService.createTransaction(transactionCreateReqVOList); transactionService.createTransaction(transactionCreateReqVOList);
} }
ConfigInfoVO configInfoVO = configApi.queryConfigInfoByKey("inspect_nok_hold");// 配置管理--检验不合格库位设置 ConfigInfoVO configInfoVO = configApi.queryConfigInfoByKey("inspect_nok_hold");// 配置管理--检验不合格库位设置
// 创建库移申请 // 创建库移申请
List<InventorymoveRequestDetailCreateReqVO> putawayList = new ArrayList<>(); List<InventorymoveRequestDetailCreateReqVO> putawayList = new ArrayList<>();
List<InventorymoveRequestDetailCreateReqVO> putawayAlreadList = new ArrayList<>();
List<PurchaseReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList(); List<PurchaseReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList();
String fromWarehouseCode = ""; String fromWarehouseCode = "";
for (PurchaseReceiptInspectResultPackingReqDTO purchaseReceiptInspectResultPackingReqDTO : packingList) { for (PurchaseReceiptInspectResultPackingReqDTO purchaseReceiptInspectResultPackingReqDTO : packingList) {
LambdaQueryWrapperX<PutawayRecordDetailDO> putawayRecordWrapper = new LambdaQueryWrapperX<>(); BalanceDO balanceDO = balanceDOMap.get(purchaseReceiptInspectResultPackingReqDTO.getPackingNumber());
putawayRecordWrapper.eq(PutawayRecordDetailDO::getPackingNumber, purchaseReceiptInspectResultPackingReqDTO.getPackingNumber()); if(balanceDO != null){
putawayRecordWrapper.eq(PutawayRecordDetailDO::getItemCode, inspectResultReqDTO.getItemCode());
putawayRecordWrapper.eq(PutawayRecordDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
PutawayRecordDetailDO putawayRecordDetailDO = putawayRecordDetailMapper.selectOne(putawayRecordWrapper);
if (putawayRecordDetailDO != null) {
InventorymoveRequestDetailCreateReqVO inventorymoveRequestDetailCreateReqVO = new InventorymoveRequestDetailCreateReqVO(); InventorymoveRequestDetailCreateReqVO inventorymoveRequestDetailCreateReqVO = new InventorymoveRequestDetailCreateReqVO();
inventorymoveRequestDetailCreateReqVO.setFromPackingNumber(purchaseReceiptInspectResultPackingReqDTO.getPackingNumber()); inventorymoveRequestDetailCreateReqVO.setFromPackingNumber(balanceDO.getPackingNumber());
inventorymoveRequestDetailCreateReqVO.setToPackingNumber(purchaseReceiptInspectResultPackingReqDTO.getPackingNumber()); inventorymoveRequestDetailCreateReqVO.setToPackingNumber(balanceDO.getPackingNumber());
inventorymoveRequestDetailCreateReqVO.setFromBatch(putawayRecordDetailDO.getFromBatch()); inventorymoveRequestDetailCreateReqVO.setFromBatch(balanceDO.getBatch());
inventorymoveRequestDetailCreateReqVO.setToBatch(putawayRecordDetailDO.getToBatch()); inventorymoveRequestDetailCreateReqVO.setToBatch(balanceDO.getBatch());
inventorymoveRequestDetailCreateReqVO.setFromLocationCode(putawayRecordDetailDO.getToLocationCode()); inventorymoveRequestDetailCreateReqVO.setFromLocationCode(balanceDO.getLocationCode());
inventorymoveRequestDetailCreateReqVO.setToLocationCode(configInfoVO.getLocationCode()); inventorymoveRequestDetailCreateReqVO.setToLocationCode(configInfoVO.getLocationCode());//目标库位走配置文件
inventorymoveRequestDetailCreateReqVO.setItemCode(putawayRecordDetailDO.getItemCode()); inventorymoveRequestDetailCreateReqVO.setItemCode(balanceDO.getItemCode());
inventorymoveRequestDetailCreateReqVO.setQty(purchaseReceiptInspectResultPackingReqDTO.getQty()); inventorymoveRequestDetailCreateReqVO.setQty(purchaseReceiptInspectResultPackingReqDTO.getQty());
inventorymoveRequestDetailCreateReqVO.setFromInventoryStatus(InventoryStatusEnum.NOK.getCode()); inventorymoveRequestDetailCreateReqVO.setFromInventoryStatus(InventoryStatusEnum.NOK.getCode());
inventorymoveRequestDetailCreateReqVO.setToInventoryStatus(InventoryStatusEnum.HOLD.getCode()); inventorymoveRequestDetailCreateReqVO.setToInventoryStatus(InventoryStatusEnum.HOLD.getCode());
inventorymoveRequestDetailCreateReqVO.setCreator(putawayRecordDetailDO.getCreator()); inventorymoveRequestDetailCreateReqVO.setCreator(balanceDO.getCreator());
inventorymoveRequestDetailCreateReqVO.setUpdater(putawayRecordDetailDO.getCreator()); inventorymoveRequestDetailCreateReqVO.setUpdater(balanceDO.getCreator());
LocationDO locationDO = locationService.selectLocation(inventorymoveRequestDetailCreateReqVO.getFromLocationCode());
fromWarehouseCode = locationDO.getWarehouseCode();
putawayList.add(inventorymoveRequestDetailCreateReqVO);
} else {
// 没有上架记录物料还是在收货库位
LambdaQueryWrapperX<PurchasereceiptRecordDetailDO> purchaseReceiptRecordWrapper = new LambdaQueryWrapperX<>();
purchaseReceiptRecordWrapper.eq(PurchasereceiptRecordDetailDO::getPackingNumber, purchaseReceiptInspectResultPackingReqDTO.getPackingNumber());
purchaseReceiptRecordWrapper.eq(PurchasereceiptRecordDetailDO::getItemCode, inspectResultReqDTO.getItemCode());
purchaseReceiptRecordWrapper.eq(PurchasereceiptRecordDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = purchasereceiptRecordDetailMapper.selectOne(purchaseReceiptRecordWrapper);
// 子表数据增加
InventorymoveRequestDetailCreateReqVO inventorymoveRequestDetailCreateReqVO = new InventorymoveRequestDetailCreateReqVO();
inventorymoveRequestDetailCreateReqVO.setFromPackingNumber(purchaseReceiptInspectResultPackingReqDTO.getPackingNumber());
inventorymoveRequestDetailCreateReqVO.setToPackingNumber(purchaseReceiptInspectResultPackingReqDTO.getPackingNumber());
inventorymoveRequestDetailCreateReqVO.setFromBatch(purchasereceiptRecordDetailDO.getFromBatch());
inventorymoveRequestDetailCreateReqVO.setToBatch(purchasereceiptRecordDetailDO.getToBatch());
inventorymoveRequestDetailCreateReqVO.setFromLocationCode(purchasereceiptRecordDetailDO.getToLocationCode());
inventorymoveRequestDetailCreateReqVO.setToLocationCode(configInfoVO.getLocationCode());
inventorymoveRequestDetailCreateReqVO.setItemCode(purchasereceiptRecordDetailDO.getItemCode());
inventorymoveRequestDetailCreateReqVO.setQty(purchasereceiptRecordDetailDO.getQty());
inventorymoveRequestDetailCreateReqVO.setFromInventoryStatus(InventoryStatusEnum.NOK.getCode());
inventorymoveRequestDetailCreateReqVO.setToInventoryStatus(InventoryStatusEnum.HOLD.getCode());
inventorymoveRequestDetailCreateReqVO.setCreator(purchasereceiptRecordDetailDO.getCreator());
inventorymoveRequestDetailCreateReqVO.setUpdater(purchasereceiptRecordDetailDO.getCreator());
LocationDO locationDO = locationService.selectLocation(inventorymoveRequestDetailCreateReqVO.getFromLocationCode()); LocationDO locationDO = locationService.selectLocation(inventorymoveRequestDetailCreateReqVO.getFromLocationCode());
fromWarehouseCode = locationDO.getWarehouseCode(); fromWarehouseCode = locationDO.getWarehouseCode();
putawayList.add(inventorymoveRequestDetailCreateReqVO); putawayList.add(inventorymoveRequestDetailCreateReqVO);
@ -1151,6 +1020,8 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
} else { } else {
throw exception(INVENTORYMOVE_REQUEST_FROM_WAREHOUSE_NOT_EXISTS); throw exception(INVENTORYMOVE_REQUEST_FROM_WAREHOUSE_NOT_EXISTS);
} }
}else {
log.debug("转移申请为空putawayList");
} }
} }
@ -1161,65 +1032,57 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
* 请求参数 * 请求参数
*/ */
@Transactional @Transactional
public void allQualified(PurchaseReceiptInspectResultReqDTO inspectResultReqDTO) { public void allQualified(PurchaseReceiptInspectResultReqDTO inspectResultReqDTO,Map<String,PurchasereceiptRecordDetailDO> packingNumberMap,List<String> packingNumberRecordList) {
// 更新上架任务结果为合格状态 // 更新上架任务结果为合格状态
LambdaQueryWrapperX<PutawayJobDetailDO> putawayQueryWrapper = new LambdaQueryWrapperX<>();
putawayQueryWrapper.eq(PutawayJobDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
List<PutawayJobDetailDO> list = putawayJobDetailMapper.selectList(putawayQueryWrapper);
if (list == null || list.size() == 0) {
throw exception(INSPECT_RESULT_PUTAWAY_REOCRD_NOT_EXIST);
}
LambdaUpdateWrapper<PutawayJobDetailDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<PutawayJobDetailDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(PutawayJobDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber()); lambdaUpdateWrapper.in(PutawayJobDetailDO::getPackingNumber, packingNumberRecordList);
lambdaUpdateWrapper.set(PutawayJobDetailDO::getInspectResult, InventoryStatusEnum.OK.getCode()); lambdaUpdateWrapper.set(PutawayJobDetailDO::getInspectResult, InventoryStatusEnum.OK.getCode());
putawayJobDetailMapper.update(null, lambdaUpdateWrapper); putawayJobDetailMapper.update(null, lambdaUpdateWrapper);
// 创建到货检验的库存事务 // 创建到货检验的库存事务
// 根据包装查询库存余额校验库存余额是否存在 // 根据包装查询库存余额校验库存余额是否存在
List<PurchaseReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList(); List<PurchaseReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList();
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("Inspect"); BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("Inspect");
String outTransactionType = businesstypeDO.getOutTransactionType();
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
String inTransactionType = businesstypeDO.getInTransactionType();
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType);
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (PurchaseReceiptInspectResultPackingReqDTO inspectPackingInfo : packingList) { for (PurchaseReceiptInspectResultPackingReqDTO inspectPackingInfo : packingList) {
// 校验上架记录是否存在 PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = packingNumberMap.get(inspectPackingInfo.getPackingNumber());
LambdaQueryWrapperX<PutawayRecordDetailDO> putawayRecordQueryWrapper = new LambdaQueryWrapperX<>(); if(purchasereceiptRecordDetailDO != null){
putawayRecordQueryWrapper.eq(PutawayRecordDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
putawayRecordQueryWrapper.eq(PutawayRecordDetailDO::getPackingNumber, inspectPackingInfo.getPackingNumber());
PutawayRecordDetailDO putawayRecordDetailDO = putawayRecordDetailMapper.selectOne(putawayRecordQueryWrapper);
if (putawayRecordDetailDO != null) {
// 说明这个包装已经上架到对应的库位,已经生成了库存事务与库存余额,需要根据检验结果修改库存余额
List<String> inventoryStatusList = new ArrayList<>(); List<String> inventoryStatusList = new ArrayList<>();
inventoryStatusList.add(InventoryStatusEnum.OK.getCode()); inventoryStatusList.add(InventoryStatusEnum.OK.getCode());
inventoryStatusList.add(InventoryStatusEnum.INSP.getCode()); inventoryStatusList.add(InventoryStatusEnum.INSP.getCode());
BalanceDO balanceDO = balanceService.getBalanceListByStatusList(putawayRecordDetailDO.getPackingNumber(), putawayRecordDetailDO.getItemCode(), putawayRecordDetailDO.getFromBatch(), BalanceDO balanceDO = balanceService.getBalanceListByStatusList(purchasereceiptRecordDetailDO.getPackingNumber(), purchasereceiptRecordDetailDO.getItemCode(), purchasereceiptRecordDetailDO.getFromBatch(),
inventoryStatusList, ""); inventoryStatusList, "");
if (balanceDO == null) { if (balanceDO == null) {
log.error("检验回调库存余额不存在,{},{},{},{},{}", putawayRecordDetailDO.getPackingNumber(), putawayRecordDetailDO.getItemCode(), putawayRecordDetailDO.getFromBatch(), log.error("检验回调库存余额不存在,{},{},{},{},{}", purchasereceiptRecordDetailDO.getPackingNumber(), purchasereceiptRecordDetailDO.getItemCode(), purchasereceiptRecordDetailDO.getFromBatch(),
String.join(",",inventoryStatusList), ""); String.join(",", inventoryStatusList), "");
String errorMsg = "检验回调库存余额不存在,"+putawayRecordDetailDO.getPackingNumber()+","+putawayRecordDetailDO.getItemCode()+","+putawayRecordDetailDO.getFromBatch()+"," + String errorMsg = "检验回调库存余额不存在," + purchasereceiptRecordDetailDO.getPackingNumber() + "," + purchasereceiptRecordDetailDO.getItemCode() + "," + purchasereceiptRecordDetailDO.getFromBatch() + "," +
""+String.join(",",inventoryStatusList); "" + String.join(",", inventoryStatusList);
executorService.execute(new Runnable() { executorService.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
updatePurchaseReceiptRecordRemarkByPackingNumber(putawayRecordDetailDO.getPackingNumber(),errorMsg); updatePurchaseReceiptRecordRemarkByPackingNumber(purchasereceiptRecordDetailDO.getPackingNumber(), errorMsg);
} }
}); });
// 质检发现库存余额不存在 // 质检发现库存余额不存在
throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, putawayRecordDetailDO.getPackingNumber(), putawayRecordDetailDO.getItemCode(), putawayRecordDetailDO.getFromBatch(), throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, purchasereceiptRecordDetailDO.getPackingNumber(), purchasereceiptRecordDetailDO.getItemCode(), purchasereceiptRecordDetailDO.getFromBatch(),
String.join(",",inventoryStatusList), ""); String.join(",", inventoryStatusList), "");
} }
LocationDO locationDO = locationService.queryByCode(balanceDO.getLocationCode());
// 库存事务——出 // 库存事务——出
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(putawayRecordDetailDO, transactionCreateReqVOOut); BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
String outTransactionType = businesstypeDO.getOutTransactionType();
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号 transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号
transactionCreateReqVOOut.setInventoryStatus(InventoryStatusEnum.INSP.getCode()); // 出库存未待检状态 transactionCreateReqVOOut.setInventoryStatus(InventoryStatusEnum.INSP.getCode()); // 出库存未待检状态
transactionCreateReqVOOut.setWorker("1"); // 系统管理员 transactionCreateReqVOOut.setWorker("1"); // 系统管理员
transactionCreateReqVOOut.setBatch(putawayRecordDetailDO.getFromBatch()); transactionCreateReqVOOut.setBatch(purchasereceiptRecordDetailDO.getFromBatch());
transactionCreateReqVOOut.setPackingNumber(putawayRecordDetailDO.getFromPackingNumber()); transactionCreateReqVOOut.setPackingNumber(purchasereceiptRecordDetailDO.getFromPackingNumber());
transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode()); transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode());
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount()); transactionCreateReqVOOut.setAmount(balanceDO.getAmount());
@ -1229,32 +1092,27 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setActiveTime(LocalDateTime.now()); transactionCreateReqVOOut.setActiveTime(LocalDateTime.now());
transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode()); transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType()); transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit()); transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty()); transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty());
if (StringUtils.isNotEmpty(putawayRecordDetailDO.getCreator())) { transactionCreateReqVOOut.setAreaCode(locationDO.getAreaCode());
transactionCreateReqVOOut.setUserId(Long.valueOf(putawayRecordDetailDO.getCreator())); transactionCreateReqVOOut.setLocationGroupCode(locationDO.getLocationGroupCode());
} else { transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setUserId(1l); transactionCreateReqVOOut.setUserId(Long.valueOf(balanceDO.getCreator()));
}
transactionCreateReqVOOut.setUserId(Long.valueOf(putawayRecordDetailDO.getCreator()));
transactionCreateReqVOList.add(transactionCreateReqVOOut); transactionCreateReqVOList.add(transactionCreateReqVOOut);
} }
// 库存事务——入 // 库存事务——入
String inTransactionType = businesstypeDO.getInTransactionType();
if (inTransactionType != null && !"".equals(inTransactionType)) { if (inTransactionType != null && !"".equals(inTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(putawayRecordDetailDO, transactionCreateReqVOIn); BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType);
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber()); transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber());
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.OK.getCode()); // 入库存为OK状态 transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.OK.getCode()); // 入库存为OK状态
transactionCreateReqVOIn.setWorker("1"); transactionCreateReqVOIn.setWorker("1");
transactionCreateReqVOIn.setBatch(putawayRecordDetailDO.getToBatch()); transactionCreateReqVOIn.setBatch(purchasereceiptRecordDetailDO.getFromBatch());
transactionCreateReqVOIn.setPackingNumber(putawayRecordDetailDO.getFromPackingNumber()); transactionCreateReqVOIn.setPackingNumber(purchasereceiptRecordDetailDO.getFromPackingNumber());
transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode()); transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
@ -1266,58 +1124,109 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode()); transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode());
transactionCreateReqVOIn.setId(null); transactionCreateReqVOIn.setId(null);
transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType()); transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOIn.setAreaCode(locationDO.getAreaCode());
transactionCreateReqVOIn.setLocationGroupCode(locationDO.getLocationGroupCode());
transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit()); transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty()); transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty());
if (StringUtils.isNotEmpty(putawayRecordDetailDO.getCreator())) { transactionCreateReqVOIn.setUserId(Long.valueOf(balanceDO.getCreator()));
transactionCreateReqVOIn.setUserId(Long.valueOf(putawayRecordDetailDO.getCreator()));
} else {
transactionCreateReqVOIn.setUserId(1l);
}
transactionCreateReqVOList.add(transactionCreateReqVOIn); transactionCreateReqVOList.add(transactionCreateReqVOIn);
} }
} else { }
}
if (transactionCreateReqVOList.size() > 0) {
transactionService.createTransaction(transactionCreateReqVOList);
}
}
/**
* 全部不合格预生产/装配收货专用
*
* @param inspectResultReqDTO
* 请求参数
*/
private void allUnQualifiedProduct(ProductReceiptInspectResultReqDTO inspectResultReqDTO) {
ConfigInfoVO configInfoVO = configApi.queryConfigInfoByKey("inspect_nok_hold");// 配置管理--检验不合格库位设置
// 创建库移申请
List<InventorymoveRequestDetailCreateReqVO> inventorymoveRequestDetailCreateReqVOS = new ArrayList<>();
List<ProductReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList();
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("Inspect");
String outTransactionType = businesstypeDO.getOutTransactionType();
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
String inTransactionType = businesstypeDO.getInTransactionType();
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType);
Set<String> productPutawayNumberSet = new HashSet<>();
// 更新任务检验结果
for (ProductReceiptInspectResultPackingReqDTO inspectPackingInfo : packingList) {
// 校验上架记录是否存在 // 校验上架记录是否存在
LambdaQueryWrapperX<PutawayJobDetailDO> putawayJobQueryWrapper = new LambdaQueryWrapperX<>(); LambdaQueryWrapperX<ProductputawayJobDetailDO> productputawayJobDetailDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
putawayJobQueryWrapper.eq(PutawayJobDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber()); productputawayJobDetailDOLambdaQueryWrapperX.eq(ProductputawayJobDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
putawayJobQueryWrapper.eq(PutawayJobDetailDO::getPackingNumber, inspectPackingInfo.getPackingNumber()); productputawayJobDetailDOLambdaQueryWrapperX.eq(ProductputawayJobDetailDO::getPackingNumber, inspectPackingInfo.getPackingNumber());
PutawayJobDetailDO putawayJobDetailDO = putawayJobDetailMapper.selectOne(putawayJobQueryWrapper); ProductputawayJobDetailDO productputawayJobDetailDO = productputawayJobDetailMapper.selectOne(productputawayJobDetailDOLambdaQueryWrapperX, false);
if (putawayJobDetailDO == null) { if(productputawayJobDetailDO != null){
productPutawayNumberSet.add(productputawayJobDetailDO.getNumber());
productputawayJobDetailDO.setInspectResult(InventoryStatusEnum.NOK.getCode());
productputawayJobDetailMapper.updateById(productputawayJobDetailDO);
}
}
if(productPutawayNumberSet.size() > 0){
// 作废当前未完成的上架任务
LambdaQueryWrapperX<ProductputawayJobMainDO> productputawayJobMainDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
productputawayJobMainDOLambdaQueryWrapperX.in(ProductputawayJobMainDO::getNumber,new ArrayList<>(productPutawayNumberSet));
List<ProductputawayJobMainDO> productputawayJobMainDOS = productputawayJobMainMapper.selectList(productputawayJobMainDOLambdaQueryWrapperX);
for(ProductputawayJobMainDO productputawayJobMainDO:productputawayJobMainDOS){
if (!JobStatusEnum.COMPLETED.getCode().equals(productputawayJobMainDO.getStatus())) {
productputawayJobMainDO.setStatus(JobStatusEnum.CLOSED.getCode());
productputawayJobMainMapper.updateById(productputawayJobMainDO);
}
}
}
// 创建库存事务,将库存余额状态变成不合格
// 获取检验的业务类型
Map<String,BalanceDO> balanceDOMap = new HashMap<>();
Map<String,ProductreceiptRecordDetailDO> productreceiptRecordDetailDOMap = new HashMap<>();
for (ProductReceiptInspectResultPackingReqDTO inspectPackingInfo : packingList) {
//查询收货记录
LambdaQueryWrapperX<ProductreceiptRecordDetailDO> lambdaQueryWrapperX = new LambdaQueryWrapperX<>();
lambdaQueryWrapperX.eq(ProductreceiptRecordDetailDO::getPackingNumber,inspectPackingInfo.getPackingNumber());
lambdaQueryWrapperX.eq(ProductreceiptRecordDetailDO::getItemCode,inspectResultReqDTO.getItemCode());
ProductreceiptRecordDetailDO productreceiptRecordDetailDO = productreceiptRecordDetailMapper.selectOne(lambdaQueryWrapperX,false);
if(productreceiptRecordDetailDO == null){
continue; continue;
} }
// 说明这个包装已经上架到对应的库位,已经生成了库存事务与库存余额,需要根据检验结果修改库存余额 productreceiptRecordDetailDOMap.put(inspectPackingInfo.getPackingNumber(),productreceiptRecordDetailDO);
List<String> inventoryStatusList = new ArrayList<>(); List<String> inventoryStatusList = new ArrayList<>();
inventoryStatusList.add(InventoryStatusEnum.OK.getCode()); inventoryStatusList.add(InventoryStatusEnum.OK.getCode());
inventoryStatusList.add(InventoryStatusEnum.INSP.getCode()); inventoryStatusList.add(InventoryStatusEnum.INSP.getCode());
BalanceDO balanceDO = balanceService.getBalanceListByStatusList(putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getBatch(), BalanceDO balanceDO = balanceService.getBalanceListByStatusList(productreceiptRecordDetailDO.getPackingNumber(), productreceiptRecordDetailDO.getItemCode(), productreceiptRecordDetailDO.getBatch(),
inventoryStatusList,""); inventoryStatusList, "");
if (balanceDO == null) { if (balanceDO == null) {
String errorMsg = "校验库存余额不存在:"+putawayJobDetailDO.getPackingNumber()+","+putawayJobDetailDO.getItemCode()+","+putawayJobDetailDO.getBatch()+"," + String errorMsg = "校验库存余额不存在,包装号:"+productreceiptRecordDetailDO.getPackingNumber()+",物料:"+productreceiptRecordDetailDO.getItemCode()+",批次:"+productreceiptRecordDetailDO.getBatch()+",状态:"+String.join(",",inventoryStatusList)+"";
""+String.join(",",inventoryStatusList);
log.error(errorMsg); log.error(errorMsg);
executorService.execute(new Runnable() { executorService.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
updatePurchaseReceiptRecordRemarkByPackingNumber(putawayJobDetailDO.getPackingNumber(),errorMsg); updateProductReceiptRecordRemarkByPackingNumber(inspectPackingInfo.getPackingNumber(),errorMsg);
} }
}); });
// 质检发现库存余额不存在 // 质检发现库存余额不存在
throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getBatch(), throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, productreceiptRecordDetailDO.getPackingNumber(), productreceiptRecordDetailDO.getItemCode(), productreceiptRecordDetailDO.getBatch(),
String.join(",",inventoryStatusList), ""); String.join(",",inventoryStatusList), "");
} }
balanceDOMap.put(productreceiptRecordDetailDO.getPackingNumber(),balanceDO);
LocationDO locationDO = locationService.queryByCode(balanceDO.getLocationCode());
// 库存事务——出 // 库存事务——出
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(putawayJobDetailDO, transactionCreateReqVOOut); BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
String outTransactionType = businesstypeDO.getOutTransactionType();
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号 transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号
transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); // 出库存未待检状态 transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); // 出库存未待检状态
transactionCreateReqVOOut.setWorker("1"); // 系统管理员 transactionCreateReqVOOut.setWorker(String.valueOf(balanceDO.getCreator())); // 系统管理员
transactionCreateReqVOOut.setBatch(putawayJobDetailDO.getBatch()); transactionCreateReqVOOut.setBatch(inspectResultReqDTO.getBatch());
transactionCreateReqVOOut.setPackingNumber(putawayJobDetailDO.getPackingNumber()); transactionCreateReqVOOut.setPackingNumber(balanceDO.getPackingNumber());
transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode()); transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode());
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount()); transactionCreateReqVOOut.setAmount(balanceDO.getAmount());
@ -1325,34 +1234,32 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate()); transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate()); transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setActiveTime(LocalDateTime.now());
transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode()); transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode());
if(locationDO != null){
transactionCreateReqVOOut.setWarehouseCode(locationDO.getWarehouseCode());
}
transactionCreateReqVOOut.setAreaCode(locationDO.getAreaCode());
transactionCreateReqVOOut.setLocationGroupCode(locationDO.getLocationGroupCode());
transactionCreateReqVOOut.setId(null); transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setSiteId(putawayJobDetailDO.getSiteId()); transactionCreateReqVOOut.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType()); transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit()); transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty()); transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty());
if (StringUtils.isNotEmpty(putawayJobDetailDO.getCreator())) { transactionCreateReqVOOut.setUserId(Long.valueOf(balanceDO.getCreator()));
transactionCreateReqVOOut.setUserId(Long.valueOf(putawayJobDetailDO.getCreator()));
} else {
transactionCreateReqVOOut.setUserId(1l);
}
transactionCreateReqVOList.add(transactionCreateReqVOOut); transactionCreateReqVOList.add(transactionCreateReqVOOut);
} }
// 库存事务——入 // 库存事务——入
String inTransactionType = businesstypeDO.getInTransactionType();
if (inTransactionType != null && !"".equals(inTransactionType)) { if (inTransactionType != null && !"".equals(inTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(putawayJobDetailDO, transactionCreateReqVOIn); BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType);
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber()); transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber());
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.OK.getCode()); // 入库存为OK状态 transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.NOK.getCode()); // 入库状态为不合格
transactionCreateReqVOIn.setWorker("1"); transactionCreateReqVOIn.setWorker(String.valueOf(balanceDO.getCreator()));
transactionCreateReqVOIn.setBatch(putawayJobDetailDO.getBatch()); transactionCreateReqVOIn.setBatch(balanceDO.getBatch());
transactionCreateReqVOIn.setPackingNumber(putawayJobDetailDO.getPackingNumber()); transactionCreateReqVOIn.setPackingNumber(balanceDO.getPackingNumber());
transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode()); transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
@ -1360,68 +1267,37 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOIn.setActiveTime(LocalDateTime.now());
transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode()); transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode());
transactionCreateReqVOIn.setId(null); if(locationDO != null){
transactionCreateReqVOIn.setSiteId(putawayJobDetailDO.getSiteId()); transactionCreateReqVOIn.setWarehouseCode(locationDO.getWarehouseCode());
}
transactionCreateReqVOIn.setAreaCode(locationDO.getAreaCode());
transactionCreateReqVOIn.setLocationGroupCode(locationDO.getLocationGroupCode());
transactionCreateReqVOIn.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType()); transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit()); transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty()); transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty());
if (StringUtils.isNotEmpty(putawayJobDetailDO.getCreator())) { transactionCreateReqVOIn.setUserId(Long.valueOf(balanceDO.getCreator()));
transactionCreateReqVOIn.setUserId(Long.valueOf(putawayJobDetailDO.getCreator())); transactionCreateReqVOIn.setId(null);
} else {
transactionCreateReqVOIn.setUserId(1l);
}
transactionCreateReqVOList.add(transactionCreateReqVOIn); transactionCreateReqVOList.add(transactionCreateReqVOIn);
} }
} }
}
if (transactionCreateReqVOList.size() > 0) { if (transactionCreateReqVOList.size() > 0) {
transactionService.createTransaction(transactionCreateReqVOList); transactionService.createTransaction(transactionCreateReqVOList);
} }
}
/**
* 全部不合格预生产/装配收货专用
*
* @param inspectResultReqDTO
* 请求参数
*/
private void allUnQualifiedProduct(ProductReceiptInspectResultReqDTO inspectResultReqDTO) {
ConfigInfoVO configInfoVO = configApi.queryConfigInfoByKey("inspect_nok_hold");// 配置管理--检验不合格库位设置
// 创建库移申请
List<InventorymoveRequestDetailCreateReqVO> inventorymoveRequestDetailCreateReqVOS = new ArrayList<>();
List<ProductReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList();
// 更新任务检验结果
for (ProductReceiptInspectResultPackingReqDTO inspectPackingInfo : packingList) {
// 校验上架记录是否存在
LambdaQueryWrapperX<ProductputawayJobDetailDO> productputawayJobDetailDOLambdaQueryWrapperX = new LambdaQueryWrapperX<>();
productputawayJobDetailDOLambdaQueryWrapperX.eq(ProductputawayJobDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
productputawayJobDetailDOLambdaQueryWrapperX.eq(ProductputawayJobDetailDO::getPackingNumber, inspectPackingInfo.getPackingNumber());
ProductputawayJobDetailDO productputawayJobDetailDO = productputawayJobDetailMapper.selectOne(productputawayJobDetailDOLambdaQueryWrapperX, false);
if(productputawayJobDetailDO != null){
productputawayJobDetailDO.setInspectResult(InventoryStatusEnum.NOK.getCode());
productputawayJobDetailMapper.updateById(productputawayJobDetailDO);
}
}
String fromWarehouseCode = ""; String fromWarehouseCode = "";
for (ProductReceiptInspectResultPackingReqDTO productReceiptInspectResultPackingReqDTO : packingList) { for (ProductReceiptInspectResultPackingReqDTO productReceiptInspectResultPackingReqDTO : packingList) {
LambdaQueryWrapperX<ProductreceiptRecordDetailDO> productreceuptRecordWrapper = new LambdaQueryWrapperX<>(); BalanceDO balanceDO = balanceDOMap.get(productReceiptInspectResultPackingReqDTO.getPackingNumber());
productreceuptRecordWrapper.eq(ProductreceiptRecordDetailDO::getPackingNumber, productReceiptInspectResultPackingReqDTO.getPackingNumber()); if(balanceDO != null){
productreceuptRecordWrapper.eq(ProductreceiptRecordDetailDO::getItemCode, inspectResultReqDTO.getItemCode()); ProductreceiptRecordDetailDO productreceiptRecordDetailDO = productreceiptRecordDetailDOMap.get(productReceiptInspectResultPackingReqDTO.getPackingNumber());
productreceuptRecordWrapper.eq(ProductreceiptRecordDetailDO::getInspectNumber, inspectResultReqDTO.getInspectNumber());
ProductreceiptRecordDetailDO productreceiptRecordDetailDO = productreceiptRecordDetailMapper.selectOne(productreceuptRecordWrapper);
InventorymoveRequestDetailCreateReqVO inventorymoveRequestDetailCreateReqVO = new InventorymoveRequestDetailCreateReqVO(); InventorymoveRequestDetailCreateReqVO inventorymoveRequestDetailCreateReqVO = new InventorymoveRequestDetailCreateReqVO();
inventorymoveRequestDetailCreateReqVO.setFromPackingNumber(productReceiptInspectResultPackingReqDTO.getPackingNumber()); inventorymoveRequestDetailCreateReqVO.setFromPackingNumber(productReceiptInspectResultPackingReqDTO.getPackingNumber());
inventorymoveRequestDetailCreateReqVO.setFromBatch(balanceDO.getBatch());
inventorymoveRequestDetailCreateReqVO.setFromLocationCode(balanceDO.getLocationCode());
inventorymoveRequestDetailCreateReqVO.setToPackingNumber(productReceiptInspectResultPackingReqDTO.getPackingNumber()); inventorymoveRequestDetailCreateReqVO.setToPackingNumber(productReceiptInspectResultPackingReqDTO.getPackingNumber());
inventorymoveRequestDetailCreateReqVO.setFromBatch(productreceiptRecordDetailDO.getBatch()); inventorymoveRequestDetailCreateReqVO.setToBatch(balanceDO.getBatch());
inventorymoveRequestDetailCreateReqVO.setToBatch(productreceiptRecordDetailDO.getBatch());
inventorymoveRequestDetailCreateReqVO.setFromLocationCode(productreceiptRecordDetailDO.getToLocationCode());
inventorymoveRequestDetailCreateReqVO.setToLocationCode(configInfoVO.getLocationCode()); inventorymoveRequestDetailCreateReqVO.setToLocationCode(configInfoVO.getLocationCode());
inventorymoveRequestDetailCreateReqVO.setItemCode(productreceiptRecordDetailDO.getItemCode()); inventorymoveRequestDetailCreateReqVO.setItemCode(balanceDO.getItemCode());
inventorymoveRequestDetailCreateReqVO.setQty(productReceiptInspectResultPackingReqDTO.getQty()); inventorymoveRequestDetailCreateReqVO.setQty(productReceiptInspectResultPackingReqDTO.getQty());
inventorymoveRequestDetailCreateReqVO.setFromInventoryStatus(InventoryStatusEnum.NOK.getCode()); inventorymoveRequestDetailCreateReqVO.setFromInventoryStatus(InventoryStatusEnum.NOK.getCode());
inventorymoveRequestDetailCreateReqVO.setToInventoryStatus(configInfoVO.getInventoryStatus()); inventorymoveRequestDetailCreateReqVO.setToInventoryStatus(configInfoVO.getInventoryStatus());
@ -1431,6 +1307,7 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
fromWarehouseCode = locationDO.getWarehouseCode(); fromWarehouseCode = locationDO.getWarehouseCode();
inventorymoveRequestDetailCreateReqVOS.add(inventorymoveRequestDetailCreateReqVO); inventorymoveRequestDetailCreateReqVOS.add(inventorymoveRequestDetailCreateReqVO);
} }
}
if (inventorymoveRequestDetailCreateReqVOS.size() > 0) { if (inventorymoveRequestDetailCreateReqVOS.size() > 0) {
InventorymoveRequestDetailCreateReqVO firstInfo = inventorymoveRequestDetailCreateReqVOS.get(0); InventorymoveRequestDetailCreateReqVO firstInfo = inventorymoveRequestDetailCreateReqVOS.get(0);
InventorymoveRequestMainCreateReqVO inventorymoveRequestMainCreateReqVO = new InventorymoveRequestMainCreateReqVO(); InventorymoveRequestMainCreateReqVO inventorymoveRequestMainCreateReqVO = new InventorymoveRequestMainCreateReqVO();
@ -1446,6 +1323,8 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
} else { } else {
throw exception(INVENTORYMOVE_REQUEST_FROM_WAREHOUSE_NOT_EXISTS); throw exception(INVENTORYMOVE_REQUEST_FROM_WAREHOUSE_NOT_EXISTS);
} }
}else {
log.debug("转移List为空inventorymoveRequestDetailCreateReqVOS");
} }
} }
@ -1456,9 +1335,13 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
* 请求参数 * 请求参数
*/ */
private void allQualifiedProduct(ProductReceiptInspectResultReqDTO inspectResultReqDTO) { private void allQualifiedProduct(ProductReceiptInspectResultReqDTO inspectResultReqDTO) {
// 根据包装查询库存余额校验库存余额是否存在 // 公共的取数逻辑
List<ProductReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList(); List<ProductReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList();
BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("Inspect"); BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist("Inspect");
String inTransactionType = businesstypeDO.getInTransactionType();
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType);
String outTransactionType = businesstypeDO.getOutTransactionType();
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
// 更新任务检验结果 // 更新任务检验结果
for (ProductReceiptInspectResultPackingReqDTO inspectPackingInfo : packingList) { for (ProductReceiptInspectResultPackingReqDTO inspectPackingInfo : packingList) {
@ -1502,18 +1385,17 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, productreceiptRecordDetailDO.getPackingNumber(), productreceiptRecordDetailDO.getItemCode(), productreceiptRecordDetailDO.getBatch(), throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, productreceiptRecordDetailDO.getPackingNumber(), productreceiptRecordDetailDO.getItemCode(), productreceiptRecordDetailDO.getBatch(),
String.join(",",inventoryStatusList), ""); String.join(",",inventoryStatusList), "");
} }
LocationDO locationDO = locationService.queryByCode(balanceDO.getLocationCode());
// 库存事务——出 // 库存事务——出
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut); BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut);
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
String outTransactionType = businesstypeDO.getOutTransactionType();
if (outTransactionType != null && !"".equals(outTransactionType)) {
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType);
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号 transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号
transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); // 出库存未待检状态 transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); // 出库存未待检状态
transactionCreateReqVOOut.setWorker("1"); // 系统管理员 transactionCreateReqVOOut.setWorker(String.valueOf(balanceDO.getCreator())); // 系统管理员
transactionCreateReqVOOut.setBatch(inspectResultReqDTO.getBatch()); transactionCreateReqVOOut.setBatch(inspectResultReqDTO.getBatch());
transactionCreateReqVOOut.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber()); transactionCreateReqVOOut.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber());
transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode()); transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode());
@ -1526,7 +1408,6 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate()); transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode()); transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode());
LocationDO locationDO = locationService.queryByCode(productreceiptRecordDetailDO.getToLocationCode());
if(locationDO != null){ if(locationDO != null){
transactionCreateReqVOOut.setWarehouseCode(locationDO.getWarehouseCode()); transactionCreateReqVOOut.setWarehouseCode(locationDO.getWarehouseCode());
} }
@ -1535,26 +1416,24 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType()); transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit()); transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty()); transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty());
transactionCreateReqVOOut.setUserId(Long.valueOf(productreceiptRecordDetailDO.getCreator())); transactionCreateReqVOOut.setAreaCode(locationDO.getAreaCode());
transactionCreateReqVOOut.setLocationGroupCode(locationDO.getLocationGroupCode());
transactionCreateReqVOOut.setUserId(Long.valueOf(balanceDO.getCreator()));
transactionCreateReqVOList.add(transactionCreateReqVOOut); transactionCreateReqVOList.add(transactionCreateReqVOOut);
} }
// 库存事务——入 // 库存事务——入
String inTransactionType = businesstypeDO.getInTransactionType();
if (inTransactionType != null && !"".equals(inTransactionType)) { if (inTransactionType != null && !"".equals(inTransactionType)) {
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOIn); BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType);
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber()); transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber());
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.OK.getCode()); // 入库存为OK状态 transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.OK.getCode()); // 入库存为OK状态
transactionCreateReqVOIn.setWorker("1"); transactionCreateReqVOIn.setWorker(String.valueOf(balanceDO.getCreator()));
transactionCreateReqVOIn.setBatch(productreceiptRecordDetailDO.getBatch()); transactionCreateReqVOIn.setBatch(balanceDO.getBatch());
transactionCreateReqVOIn.setPackingNumber(productreceiptRecordDetailDO.getPackingNumber()); transactionCreateReqVOIn.setPackingNumber(balanceDO.getPackingNumber());
transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode()); transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode());
transactionCreateReqVOOut.setAreaCode(productreceiptRecordDetailDO.getToAreaCode());
transactionCreateReqVOOut.setLocationGroupCode(productreceiptRecordDetailDO.getToLocationGroupCode());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
transactionCreateReqVOIn.setQty(balanceDO.getQty()); transactionCreateReqVOIn.setQty(balanceDO.getQty());
@ -1562,16 +1441,17 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode()); transactionCreateReqVOIn.setWarehouseCode(balanceDO.getWarehouseCode());
LocationDO locationDO = locationService.queryByCode(productreceiptRecordDetailDO.getToLocationCode());
if(locationDO != null){ if(locationDO != null){
transactionCreateReqVOOut.setWarehouseCode(locationDO.getWarehouseCode()); transactionCreateReqVOIn.setWarehouseCode(locationDO.getWarehouseCode());
} }
transactionCreateReqVOIn.setAreaCode(locationDO.getAreaCode());
transactionCreateReqVOIn.setLocationGroupCode(locationDO.getLocationGroupCode());
transactionCreateReqVOIn.setId(null); transactionCreateReqVOIn.setId(null);
transactionCreateReqVOIn.setSiteId(productreceiptRecordDetailDO.getSiteId()); transactionCreateReqVOIn.setSiteId(productreceiptRecordDetailDO.getSiteId());
transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType()); transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType());
transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit()); transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit());
transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty()); transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty());
transactionCreateReqVOIn.setUserId(Long.valueOf(productreceiptRecordDetailDO.getCreator())); transactionCreateReqVOIn.setUserId(Long.valueOf(balanceDO.getCreator()));
transactionCreateReqVOList.add(transactionCreateReqVOIn); transactionCreateReqVOList.add(transactionCreateReqVOIn);
} }
} }

Loading…
Cancel
Save