From 82e388372c234a04122c7ce8ec3f3058bdf85b89 Mon Sep 17 00:00:00 2001 From: lym <1994302445@qq.com> Date: Thu, 25 Apr 2024 11:09:39 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/util/deviseData/Detail.java | 11 +- .../executor/util/deviseData/group.java | 24 +++++ .../api/webcad/ApiTypeChangeRealize.java | 102 +++++++----------- .../system/enums/ErrorCodeConstants.java | 1 + .../service/process/ProcessServiceImpl.java | 9 ++ 5 files changed, 80 insertions(+), 67 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/group.java diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/Detail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/Detail.java index 3b18a3cb8..a0a2f62c2 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/Detail.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/Detail.java @@ -18,14 +18,21 @@ import java.util.List; @NoArgsConstructor @Accessors(chain = false) // 设置 chain = false,避免生产单导入有问 public class Detail { +// 柜体成倍拆单数据 private Integer multiNum; // 柜体 长 宽 深 private Double width; private Double height; private Double depth; -// 板件和配件基本属性信息,通过goodType进行区分 - private IBoardProdInfo iBoardProdInfo; +// 板材所属加工组 + private List group;// 板件加工组Group的名称,可以有多个 + private String groupName;// 加工组中Group中每个小加工组的名称 + +// 大板信息 + private IBoardProdInfo plateInfo; +// 配件信息 + private List partsInfo ; private List contourDetail ; //轮廓明细 private List pointDetail ; //点明细 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/group.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/group.java new file mode 100644 index 000000000..1e3861667 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/group.java @@ -0,0 +1,24 @@ +package com.cf.imes.module.executor.util.deviseData; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 加工组信息 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class group +{ + private String name; + + private Double width; + + private Double height; + + private Double depth; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeChangeRealize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeChangeRealize.java index 9b52b5e13..6e7116777 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeChangeRealize.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeChangeRealize.java @@ -47,10 +47,7 @@ public class ApiTypeChangeRealize implements FileTypeChangeUtil { public static void main(String[] args) { - String jsonData = "" ; - JSONObject jsonObject = JSONObject.parseObject(jsonData); - -// System.out.println(jsonObject.getString("Orders")); + String jsonData = "{\"Orders\":[{\"OrderNo\":20240423031255,\"CustomOrderNo\":\"\",\"CustomNo\":1538,\"CustomName\":\"sqy_cf\",\"SalePerson\":\"sqy_cf\",\"SaleDate\":\"2024-04-23\",\"DeliveryDate\":\"2024-05-13\",\"Consigee\":\"sasa\",\"ConsigeePhone\":\"11111111111\",\"ConsigeeAddress\":\"dswd\",\"Remark\":\"\",\"Materials\":[{\"Name\":\"F-A330铁力木(颗粒板)\",\"GoodsID\":517,\"GoodsSN\":\"\",\"Specification\":\"2440*1220*18\",\"Material\":\"颗粒板\",\"Color\":\"F-A330铁力木\",\"Thickness\":18,\"Width\":1220,\"Length\":2440,\"WaveFlag\":true,\"Blocks\":[{\"BlockNo\":2404003442164,\"RoomName\":\"主卧\",\"BoxNo\":\"\",\"BoxName\":\"下柜\",\"BlockID\":4289996,\"CustomNo\":\"\",\"BlockName\":\"右侧板\",\"OpenDoorType\":0,\"Remark1\":\"\",\"Remark2\":\"\",\"Remark3\":\"\",\"Remark4\":\"\",\"Remark5\":\"\",\"ExtraRemark\":{\"drills\":[{\"name\":\"三合一\",\"type\":\"预埋件\",\"face\":\"反面\",\"count\":2},{\"name\":\"木销\",\"type\":\"预埋件\",\"face\":\"反面\",\"count\":2}],\"extra\":{\"boardType\":\"立板\",\"throughHoleCount\":0,\"throughModelCount\":0,\"has2DModel\":false,\"has3DModel\":false,\"composingFace\":\"任意面\",\"processList\":[],\"edgeRemarks\":[\"\",\"\",\"\",\"\"]}},\"ProcessGroupName\":\"\",\"Width\":\"600\",\"Length\":\"2000\",\"Size\":\"1.2\",\"CuttingWidth\":\"598\",\"CuttingLength\":\"1998\",\"CuttingSize\":\"1.195\",\"BorderLeft\":1,\"BorderRight\":1,\"BorderUpper\":1,\"BorderUnder\":1,\"Wave\":0,\"PlaceFace\":2,\"IsUnRegular\":false,\"OffsetX\":\"1\",\"OffsetY\":\"1\",\"Points\":[],\"OrgPoints\":[],\"Holes\":[{\"X\":\"49\",\"Y\":\"999\",\"Face\":1,\"Diameter\":\"5\",\"Depth\":\"13.5\"},{\"X\":\"549\",\"Y\":\"999\",\"Face\":1,\"Diameter\":\"5\",\"Depth\":\"13.5\"},{\"X\":\"81\",\"Y\":\"999\",\"Face\":1,\"Diameter\":\"8\",\"Depth\":\"13.5\"},{\"X\":\"517\",\"Y\":\"999\",\"Face\":1,\"Diameter\":\"8\",\"Depth\":\"13.5\"}],\"Models\":[],\"SideHoles\":[]},{\"BlockNo\":2404003442163,\"RoomName\":\"主卧\",\"BoxNo\":\"\",\"BoxName\":\"下柜\",\"BlockID\":4289995,\"CustomNo\":\"\",\"BlockName\":\"左侧板\",\"OpenDoorType\":0,\"Remark1\":\"\",\"Remark2\":\"\",\"Remark3\":\"\",\"Remark4\":\"\",\"Remark5\":\"\",\"ExtraRemark\":{\"drills\":[{\"name\":\"三合一\",\"type\":\"预埋件\",\"face\":\"正面\",\"count\":2},{\"name\":\"木销\",\"type\":\"预埋件\",\"face\":\"正面\",\"count\":2}],\"extra\":{\"boardType\":\"立板\",\"throughHoleCount\":0,\"throughModelCount\":0,\"has2DModel\":false,\"has3DModel\":false,\"composingFace\":\"任意面\",\"processList\":[],\"edgeRemarks\":[\"\",\"\",\"\",\"\"]}},\"ProcessGroupName\":\"\",\"Width\":\"600\",\"Length\":\"2000\",\"Size\":\"1.2\",\"CuttingWidth\":\"598\",\"CuttingLength\":\"1998\",\"CuttingSize\":\"1.195\",\"BorderLeft\":1,\"BorderRight\":1,\"BorderUpper\":1,\"BorderUnder\":1,\"Wave\":0,\"PlaceFace\":2,\"IsUnRegular\":false,\"OffsetX\":\"1\",\"OffsetY\":\"1\",\"Points\":[],\"OrgPoints\":[],\"Holes\":[{\"X\":\"49\",\"Y\":\"999\",\"Face\":0,\"Diameter\":\"5\",\"Depth\":\"13.5\"},{\"X\":\"549\",\"Y\":\"999\",\"Face\":0,\"Diameter\":\"5\",\"Depth\":\"13.5\"},{\"X\":\"81\",\"Y\":\"999\",\"Face\":0,\"Diameter\":\"8\",\"Depth\":\"13.5\"},{\"X\":\"517\",\"Y\":\"999\",\"Face\":0,\"Diameter\":\"8\",\"Depth\":\"13.5\"}],\"Models\":[],\"SideHoles\":[]},{\"BlockNo\":2404003442162,\"RoomName\":\"主卧\",\"BoxNo\":\"\",\"BoxName\":\"下柜\",\"BlockID\":4289994,\"CustomNo\":\"\",\"BlockName\":\"层板\",\"OpenDoorType\":0,\"Remark1\":\"\",\"Remark2\":\"\",\"Remark3\":\"\",\"Remark4\":\"\",\"Remark5\":\"\",\"ExtraRemark\":{\"drills\":[{\"name\":\"三合一\",\"type\":\"偏心轮\",\"face\":\"反面\",\"count\":4},{\"name\":\"三合一\",\"type\":\"连接杆\",\"face\":\"下侧面\",\"count\":2},{\"name\":\"木销\",\"type\":\"连接杆\",\"face\":\"下侧面\",\"count\":2},{\"name\":\"三合一\",\"type\":\"连接杆\",\"face\":\"上侧面\",\"count\":2},{\"name\":\"木销\",\"type\":\"连接杆\",\"face\":\"上侧面\",\"count\":2}],\"extra\":{\"boardType\":\"层板\",\"throughHoleCount\":0,\"throughModelCount\":0,\"has2DModel\":false,\"has3DModel\":false,\"composingFace\":\"任意面\",\"processList\":[],\"edgeRemarks\":[\"\",\"\",\"\",\"\"]}},\"ProcessGroupName\":\"\",\"Width\":\"600\",\"Length\":\"1164\",\"Size\":\"0.698\",\"CuttingWidth\":\"598.2\",\"CuttingLength\":\"1162.8\",\"CuttingSize\":\"0.696\",\"BorderLeft\":1.2,\"BorderRight\":0.6,\"BorderUpper\":0.6,\"BorderUnder\":0.6,\"Wave\":0,\"PlaceFace\":2,\"IsUnRegular\":false,\"OffsetX\":\"1.2\",\"OffsetY\":\"0.6\",\"Points\":[],\"OrgPoints\":[],\"Holes\":[{\"X\":\"48.8\",\"Y\":\"1129.4\",\"Face\":1,\"Diameter\":\"15\",\"Depth\":\"13.5\"},{\"X\":\"548.8\",\"Y\":\"1129.4\",\"Face\":1,\"Diameter\":\"15\",\"Depth\":\"13.5\"},{\"X\":\"48.8\",\"Y\":\"33.4\",\"Face\":1,\"Diameter\":\"15\",\"Depth\":\"13.5\"},{\"X\":\"548.8\",\"Y\":\"33.4\",\"Face\":1,\"Diameter\":\"15\",\"Depth\":\"13.5\"}],\"Models\":[],\"SideHoles\":[{\"StartPoint\":\"50,1164,-9\",\"EndPoint\":\"50,1130,-9\",\"Diameter\":\"8\",\"Depth\":\"34\",\"Direction\":1},{\"StartPoint\":\"550,1164,-9\",\"EndPoint\":\"550,1130,-9\",\"Diameter\":\"8\",\"Depth\":\"34\",\"Direction\":1},{\"StartPoint\":\"82,1164,-9\",\"EndPoint\":\"82,1130,-9\",\"Diameter\":\"8\",\"Depth\":\"34\",\"Direction\":1},{\"StartPoint\":\"518,1164,-9\",\"EndPoint\":\"518,1130,-9\",\"Diameter\":\"8\",\"Depth\":\"34\",\"Direction\":1},{\"StartPoint\":\"50,0,-9\",\"EndPoint\":\"50,34,-9\",\"Diameter\":\"8\",\"Depth\":\"34\",\"Direction\":3},{\"StartPoint\":\"550,0,-9\",\"EndPoint\":\"550,34,-9\",\"Diameter\":\"8\",\"Depth\":\"34\",\"Direction\":3},{\"StartPoint\":\"82,0,-9\",\"EndPoint\":\"82,34,-9\",\"Diameter\":\"8\",\"Depth\":\"34\",\"Direction\":3},{\"StartPoint\":\"518,0,-9\",\"EndPoint\":\"518,34,-9\",\"Diameter\":\"8\",\"Depth\":\"34\",\"Direction\":3}]}]}]}]}"; // 解析 JSON 字符串 JSONObject object = JSON.parseObject(jsonData); @@ -60,73 +57,48 @@ public class ApiTypeChangeRealize implements FileTypeChangeUtil { // 如果 Orders 数组不为空,则获取第一个订单对象 if (ordersArray != null && !ordersArray.isEmpty()) { - JSONObject value = ordersArray.getJSONObject(0); - - // 使用 DateTimeFormatter 解析日期字符串 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - LocalDate deliveryDate = LocalDate.parse(value.getString("DeliveryDate"), formatter); - - OrderDO orderDO = OrderDO.builder() - .parentNo(0L) - .type(true) - .sort(0) - .dataType(1) - .status(0) - .customOrderNo(value.getString("OrderNo")) - .customer(value.getString("Consigee")) - .address(value.getString("ConsigeeAddress")) - .phoneNumber(value.getString("ConsigeePhone")) - .dealer(value.getString("CustomName")) - .salesman(value.getString("SalePerson")) - .remark(value.getString("Remark")) - .deliveryDate(deliveryDate.atStartOfDay()) - .build(); - -// System.out.println("orderDO 差生产单的创建日期、拆单员、经销商电话数据," + orderDO); - - List details = new ArrayList<>(); - // 遍历 Orders 数组 + // 获取生产单信息 for (int i = 0; i < ordersArray.size(); i++) { - JSONObject orderObject = ordersArray.getJSONObject(i); + JSONObject order = ordersArray.getJSONObject(i); - // 获取订单的 Materials 数组 - JSONArray materialsArray = orderObject.getJSONArray("Materials"); + // 使用 DateTimeFormatter 解析日期字符串 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter); - // 遍历 Materials 数组 - for (int j = 0; j < materialsArray.size(); j++) { - JSONObject materialObject = materialsArray.getJSONObject(j); + OrderDO orderDO = OrderDO.builder() + .parentNo(0L) + .type(true) + .sort(0) + .dataType(1) + .status(0) + .customOrderNo(order.getString("OrderNo")) + .customer(order.getString("Consigee")) + .address(order.getString("ConsigeeAddress")) + .phoneNumber(order.getString("ConsigeePhone")) + .dealer(order.getString("CustomName")) + .salesman(order.getString("SalePerson")) + .remark(order.getString("Remark")) + .deliveryDate(deliveryDate.atStartOfDay()) + .build(); - // 处理每个材料对象,这里可以根据需要进行操作 - System.out.println("Material " + (j + 1) + ": " + materialObject); + // 获取材料信息 + if (order.getJSONArray("Materials") != null && !order.getJSONArray("Materials").isEmpty()) { + for (int j = 0; j < order.getJSONArray("Materials").size(); j++) { + JSONObject material = order.getJSONArray("Materials").getJSONObject(j); + + // 板件信息 + if (material.getJSONArray("Blocks") != null && !material.getJSONArray("Blocks").isEmpty()) { + for (int k = 0; k < material.getJSONArray("Blocks").size(); k++) { + JSONObject block = material.getJSONArray("Blocks").getJSONObject(k);// 每块板 + + + } + } + } - JSONArray blocksArray = materialObject.getJSONArray("Blocks"); - System.out.println(blocksArray.size()); - for (int k = 0; k < blocksArray.size(); k++) { - JSONObject blockObject = materialsArray.getJSONObject(k); -// - // 处理每个块对象,这里可以根据需要进行操作 - System.out.println("Block " + (k + 1) + ": " + blockObject.getString("RoomName")); -// -// for (int l = 0; l < materialsArray.size(); l++) { -// JSONObject holeObject = materialsArray.getJSONObject(l); -// -// // 处理每个孔对象,这里可以根据需要进行操作 -// } - } -// PlateDetail plateDetail = PlateDetail.builder() -// .multiNum(1) -// .roomsName(materialObject.getString("RoomName")) -// .bodyName(materialObject.getString("BoxName")) -// .iBoardProdInfo(IBoardProdInfo.builder() -// .goodsNo(materialObject.getString("GoodsSN")) -// .goodsName(materialObject.getString("Name")) -// .material(materialObject.getString("Material")) -// .color(materialObject.getString("Color")) -// -// .build()) -// .build(); } } + } else { System.out.println("JSON 数据中没有订单信息(Orders 数组为空)。"); } @@ -138,7 +110,7 @@ public class ApiTypeChangeRealize implements FileTypeChangeUtil { return null; } -// 将remark转为map + // 将remark转为map public Map remarkToMap(String[] remark) { Map map = new HashMap<>(); diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index 724d8e99e..6d95b54e5 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -180,6 +180,7 @@ public interface ErrorCodeConstants { //=========== 工序信息 1-002-028-000 ============ ErrorCode PROCESS_NOT_EXISTS = new ErrorCode(1_002_028_000, "工序不存在"); ErrorCode PROCESS_ID_IS_NULL = new ErrorCode(1_002_028_000, "工序ID填写错误不存在"); + ErrorCode PROCESS_STATUS_DISABLE = new ErrorCode(1_002_028_000, "工序状态以已禁用"); //=========== 工序组信息 1-002-029-000 ============ ErrorCode PROCESS_GROUP_NOT_EXISTS = new ErrorCode(1_002_029_000, "工序组不存在"); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessServiceImpl.java index db4a0ef06..e4f0337fd 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/process/ProcessServiceImpl.java @@ -83,6 +83,8 @@ public class ProcessServiceImpl implements ProcessService { public void updateProcess(ProcessUserSaveReqVO updateReqVO) { // 校验存在 validateProcessExists(updateReqVO.getId()); + // 校验状态 + validateProcessStatus(updateReqVO.getId()); ProcessDO updateProcess = BeanUtils.toBean(updateReqVO, ProcessDO.class); processUserService.deleteProcessUserByProcess(updateReqVO.getId()); @@ -123,6 +125,13 @@ public class ProcessServiceImpl implements ProcessService { } } + private void validateProcessStatus(Long id) { + ProcessDO process = processMapper.selectById(id); + if (process != null && process.getIsEnabled() == Boolean.FALSE) { + throw exception(PROCESS_STATUS_DISABLE); + } + } + @Override public ProcessUserRespVO getProcess(Long id) { // 校验存在