|
@ -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,77 +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"); |
|
|
|
|
|
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<>(); |
|
|
|
|
|
Map<String,BalanceDO> balanceDOMap = new HashMap<>(); |
|
|
for (PurchaseReceiptInspectResultPackingReqDTO inspectPackingInfo : tranPackingList) { |
|
|
for (PurchaseReceiptInspectResultPackingReqDTO inspectPackingInfo : tranPackingList) { |
|
|
|
|
|
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) { |
|
|
String errorMsg = "校验库存余额不存在,包装号:"+putawayRecordDetailDO.getPackingNumber()+",物料:"+putawayRecordDetailDO.getItemCode()+",批次:"+putawayRecordDetailDO.getFromBatch()+",状态:"+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(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()); |
|
|
|
|
|
balanceDOMap.put(purchasereceiptRecordDetailDO.getPackingNumber(),balanceDO); |
|
|
// 库存事务——出
|
|
|
// 库存事务——出
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(putawayRecordDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
String outTransactionType = businesstypeDO.getOutTransactionType(); |
|
|
|
|
|
if (outTransactionType != null && !"".equals(outTransactionType)) { |
|
|
if (outTransactionType != null && !"".equals(outTransactionType)) { |
|
|
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType); |
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
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(putawayRecordDetailDO.getFromBatch()); |
|
|
transactionCreateReqVOOut.setBatch(balanceDO.getBatch()); |
|
|
transactionCreateReqVOOut.setPackingNumber(putawayRecordDetailDO.getFromPackingNumber()); |
|
|
transactionCreateReqVOOut.setPackingNumber(balanceDO.getPackingNumber()); |
|
|
transactionCreateReqVOOut.setLocationCode(putawayRecordDetailDO.getToLocationCode()); |
|
|
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()); |
|
@ -939,123 +941,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()); |
|
|
if (StringUtils.isNotEmpty(putawayRecordDetailDO.getCreator())) { |
|
|
transactionCreateReqVOOut.setAreaCode(locationDO.getAreaCode()); |
|
|
transactionCreateReqVOOut.setUserId(Long.valueOf(putawayRecordDetailDO.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(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.NOK.getCode()); // 入库存状态为不合格
|
|
|
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.NOK.getCode()); // 入库存状态为不合格
|
|
|
transactionCreateReqVOIn.setWorker("1"); |
|
|
transactionCreateReqVOIn.setWorker(balanceDO.getCreator()); |
|
|
transactionCreateReqVOIn.setBatch(putawayRecordDetailDO.getToBatch()); |
|
|
transactionCreateReqVOIn.setBatch(balanceDO.getBatch()); |
|
|
transactionCreateReqVOIn.setPackingNumber(putawayRecordDetailDO.getFromPackingNumber()); |
|
|
transactionCreateReqVOIn.setPackingNumber(balanceDO.getPackingNumber()); |
|
|
transactionCreateReqVOIn.setLocationCode(putawayRecordDetailDO.getToLocationCode()); |
|
|
transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode()); |
|
|
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<>(); |
|
|
|
|
|
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<>(); |
|
|
|
|
|
inventoryStatusList.add(InventoryStatusEnum.OK.getCode()); |
|
|
|
|
|
inventoryStatusList.add(InventoryStatusEnum.INSP.getCode()); |
|
|
|
|
|
BalanceDO balanceDO = balanceService.getBalanceListByStatusList(putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getBatch(), |
|
|
|
|
|
inventoryStatusList, ""); |
|
|
|
|
|
if (balanceDO == null) { |
|
|
|
|
|
String errorMsg = "校验库存余额不存在,包装号:"+putawayJobDetailDO.getPackingNumber()+",物料:"+putawayJobDetailDO.getItemCode()+",批次:"+putawayJobDetailDO.getBatch()+",状态:"+String.join(",",inventoryStatusList)+""; |
|
|
|
|
|
log.error(errorMsg); |
|
|
|
|
|
executorService.execute(new Runnable() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void run() { |
|
|
|
|
|
updatePurchaseReceiptRecordRemarkByPackingNumber(putawayJobDetailDO.getPackingNumber(),errorMsg); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
// 质检发现库存余额不存在
|
|
|
|
|
|
throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getBatch(), |
|
|
|
|
|
String.join(",",inventoryStatusList), ""); |
|
|
|
|
|
} |
|
|
|
|
|
// 库存事务——出
|
|
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(putawayJobDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
String outTransactionType = businesstypeDO.getOutTransactionType(); |
|
|
|
|
|
if (outTransactionType != null && !"".equals(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(putawayJobDetailDO.getBatch()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackingNumber(putawayJobDetailDO.getPackingNumber()); |
|
|
|
|
|
transactionCreateReqVOOut.setLocationCode(putawayJobDetailDO.getFromLocationCode()); |
|
|
|
|
|
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.setSiteId(putawayJobDetailDO.getSiteId()); |
|
|
|
|
|
transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty()); |
|
|
|
|
|
if (StringUtils.isNotEmpty(putawayJobDetailDO.getCreator())) { |
|
|
|
|
|
transactionCreateReqVOOut.setUserId(Long.valueOf(putawayJobDetailDO.getCreator())); |
|
|
|
|
|
} else { |
|
|
|
|
|
transactionCreateReqVOOut.setUserId(1l); |
|
|
|
|
|
} |
|
|
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOOut); |
|
|
|
|
|
} |
|
|
|
|
|
// 库存事务——入
|
|
|
|
|
|
String inTransactionType = businesstypeDO.getInTransactionType(); |
|
|
|
|
|
if (inTransactionType != null && !"".equals(inTransactionType)) { |
|
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(putawayJobDetailDO, transactionCreateReqVOIn); |
|
|
|
|
|
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(inTransactionType); |
|
|
|
|
|
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); |
|
|
|
|
|
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); |
|
|
|
|
|
transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber()); |
|
|
|
|
|
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.NOK.getCode()); // 入库存为OK状态
|
|
|
|
|
|
transactionCreateReqVOIn.setWorker("1"); |
|
|
|
|
|
transactionCreateReqVOIn.setBatch(putawayJobDetailDO.getBatch()); |
|
|
|
|
|
transactionCreateReqVOIn.setPackingNumber(putawayJobDetailDO.getPackingNumber()); |
|
|
|
|
|
transactionCreateReqVOIn.setLocationCode(putawayJobDetailDO.getFromLocationCode()); |
|
|
|
|
|
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()); |
|
|
// 库存事务——出
|
|
|
// 库存事务——出
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(putawayRecordDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
String outTransactionType = businesstypeDO.getOutTransactionType(); |
|
|
|
|
|
if (outTransactionType != null && !"".equals(outTransactionType)) { |
|
|
if (outTransactionType != null && !"".equals(outTransactionType)) { |
|
|
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType); |
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
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,130 +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.setUserId(1l); |
|
|
|
|
|
} |
|
|
|
|
|
transactionCreateReqVOOut.setUserId(Long.valueOf(putawayRecordDetailDO.getCreator())); |
|
|
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOOut); |
|
|
|
|
|
} |
|
|
|
|
|
// 库存事务——入
|
|
|
|
|
|
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); |
|
|
|
|
|
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); |
|
|
|
|
|
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); |
|
|
|
|
|
transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber()); |
|
|
|
|
|
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.OK.getCode()); // 入库存为OK状态
|
|
|
|
|
|
transactionCreateReqVOIn.setWorker("1"); |
|
|
|
|
|
transactionCreateReqVOIn.setBatch(putawayRecordDetailDO.getToBatch()); |
|
|
|
|
|
transactionCreateReqVOIn.setPackingNumber(putawayRecordDetailDO.getFromPackingNumber()); |
|
|
|
|
|
transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode()); |
|
|
|
|
|
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.setActiveTime(LocalDateTime.now()); |
|
|
|
|
|
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<>(); |
|
|
|
|
|
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<>(); |
|
|
|
|
|
inventoryStatusList.add(InventoryStatusEnum.OK.getCode()); |
|
|
|
|
|
inventoryStatusList.add(InventoryStatusEnum.INSP.getCode()); |
|
|
|
|
|
BalanceDO balanceDO = balanceService.getBalanceListByStatusList(putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getBatch(), |
|
|
|
|
|
inventoryStatusList,""); |
|
|
|
|
|
if (balanceDO == null) { |
|
|
|
|
|
String errorMsg = "校验库存余额不存在:"+putawayJobDetailDO.getPackingNumber()+","+putawayJobDetailDO.getItemCode()+","+putawayJobDetailDO.getBatch()+"," + |
|
|
|
|
|
""+String.join(",",inventoryStatusList); |
|
|
|
|
|
log.error(errorMsg); |
|
|
|
|
|
executorService.execute(new Runnable() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void run() { |
|
|
|
|
|
updatePurchaseReceiptRecordRemarkByPackingNumber(putawayJobDetailDO.getPackingNumber(),errorMsg); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
// 质检发现库存余额不存在
|
|
|
|
|
|
throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, putawayJobDetailDO.getPackingNumber(), putawayJobDetailDO.getItemCode(), putawayJobDetailDO.getBatch(), |
|
|
|
|
|
String.join(",",inventoryStatusList), ""); |
|
|
|
|
|
} |
|
|
|
|
|
// 库存事务——出
|
|
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(putawayJobDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
String outTransactionType = businesstypeDO.getOutTransactionType(); |
|
|
|
|
|
if (outTransactionType != null && !"".equals(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(putawayJobDetailDO.getBatch()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackingNumber(putawayJobDetailDO.getPackingNumber()); |
|
|
|
|
|
transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode()); |
|
|
|
|
|
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.setActiveTime(LocalDateTime.now()); |
|
|
|
|
|
transactionCreateReqVOOut.setWarehouseCode(balanceDO.getWarehouseCode()); |
|
|
|
|
|
transactionCreateReqVOOut.setId(null); |
|
|
transactionCreateReqVOOut.setId(null); |
|
|
transactionCreateReqVOOut.setSiteId(putawayJobDetailDO.getSiteId()); |
|
|
transactionCreateReqVOOut.setUserId(Long.valueOf(balanceDO.getCreator())); |
|
|
transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty()); |
|
|
|
|
|
if (StringUtils.isNotEmpty(putawayJobDetailDO.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(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(putawayJobDetailDO.getBatch()); |
|
|
transactionCreateReqVOIn.setBatch(purchasereceiptRecordDetailDO.getFromBatch()); |
|
|
transactionCreateReqVOIn.setPackingNumber(putawayJobDetailDO.getPackingNumber()); |
|
|
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()); |
|
@ -1363,15 +1123,12 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { |
|
|
transactionCreateReqVOIn.setActiveTime(LocalDateTime.now()); |
|
|
transactionCreateReqVOIn.setActiveTime(LocalDateTime.now()); |
|
|
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.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(putawayJobDetailDO.getCreator())) { |
|
|
transactionCreateReqVOIn.setUserId(Long.valueOf(balanceDO.getCreator())); |
|
|
transactionCreateReqVOIn.setUserId(Long.valueOf(putawayJobDetailDO.getCreator())); |
|
|
|
|
|
} else { |
|
|
|
|
|
transactionCreateReqVOIn.setUserId(1l); |
|
|
|
|
|
} |
|
|
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOIn); |
|
|
transactionCreateReqVOList.add(transactionCreateReqVOIn); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
@ -1379,7 +1136,6 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { |
|
|
if (transactionCreateReqVOList.size() > 0) { |
|
|
if (transactionCreateReqVOList.size() > 0) { |
|
|
transactionService.createTransaction(transactionCreateReqVOList); |
|
|
transactionService.createTransaction(transactionCreateReqVOList); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -1393,7 +1149,13 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { |
|
|
// 创建库移申请
|
|
|
// 创建库移申请
|
|
|
List<InventorymoveRequestDetailCreateReqVO> inventorymoveRequestDetailCreateReqVOS = new ArrayList<>(); |
|
|
List<InventorymoveRequestDetailCreateReqVO> inventorymoveRequestDetailCreateReqVOS = new ArrayList<>(); |
|
|
List<ProductReceiptInspectResultPackingReqDTO> packingList = inspectResultReqDTO.getPackingList(); |
|
|
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) { |
|
|
for (ProductReceiptInspectResultPackingReqDTO inspectPackingInfo : packingList) { |
|
|
// 校验上架记录是否存在
|
|
|
// 校验上架记录是否存在
|
|
@ -1402,34 +1164,149 @@ public class InspectJobMainServiceImpl implements InspectJobMainService { |
|
|
productputawayJobDetailDOLambdaQueryWrapperX.eq(ProductputawayJobDetailDO::getPackingNumber, inspectPackingInfo.getPackingNumber()); |
|
|
productputawayJobDetailDOLambdaQueryWrapperX.eq(ProductputawayJobDetailDO::getPackingNumber, inspectPackingInfo.getPackingNumber()); |
|
|
ProductputawayJobDetailDO productputawayJobDetailDO = productputawayJobDetailMapper.selectOne(productputawayJobDetailDOLambdaQueryWrapperX, false); |
|
|
ProductputawayJobDetailDO productputawayJobDetailDO = productputawayJobDetailMapper.selectOne(productputawayJobDetailDOLambdaQueryWrapperX, false); |
|
|
if(productputawayJobDetailDO != null){ |
|
|
if(productputawayJobDetailDO != null){ |
|
|
|
|
|
productPutawayNumberSet.add(productputawayJobDetailDO.getNumber()); |
|
|
productputawayJobDetailDO.setInspectResult(InventoryStatusEnum.NOK.getCode()); |
|
|
productputawayJobDetailDO.setInspectResult(InventoryStatusEnum.NOK.getCode()); |
|
|
productputawayJobDetailMapper.updateById(productputawayJobDetailDO); |
|
|
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; |
|
|
|
|
|
} |
|
|
|
|
|
productreceiptRecordDetailDOMap.put(inspectPackingInfo.getPackingNumber(),productreceiptRecordDetailDO); |
|
|
|
|
|
List<String> inventoryStatusList = new ArrayList<>(); |
|
|
|
|
|
inventoryStatusList.add(InventoryStatusEnum.OK.getCode()); |
|
|
|
|
|
inventoryStatusList.add(InventoryStatusEnum.INSP.getCode()); |
|
|
|
|
|
BalanceDO balanceDO = balanceService.getBalanceListByStatusList(productreceiptRecordDetailDO.getPackingNumber(), productreceiptRecordDetailDO.getItemCode(), productreceiptRecordDetailDO.getBatch(), |
|
|
|
|
|
inventoryStatusList, ""); |
|
|
|
|
|
if (balanceDO == null) { |
|
|
|
|
|
String errorMsg = "校验库存余额不存在,包装号:"+productreceiptRecordDetailDO.getPackingNumber()+",物料:"+productreceiptRecordDetailDO.getItemCode()+",批次:"+productreceiptRecordDetailDO.getBatch()+",状态:"+String.join(",",inventoryStatusList)+""; |
|
|
|
|
|
log.error(errorMsg); |
|
|
|
|
|
executorService.execute(new Runnable() { |
|
|
|
|
|
@Override |
|
|
|
|
|
public void run() { |
|
|
|
|
|
updateProductReceiptRecordRemarkByPackingNumber(inspectPackingInfo.getPackingNumber(),errorMsg); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
// 质检发现库存余额不存在
|
|
|
|
|
|
throw exception(BALANCE_INSP_CHECK_NOT_EXISTS, productreceiptRecordDetailDO.getPackingNumber(), productreceiptRecordDetailDO.getItemCode(), productreceiptRecordDetailDO.getBatch(), |
|
|
|
|
|
String.join(",",inventoryStatusList), ""); |
|
|
|
|
|
} |
|
|
|
|
|
balanceDOMap.put(productreceiptRecordDetailDO.getPackingNumber(),balanceDO); |
|
|
|
|
|
LocationDO locationDO = locationService.queryByCode(balanceDO.getLocationCode()); |
|
|
|
|
|
// 库存事务——出
|
|
|
|
|
|
if (outTransactionType != null && !"".equals(outTransactionType)) { |
|
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); |
|
|
|
|
|
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); |
|
|
|
|
|
transactionCreateReqVOOut.setRecordNumber(inspectResultReqDTO.getInspectNumber());// 检验编号
|
|
|
|
|
|
transactionCreateReqVOOut.setInventoryStatus(balanceDO.getInventoryStatus()); // 出库存未待检状态
|
|
|
|
|
|
transactionCreateReqVOOut.setWorker(String.valueOf(balanceDO.getCreator())); // 系统管理员
|
|
|
|
|
|
transactionCreateReqVOOut.setBatch(inspectResultReqDTO.getBatch()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackingNumber(balanceDO.getPackingNumber()); |
|
|
|
|
|
transactionCreateReqVOOut.setLocationCode(balanceDO.getLocationCode()); |
|
|
|
|
|
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()); |
|
|
|
|
|
if(locationDO != null){ |
|
|
|
|
|
transactionCreateReqVOOut.setWarehouseCode(locationDO.getWarehouseCode()); |
|
|
|
|
|
} |
|
|
|
|
|
transactionCreateReqVOOut.setAreaCode(locationDO.getAreaCode()); |
|
|
|
|
|
transactionCreateReqVOOut.setLocationGroupCode(locationDO.getLocationGroupCode()); |
|
|
|
|
|
transactionCreateReqVOOut.setId(null); |
|
|
|
|
|
transactionCreateReqVOOut.setSiteId(productreceiptRecordDetailDO.getSiteId()); |
|
|
|
|
|
transactionCreateReqVOOut.setAreaType(balanceDO.getAreaType()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackUnit(balanceDO.getPackUnit()); |
|
|
|
|
|
transactionCreateReqVOOut.setPackQty(balanceDO.getPackQty()); |
|
|
|
|
|
transactionCreateReqVOOut.setUserId(Long.valueOf(balanceDO.getCreator())); |
|
|
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOOut); |
|
|
|
|
|
} |
|
|
|
|
|
// 库存事务——入
|
|
|
|
|
|
if (inTransactionType != null && !"".equals(inTransactionType)) { |
|
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOIn); |
|
|
|
|
|
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); |
|
|
|
|
|
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); |
|
|
|
|
|
transactionCreateReqVOIn.setRecordNumber(inspectResultReqDTO.getInspectNumber()); |
|
|
|
|
|
transactionCreateReqVOIn.setInventoryStatus(InventoryStatusEnum.NOK.getCode()); // 入库状态为不合格
|
|
|
|
|
|
transactionCreateReqVOIn.setWorker(String.valueOf(balanceDO.getCreator())); |
|
|
|
|
|
transactionCreateReqVOIn.setBatch(balanceDO.getBatch()); |
|
|
|
|
|
transactionCreateReqVOIn.setPackingNumber(balanceDO.getPackingNumber()); |
|
|
|
|
|
transactionCreateReqVOIn.setLocationCode(balanceDO.getLocationCode()); |
|
|
|
|
|
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()); |
|
|
|
|
|
if(locationDO != null){ |
|
|
|
|
|
transactionCreateReqVOIn.setWarehouseCode(locationDO.getWarehouseCode()); |
|
|
|
|
|
} |
|
|
|
|
|
transactionCreateReqVOIn.setAreaCode(locationDO.getAreaCode()); |
|
|
|
|
|
transactionCreateReqVOIn.setLocationGroupCode(locationDO.getLocationGroupCode()); |
|
|
|
|
|
transactionCreateReqVOIn.setSiteId(productreceiptRecordDetailDO.getSiteId()); |
|
|
|
|
|
transactionCreateReqVOIn.setAreaType(balanceDO.getAreaType()); |
|
|
|
|
|
transactionCreateReqVOIn.setPackUnit(balanceDO.getPackUnit()); |
|
|
|
|
|
transactionCreateReqVOIn.setPackQty(balanceDO.getPackQty()); |
|
|
|
|
|
transactionCreateReqVOIn.setUserId(Long.valueOf(balanceDO.getCreator())); |
|
|
|
|
|
transactionCreateReqVOIn.setId(null); |
|
|
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOIn); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (transactionCreateReqVOList.size() > 0) { |
|
|
|
|
|
transactionService.createTransaction(transactionCreateReqVOList); |
|
|
|
|
|
} |
|
|
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()); |
|
|
InventorymoveRequestDetailCreateReqVO inventorymoveRequestDetailCreateReqVO = new InventorymoveRequestDetailCreateReqVO(); |
|
|
ProductreceiptRecordDetailDO productreceiptRecordDetailDO = productreceiptRecordDetailMapper.selectOne(productreceuptRecordWrapper); |
|
|
inventorymoveRequestDetailCreateReqVO.setFromPackingNumber(productReceiptInspectResultPackingReqDTO.getPackingNumber()); |
|
|
InventorymoveRequestDetailCreateReqVO inventorymoveRequestDetailCreateReqVO = new InventorymoveRequestDetailCreateReqVO(); |
|
|
inventorymoveRequestDetailCreateReqVO.setFromBatch(balanceDO.getBatch()); |
|
|
inventorymoveRequestDetailCreateReqVO.setFromPackingNumber(productReceiptInspectResultPackingReqDTO.getPackingNumber()); |
|
|
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.setToLocationCode(configInfoVO.getLocationCode()); |
|
|
inventorymoveRequestDetailCreateReqVO.setFromLocationCode(productreceiptRecordDetailDO.getToLocationCode()); |
|
|
inventorymoveRequestDetailCreateReqVO.setItemCode(balanceDO.getItemCode()); |
|
|
inventorymoveRequestDetailCreateReqVO.setToLocationCode(configInfoVO.getLocationCode()); |
|
|
inventorymoveRequestDetailCreateReqVO.setQty(productReceiptInspectResultPackingReqDTO.getQty()); |
|
|
inventorymoveRequestDetailCreateReqVO.setItemCode(productreceiptRecordDetailDO.getItemCode()); |
|
|
inventorymoveRequestDetailCreateReqVO.setFromInventoryStatus(InventoryStatusEnum.NOK.getCode()); |
|
|
inventorymoveRequestDetailCreateReqVO.setQty(productReceiptInspectResultPackingReqDTO.getQty()); |
|
|
inventorymoveRequestDetailCreateReqVO.setToInventoryStatus(configInfoVO.getInventoryStatus()); |
|
|
inventorymoveRequestDetailCreateReqVO.setFromInventoryStatus(InventoryStatusEnum.NOK.getCode()); |
|
|
inventorymoveRequestDetailCreateReqVO.setCreator(productreceiptRecordDetailDO.getCreator()); |
|
|
inventorymoveRequestDetailCreateReqVO.setToInventoryStatus(configInfoVO.getInventoryStatus()); |
|
|
inventorymoveRequestDetailCreateReqVO.setUpdater(productreceiptRecordDetailDO.getCreator()); |
|
|
inventorymoveRequestDetailCreateReqVO.setCreator(productreceiptRecordDetailDO.getCreator()); |
|
|
LocationDO locationDO = locationService.selectLocation(inventorymoveRequestDetailCreateReqVO.getFromLocationCode()); |
|
|
inventorymoveRequestDetailCreateReqVO.setUpdater(productreceiptRecordDetailDO.getCreator()); |
|
|
fromWarehouseCode = locationDO.getWarehouseCode(); |
|
|
LocationDO locationDO = locationService.selectLocation(inventorymoveRequestDetailCreateReqVO.getFromLocationCode()); |
|
|
inventorymoveRequestDetailCreateReqVOS.add(inventorymoveRequestDetailCreateReqVO); |
|
|
fromWarehouseCode = locationDO.getWarehouseCode(); |
|
|
} |
|
|
inventorymoveRequestDetailCreateReqVOS.add(inventorymoveRequestDetailCreateReqVO); |
|
|
|
|
|
} |
|
|
} |
|
|
if (inventorymoveRequestDetailCreateReqVOS.size() > 0) { |
|
|
if (inventorymoveRequestDetailCreateReqVOS.size() > 0) { |
|
|
InventorymoveRequestDetailCreateReqVO firstInfo = inventorymoveRequestDetailCreateReqVOS.get(0); |
|
|
InventorymoveRequestDetailCreateReqVO firstInfo = inventorymoveRequestDetailCreateReqVOS.get(0); |
|
@ -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()); |
|
|
// 库存事务——出
|
|
|
// 库存事务——出
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
|
|
|
String outTransactionType = businesstypeDO.getOutTransactionType(); |
|
|
|
|
|
if (outTransactionType != null && !"".equals(outTransactionType)) { |
|
|
if (outTransactionType != null && !"".equals(outTransactionType)) { |
|
|
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(outTransactionType); |
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
|
|
BeanUtils.copyProperties(productreceiptRecordDetailDO, transactionCreateReqVOOut); |
|
|
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
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); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|