Browse Source

HL-6124 上架直接记录

hella_online_20240927
陈薪名 10 months ago
parent
commit
1ef42d3aa8
  1. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordDetailCreateReqVO.java
  2. 78
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainServiceImpl.java

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordDetailCreateReqVO.java

@ -13,4 +13,6 @@ public class ProductputawayRecordDetailCreateReqVO extends ProductputawayRecordD
private BigDecimal handleQty;
private String fromParentPackingNumber;
}

78
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainServiceImpl.java

@ -37,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
@ -107,11 +108,58 @@ public class ProductputawayRecordMainServiceImpl implements ProductputawayRecord
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("MaterialReturnRecord");
mainDO.setInterfaceType(recordsettingDO.getInterfaceType());
productputawayRecordMainMapper.insert(mainDO);
BigDecimal singlePrice = BigDecimal.ZERO;
BigDecimal amount = BigDecimal.ZERO;
LocalDateTime arriveDate = null;
LocalDateTime produceDate = null;
LocalDateTime expireDate = null;
String locationCode = "";
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
List<ProductputawayRecordDetailDO> detailDOList = new ArrayList<>();
for (ProductputawayRecordDetailCreateReqVO createReqVOTemp : subDOList) {
ProductputawayRecordDetailDO detailDO = ProductputawayRecordDetailConvert.INSTANCE.convert(createReqVOTemp);
String fromBatch = detailDO.getFromBatch();
locationCode = detailDO.getFromLocationCode();
String fromPackingNumber = detailDO.getFromPackingNumber();
String fromParentPackingNumber = createReqVOTemp.getFromParentPackingNumber() == null ? "" : createReqVOTemp.getFromParentPackingNumber();
//查询库存余额
List<String> inventoryStatusList = new ArrayList<>();
inventoryStatusList.add(detailDO.getInventoryStatus());
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),fromPackingNumber,fromBatch,locationCode,inventoryStatusList);
if (balanceDO != null && balanceDO.size() > 0) {
singlePrice = balanceDO.get(0).getSinglePrice();
amount = balanceDO.get(0).getAmount();
arriveDate = balanceDO.get(0).getArriveDate();
produceDate = balanceDO.get(0).getProduceDate();
expireDate = balanceDO.get(0).getExpireDate();
}
// 扫描的箱码 没查询到库存,同时 父包装 有值
List<BalanceDO> balanceDOParent = new ArrayList<>();
if ((balanceDO == null || balanceDO.size() == 0) && !fromParentPackingNumber.equals("")) {
balanceDOParent = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),fromParentPackingNumber,fromBatch,locationCode,inventoryStatusList);
if (balanceDOParent == null || balanceDOParent.size() == 0) {
// redisCache.deleteLock(lockKey);
throw exception(REPLEINSH_JOB_MAIN_PACK_PARENT_BALANCE_ERROR,locationCode,fromParentPackingNumber,fromPackingNumber);
} else {
singlePrice = balanceDOParent.get(0).getSinglePrice();
amount = balanceDOParent.get(0).getAmount();
arriveDate = balanceDOParent.get(0).getArriveDate();
produceDate = balanceDOParent.get(0).getProduceDate();
expireDate = balanceDOParent.get(0).getExpireDate();
detailDO.setFromPackingNumber(fromParentPackingNumber);
}
}
// 扫描子或父 没查询到 ,同时 无父情况
if (balanceDO == null && fromParentPackingNumber.equals("")) {
// redisCache.deleteLock(lockKey);
throw exception(REPLEINSH_JOB_MAIN_PACK_BALANCE_ERROR,locationCode,fromPackingNumber);
}
detailDO.setId(null);
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
@ -142,10 +190,10 @@ public class ProductputawayRecordMainServiceImpl implements ProductputawayRecord
throw exception(ITEMBASIC_NOT_EXISTS);
}
//查询库存余额
BalanceDO balanceDO = balanceService.checkBalance(detailDO.getFromPackingNumber(), detailDO.getItemCode(), detailDO.getFromBatch(), detailDO.getInventoryStatus(), detailDO.getFromLocationCode());
if (balanceDO == null) {
throw exception(BALANCE_NOT_EXISTS);
}
// BalanceDO balanceDO = balanceService.checkBalance(detailDO.getFromPackingNumber(), detailDO.getItemCode(), detailDO.getFromBatch(), detailDO.getInventoryStatus(), detailDO.getFromLocationCode());
// if (balanceDO == null) {
// throw exception(BALANCE_NOT_EXISTS);
// }
detailDOList.add(detailDO);
// 库存事务——入
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
@ -156,15 +204,14 @@ public class ProductputawayRecordMainServiceImpl implements ProductputawayRecord
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setBatch(detailDO.getToBatch());
transactionCreateReqVOIn.setAltBatch(balanceDO.getAltBatch());
transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber());
transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOIn.setSinglePrice(singlePrice);
transactionCreateReqVOIn.setAmount(amount);
transactionCreateReqVOIn.setArriveDate(arriveDate);
transactionCreateReqVOIn.setProduceDate(produceDate);
transactionCreateReqVOIn.setExpireDate(expireDate);
transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
@ -187,14 +234,13 @@ public class ProductputawayRecordMainServiceImpl implements ProductputawayRecord
transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch());
transactionCreateReqVOOut.setAltBatch(balanceDO.getAltBatch());
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber());
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode());
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount());
transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setSinglePrice(singlePrice);
transactionCreateReqVOOut.setAmount(amount);
transactionCreateReqVOOut.setArriveDate(arriveDate);
transactionCreateReqVOOut.setProduceDate(produceDate);
transactionCreateReqVOOut.setExpireDate(expireDate);
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setId(null);
// 根据 库位 获取 库区DO

Loading…
Cancel
Save