From 27a90e70749f5a569eda2c225d7b319b3c2d77a5 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 15 十二月 2025 11:41:03 +0800
Subject: [PATCH] 订单拆分生成系统编号逻辑调整
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 43 insertions(+), 15 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index 50a5633..4f2fe8b 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -50,6 +50,7 @@
import com.ruoyi.inspect.service.RawMaterialOrderService;
import com.ruoyi.common.numgen.NumberGenerator;
import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.basic.vo.IfsInventoryQuantityVO;
import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
import com.ruoyi.system.mapper.UserMapper;
@@ -99,7 +100,7 @@
private IfsSplitOrderRecordService ifsSplitOrderRecordService;
-
+ private final NumberGenerator<IfsSplitOrderRecord> splitOrderRecordNumberGenerator;
@Override
public Result selectStandardTreeListByPartNo(String partNo) {
@@ -111,7 +112,7 @@
for (FactoryDto factoryDto : factoryDtos) {
for (LaboratoryDto laboratoryDto : factoryDto.getChildren()) {
for (SampleTypeDto sampleTypeDto : laboratoryDto.getChildren()) {
- if (sampleTypeDto.getChildren().size() == 0) {
+ if (sampleTypeDto.getChildren().isEmpty()) {
sampleTypeDto.setChildren(standardTreeMapper.getStandardTree3(sampleTypeDto.getValue()));
}
// 鍒ゆ柇缁戝畾鐨勬槸鍚︽槸褰撳墠闆朵欢鍙�
@@ -146,8 +147,15 @@
}
@Override
- public IPage<IfsInventoryQuantity> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
- return standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
+ public IPage<IfsInventoryQuantityVO> getWarehouseSubmit(IPage<IfsInventoryQuantity> page, IfsInventoryQuantity ifsInventoryQuantity) {
+ IPage<IfsInventoryQuantityVO> ifsInventoryQuantityIPage = standardTreeMapper.selectIfsPage(page, QueryWrappers.queryWrappers(ifsInventoryQuantity));
+ ifsInventoryQuantityIPage.getRecords().forEach(f->{
+ Long count = ifsInventoryQuantityMapper.selectCount(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+ .ne(IfsInventoryQuantity::getId,f.getId())
+ .eq(IfsInventoryQuantity::getUpdateBatchNo, f.getUpdateBatchNo()));
+ f.setLotBatchNoHasRepeat(count>0);
+ });
+ return ifsInventoryQuantityIPage;
}
@Override
@@ -241,13 +249,32 @@
threadPoolTaskExecutor.execute(() -> {
IfsInventoryQuantity inventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId());
- // 浼佷笟寰俊閫氱煡
- String message = "";
- message += "鏂板鎶ユ閫氱煡";
- message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
- message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
- message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
- WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+ //鏌ヨ鐩稿悓鎵瑰彿鐨勫巻鍙瞚fs璁㈠崟
+ List<IfsInventoryQuantity> historyRecords = ifsInventoryQuantityMapper.selectList(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+ .ne(IfsInventoryQuantity::getId, ifsInventoryQuantity.getId())
+ .eq(IfsInventoryQuantity::getIsInspect, 1)
+ .eq(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo())
+ );
+ if(CollUtil.isEmpty(historyRecords)){
+ // 浼佷笟寰俊閫氱煡
+ String message = "";
+ message += "鏂板鎶ユ閫氱煡";
+ message += "\n鎵规鍙�: " + inventoryQuantity.getUpdateBatchNo();
+ message += "\n闆朵欢鎻忚堪: " + inventoryQuantity.getPartDesc();
+ message += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
+ WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
+ }else{
+ //鑾峰彇鍘嗗彶鎶佃揪鏁伴噺
+ double sum = historyRecords.stream().map(IfsInventoryQuantity::getQtyArrived).mapToDouble(BigDecimal::doubleValue).sum();
+ String historyQuantity = sum + inventoryQuantity.getBuyUnitMeas();
+ String messageMarkdown = "";
+ messageMarkdown += "鏂板鎶ユ閫氱煡";
+ messageMarkdown += "\n鎵规鍙�: <font color='warning'>" + inventoryQuantity.getUpdateBatchNo() + "</font>";
+ messageMarkdown += "\n闆朵欢鎻忚堪: "+ inventoryQuantity.getPartDesc();
+ messageMarkdown += "\n鎶佃揪鏁伴噺: " + inventoryQuantity.getQtyArrived().stripTrailingZeros().toPlainString() + inventoryQuantity.getBuyUnitMeas();
+ messageMarkdown += "\n鍘嗗彶鎶佃揪鏁伴噺: " + historyQuantity;
+ WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), messageMarkdown,"markdown");
+ }
});
return 1;
}
@@ -925,16 +952,17 @@
}
//鍕鹃�夊悓姝ュ埌MES锛屼繚瀛樿鍗曟媶鍒嗚褰�
if(orderSplitDTO.getPushToMes()){
- List<IfsSplitOrderRecord> collect = orderSplitDTO.getSplitDetailList().stream().map(m -> {
+ orderSplitDTO.getSplitDetailList().forEach(m -> {
IfsSplitOrderRecord record = new IfsSplitOrderRecord();
BeanUtil.copyProperties(m, record);
+ record.setSystemNo(splitOrderRecordNumberGenerator.generateNumberWithPrefix(IfsSplitOrderRecord.DIGIT, IfsSplitOrderRecord.PREFIX, IfsSplitOrderRecord::getSystemNo));
record.setOrderNo(ifsInventoryQuantity.getOrderNo());
record.setLineNo(ifsInventoryQuantity.getLineNo());
record.setReleaseNo(ifsInventoryQuantity.getReleaseNo());
record.setReceiptNo(ifsInventoryQuantity.getReceiptNo());
- return record;
- }).collect(Collectors.toList());
- return ifsSplitOrderRecordService.saveBatch(collect);
+ ifsSplitOrderRecordService.save(record);
+ });
+ return true;
}
return false;
}
--
Gitblit v1.9.3