mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
cad拆单柜体、加工组板件数量错误问题修复
This commit is contained in:
+31
-34
@@ -152,8 +152,8 @@ public class WebCadOrderImportAsyncFactory {
|
||||
// 柜体缓存
|
||||
private Map<String, OrderBodyDO> bodyMap = new HashMap<>();
|
||||
|
||||
// 房间名+柜体名+加工组名:加工组id
|
||||
private Map<String, Long> orderGroupMap = new HashMap<>();
|
||||
// 房间名+柜体名+加工组名
|
||||
private Map<String, OrderGroupDO> orderGroupMap = new HashMap<>();
|
||||
|
||||
// 板材缓存:{商品编号:order_goods}
|
||||
private Map<String, Long> materialMap = new HashMap<>();
|
||||
@@ -169,7 +169,6 @@ public class WebCadOrderImportAsyncFactory {
|
||||
|
||||
private List<PlateDO> plateDOS = new ArrayList<>();
|
||||
private List<OrderItemDO> orderItemDOS = new ArrayList<>();
|
||||
private List<OrderGroupDO> orderGroupDOS = new ArrayList<>();
|
||||
private List<OrderPartsDO> orderPartsDOS = new ArrayList<>();
|
||||
private List<OrderModelDO> orderModelDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
private List<RawGoodsDO> rawGoodsDOS = new ArrayList<>();
|
||||
@@ -594,6 +593,7 @@ public class WebCadOrderImportAsyncFactory {
|
||||
reader.startObject();
|
||||
|
||||
String boxName = null;
|
||||
OrderBodyDO orderBodyDO = null;
|
||||
Integer count = 1;
|
||||
while (reader.hasNext()) {
|
||||
String key = reader.readString();
|
||||
@@ -603,13 +603,22 @@ public class WebCadOrderImportAsyncFactory {
|
||||
// 获取缓存中的成本数量
|
||||
count = roomBodyMap.get(roomName + boxName);
|
||||
|
||||
Long bodyId = (Long) snowFlakeGenerator.nextId(null);
|
||||
orderBodyDO = OrderBodyDO.builder().id(bodyId).orderId(orderId).organId(organId)
|
||||
.roomId(roomId).roomName(roomName).name(boxName).width(0.0).height(0.0)
|
||||
.depth(0.0).multiNum(0).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
orderBodyDO.setCreator(operatorName);
|
||||
orderBodyDO.setUpdater(operatorName);
|
||||
orderBodyDO.setCreateTime(now);
|
||||
orderBodyDO.setUpdateTime(now);
|
||||
|
||||
} else if ("blockList".equals(key)) {
|
||||
// Blocks.children.blockList开始
|
||||
reader.startArray();
|
||||
while (reader.hasNext()) {
|
||||
WebCadDataBlockReqVO block = reader.readObject(WebCadDataBlockReqVO.class);
|
||||
// 成倍创建
|
||||
multiCreateBodyPlate(count, roomId, roomName, boxName, block);
|
||||
multiCreateBodyPlate(count, orderBodyDO, roomName, boxName, block);
|
||||
}
|
||||
reader.endArray();
|
||||
}
|
||||
@@ -621,21 +630,12 @@ public class WebCadOrderImportAsyncFactory {
|
||||
* 成倍创建柜体板件
|
||||
*
|
||||
* @param count
|
||||
* @param roomId
|
||||
* @param orderBodyDO
|
||||
* @param roomName
|
||||
* @param block
|
||||
*/
|
||||
private void multiCreateBodyPlate(Integer count, Long roomId, String roomName, String boxName, WebCadDataBlockReqVO block) {
|
||||
private void multiCreateBodyPlate(Integer count, OrderBodyDO orderBodyDO, String roomName, String boxName, WebCadDataBlockReqVO block) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
Long bodyId = (Long) snowFlakeGenerator.nextId(null);
|
||||
OrderBodyDO orderBodyDO = OrderBodyDO.builder().id(bodyId).orderId(orderId).organId(organId)
|
||||
.roomId(roomId).roomName(roomName).name(boxName).width(0.0).height(0.0)
|
||||
.depth(0.0).multiNum(0).plateNum(0).unregularNum(0).filename("无").remark("无").deleted(false).build();
|
||||
orderBodyDO.setCreator(operatorName);
|
||||
orderBodyDO.setUpdater(operatorName);
|
||||
orderBodyDO.setCreateTime(now);
|
||||
orderBodyDO.setUpdateTime(now);
|
||||
|
||||
// 缓存成倍的柜体信息
|
||||
String multiRoomBodyName = roomName + boxName + i;
|
||||
orderBodyDO.setMultiRoomBodyName(multiRoomBodyName);
|
||||
@@ -645,7 +645,6 @@ public class WebCadOrderImportAsyncFactory {
|
||||
if (plateNumReachThreshold) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!plateNumReachThreshold) {
|
||||
// 创建板件相关数据:order_plate、order_item、es.orderModels
|
||||
createPlate(orderBodyDO, block);
|
||||
@@ -792,11 +791,11 @@ public class WebCadOrderImportAsyncFactory {
|
||||
for (Integer groupId : groupIds) {
|
||||
WebCadDataGroupInfoReqVO groupInfo = processGroupMap.get(groupId);
|
||||
String groupMapKey = orderBodyDO.getMultiRoomBodyName() + groupInfo.getGroupName();
|
||||
Long orderGroupId = orderGroupMap.get(groupMapKey);
|
||||
OrderGroupDO orderGroupDO = orderGroupMap.get(groupMapKey);
|
||||
// 房间+柜体+加工组名称存在累加板件和异形数量,不存在新增groupDO和orderGroupMap缓存
|
||||
if (ObjectUtil.isNull(orderGroupId)) {
|
||||
orderGroupId = (Long) snowFlakeGenerator.nextId(null);
|
||||
OrderGroupDO orderGroupDO = OrderGroupDO
|
||||
if (ObjectUtil.isNull(orderGroupDO)) {
|
||||
Long orderGroupId = (Long) snowFlakeGenerator.nextId(null);
|
||||
orderGroupDO = OrderGroupDO
|
||||
.builder()
|
||||
.id(orderGroupId)
|
||||
.organId(organId)
|
||||
@@ -820,9 +819,10 @@ public class WebCadOrderImportAsyncFactory {
|
||||
orderGroupDO.setCreateTime(now);
|
||||
orderGroupDO.setUpdateTime(now);
|
||||
|
||||
orderGroupMap.put(groupMapKey, orderGroupId);
|
||||
orderGroupDOS.add(orderGroupDO);
|
||||
orderInfoBatchInsertWithinThreshold(orderGroupMapper, orderGroupDOS, false);
|
||||
orderGroupMap.put(groupMapKey, orderGroupDO);
|
||||
} else {
|
||||
orderGroupDO.setPlateNum(orderGroupDO.getPlateNum() + 1);
|
||||
orderGroupDO.setUnregularNum(orderGroupDO.getUnregularNum() + BooleanUtil.toInt(block.isSpecialShape()));
|
||||
}
|
||||
|
||||
OrderItemDO orderItemDO = OrderItemDO
|
||||
@@ -832,7 +832,7 @@ public class WebCadOrderImportAsyncFactory {
|
||||
.type(OrderItemTypeEnum.PLATE_ITEM.getStatus())
|
||||
.roomId(roomId)
|
||||
.bodyId(bodyId)
|
||||
.groupId(orderGroupId)
|
||||
.groupId(orderGroupDO.getId())
|
||||
.plateId(plateId)
|
||||
.packageId(0L)
|
||||
.partsId(0L)
|
||||
@@ -1416,11 +1416,11 @@ public class WebCadOrderImportAsyncFactory {
|
||||
for (Integer groupId : groupIds) {
|
||||
WebCadDataGroupInfoReqVO groupInfo = processGroupMap.get(groupId);
|
||||
String groupMapKey = orderBodyDO.getMultiRoomBodyName() + groupInfo.getGroupName();
|
||||
Long orderGroupId = orderGroupMap.get(groupMapKey);
|
||||
OrderGroupDO orderGroupDO = orderGroupMap.get(groupMapKey);
|
||||
// 房间+柜体+加工组名称存在累加配件item,不存在新增groupDO和orderGroupMap缓存
|
||||
if (ObjectUtil.isNull(orderGroupId)) {
|
||||
orderGroupId = (Long) snowFlakeGenerator.nextId(null);
|
||||
OrderGroupDO orderGroupDO = OrderGroupDO
|
||||
if (ObjectUtil.isNull(orderGroupDO)) {
|
||||
Long orderGroupId = (Long) snowFlakeGenerator.nextId(null);
|
||||
orderGroupDO = OrderGroupDO
|
||||
.builder()
|
||||
.id(orderGroupId)
|
||||
.organId(organId)
|
||||
@@ -1444,9 +1444,7 @@ public class WebCadOrderImportAsyncFactory {
|
||||
orderGroupDO.setCreateTime(now);
|
||||
orderGroupDO.setUpdateTime(now);
|
||||
|
||||
orderGroupMap.put(groupMapKey, orderGroupId);
|
||||
orderGroupDOS.add(orderGroupDO);
|
||||
orderInfoBatchInsertWithinThreshold(orderGroupMapper, orderGroupDOS, false);
|
||||
orderGroupMap.put(groupMapKey, orderGroupDO);
|
||||
}
|
||||
|
||||
OrderItemDO orderItemDO = OrderItemDO
|
||||
@@ -1456,7 +1454,7 @@ public class WebCadOrderImportAsyncFactory {
|
||||
.type(OrderItemTypeEnum.PLATE_ITEM.getStatus())
|
||||
.roomId(roomId)
|
||||
.bodyId(bodyId)
|
||||
.groupId(orderGroupId)
|
||||
.groupId(orderGroupDO.getId())
|
||||
.partsId(part.getImesPartsId())
|
||||
.packageId(0L)
|
||||
.plateId(0L)
|
||||
@@ -1921,7 +1919,7 @@ public class WebCadOrderImportAsyncFactory {
|
||||
private void saveData() {
|
||||
// 分成1000一组
|
||||
List<List<OrderBodyDO>> bodyList = batchProcess(bodyMap.values().stream().toList());
|
||||
List<List<OrderGroupDO>> groupList = batchProcess(orderGroupDOS);
|
||||
List<List<OrderGroupDO>> groupList = batchProcess(orderGroupMap.values().stream().toList());
|
||||
|
||||
// 保存
|
||||
saveBody(bodyList);
|
||||
@@ -2025,7 +2023,6 @@ public class WebCadOrderImportAsyncFactory {
|
||||
|
||||
plateDOS.clear();
|
||||
orderItemDOS.clear();
|
||||
orderGroupDOS.clear();
|
||||
orderPartsDOS.clear();
|
||||
orderModelDOS.clear();
|
||||
rawGoodsDOS.clear();
|
||||
|
||||
+18
-19
@@ -136,8 +136,8 @@ public class WebCadOrderImportFactory {
|
||||
// 柜体缓存
|
||||
private Map<String, OrderBodyDO> bodyMap = new HashMap<>();
|
||||
|
||||
// 房间名+柜体名+加工组名:加工组id
|
||||
private Map<String, Long> orderGroupMap = new HashMap<>();
|
||||
// 房间名+柜体名+加工组名:加工组
|
||||
private Map<String, OrderGroupDO> orderGroupMap = new HashMap<>();
|
||||
|
||||
// 板材缓存:{商品编号:order_goods}
|
||||
private Map<String, Long> materialMap = new HashMap<>();
|
||||
@@ -153,7 +153,6 @@ public class WebCadOrderImportFactory {
|
||||
|
||||
private List<PlateDO> plateDOS = new ArrayList<>();
|
||||
private List<OrderItemDO> orderItemDOS = new ArrayList<>();
|
||||
private List<OrderGroupDO> orderGroupDOS = new ArrayList<>();
|
||||
private List<OrderPartsDO> orderPartsDOS = new ArrayList<>();
|
||||
private List<OrderModelDO> orderModelDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
private List<RawGoodsDO> rawGoodsDOS = new ArrayList<>();
|
||||
@@ -1098,11 +1097,11 @@ public class WebCadOrderImportFactory {
|
||||
for (Integer groupId : groupIds) {
|
||||
WebCadDataGroupInfoReqVO groupInfo = processGroupMap.get(groupId);
|
||||
String groupMapKey = orderBodyDO.getMultiRoomBodyName() + groupInfo.getGroupName();
|
||||
Long orderGroupId = orderGroupMap.get(groupMapKey);
|
||||
OrderGroupDO orderGroupDO = orderGroupMap.get(groupMapKey);
|
||||
// 房间+柜体+加工组名称存在累加板件和异形数量,不存在新增groupDO和orderGroupMap缓存
|
||||
if (ObjectUtil.isNull(orderGroupId)) {
|
||||
orderGroupId = (Long) snowFlakeGenerator.nextId(null);
|
||||
OrderGroupDO orderGroupDO = OrderGroupDO
|
||||
if (ObjectUtil.isNull(orderGroupDO)) {
|
||||
Long orderGroupId = (Long) snowFlakeGenerator.nextId(null);
|
||||
orderGroupDO = OrderGroupDO
|
||||
.builder()
|
||||
.id(orderGroupId)
|
||||
.organId(organId)
|
||||
@@ -1126,8 +1125,10 @@ public class WebCadOrderImportFactory {
|
||||
orderGroupDO.setCreateTime(now);
|
||||
orderGroupDO.setUpdateTime(now);
|
||||
|
||||
orderGroupMap.put(groupMapKey, orderGroupId);
|
||||
orderGroupDOS.add(orderGroupDO);
|
||||
orderGroupMap.put(groupMapKey, orderGroupDO);
|
||||
} else {
|
||||
orderGroupDO.setPlateNum(orderGroupDO.getPlateNum() + 1);
|
||||
orderGroupDO.setUnregularNum(orderGroupDO.getUnregularNum() + BooleanUtil.toInt(block.isSpecialShape()));
|
||||
}
|
||||
|
||||
OrderItemDO orderItemDO = OrderItemDO
|
||||
@@ -1137,7 +1138,7 @@ public class WebCadOrderImportFactory {
|
||||
.type(OrderItemTypeEnum.PLATE_ITEM.getStatus())
|
||||
.roomId(roomId)
|
||||
.bodyId(bodyId)
|
||||
.groupId(orderGroupId)
|
||||
.groupId(orderGroupDO.getId())
|
||||
.plateId(plateId)
|
||||
.packageId(0L)
|
||||
.partsId(0L)
|
||||
@@ -1308,11 +1309,11 @@ public class WebCadOrderImportFactory {
|
||||
for (Integer groupId : groupIds) {
|
||||
WebCadDataGroupInfoReqVO groupInfo = processGroupMap.get(groupId);
|
||||
String groupMapKey = orderBodyDO.getMultiRoomBodyName() + groupInfo.getGroupName();
|
||||
Long orderGroupId = orderGroupMap.get(groupMapKey);
|
||||
OrderGroupDO orderGroupDO = orderGroupMap.get(groupMapKey);
|
||||
// 房间+柜体+加工组名称存在累加配件item,不存在新增groupDO和orderGroupMap缓存
|
||||
if (ObjectUtil.isNull(orderGroupId)) {
|
||||
orderGroupId = (Long) snowFlakeGenerator.nextId(null);
|
||||
OrderGroupDO orderGroupDO = OrderGroupDO
|
||||
if (ObjectUtil.isNull(orderGroupDO)) {
|
||||
Long orderGroupId = (Long) snowFlakeGenerator.nextId(null);
|
||||
orderGroupDO = OrderGroupDO
|
||||
.builder()
|
||||
.id(orderGroupId)
|
||||
.organId(organId)
|
||||
@@ -1336,8 +1337,7 @@ public class WebCadOrderImportFactory {
|
||||
orderGroupDO.setCreateTime(now);
|
||||
orderGroupDO.setUpdateTime(now);
|
||||
|
||||
orderGroupMap.put(groupMapKey, orderGroupId);
|
||||
orderGroupDOS.add(orderGroupDO);
|
||||
orderGroupMap.put(groupMapKey, orderGroupDO);
|
||||
}
|
||||
|
||||
OrderItemDO orderItemDO = OrderItemDO
|
||||
@@ -1347,7 +1347,7 @@ public class WebCadOrderImportFactory {
|
||||
.type(OrderItemTypeEnum.PLATE_ITEM.getStatus())
|
||||
.roomId(roomId)
|
||||
.bodyId(bodyId)
|
||||
.groupId(orderGroupId)
|
||||
.groupId(orderGroupDO.getId())
|
||||
.partsId(part.getImesPartsId())
|
||||
.packageId(0L)
|
||||
.plateId(0L)
|
||||
@@ -1799,7 +1799,7 @@ public class WebCadOrderImportFactory {
|
||||
private void saveData() {
|
||||
// 分成1000一组
|
||||
List<List<OrderBodyDO>> bodyList = batchProcess(bodyMap.values().stream().toList());
|
||||
List<List<OrderGroupDO>> groupList = batchProcess(orderGroupDOS);
|
||||
List<List<OrderGroupDO>> groupList = batchProcess(orderGroupMap.values().stream().toList());
|
||||
|
||||
// 保存
|
||||
saveBody(bodyList);
|
||||
@@ -1926,7 +1926,6 @@ public class WebCadOrderImportFactory {
|
||||
|
||||
plateDOS.clear();
|
||||
orderItemDOS.clear();
|
||||
orderGroupDOS.clear();
|
||||
orderPartsDOS.clear();
|
||||
orderModelDOS.clear();
|
||||
rawGoodsDOS.clear();
|
||||
|
||||
Reference in New Issue
Block a user