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:
+28
-22
@@ -589,11 +589,17 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
orderModelsBatchInsertWithinThreshold(true);
|
orderModelsBatchInsertWithinThreshold(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解析柜体下板件列表
|
||||||
|
*
|
||||||
|
* @param reader
|
||||||
|
* @param roomName
|
||||||
|
* @param roomId
|
||||||
|
*/
|
||||||
private void analyzeBlockBodyList(JSONReader reader, String roomName, Long roomId) {
|
private void analyzeBlockBodyList(JSONReader reader, String roomName, Long roomId) {
|
||||||
reader.startObject();
|
reader.startObject();
|
||||||
|
|
||||||
String boxName = null;
|
String boxName = null;
|
||||||
OrderBodyDO orderBodyDO = null;
|
|
||||||
Integer count = 1;
|
Integer count = 1;
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
String key = reader.readString();
|
String key = reader.readString();
|
||||||
@@ -603,22 +609,13 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
// 获取缓存中的成本数量
|
// 获取缓存中的成本数量
|
||||||
count = roomBodyMap.get(roomName + boxName);
|
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)) {
|
} else if ("blockList".equals(key)) {
|
||||||
// Blocks.children.blockList开始
|
// Blocks.children.blockList开始
|
||||||
reader.startArray();
|
reader.startArray();
|
||||||
while (reader.hasNext()) {
|
while (reader.hasNext()) {
|
||||||
WebCadDataBlockReqVO block = reader.readObject(WebCadDataBlockReqVO.class);
|
WebCadDataBlockReqVO block = reader.readObject(WebCadDataBlockReqVO.class);
|
||||||
// 成倍创建
|
// 成倍创建
|
||||||
multiCreateBodyPlate(count, orderBodyDO, roomName, boxName, block);
|
multiCreateBodyPlate(count, roomId, roomName, boxName, block);
|
||||||
}
|
}
|
||||||
reader.endArray();
|
reader.endArray();
|
||||||
}
|
}
|
||||||
@@ -630,26 +627,34 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
* 成倍创建柜体板件
|
* 成倍创建柜体板件
|
||||||
*
|
*
|
||||||
* @param count
|
* @param count
|
||||||
* @param orderBodyDO
|
* @param roomId
|
||||||
* @param roomName
|
* @param roomName
|
||||||
* @param block
|
* @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++) {
|
for (int i = 0; i < count; i++) {
|
||||||
// 缓存成倍的柜体信息
|
// 缓存成倍的柜体信息
|
||||||
String multiRoomBodyName = roomName + boxName + i;
|
String multiRoomBodyName = roomName + boxName + i;
|
||||||
orderBodyDO.setMultiRoomBodyName(multiRoomBodyName);
|
OrderBodyDO orderBodyDO = bodyMap.get(multiRoomBodyName);
|
||||||
bodyMap.put(multiRoomBodyName, orderBodyDO);
|
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) {
|
if (!plateNumReachThreshold) {
|
||||||
// 创建板件相关数据:order_plate、order_item、es.orderModels
|
// 创建板件相关数据:order_plate、order_item、es.orderModels
|
||||||
createPlate(orderBodyDO, block);
|
createPlate(orderBodyDO, block);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -673,9 +678,6 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
// 是否排孔
|
// 是否排孔
|
||||||
boolean isRawHole = (block.getFrontHoleCount() + block.getBackHoleCount()) > 0;
|
boolean isRawHole = (block.getFrontHoleCount() + block.getBackHoleCount()) > 0;
|
||||||
|
|
||||||
orderBodyDO.setPlateNum(orderBodyDO.getPlateNum() + 1);
|
|
||||||
orderBodyDO.setUnregularNum(orderBodyDO.getUnregularNum() + BooleanUtil.toInt(isSpecialShape));
|
|
||||||
|
|
||||||
// 柜体长宽深
|
// 柜体长宽深
|
||||||
orderBodyDO.setWidth(block.getCabinetWidth());
|
orderBodyDO.setWidth(block.getCabinetWidth());
|
||||||
orderBodyDO.setHeight(block.getCabinetHeight());
|
orderBodyDO.setHeight(block.getCabinetHeight());
|
||||||
@@ -762,6 +764,10 @@ public class WebCadOrderImportAsyncFactory {
|
|||||||
plateNumReachThreshold = true;
|
plateNumReachThreshold = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 更新房间下板件和异形的数量
|
||||||
|
orderBodyDO.setPlateNum(orderBodyDO.getPlateNum() + 1);
|
||||||
|
orderBodyDO.setUnregularNum(orderBodyDO.getUnregularNum() + BooleanUtil.toInt(isSpecialShape));
|
||||||
|
|
||||||
plateDOS.add(plateDO);
|
plateDOS.add(plateDO);
|
||||||
orderPlateBatchInsertWithinThreshold(plateDOS, false);
|
orderPlateBatchInsertWithinThreshold(plateDOS, false);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user