1、装配清单 - 部分加工状态下顶级部件查询不匹配修复;2、 分堆 - 部件部分分堆保存后查询数量错误修复;

This commit is contained in:
gaoqr
2026-04-23 16:24:06 +08:00
parent a637bb1661
commit fdd23f01d0
3 changed files with 25 additions and 10 deletions
@@ -966,12 +966,14 @@ public class AssemblyListServiceImpl implements AssemblyListService {
switch (status) {
case PROCESSED:
// 已加工:部件根节点已加工
if (state.rootProcessed) {
return true;
}
break;
case UNPROCESSED:
// 未加工:部件根节点未加工,且子节点均为未加工状态
if (!state.rootProcessed
&& state.allUnprocessed
&& !state.notProcessConfig) {
@@ -980,14 +982,15 @@ public class AssemblyListServiceImpl implements AssemblyListService {
break;
case PART_PROCESSED:
// 部份加工:部件根节点未加工,且子节点至少有一个已加工
if (!state.rootProcessed
&& state.anyChildProcessed
&& !state.notProcessConfig) {
&& state.anyChildProcessed) {
return true;
}
break;
case NOT_PROCESS:
// 不加工: 部件装配设置中至少有一个节点标记为不加工
if (state.notProcessConfig) {
return true;
}
@@ -1009,12 +1012,24 @@ public class AssemblyListServiceImpl implements AssemblyListService {
OrderComponentTreeCompareVO node;
/**
* 根节点加工了
*/
boolean rootProcessed;
/**
* 全都未加工
*/
boolean allUnprocessed;
/**
* 任一子节点加工
*/
boolean anyChildProcessed;
/**
* 不加工
*/
boolean notProcessConfig;
}
}
@@ -275,7 +275,8 @@ public class HeapSplitServiceImpl implements HeapSplitService {
// ===== 1. 分组 key =====
String key = row.getPartsId()
+ "_" + row.getRoomId()
+ "_" + row.getBodyId();
+ "_" + row.getBodyId()
+ "_" + row.getHeapSplitStatus();
OrderPartsRespVO vo = map.computeIfAbsent(key, k -> {
OrderPartsRespVO v = new OrderPartsRespVO();
@@ -486,11 +487,7 @@ public class HeapSplitServiceImpl implements HeapSplitService {
if (!updateList.isEmpty()) {
orderItemMapper.updateBatch(updateList);
}
if (!insertList.isEmpty()) {
orderItemMapper.insertBatch(insertList);
}
if (!deleteIds.isEmpty()) {
orderItemMapper.deleteByIds(deleteIds);
}
orderItemMapper.insertBatch(insertList);
orderItemMapper.deleteByIds(deleteIds);
}
}
@@ -480,7 +480,10 @@
ob.multi_num AS multiNum,
ob.multi_sort AS multiSort,
(oi.num - oi.heap_num) AS num,
CASE
WHEN oi.heap_split_status = 1 THEN oi.heap_num
ELSE (oi.num - oi.heap_num)
END AS num,
oi.heap_num AS heapNum,
op.id AS partsId,