添加批次号;

This commit is contained in:
王奎兴
2026-07-16 22:53:45 +08:00
parent 165927bc3d
commit 5c591d3b57
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.mhd.common.core.constant.SnowFlakeConstants; import com.mhd.common.core.constant.SnowFlakeConstants;
import com.mhd.common.core.exception.ServiceException; import com.mhd.common.core.exception.ServiceException;
@@ -63,6 +64,8 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -508,6 +511,30 @@ public class StockInOrderDomainService {
? loginUser.getUserPo().getUserName() ? loginUser.getUserPo().getUserName()
: (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername()); : (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername());
String inOrderNumber = stockInOrderDO.getInOrderNumber(); String inOrderNumber = stockInOrderDO.getInOrderNumber();
// 查询当天创建的入库单数量,用于生成batchNo
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String todayStr = dateFormat.format(new Date());
String todayStart = todayStr + " 00:00:00";
String todayEnd = todayStr + " 23:59:59";
SimpleDateFormat fullDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date todayStartDate = null;
try {
todayStartDate = fullDateFormat.parse(todayStart);
} catch (ParseException e) {
throw new RuntimeException(e);
}
Date todayEndDate = null;
try {
todayEndDate = fullDateFormat.parse(todayEnd);
} catch (ParseException e) {
throw new RuntimeException(e);
}
long todayStockInOrderCount = stockInOrderService.count(new LambdaQueryWrapper<StockInOrder>()
.ge(StockInOrder::getCreateTime, todayStartDate)
.le(StockInOrder::getCreateTime, todayEndDate)
.eq(StockInOrder::getDelFlag, 1));
String batchNo = "PC"+inOrderNumber+"-"+todayStockInOrderCount;
List<InMaterialDetailDO> materialDetailList = stockInOrderDO.getMaterialDetailList(); List<InMaterialDetailDO> materialDetailList = stockInOrderDO.getMaterialDetailList();
List<InMaterialDetailDO> receiptMaterialDetailList = materialDetailList.stream() List<InMaterialDetailDO> receiptMaterialDetailList = materialDetailList.stream()
.filter(m -> m.getCollectQuantity() != null && m.getCollectQuantity().compareTo(BigDecimal.ZERO) != 0) .filter(m -> m.getCollectQuantity() != null && m.getCollectQuantity().compareTo(BigDecimal.ZERO) != 0)
@@ -532,6 +559,8 @@ public class StockInOrderDomainService {
} }
receiptMaterialDetail.setReceiptQuantity(collectQuantity); receiptMaterialDetail.setReceiptQuantity(collectQuantity);
receiptMaterialDetail.setAlreadyReceiptQuantity(collectQuantity); receiptMaterialDetail.setAlreadyReceiptQuantity(collectQuantity);
receiptMaterialDetail.setBatchNo(batchNo);
BigDecimal quantity = receiptMaterialDetail.getQuantity(); BigDecimal quantity = receiptMaterialDetail.getQuantity();
if (quantity != null && quantity.compareTo(BigDecimal.ZERO) == 0) { if (quantity != null && quantity.compareTo(BigDecimal.ZERO) == 0) {
receiptMaterialDetail.setReceiptStatus(3); receiptMaterialDetail.setReceiptStatus(3);
@@ -544,6 +573,7 @@ public class StockInOrderDomainService {
if (stockReceiptOrder != null) { if (stockReceiptOrder != null) {
stockReceiptOrder.setStatus(2); stockReceiptOrder.setStatus(2);
stockReceiptOrder.setReceiptQuantity(stockReceiptOrder.getReceiptQuantity().add(collectQuantity)); stockReceiptOrder.setReceiptQuantity(stockReceiptOrder.getReceiptQuantity().add(collectQuantity));
stockReceiptOrder.setBatchNo(batchNo);
stockReceiptOrderService.updateById(stockReceiptOrder); stockReceiptOrderService.updateById(stockReceiptOrder);
} }
@@ -563,6 +593,7 @@ public class StockInOrderDomainService {
} else { } else {
BeanUtils.copyProperties(stockReceiptOrder, stockShelfOrder); BeanUtils.copyProperties(stockReceiptOrder, stockShelfOrder);
stockShelfOrder.setShelfOrderNumber(OrderSequence.getOrderCode("SJ")); stockShelfOrder.setShelfOrderNumber(OrderSequence.getOrderCode("SJ"));
stockShelfOrder.setBatchNo(batchNo);
stockShelfOrderService.save(stockShelfOrder); stockShelfOrderService.save(stockShelfOrder);
} }
log.info("生成上架单成功,上架单编号:{}", stockShelfOrder.getShelfOrderNumber()); log.info("生成上架单成功,上架单编号:{}", stockShelfOrder.getShelfOrderNumber());
@@ -574,6 +605,7 @@ public class StockInOrderDomainService {
.eq(ShelfMaterialDetail::getDelFlag, 1), false); .eq(ShelfMaterialDetail::getDelFlag, 1), false);
if (one != null) { if (one != null) {
one.setQuantity(collectQuantity); one.setQuantity(collectQuantity);
one.setBatchNo(batchNo);
shelfMaterialDetailService.updateById(one); shelfMaterialDetailService.updateById(one);
} else { } else {
BeanUtils.copyProperties(inMaterialDetailDO, shelfMaterialDetail); BeanUtils.copyProperties(inMaterialDetailDO, shelfMaterialDetail);
@@ -581,6 +613,7 @@ public class StockInOrderDomainService {
shelfMaterialDetail.setQuantity(collectQuantity); shelfMaterialDetail.setQuantity(collectQuantity);
shelfMaterialDetail.setInUniqueId(uniqueId); shelfMaterialDetail.setInUniqueId(uniqueId);
shelfMaterialDetail.setReceiptUniqueId(receiptMaterialDetail.getUniqueId()); shelfMaterialDetail.setReceiptUniqueId(receiptMaterialDetail.getUniqueId());
shelfMaterialDetail.setBatchNo(batchNo);
shelfMaterialDetailService.save(shelfMaterialDetail); shelfMaterialDetailService.save(shelfMaterialDetail);
} }
@@ -654,6 +687,10 @@ public class StockInOrderDomainService {
// continue; // continue;
// } // }
StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getOne(new LambdaUpdateWrapper<StockReceiptOrder>()
.eq(StockReceiptOrder::getInOrderNumber, inOrderNumber)
.eq(StockReceiptOrder::getDelFlag, 1), false);
// 如果 materialDetailId 为空,则创建上架单明细 // 如果 materialDetailId 为空,则创建上架单明细
List<StockShelfOrder> list = stockShelfOrderService.list(new QueryWrapper<StockShelfOrder>().lambda() List<StockShelfOrder> list = stockShelfOrderService.list(new QueryWrapper<StockShelfOrder>().lambda()
.eq(StockShelfOrder::getInOrderNumber, inOrderNumber) .eq(StockShelfOrder::getInOrderNumber, inOrderNumber)
@@ -713,6 +750,9 @@ public class StockInOrderDomainService {
shelfMaterialDetail.setInUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); shelfMaterialDetail.setInUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
shelfMaterialDetail.setReceiptUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId)); shelfMaterialDetail.setReceiptUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
shelfMaterialDetail.setShelvesStatus(3); shelfMaterialDetail.setShelvesStatus(3);
if (stockReceiptOrder!= null) {
shelfMaterialDetail.setBatchNo(stockReceiptOrder.getBatchNo());
}
shelfMaterialDetailService.save(shelfMaterialDetail); shelfMaterialDetailService.save(shelfMaterialDetail);
stringObjectMap.put("materialDetailId", shelfMaterialDetail.getMaterialDetailId()); stringObjectMap.put("materialDetailId", shelfMaterialDetail.getMaterialDetailId());
stringObjectMap.put("level",2 ); stringObjectMap.put("level",2 );