From 164a0a18576122ec11168cf64d6eecd4cdcf8bda Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Mon, 19 May 2025 16:45:06 +0800 Subject: [PATCH] =?UTF-8?q?cad=E6=8B=86=E5=8D=95=E6=9F=9C=E4=BD=93?= =?UTF-8?q?=E6=9D=BF=E4=BB=B6=E6=95=B0=E9=87=8F=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebCadOrderImportAsyncFactory.java | 50 +++++++++++-------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/WebCadOrderImportAsyncFactory.java b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/WebCadOrderImportAsyncFactory.java index abef66198..482eb7ad4 100644 --- a/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/WebCadOrderImportAsyncFactory.java +++ b/cf-module-prod-plan/cf-module-prod-plan-biz/src/main/java/com/cf/imes/module/plan/service/orderImport/factory/WebCadOrderImportAsyncFactory.java @@ -589,11 +589,17 @@ public class WebCadOrderImportAsyncFactory { orderModelsBatchInsertWithinThreshold(true); } + /** + * 解析柜体下板件列表 + * + * @param reader + * @param roomName + * @param roomId + */ private void analyzeBlockBodyList(JSONReader reader, String roomName, Long roomId) { reader.startObject(); String boxName = null; - OrderBodyDO orderBodyDO = null; Integer count = 1; while (reader.hasNext()) { String key = reader.readString(); @@ -603,22 +609,13 @@ 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, orderBodyDO, roomName, boxName, block); + multiCreateBodyPlate(count, roomId, roomName, boxName, block); } reader.endArray(); } @@ -630,26 +627,34 @@ public class WebCadOrderImportAsyncFactory { * 成倍创建柜体板件 * * @param count - * @param orderBodyDO + * @param roomId * @param roomName * @param block */ - private void multiCreateBodyPlate(Integer count, OrderBodyDO orderBodyDO, String roomName, String boxName, WebCadDataBlockReqVO block) { + private void multiCreateBodyPlate(Integer count, Long roomId, String roomName, String boxName, WebCadDataBlockReqVO block) { for (int i = 0; i < count; i++) { // 缓存成倍的柜体信息 String multiRoomBodyName = roomName + boxName + i; - orderBodyDO.setMultiRoomBodyName(multiRoomBodyName); - bodyMap.put(multiRoomBodyName, orderBodyDO); + OrderBodyDO orderBodyDO = bodyMap.get(multiRoomBodyName); + if (ObjectUtil.isNull(orderBodyDO)) { + 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); + + orderBodyDO.setMultiRoomBodyName(multiRoomBodyName); + bodyMap.put(multiRoomBodyName, orderBodyDO); + } // 达到阈值了不再创建板件 - if (plateNumReachThreshold) { - continue; - } if (!plateNumReachThreshold) { // 创建板件相关数据:order_plate、order_item、es.orderModels createPlate(orderBodyDO, block); } - } } @@ -673,9 +678,6 @@ public class WebCadOrderImportAsyncFactory { // 是否排孔 boolean isRawHole = (block.getFrontHoleCount() + block.getBackHoleCount()) > 0; - orderBodyDO.setPlateNum(orderBodyDO.getPlateNum() + 1); - orderBodyDO.setUnregularNum(orderBodyDO.getUnregularNum() + BooleanUtil.toInt(isSpecialShape)); - // 柜体长宽深 orderBodyDO.setWidth(block.getCabinetWidth()); orderBodyDO.setHeight(block.getCabinetHeight()); @@ -762,6 +764,10 @@ public class WebCadOrderImportAsyncFactory { plateNumReachThreshold = true; return; } + // 更新房间下板件和异形的数量 + orderBodyDO.setPlateNum(orderBodyDO.getPlateNum() + 1); + orderBodyDO.setUnregularNum(orderBodyDO.getUnregularNum() + BooleanUtil.toInt(isSpecialShape)); + plateDOS.add(plateDO); orderPlateBatchInsertWithinThreshold(plateDOS, false);