添加批次号;
This commit is contained in:
+40
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.TypeReference;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
@@ -63,6 +64,8 @@ import org.springframework.util.CollectionUtils;
|
||||
import javax.annotation.Resource;
|
||||
import java.lang.reflect.Field;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -508,6 +511,30 @@ public class StockInOrderDomainService {
|
||||
? loginUser.getUserPo().getUserName()
|
||||
: (loginUser.getRealname() != null ? loginUser.getRealname() : loginUser.getUsername());
|
||||
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> receiptMaterialDetailList = materialDetailList.stream()
|
||||
.filter(m -> m.getCollectQuantity() != null && m.getCollectQuantity().compareTo(BigDecimal.ZERO) != 0)
|
||||
@@ -532,6 +559,8 @@ public class StockInOrderDomainService {
|
||||
}
|
||||
receiptMaterialDetail.setReceiptQuantity(collectQuantity);
|
||||
receiptMaterialDetail.setAlreadyReceiptQuantity(collectQuantity);
|
||||
|
||||
receiptMaterialDetail.setBatchNo(batchNo);
|
||||
BigDecimal quantity = receiptMaterialDetail.getQuantity();
|
||||
if (quantity != null && quantity.compareTo(BigDecimal.ZERO) == 0) {
|
||||
receiptMaterialDetail.setReceiptStatus(3);
|
||||
@@ -544,6 +573,7 @@ public class StockInOrderDomainService {
|
||||
if (stockReceiptOrder != null) {
|
||||
stockReceiptOrder.setStatus(2);
|
||||
stockReceiptOrder.setReceiptQuantity(stockReceiptOrder.getReceiptQuantity().add(collectQuantity));
|
||||
stockReceiptOrder.setBatchNo(batchNo);
|
||||
stockReceiptOrderService.updateById(stockReceiptOrder);
|
||||
}
|
||||
|
||||
@@ -563,6 +593,7 @@ public class StockInOrderDomainService {
|
||||
} else {
|
||||
BeanUtils.copyProperties(stockReceiptOrder, stockShelfOrder);
|
||||
stockShelfOrder.setShelfOrderNumber(OrderSequence.getOrderCode("SJ"));
|
||||
stockShelfOrder.setBatchNo(batchNo);
|
||||
stockShelfOrderService.save(stockShelfOrder);
|
||||
}
|
||||
log.info("生成上架单成功,上架单编号:{}", stockShelfOrder.getShelfOrderNumber());
|
||||
@@ -574,6 +605,7 @@ public class StockInOrderDomainService {
|
||||
.eq(ShelfMaterialDetail::getDelFlag, 1), false);
|
||||
if (one != null) {
|
||||
one.setQuantity(collectQuantity);
|
||||
one.setBatchNo(batchNo);
|
||||
shelfMaterialDetailService.updateById(one);
|
||||
} else {
|
||||
BeanUtils.copyProperties(inMaterialDetailDO, shelfMaterialDetail);
|
||||
@@ -581,6 +613,7 @@ public class StockInOrderDomainService {
|
||||
shelfMaterialDetail.setQuantity(collectQuantity);
|
||||
shelfMaterialDetail.setInUniqueId(uniqueId);
|
||||
shelfMaterialDetail.setReceiptUniqueId(receiptMaterialDetail.getUniqueId());
|
||||
shelfMaterialDetail.setBatchNo(batchNo);
|
||||
shelfMaterialDetailService.save(shelfMaterialDetail);
|
||||
}
|
||||
|
||||
@@ -654,6 +687,10 @@ public class StockInOrderDomainService {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getOne(new LambdaUpdateWrapper<StockReceiptOrder>()
|
||||
.eq(StockReceiptOrder::getInOrderNumber, inOrderNumber)
|
||||
.eq(StockReceiptOrder::getDelFlag, 1), false);
|
||||
|
||||
// 如果 materialDetailId 为空,则创建上架单明细
|
||||
List<StockShelfOrder> list = stockShelfOrderService.list(new QueryWrapper<StockShelfOrder>().lambda()
|
||||
.eq(StockShelfOrder::getInOrderNumber, inOrderNumber)
|
||||
@@ -713,6 +750,9 @@ public class StockInOrderDomainService {
|
||||
shelfMaterialDetail.setInUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
shelfMaterialDetail.setReceiptUniqueId(idGenerator.snowflakeId(SnowFlakeConstants.wmsId));
|
||||
shelfMaterialDetail.setShelvesStatus(3);
|
||||
if (stockReceiptOrder!= null) {
|
||||
shelfMaterialDetail.setBatchNo(stockReceiptOrder.getBatchNo());
|
||||
}
|
||||
shelfMaterialDetailService.save(shelfMaterialDetail);
|
||||
stringObjectMap.put("materialDetailId", shelfMaterialDetail.getMaterialDetailId());
|
||||
stringObjectMap.put("level",2 );
|
||||
|
||||
Reference in New Issue
Block a user