From b7acf4d4363902a0cc4eda2d81adf074d69bd9f2 Mon Sep 17 00:00:00 2001 From: lym <1994302445@qq.com> Date: Tue, 10 Sep 2024 15:47:46 +0800 Subject: [PATCH] =?UTF-8?q?xml=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/enums/DictTypeConstants.java | 19 + .../admin/order/OrderController.java | 70 ++-- .../dataobject/ordermodel/OrderModelDO.java | 14 +- .../executor/service/order/OrderService.java | 10 +- .../service/order/OrderServiceImpl.java | 38 +- .../{dataTwo => structure}/BasePosition.java | 8 +- .../{dataTwo => structure}/BoardInfo.java | 2 +- .../{dataTwo => structure}/BodyInfo.java | 2 +- .../{dataTwo => structure}/DrillsInfo.java | 2 +- .../{dataTwo => structure}/Group.java | 2 +- .../{dataTwo => structure}/HoleDetail.java | 2 +- .../{dataTwo => structure}/IContourData.java | 2 +- .../IOriginModelingData.java | 2 +- .../{dataTwo => structure}/ModelDetail.java | 3 +- .../{dataTwo => structure}/OffSetList.java | 2 +- .../{dataTwo => structure}/PartsInfo.java | 2 +- .../{dataTwo => structure}/PlateDetail.java | 7 +- .../{dataTwo => structure}/PointDetail.java | 2 +- .../{dataTwo => structure}/PointList.java | 2 +- .../admin/api/webcad/ApiTypeRealize.java | 6 +- .../admin/files/excel/ExcelReadUtil.java | 5 +- .../admin/files/excel/ExcelTypeRealize.java | 3 +- .../admin/files/xml/VO/AssemblyXmlVO.java | 17 +- .../admin/files/xml/VO/BlockXmlVO.java | 24 ++ .../admin/files/xml/VO/BoxXmlVO.java | 24 ++ .../admin/files/xml/VO/EdgingXmlVO.java | 17 +- .../admin/files/xml/VO/GroupXmlVO.java | 5 +- .../admin/files/xml/VO/GroupXmlVOS.java | 2 +- .../admin/files/xml/VO/HardwareXmlVO.java | 16 +- .../admin/files/xml/VO/HoleXmlVO.java | 2 +- .../admin/files/xml/VO/ModuleXmlVO.java | 16 +- .../admin/files/xml/VO/ModuleXmlVOS.java | 2 +- .../admin/files/xml/XMLReadUtil.java | 84 +++- .../admin/files/xml/XmlTypeRealize.java | 387 ++++++++++++------ .../fileConversion/admin/files/xml/test.java | 24 -- .../main/resources/type/order_add_excel.xlsx | Bin 28949 -> 28891 bytes .../manage/enums/DictTypeConstants.java | 2 +- .../admin/plate/PlateController.java | 8 +- .../admin/plate/RemainPlateController.java | 4 +- .../plate/vo/remain/RemainPlateUptReqVO.java | 2 +- .../system/enums/DictTypeConstants.java | 12 +- 41 files changed, 586 insertions(+), 267 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/DictTypeConstants.java rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/BasePosition.java (65%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/BoardInfo.java (93%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/BodyInfo.java (89%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/DrillsInfo.java (86%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/Group.java (83%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/HoleDetail.java (95%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/IContourData.java (91%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/IOriginModelingData.java (94%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/ModelDetail.java (91%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/OffSetList.java (95%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/PartsInfo.java (96%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/PlateDetail.java (94%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/PointDetail.java (93%) rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/{dataTwo => structure}/PointList.java (93%) delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/test.java diff --git a/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/DictTypeConstants.java b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/DictTypeConstants.java new file mode 100644 index 000000000..e478f08a7 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-api/src/main/java/com/cf/imes/module/executor/enums/DictTypeConstants.java @@ -0,0 +1,19 @@ +package com.cf.imes.module.executor.enums; + +/** + * executor 字典类型的枚举类 + */ +public interface DictTypeConstants { + + // ========== PLATE 模块 ========== + String TYPOGRAPHY_TYPE = "typographyType"; // 排版面 + String GRAIN_TYPE = "grainType";// 小板纹路类型 + String DOOR_OPENING_DIRECTIONS = "doorOpeningDirections";//开门方向 + String PLATE_TYPE = "order_plate_type"; // 板类型 + + + // ========== HOLE 模块 ========== + String HOLE_FACE = "hole_face";//孔加工面 + String HOLE_DIR = "hole_direction";// 孔方向 + String HOLE_TYPE = "hole_type";//孔类型 +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java index 8774c89be..c5f1cda5f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java @@ -21,6 +21,7 @@ import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.ExcelRe import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPlateImportExcelVO; import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO; import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XMLReadUtil; +import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlTypeRealize; import io.swagger.v3.oas.annotations.Parameters; import lombok.extern.slf4j.Slf4j; import org.springdoc.webmvc.core.RequestService; @@ -92,7 +93,7 @@ public class OrderController { private IdentifierGenerator identifierGenerator; @Resource - private ThreadPoolTaskExecutor asyncExecutor; + private XmlTypeRealize xmlTypeRealize; @PutMapping("/update") @@ -295,6 +296,10 @@ public class OrderController { try { List list = null; OrderDO orderDO = new OrderDO(); + OrderXmlVO orderXmlVO = null; + + Map mapOrder = null; + String err = ""; if (type == 0) { //excel excelReadUtil.setErr(0); @@ -305,42 +310,51 @@ public class OrderController { return; } else { list = (List) map.get("plate"); - - if (index == null || index == 0) { // 整单导入 - Map mapOrder = (Map) map.get("order"); - - orderDO = ((OrderDO) mapOrder.get("order")).setOrderType(OrderTypeEnum.MAIN_ORDER.getStatus()); - String err = ((String) mapOrder.get("error")); - - if (!orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) { - err += orderDO.getCustomOrderNo() + "-自定义生产单号已存在;"; - } - if (!err.equals("")) { - ExcelWriterUtil.writeErr(response, err, orderService.getSavePath() + File.separator + "order_err.xlsx"); - return; - } - if (list.size() == 0) { - orderDO.setStatus(OrderStatusEnum.EMPTY.getStatus()); - } else { - orderDO.setStatus(OrderStatusEnum.NEW_ORDER.getStatus()); - } - } else { // 板材导入 - orderDO = orderService.getOrder(orderId); + mapOrder = (Map) map.get("order"); + if (list.size() == 0) { + orderDO.setStatus(OrderStatusEnum.EMPTY.getStatus()); + } else { + orderDO.setStatus(OrderStatusEnum.NEW_ORDER.getStatus()); } } } else if (type == 1) { // json } else if (type == 2) { // xml - - OrderXmlVO orderXmlVO = (OrderXmlVO) XMLReadUtil.read(file, OrderXmlVO.class); - - System.out.println("orderXmlVO = " + orderXmlVO); + orderXmlVO = (OrderXmlVO) XMLReadUtil.read(file, OrderXmlVO.class); + // 数据内容正确判断 +// if(){ +// +// } + assert orderXmlVO != null; + mapOrder = xmlTypeRealize.changeOrder(orderXmlVO, getUserOrganId()); + if (orderXmlVO.getMaterialXmlVO().getPlateXmlVOS().getPlateXmlVOList().size() == 0) { + orderDO.setStatus(OrderStatusEnum.EMPTY.getStatus()); + } else { + orderDO.setStatus(OrderStatusEnum.NEW_ORDER.getStatus()); + } } - orderService.importExcelData(orderDO, list, index); + if (index == null || index == 0) { // 整单导入 + assert mapOrder != null; + orderDO = (OrderDO) mapOrder.get("order"); + err = ((String) mapOrder.get("error")); + orderDO.setOrderType(OrderTypeEnum.MAIN_ORDER.getStatus()); + if (!orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) { + err += orderDO.getCustomOrderNo() + "-自定义生产单号已存在;"; + } + if (!err.equals("")) { + ExcelWriterUtil.writeErr(response, err, orderService.getSavePath() + File.separator + "order_err.xlsx"); + return; + } + + } else { // 板材导入 + orderDO = orderService.getOrder(orderId); + } + + orderService.importExcelData(orderDO, list, index, orderXmlVO); } catch (Exception e) { - ExcelWriterUtil.writeErr(response, "系统出现未知错误,请下载模板,按照模板重新上传文件", orderService.getSavePath() + File.separator + "order_err.xlsx"); + ExcelWriterUtil.writeErr(response, "系统出现未知错误,请下载模板,按照模板重新上传文件,注意编码格式", orderService.getSavePath() + File.separator + "order_err.xlsx"); log.error("导入文件出现异常", e); } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/ordermodel/OrderModelDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/ordermodel/OrderModelDO.java index 1f4260aaa..5060178f4 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/ordermodel/OrderModelDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/ordermodel/OrderModelDO.java @@ -1,11 +1,10 @@ package com.cf.imes.module.executor.dal.dataobject.ordermodel; -import com.alibaba.fastjson.JSONObject; -import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.es.core.dal.ESDocument; -import com.cf.imes.module.executor.util.deviseData.dataTwo.HoleDetail; -import com.cf.imes.module.executor.util.deviseData.dataTwo.ModelDetail; -import com.cf.imes.module.executor.util.deviseData.dataTwo.PointDetail; +import com.cf.imes.module.executor.util.deviseData.structure.BasePosition; +import com.cf.imes.module.executor.util.deviseData.structure.HoleDetail; +import com.cf.imes.module.executor.util.deviseData.structure.ModelDetail; +import com.cf.imes.module.executor.util.deviseData.structure.PointDetail; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; @@ -32,6 +31,11 @@ public class OrderModelDO extends ESDocument { @Schema(description = "小板id") private Long plateId; + @Schema(description = "柜体的基点坐标") + private BasePosition bodyBasePosition; // 板件基准点坐标 + @Schema(description = "板件的基点坐标") + private BasePosition plateBasePosition; // 板件基准点坐标 + @Schema(description = "纹路 纹路(0正纹1可翻转2反纹)") private Integer texture; @Schema(description = "排版面 排钻类型(0正面1反面2随意面)") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java index 8225576bf..9c0696d42 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java @@ -9,21 +9,15 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.*; import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderRoomBodyRespVO; import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO; -import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.framework.common.pojo.PageResult; -import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO; +import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO; import org.springframework.boot.system.ApplicationHome; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.multipart.MultipartFile; import java.io.File; -import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutionException; /** * 生产单表 order_{N} Service 接口 @@ -113,7 +107,7 @@ public interface OrderService { /** * 文件数据导入 */ - void importExcelData(OrderDO orderDO, List list, Integer index); + void importExcelData(OrderDO orderDO, List list, Integer index, OrderXmlVO orderXmlVO); /** * 生产导入文件模板下载 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java index 0e1fd29a1..1e4a22a9e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java @@ -1,7 +1,5 @@ package com.cf.imes.module.executor.service.order; -import cn.smallbun.screw.core.util.CollectionUtils; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; @@ -13,7 +11,6 @@ import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.organ.core.context.OrganContextHolder; -import com.cf.imes.framework.web.core.util.WebFrameworkUtils; import com.cf.imes.module.executor.controller.admin.order.vo.order.*; import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderRoomBodyRespVO; @@ -43,11 +40,12 @@ import com.cf.imes.module.executor.dal.mysql.rawgoods.RawGoodsMapper; import com.cf.imes.module.executor.enums.OrderDeletedEnum; import com.cf.imes.module.executor.enums.OrderStatusEnum; import com.cf.imes.framework.common.enums.OrderPackageStatusEnum; -import com.cf.imes.module.executor.util.deviseData.dataTwo.PlateDetail; +import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail; import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiDataAchieve; import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeRealize; import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.ExcelTypeRealize; -import org.springframework.scheduling.annotation.Async; +import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO; +import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlTypeRealize; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -68,7 +66,6 @@ import java.time.*; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; -import java.util.concurrent.ExecutionException; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -78,8 +75,6 @@ import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.ge import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; -import org.springframework.web.context.request.RequestAttributes; -import org.springframework.web.context.request.RequestContextHolder; /** * 生产单表 order_{N} Service 实现类 @@ -144,6 +139,9 @@ public class OrderServiceImpl implements OrderService { public static final String ORDER_PARTS_REMARK_MODEL = "imes_order_parts_remark_model"; + @Resource + private XmlTypeRealize xmlTypeRealize; + @Override public void updateOrder(OrderSaveReqVO updateReqVO) { // 校验存在, 生产单未删除 @@ -425,14 +423,18 @@ public class OrderServiceImpl implements OrderService { @Override @Transactional(rollbackFor = Exception.class) - public void importExcelData(OrderDO orderDO, List list, Integer index) { + public void importExcelData(OrderDO orderDO, List list, Integer index, OrderXmlVO orderXmlVO) { if (index == null || index == 0) { orderDO.setId((Long) snowFlakeGenerator.nextId(null)); orderMapper.insert(orderDO); } + Map> listMap = null; - if (list.size() > 0) { - Map> listMap = excelTypeRealize.changeDate(list, orderDO.getId()); + if (list != null && list.size() > 0) { + listMap = excelTypeRealize.changeDate(list, orderDO.getId()); + } else if (orderXmlVO != null) { + listMap = xmlTypeRealize.goodsInfoChange(orderXmlVO, orderDO.getId(), getUserOrganId()); + } List rawGoodsDO = (List) listMap.get("rawGoodsDOS"); List goodsDO = (List) listMap.get("goodsDOS"); @@ -443,6 +445,7 @@ public class OrderServiceImpl implements OrderService { List itemDO = (List) listMap.get("orderItemDOS"); List orderModelDOS = (List) listMap.get("orderModelDOS"); List orderPartsRemarks = (List) listMap.get("orderPartsRemarks"); + List plateDetail = (List) listMap.get("plateDetail"); // 板材库匹配 Map> map = getPlateGoods(goodsDO);// 检验商品板材信息是否存在 excel goodsDO = (List) map.get("goodsDO"); @@ -465,13 +468,20 @@ public class OrderServiceImpl implements OrderService { } } orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, itemDO, goodsDO, plateGoodDOS); - if (orderModelDOS.size() > 0) { + if (orderModelDOS != null && orderModelDOS.size() > 0) { orderInputProcessor.batchSaveModel(orderModelDOS); } - if (orderPartsRemarks.size() > 0) { + if (plateDetail != null){ + List orderModelDOs = BeanUtils.toBean(plateDetail, OrderModelDO.class); + if (orderModelDOs.size() > 0) { + orderModelDOs.forEach(orderModelDO -> orderModelDO.setOrderId(orderDO.getId())); + orderInputProcessor.batchSaveModel(orderModelDOs); + } + } + if (orderPartsRemarks != null && orderPartsRemarks.size() > 0) { orderInputProcessor.batchSaveOrderPartsModel(orderPartsRemarks); } - } + } @Override diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BasePosition.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BasePosition.java similarity index 65% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BasePosition.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BasePosition.java index f3c671684..801267455 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BasePosition.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BasePosition.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import lombok.AllArgsConstructor; import lombok.Builder; @@ -21,4 +21,10 @@ public class BasePosition { private String basePointZ;// 基准点Z坐标 + private String axisXrotate;// 绕X轴旋转角度 + + private String axisYrotate;// 绕Y轴旋转角度 + + private String axisZrotate;// 绕Z轴旋转角度 + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BoardInfo.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BoardInfo.java similarity index 93% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BoardInfo.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BoardInfo.java index b88c9630f..b65aa5a6f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BoardInfo.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BoardInfo.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BodyInfo.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BodyInfo.java similarity index 89% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BodyInfo.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BodyInfo.java index 37edb87d0..ead055eda 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/BodyInfo.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/BodyInfo.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/DrillsInfo.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/DrillsInfo.java similarity index 86% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/DrillsInfo.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/DrillsInfo.java index f0774c479..ded1a3f8b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/DrillsInfo.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/DrillsInfo.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/Group.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/Group.java similarity index 83% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/Group.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/Group.java index f54c0baa7..e625a6a5e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/Group.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/Group.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/HoleDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/HoleDetail.java similarity index 95% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/HoleDetail.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/HoleDetail.java index 81ccb238d..6994f22f0 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/HoleDetail.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/HoleDetail.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/IContourData.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/IContourData.java similarity index 91% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/IContourData.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/IContourData.java index 6dc6a1e3b..654e22e08 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/IContourData.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/IContourData.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import com.cf.imes.module.executor.controller.admin.plan.dto.Point; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/IOriginModelingData.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/IOriginModelingData.java similarity index 94% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/IOriginModelingData.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/IOriginModelingData.java index 8a0fd5db2..3b68e007a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/IOriginModelingData.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/IOriginModelingData.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/ModelDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/ModelDetail.java similarity index 91% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/ModelDetail.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/ModelDetail.java index 1e9cdc607..2267dacc3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/ModelDetail.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/ModelDetail.java @@ -1,11 +1,10 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; import java.util.List; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/OffSetList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/OffSetList.java similarity index 95% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/OffSetList.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/OffSetList.java index 62f7e8142..2c5338460 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/OffSetList.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/OffSetList.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PartsInfo.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PartsInfo.java similarity index 96% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PartsInfo.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PartsInfo.java index ff7cd0afe..e6f8a2083 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PartsInfo.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PartsInfo.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PlateDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PlateDetail.java similarity index 94% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PlateDetail.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PlateDetail.java index 309847eb5..cecc972f3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PlateDetail.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PlateDetail.java @@ -1,7 +1,5 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; -import com.alibaba.fastjson.JSONObject; -import com.cf.imes.framework.es.core.dal.ESDocument; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -90,7 +88,8 @@ public class PlateDetail{ private Boolean has3DModel; // 是否有三维刀路 // 轮廓数据、造型数据 - + private BasePosition bodyBasePosition; // 柜体基准点坐标 + private BasePosition plateBasePosition; // 板件基准点坐标 private List pointDetail ; //点明细,表示小板外围轮廓的几个转折点(不含封边) private List rawPointDetail ; //原始点明细(含封边) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PointDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PointDetail.java similarity index 93% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PointDetail.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PointDetail.java index 98a61e452..dc08afd60 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PointDetail.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PointDetail.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PointList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PointList.java similarity index 93% rename from cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PointList.java rename to cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PointList.java index 98d5cf929..2f995892a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/dataTwo/PointList.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/PointList.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.executor.util.deviseData.dataTwo; +package com.cf.imes.module.executor.util.deviseData.structure; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; 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/ApiTypeRealize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeRealize.java index d6e3df4dd..7473f9084 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeRealize.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeRealize.java @@ -1,6 +1,5 @@ package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; @@ -15,7 +14,7 @@ import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO; import com.cf.imes.module.executor.enums.*; import com.cf.imes.module.executor.util.fileConversion.admin.SnowflakeIdWorker3rd; -import com.cf.imes.module.executor.util.deviseData.dataTwo.*; +import com.cf.imes.module.executor.util.deviseData.structure.*; import com.cf.imes.module.system.api.dict.DictDataApi; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -24,7 +23,6 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.time.temporal.ChronoUnit; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; @@ -560,7 +558,7 @@ public class ApiTypeRealize { JSONObject plate = plateLists.getJSONObject(i); - Integer type = Integer.valueOf(dictDataApi.parseDictData("order_plate_type", + Integer type = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.PLATE_TYPE, plate.getString("BoardType")) .getData().getValue()); Long plateId = (Long) identifierGenerator.nextId(null); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java index 77a6dbc87..05961d326 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java @@ -7,10 +7,11 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.nacos.common.utils.StringUtils; import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; +import com.cf.imes.module.executor.enums.DataTypeEnum; import com.cf.imes.module.executor.util.fileConversion.admin.ToolUtil; import com.cf.imes.module.system.api.dict.DictDataApi; import com.cf.imes.module.system.api.dict.dto.DictDataRespDTO; -import com.cf.imes.module.system.enums.DictTypeConstants; +import com.cf.imes.module.executor.enums.DictTypeConstants; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -111,7 +112,7 @@ public class ExcelReadUtil { // 文件读取 } OrderDO orderDO = OrderDO.builder() .organId(OrganContextHolder.getOrganId()) - .dataType(0) + .dataType(DataTypeEnum.FILE_IMPORT.getStatus()) .orderDate(LocalDateTime.now()) .customer((String) orderMap.get("客户")) // .customOrderNo((String) orderMap.get("自定义单号")) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelTypeRealize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelTypeRealize.java index 8b67fdd92..03b799f58 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelTypeRealize.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelTypeRealize.java @@ -19,8 +19,7 @@ import com.cf.imes.module.executor.enums.OrderItemTypeEnum; import com.cf.imes.module.executor.util.fileConversion.admin.SnowflakeIdWorker3rd; import com.cf.imes.module.system.api.dict.DictDataApi; import com.cf.imes.module.system.api.dict.dto.DictDataRespDTO; -import com.cf.imes.module.system.enums.DictTypeConstants; -import io.swagger.v3.oas.models.security.SecurityScheme; +import com.cf.imes.module.executor.enums.DictTypeConstants; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/AssemblyXmlVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/AssemblyXmlVO.java index 686d1da06..56df3818d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/AssemblyXmlVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/AssemblyXmlVO.java @@ -4,10 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.*; import java.io.Serializable; @Data @@ -74,6 +71,10 @@ public class AssemblyXmlVO implements Serializable { @XmlAttribute(name = "unit") private String unit; + // 数量单位 + @XmlAttribute(name = "unitCount") + private String unitCount; + // 仓库 @XmlAttribute(name = "warehouse") private String warehouse; @@ -97,4 +98,12 @@ public class AssemblyXmlVO implements Serializable { // 模块ID @XmlAttribute(name = "moduleId") private String moduleId; + + // 父ID + @XmlAttribute(name = "parentId") + private String parentId; + + // 备注 + @XmlElement(name = "Remarks") + private RemarkXmlVOS remarkXmlVOS; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/BlockXmlVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/BlockXmlVO.java index d22663a05..6a423d351 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/BlockXmlVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/BlockXmlVO.java @@ -127,6 +127,30 @@ public class BlockXmlVO implements Serializable { @XmlAttribute(name = "moduleId") private String moduleId; + // 基点X坐标 + @XmlAttribute(name = "basePointX") + private String basePointX; + + // 基点Y坐标 + @XmlAttribute(name = "basePointY") + private String basePointY; + + // 基点Z坐标 + @XmlAttribute(name = "basePointZ") + private String basePointZ; + + // 绕X轴旋转角度 + @XmlAttribute(name = "axisXrotate") + private String axisXrotate; + + // 绕Y轴旋转角度 + @XmlAttribute(name = "axisYrotate") + private String axisYrotate; + + // 绕Z轴旋转角度 + @XmlAttribute(name = "axisZrotate") + private String axisZrotate; + // 成品(设计成型/已封边/贴皮或涂装的板件)轮廓信息 @XmlElement(name = "Outline") private OutlineXmlVO outlineXmlVO ; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/BoxXmlVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/BoxXmlVO.java index 520b5d0e8..e5429d8c9 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/BoxXmlVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/BoxXmlVO.java @@ -41,4 +41,28 @@ public class BoxXmlVO implements Serializable { @XmlAttribute(name = "length") private String length; + // 基点X坐标 + @XmlAttribute(name = "basePointX") + private String basePointX; + + // 基点Y坐标 + @XmlAttribute(name = "basePointY") + private String basePointY; + + // 基点Z坐标 + @XmlAttribute(name = "basePointZ") + private String basePointZ; + + // 绕X轴旋转角度 + @XmlAttribute(name = "axisXrotate") + private String axisXrotate; + + // 绕Y轴旋转角度 + @XmlAttribute(name = "axisYrotate") + private String axisYrotate; + + // 绕Z轴旋转角度 + @XmlAttribute(name = "axisZrotate") + private String axisZrotate; + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/EdgingXmlVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/EdgingXmlVO.java index 18d5692e6..8b55addd1 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/EdgingXmlVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/EdgingXmlVO.java @@ -4,10 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.*; import java.io.Serializable; @Data @@ -78,6 +75,10 @@ public class EdgingXmlVO implements Serializable { @XmlAttribute(name = "count") private String count; + // 数量单位(默认m米) + @XmlAttribute(name = "unitCount") + private String unitCount; + // 房间ID @XmlAttribute(name = "roomId") private String roomId; @@ -93,4 +94,12 @@ public class EdgingXmlVO implements Serializable { // 模块ID @XmlAttribute(name = "moduleId") private String moduleId; + + // 父ID + @XmlAttribute(name = "parentId") + private String parentId; + + // 备注 + @XmlElement(name = "Remarks") + private RemarkXmlVOS remarkXmlVOS; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/GroupXmlVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/GroupXmlVO.java index d5fa9790e..23b8751af 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/GroupXmlVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/GroupXmlVO.java @@ -13,7 +13,7 @@ import java.io.Serializable; @Data @AllArgsConstructor @NoArgsConstructor -@XmlRootElement(name = "Box") +@XmlRootElement(name = "Group") @XmlAccessorType(XmlAccessType.FIELD) public class GroupXmlVO implements Serializable { @@ -41,7 +41,4 @@ public class GroupXmlVO implements Serializable { @XmlAttribute(name = "length") private String length; - // 加工组数量 - @XmlAttribute(name = "count") - private String count; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/GroupXmlVOS.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/GroupXmlVOS.java index ee187a82b..62f5ea78b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/GroupXmlVOS.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/GroupXmlVOS.java @@ -21,6 +21,6 @@ public class GroupXmlVOS implements Serializable { private String count; // 房间 - @XmlElement(name = "Room") + @XmlElement(name = "Group") private List groupXmlVOList; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/HardwareXmlVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/HardwareXmlVO.java index ffd7f96a2..88329ff81 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/HardwareXmlVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/HardwareXmlVO.java @@ -4,10 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.*; import java.io.Serializable; @Data @@ -74,6 +71,10 @@ public class HardwareXmlVO implements Serializable { @XmlAttribute(name = "unit") private String unit; + // 数量单位 + @XmlAttribute(name = "unitCount") + private String unitCount; + // 仓库 @XmlAttribute(name = "warehouse") private String warehouse; @@ -98,4 +99,11 @@ public class HardwareXmlVO implements Serializable { @XmlAttribute(name = "moduleId") private String moduleId; + // 父ID + @XmlAttribute(name = "parentId") + private String parentId; + + // 备注 + @XmlElement(name = "Remarks") + private RemarkXmlVOS remarkXmlVOS; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/HoleXmlVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/HoleXmlVO.java index e177afd87..caabba289 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/HoleXmlVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/HoleXmlVO.java @@ -30,7 +30,7 @@ public class HoleXmlVO implements Serializable { @XmlAttribute(name = "face") private String face; - // 方向——向后Z-、向前Z+、向右X+、向左X-、向下Y-、向上Y+、斜O + // 方向——向后Z-、向前Z+、向右X+、向左X-、向下Y-、向上Y+、斜O 孔加工面 @XmlAttribute(name = "direction") private String direction; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/ModuleXmlVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/ModuleXmlVO.java index 2d76ee9e8..b4de6bf05 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/ModuleXmlVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/ModuleXmlVO.java @@ -14,32 +14,28 @@ import java.io.Serializable; @XmlAccessorType(XmlAccessType.FIELD) public class ModuleXmlVO implements Serializable { - // 房间ID + // 模块ID @XmlAttribute(name = "id") private String id; - // 房间名称 + // 模块名称 @XmlAttribute(name = "name") private String name; - // 房间编号 + // 模块编号 @XmlAttribute(name = "code") private String code; - // 房间高度 + // 模块高度 @XmlAttribute(name = "height") private String height; - // 房间宽度 + // 模块宽度 @XmlAttribute(name = "width") private String width; - // 房间长度 + // 模块长度 @XmlAttribute(name = "length") private String length; - // 房间数量 - @XmlAttribute(name = "count") - private String count; - } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/ModuleXmlVOS.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/ModuleXmlVOS.java index f42153841..bee8aedbc 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/ModuleXmlVOS.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/VO/ModuleXmlVOS.java @@ -20,6 +20,6 @@ public class ModuleXmlVOS implements Serializable { private String count; // 房间 - @XmlElement(name = "Room") + @XmlElement(name = "Module") private List moduleXmlVOList; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XMLReadUtil.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XMLReadUtil.java index 0070392a6..775fe975b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XMLReadUtil.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XMLReadUtil.java @@ -1,6 +1,8 @@ package com.cf.imes.module.executor.util.fileConversion.admin.files.xml; import com.alibaba.fastjson.JSON; +import com.cf.imes.module.executor.util.fileConversion.admin.ToolUtil; +import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.*; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -11,6 +13,9 @@ import java.nio.charset.StandardCharsets; @Slf4j @Component public class XMLReadUtil { + + final String TYPE_ERR = "数据类型错误"; + public static Object read(MultipartFile file, Class clazz) throws IOException { @@ -33,7 +38,6 @@ public class XMLReadUtil { // XML转为JAVA对象 Object odfBody = XmlBuilder.xmlStrToOject(clazz, builder.toString()); - System.out.println(" odfBody " + JSON.toJSONString(odfBody)); return odfBody; } catch (IOException e) { @@ -44,4 +48,82 @@ public class XMLReadUtil { return null; } + + // 数据格式转换 + public Boolean checkVO(OrderXmlVO orderXmlVO) { + Boolean flag = true; + + RoomXmlVOS roomXmlVOS = orderXmlVO.getRoomXmlVOS(); + if ( roomXmlVOS != null ) { + for ( RoomXmlVO room : roomXmlVOS.getRoomXmlVOList() ) { + if (room != null){ + if (!ToolUtil.convertToType(room.getHeight(), Double.class)){ + room.setHeight(room.getHeight() + "-" + TYPE_ERR); + } + if (!ToolUtil.convertToType(room.getLength(), Double.class)){ + room.setLength(room.getLength() + "-" + TYPE_ERR); + } + if (!ToolUtil.convertToType(room.getWidth(), Double.class)){ + room.setWidth(room.getWidth() + "-" + TYPE_ERR); + } + if (!ToolUtil.convertToType(room.getCount(), Integer.class)){ + room.setCount(room.getCount() + "-" + TYPE_ERR); + } + if (room.getBoxXmlVOList() != null){ + for (BoxXmlVO box : room.getBoxXmlVOList()) { + if (box != null){ + if (!ToolUtil.convertToType(box.getHeight(), Double.class)){ + box.setHeight(box.getHeight() + "-" + TYPE_ERR); + } + if (!ToolUtil.convertToType(box.getLength(), Double.class)){ + box.setLength(box.getLength() + "-" + TYPE_ERR); + } + if (!ToolUtil.convertToType(box.getWidth(), Double.class)){ + box.setWidth(box.getWidth() + "-" + TYPE_ERR); + } + } + } + } + } + } + } + + ModuleXmlVOS moduleXmlVOS = orderXmlVO.getModuleXmlVOS(); + if ( moduleXmlVOS != null ) { + for ( ModuleXmlVO module : moduleXmlVOS.getModuleXmlVOList() ) { + if (module != null){ + if (!ToolUtil.convertToType(module.getHeight(), Double.class)){ + module.setHeight(module.getHeight() + "-" + TYPE_ERR); + } + if (!ToolUtil.convertToType(module.getLength(), Double.class)){ + module.setLength(module.getLength() + "-" + TYPE_ERR); + } + if (!ToolUtil.convertToType(module.getWidth(), Double.class)){ + module.setWidth(module.getWidth() + "-" + TYPE_ERR); + } + } + } + } + + GroupXmlVOS grooveXmlVOS = orderXmlVO.getGroupXmlVOS(); + if ( grooveXmlVOS != null ) { + for ( GroupXmlVO groove : grooveXmlVOS.getGroupXmlVOList() ) { + if (groove != null){ + if (!ToolUtil.convertToType(groove.getHeight(), Double.class)){ + groove.setHeight(groove.getHeight() + "-" + TYPE_ERR); + } + if (!ToolUtil.convertToType(groove.getLength(), Double.class)){ + groove.setLength(groove.getLength() + "-"+ TYPE_ERR); + } + if (!ToolUtil.convertToType(groove.getWidth(), Double.class)){ + groove.setWidth(groove.getWidth() + "-" + TYPE_ERR); + } + } + } + } + + + return flag; + } + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XmlTypeRealize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XmlTypeRealize.java index 1aa4f558a..78f57af1f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XmlTypeRealize.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/XmlTypeRealize.java @@ -3,7 +3,7 @@ package com.cf.imes.module.executor.util.fileConversion.admin.files.xml; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; -import com.cf.imes.framework.organ.core.context.OrganContextHolder; +import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark; import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO; @@ -12,27 +12,28 @@ import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO; import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO; -import com.cf.imes.module.executor.util.deviseData.dataTwo.*; +import com.cf.imes.module.executor.enums.DataTypeEnum; +import com.cf.imes.module.executor.util.deviseData.structure.*; import com.cf.imes.module.executor.util.fileConversion.admin.SnowflakeIdWorker3rd; import com.cf.imes.module.executor.util.fileConversion.admin.ToolUtil; import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.*; import com.cf.imes.module.system.api.dict.DictDataApi; +import com.cf.imes.module.system.api.dict.dto.DictDataRespDTO; +import com.cf.imes.module.executor.enums.DictTypeConstants; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDate; -import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.time.format.DateTimeParseException; -import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; -import static com.cf.imes.module.system.enums.DictTypeConstants.*; /** * 实现数据格式转换 @@ -42,9 +43,6 @@ import static com.cf.imes.module.system.enums.DictTypeConstants.*; @Component public class XmlTypeRealize { - @Resource - private SnowFlakeGenerator snowFlakeGenerator; - @Resource SnowflakeIdWorker3rd idWorker; @@ -53,10 +51,6 @@ public class XmlTypeRealize { final String NOT_ASSIGNED = "未命名"; - final String NOT_ROOM = "无房间"; - - final String NOT_BODY = "无柜体"; - @Resource private IdentifierGenerator identifierGenerator; @@ -72,7 +66,7 @@ public class XmlTypeRealize { } // 生产单转换 - public Map changeOrder(OrderXmlVO orderXmlVO, Long orderId, Long organId) { + public Map changeOrder(OrderXmlVO orderXmlVO, Long organId) { Map map = new HashMap<>(); String error = ""; @@ -98,15 +92,14 @@ public class XmlTypeRealize { } } OrderDO orderDO = OrderDO.builder() - .id(orderId) .organId(organId) - .dataType(0) - .customer(orderXmlVO.getCustomer()) // + .dataType(DataTypeEnum.FILE_IMPORT.getStatus()) + .customer(orderXmlVO.getCustomer()) .customOrderNo(orderXmlVO.getCustomOrderNo()) - .dealer(orderXmlVO.getDealer()) // + .dealer(orderXmlVO.getDealer()) .dealerPhoneNumber(orderXmlVO.getDealerPhone()) - .address(orderXmlVO.getCustomerAddress()) // - .phoneNumber(orderXmlVO.getCustomerPhone()) // + .address(orderXmlVO.getCustomerAddress()) + .phoneNumber(orderXmlVO.getCustomerPhone()) .salesman(orderXmlVO.getSeller()) .splitter(orderXmlVO.getAnalyst()) .remark(orderXmlVO.getMemo()) @@ -143,11 +136,12 @@ public class XmlTypeRealize { Map> roomInfos = new HashMap<>(); if (roomXmlVOS != null && roomXmlVOS.getRoomXmlVOList() != null && roomXmlVOS.getRoomXmlVOList().size() > 0) { - Map bodyInfos = new HashMap<>(); + for (RoomXmlVO roomXmlVO : roomXmlVOS.getRoomXmlVOList()) { + Map bodyInfos = new HashMap<>(); Long roomId = Long.valueOf(roomXmlVO.getId()); for (BoxXmlVO boxXmlVO : roomXmlVO.getBoxXmlVOList()) { - bodyInfos.put(boxXmlVO.getId(), OrderBodyDO.builder() + OrderBodyDO orderBodyDO = OrderBodyDO.builder() .id((Long) identifierGenerator.nextId(null)) .organId(organId) .orderId(orderId) @@ -157,7 +151,10 @@ public class XmlTypeRealize { .width(Double.parseDouble(boxXmlVO.getWidth())) .height(Double.parseDouble(boxXmlVO.getHeight())) .depth(Double.parseDouble(boxXmlVO.getLength())) - .build()); + .plateNum(0) + .unregularNum(0) + .build(); + bodyInfos.put(boxXmlVO.getId(), orderBodyDO); } roomInfos.put(roomXmlVO.getId(), bodyInfos); } @@ -165,44 +162,75 @@ public class XmlTypeRealize { return roomInfos; } + // 柜体基点坐标转换 + public Map> basePositionChange(RoomXmlVOS roomXmlVOS) { + Map> roomInfos = new HashMap<>(); + if (roomXmlVOS != null && roomXmlVOS.getRoomXmlVOList() != null && roomXmlVOS.getRoomXmlVOList().size() > 0) { + Map basePositions = new HashMap<>(); + for (RoomXmlVO roomXmlVO : roomXmlVOS.getRoomXmlVOList()) { + for (BoxXmlVO boxXmlVO : roomXmlVO.getBoxXmlVOList()) { + BasePosition basePosition = BasePosition.builder() + .basePointX(boxXmlVO.getBasePointX()) + .basePointY(boxXmlVO.getBasePointY()) + .basePointZ(boxXmlVO.getBasePointZ()) + .axisXrotate(boxXmlVO.getAxisXrotate()) + .axisYrotate(boxXmlVO.getAxisYrotate()) + .axisZrotate(boxXmlVO.getAxisZrotate()) + .build(); + basePositions.put(boxXmlVO.getId(), basePosition); + } + roomInfos.put(roomXmlVO.getId(), basePositions); + } + } + return roomInfos; + } + // 加工组信息转换 public Map groupInfoChange(GroupXmlVOS groupXmlVOS, Long orderId, Long organId) { Map groupInfos = new HashMap<>(); if (groupXmlVOS != null && groupXmlVOS.getGroupXmlVOList() != null && groupXmlVOS.getGroupXmlVOList().size() > 0) { for (GroupXmlVO groupXmlVO : groupXmlVOS.getGroupXmlVOList()) { - groupInfos.put(groupXmlVO.getId(), OrderGroupDO.builder() + OrderGroupDO groupDO = OrderGroupDO.builder() .id((Long) identifierGenerator.nextId(null)) .organId(organId) .orderId(orderId) + .bodyId(0L) + .groupTypeId(0L) .name(groupXmlVO.getName()) .height(Double.parseDouble(groupXmlVO.getHeight())) .width(Double.parseDouble(groupXmlVO.getWidth())) .depth(Double.parseDouble(groupXmlVO.getLength())) - .build()); + .plateNum(0) + .unregularNum(0) + .build(); + groupInfos.put(groupXmlVO.getId(), groupDO); } } return groupInfos; } // 板材信息转换 - public Map> goodsInfoChange(OrderXmlVO orderXmlVO, Long orderId, Long organId) { - Map> map = new HashMap<>(); + public Map> goodsInfoChange(OrderXmlVO orderXmlVO, Long orderId, Long organId) { + Map> map = new HashMap<>(); - List rawGoodsDOs = new ArrayList<>(); - List goodsDOs = new ArrayList<>(); - List bodyBOs = new ArrayList<>(); - List groupDOs = new ArrayList<>(); - List plateDOs = new ArrayList<>(); - List itemDOs = new ArrayList<>(); - List partsDOs = new ArrayList<>(); - - Map groupInfos = groupInfoChange(orderXmlVO.getGroupXmlVOS(), orderId, organId); // 加工组 - Map itemInfos = new HashMap<>(); - Map partsInfos = new HashMap<>(); + List rawGoodsDOs = new ArrayList<>(); + List goodsDOs = new ArrayList<>(); + List plateDOs = new ArrayList<>(); + List plateDetail = null; // 房间柜体 - Map> roomInfos = bodyInfoChange(orderXmlVO.getRoomXmlVOS(), orderId, organId); + Map> roomInfos = bodyInfoChange(orderXmlVO.getRoomXmlVOS(), orderId, organId); // roomInfos 这个在跟着一起变 + // 房间柜体基点 + Map> boxBasePositions = basePositionChange(orderXmlVO.getRoomXmlVOS()); + // 加工组 + Map groupInfos = groupInfoChange(orderXmlVO.getGroupXmlVOS(), orderId, organId); // groupInfos 这个在跟着一起变 + + Map itemInfos = new HashMap<>(); + Map partsInfos = new HashMap<>(); + Map orderPartsRemarks = new HashMap<>(); + Map partsDOInfos = new HashMap<>(); + if (orderXmlVO.getMaterialXmlVO() != null ){ MaterialXmlVO materialXmlVO = orderXmlVO.getMaterialXmlVO(); @@ -214,6 +242,8 @@ public class XmlTypeRealize { Map> partAllInfo = goodsInfoChange(accessoryXmlVO, assemblieXmlVOS, orderId, organId, roomInfos, groupInfos); itemInfos.putAll(partAllInfo.get("orderItemMap")); partsInfos.putAll(partAllInfo.get("orderPartsMap")); + orderPartsRemarks.putAll(partAllInfo.get("orderPartsRemarks")); + partsDOInfos.putAll(partAllInfo.get("orderPartsDOMap")); // 板材 小板 if (plateXmlVOS.getPlateXmlVOList() != null && plateXmlVOS.getPlateXmlVOList().size() > 0) { @@ -256,25 +286,52 @@ public class XmlTypeRealize { goodsDOs.add(goodsDO); // 小板信息 - plateInfoChange(plateXmlVO.getBlockXmlVOS(), orderId, goodsDO.getId(), organId, roomInfos, groupInfos, partsInfos, itemInfos, plateDOs); + plateDetail = plateInfoChange(plateXmlVO.getBlockXmlVOS(), orderId, goodsDO.getId(), organId, roomInfos, groupInfos, partsInfos, itemInfos, plateDOs, boxBasePositions); } } } } +// 取map中的值 + System.out.println(" roomInfos " + roomInfos); + List orderBodyDOList = roomInfos.values().stream() + .flatMap(innerMap -> innerMap.values().stream()) + .collect(Collectors.toList()); + + + List groupDOList = new ArrayList<>(groupInfos.values()); + List itemDOList = new ArrayList<>(itemInfos.values()); + List partDOList = new ArrayList<>(partsDOInfos.values()); + List partRemarks = new ArrayList<>(orderPartsRemarks.values()); + + map.put("rawGoodsDOS", rawGoodsDOs); + map.put("goodsDOS", goodsDOs); + map.put("orderBodyDOS", orderBodyDOList); + map.put("orderGroupDOS", groupDOList); + map.put("plateDOS", plateDOs); + map.put("orderPartsDOS", partDOList); + map.put("orderItemDOS", itemDOList); + map.put("plateDetail", plateDetail); + map.put("orderPartsRemarks", partRemarks); return map; } // id得到 private Map getId(String roomNo, String BoxNo, Map> roomInfos, - String groupNo, Map groupInfos, - Long orderId, Long organId) { + String groupNo, Map groupInfos, Double plateNum, + Double unregularNum, Long orderId, Long organId) { Map map = new HashMap<>(); Map bodyMap = roomInfos.get(roomNo); OrderBodyDO bodyDO; - if (bodyMap.containsKey(BoxNo)) { - bodyDO = (OrderBodyDO) bodyMap.get(BoxNo); + if (bodyMap == null){ + bodyMap = new HashMap<>(); + roomInfos.put(roomNo, bodyMap); + } + if ( bodyMap.containsKey(BoxNo)) { + bodyDO = bodyMap.get(BoxNo); + bodyDO.setPlateNum((int) (bodyDO.getPlateNum() + plateNum + unregularNum)) + .setUnregularNum((int) (bodyDO.getUnregularNum() + unregularNum)); } else { Long roomId = (Long) identifierGenerator.nextId(null); bodyDO = OrderBodyDO.builder() @@ -287,9 +344,10 @@ public class XmlTypeRealize { .width(0.0) .height(0.0) .depth(0.0) + .plateNum((int) Math.round(plateNum)) + .unregularNum((int) Math.round(unregularNum)) .build(); - bodyMap.put(NOT_ASSIGNED, bodyDO); - roomInfos.put(NOT_ASSIGNED, bodyMap); + bodyMap.put(BoxNo, bodyDO); } Long roomId = bodyDO.getRoomId(); @@ -299,6 +357,8 @@ public class XmlTypeRealize { Long groupId = 0L; if (orderGroupDO != null) { groupId = orderGroupDO.getId(); + orderGroupDO.setBodyId(bodyId).setPlateNum((int) (orderGroupDO.getPlateNum() + plateNum)) + .setUnregularNum((int) (orderGroupDO.getUnregularNum() + unregularNum)); } map.put("roomId", roomId); map.put("bodyId", bodyId); @@ -311,13 +371,15 @@ public class XmlTypeRealize { Map> map = new HashMap<>(); Map orderPartsMap = new HashMap<>(); Map orderItemMap = new HashMap<>(); + Map orderPartsDOMap = new HashMap<>(); + Map orderPartsRemarks = new HashMap<>(); if (accessoryXmlVO != null) { if (accessoryXmlVO.getEdgingXmlVOS() != null && accessoryXmlVO.getEdgingXmlVOS().getEdgingXmlVOList() != null && accessoryXmlVO.getEdgingXmlVOS().getEdgingXmlVOList().size() > 0) { EdgingXmlVOS edgingXmlVOS = accessoryXmlVO.getEdgingXmlVOS(); for (EdgingXmlVO edgingXmlVO : edgingXmlVOS.getEdgingXmlVOList()) { - Map idMap = getId(edgingXmlVO.getRoomId(), edgingXmlVO.getBoxId(), roomInfos, edgingXmlVO.getGroupId(), groupInfos, orderId, organId); + Map idMap = getId(edgingXmlVO.getRoomId(), edgingXmlVO.getBoxId(), roomInfos, edgingXmlVO.getGroupId(), groupInfos, 0.0, 0.0, orderId, organId); Long partsId = (Long) identifierGenerator.nextId(null); orderPartsMap.put(edgingXmlVO.getId(), OrderPartsAddVO.builder() @@ -352,13 +414,33 @@ public class XmlTypeRealize { .bodyId(idMap.get("bodyId")) .num(Double.valueOf(edgingXmlVO.getCount())) .build()); + orderPartsDOMap.put(edgingXmlVO.getId(), OrderPartsDO.builder() + .id(partsId) + .organId(organId) + .orderId(orderId) + .name(edgingXmlVO.getName()) + .material(edgingXmlVO.getMaterial()) + .type("封边条") + .brand(edgingXmlVO.getBrand()) + .spec(edgingXmlVO.getSpecs()) + .unit(edgingXmlVO.getUnit()) + .isComposite(false) + .build()); + + if (edgingXmlVO.getRemarkXmlVOS() != null && edgingXmlVO.getRemarkXmlVOS().getRemarkXmlVOList() != null && edgingXmlVO.getRemarkXmlVOS().getRemarkXmlVOList().size() > 0) { + orderPartsRemarks.put(edgingXmlVO.getId(), OrderPartsRemark.builder() + .partsId(partsId) + .orderId(orderId) + .remark(edgingXmlVO.getRemarkXmlVOS().toString()) + .build()); + } } } if (accessoryXmlVO.getHardwareXmlVOS() != null && accessoryXmlVO.getHardwareXmlVOS().getHardwareXmlVOList() != null && accessoryXmlVO.getHardwareXmlVOS().getHardwareXmlVOList().size() > 0) { HardwareXmlVOS hardwareXmlVOS = accessoryXmlVO.getHardwareXmlVOS(); for (HardwareXmlVO hardwareXmlVO : hardwareXmlVOS.getHardwareXmlVOList()) { - Map idMap = getId(hardwareXmlVO.getRoomId(), hardwareXmlVO.getBoxId(), roomInfos, hardwareXmlVO.getGroupId(), groupInfos, orderId, organId); + Map idMap = getId(hardwareXmlVO.getRoomId(), hardwareXmlVO.getBoxId(), roomInfos, hardwareXmlVO.getGroupId(), groupInfos, 0.0, 0.0,orderId, organId); Long partsId = (Long) identifierGenerator.nextId(null); orderPartsMap.put(hardwareXmlVO.getId(), OrderPartsAddVO.builder() @@ -395,6 +477,25 @@ public class XmlTypeRealize { .bodyId(idMap.get("bodyId")) .num(Double.valueOf(hardwareXmlVO.getCount())) .build()); + orderPartsDOMap.put(hardwareXmlVO.getId(), OrderPartsDO.builder() + .id(partsId) + .organId(organId) + .orderId(orderId) + .name(hardwareXmlVO.getName()) + .material(hardwareXmlVO.getMaterial()) + .type(hardwareXmlVO.getType()) + .brand(hardwareXmlVO.getBrand()) + .spec(hardwareXmlVO.getSpecs()) + .unit(hardwareXmlVO.getUnit()) + .isComposite(false) + .build()); + if (hardwareXmlVO.getRemarkXmlVOS() != null && hardwareXmlVO.getRemarkXmlVOS().getRemarkXmlVOList() != null && hardwareXmlVO.getRemarkXmlVOS().getRemarkXmlVOList().size() > 0) { + orderPartsRemarks.put(hardwareXmlVO.getId(), OrderPartsRemark.builder() + .partsId(partsId) + .orderId(orderId) + .remark(hardwareXmlVO.getRemarkXmlVOS().toString()) + .build()); + } } } } @@ -402,73 +503,101 @@ public class XmlTypeRealize { if (assemblieXmlVOS != null && assemblieXmlVOS.getAssemblyXmlVOList() != null && assemblieXmlVOS.getAssemblyXmlVOList().size() > 0) { for (AssemblyXmlVO assemblyXmlVO : assemblieXmlVOS.getAssemblyXmlVOList()) { - Map idMap = getId(assemblyXmlVO.getRoomId(), assemblyXmlVO.getBoxId(), roomInfos, assemblyXmlVO.getGroupId(), groupInfos, orderId, organId); + if (assemblyXmlVO != null && assemblyXmlVO.toString().length() > 0) { + Map idMap = getId(assemblyXmlVO.getRoomId(), assemblyXmlVO.getBoxId(), roomInfos, assemblyXmlVO.getGroupId(), groupInfos, 0.0, 0.0, orderId, organId); - Long partsId = (Long) identifierGenerator.nextId(null); - orderPartsMap.put(assemblyXmlVO.getId(), OrderPartsAddVO.builder() - .id(partsId) - .organId(organId) - .orderId(orderId) - .type(assemblyXmlVO.getType()) - .goodsId(assemblyXmlVO.getItemNo()) - .factory(assemblyXmlVO.getManufacturer()) - .brand(assemblyXmlVO.getBrand()) - .name(assemblyXmlVO.getName()) - .material(assemblyXmlVO.getMaterial()) - .spec(assemblyXmlVO.getSpecs()) - .color(assemblyXmlVO.getColor()) - .length(BigDecimal.valueOf(Double.parseDouble(assemblyXmlVO.getLength()))) - .width(BigDecimal.valueOf(Double.parseDouble(assemblyXmlVO.getWidth()))) - .thickness(BigDecimal.valueOf(Double.parseDouble(assemblyXmlVO.getHeight()))) - .num(Double.valueOf(assemblyXmlVO.getCount())) - .unit((assemblyXmlVO.getUnit())) - .warehouse(assemblyXmlVO.getWarehouse()) - .shelf(assemblyXmlVO.getShelf()) - .roomId(assemblyXmlVO.getRoomId()) - .bodyId(assemblyXmlVO.getBoxId()) - .isComposite(true) - .build()); - orderItemMap.put(assemblyXmlVO.getId(), OrderItemDO.builder() - .id((Long) identifierGenerator.nextId(null)) - .organId(organId) - .orderId(orderId) - .type(2) - .partsId(partsId) - .groupId(idMap.get("groupId")) - .roomId(idMap.get("roomId")) - .bodyId(idMap.get("bodyId")) - .num(Double.valueOf(assemblyXmlVO.getCount())) - .build()); + Long partsId = (Long) identifierGenerator.nextId(null); + orderPartsMap.put(assemblyXmlVO.getId(), OrderPartsAddVO.builder() + .id(partsId) + .organId(organId) + .orderId(orderId) + .type(assemblyXmlVO.getType()) + .goodsId(assemblyXmlVO.getItemNo()) + .factory(assemblyXmlVO.getManufacturer()) + .brand(assemblyXmlVO.getBrand()) + .name(assemblyXmlVO.getName()) + .material(assemblyXmlVO.getMaterial()) + .spec(assemblyXmlVO.getSpecs()) + .color(assemblyXmlVO.getColor()) + .length(BigDecimal.valueOf(Double.parseDouble(assemblyXmlVO.getLength()))) + .width(BigDecimal.valueOf(Double.parseDouble(assemblyXmlVO.getWidth()))) + .thickness(BigDecimal.valueOf(Double.parseDouble(assemblyXmlVO.getHeight()))) + .num(Double.valueOf(assemblyXmlVO.getCount())) + .unit((assemblyXmlVO.getUnit())) + .warehouse(assemblyXmlVO.getWarehouse()) + .shelf(assemblyXmlVO.getShelf()) + .roomId(assemblyXmlVO.getRoomId()) + .bodyId(assemblyXmlVO.getBoxId()) + .isComposite(true) + .build()); + orderItemMap.put(assemblyXmlVO.getId(), OrderItemDO.builder() + .id((Long) identifierGenerator.nextId(null)) + .organId(organId) + .orderId(orderId) + .type(2) + .partsId(partsId) + .groupId(idMap.get("groupId")) + .roomId(idMap.get("roomId")) + .bodyId(idMap.get("bodyId")) + .num(Double.valueOf(assemblyXmlVO.getCount())) + .build()); + orderPartsDOMap.put(assemblyXmlVO.getId(), OrderPartsDO.builder() + .id(partsId) + .organId(organId) + .orderId(orderId) + .name(assemblyXmlVO.getName()) + .material(assemblyXmlVO.getMaterial()) + .type(assemblyXmlVO.getType()) + .brand(assemblyXmlVO.getBrand()) + .spec(assemblyXmlVO.getSpecs()) + .unit(assemblyXmlVO.getUnit()) + .isComposite(true) + .build()); + if (assemblyXmlVO.getRemarkXmlVOS() != null && assemblyXmlVO.getRemarkXmlVOS().getRemarkXmlVOList() != null && assemblyXmlVO.getRemarkXmlVOS().getRemarkXmlVOList().size() > 0) { + orderPartsRemarks.put(assemblyXmlVO.getId(), OrderPartsRemark.builder() + .partsId(partsId) + .orderId(orderId) + .remark(assemblyXmlVO.getRemarkXmlVOS().toString()) + .build()); + } + } } } map.put("orderItemMap", orderItemMap); map.put("orderPartsMap", orderPartsMap); + map.put("orderPartsDOMap", orderPartsDOMap); + map.put("orderPartsRemarks", orderPartsRemarks); return map; } - public List plateInfoChange(BlockXmlVOS blockXmlVOS, Long orderId, Long goodsId, Long organId, - Map> roomInfos, Map groupInfos, - Map partsMap, Map orderItemMap, List plateDOs) { - List plateDetails = new ArrayList<>(); + public List plateInfoChange(BlockXmlVOS blockXmlVOS, Long orderId, Long goodsId, Long organId, + Map> roomInfos, Map groupInfos, + Map partsMap, Map orderItemMap, List plateDOs, + Map> boxBasePositionMap) { + List plateDetails = new ArrayList<>(); if (blockXmlVOS != null && blockXmlVOS.getBlockXmlVOList() != null && blockXmlVOS.getBlockXmlVOList().size() > 0) { for (BlockXmlVO blockXmlVO : blockXmlVOS.getBlockXmlVOList()) { - String roomId = blockXmlVO.getRoomId(); - String bodyId = blockXmlVO.getBoxId(); - String groupId = blockXmlVO.getGroupId(); long plateNo = idWorker.nextId(); long obtainingTime = idWorker.obtainingTime(); Long plateId = (Long) identifierGenerator.nextId(null); - BigDecimal area = BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getWidth()) * Double.parseDouble(blockXmlVO.getLength())); + BigDecimal area = BigDecimal.valueOf((Double.parseDouble(blockXmlVO.getWidth()) / 1000) * (Double.parseDouble(blockXmlVO.getLength())) ); // 开料面积 - BigDecimal sealAcreage = BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getCuttingWidth()) * Double.parseDouble(blockXmlVO.getCuttingLength())); + BigDecimal sealAcreage = BigDecimal.valueOf( (Double.parseDouble(blockXmlVO.getCuttingWidth()) / 1000) * ( Double.parseDouble(blockXmlVO.getCuttingLength()) / 1000)); // 开门类型获取 - Integer doorType = Integer.valueOf(dictDataApi.parseDictData(DOOR_OPEN_DIR, blockXmlVO.getOpenDirection()).getData().getValue()); + Integer doorType = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.DOOR_OPENING_DIRECTIONS, blockXmlVO.getOpenDirection()).getData().getValue()); // 板材获取 - - Map idMap = getId(blockXmlVO.getRoomId(), blockXmlVO.getBoxId(), roomInfos, blockXmlVO.getGroupId(), groupInfos, orderId, organId); + Double plateNum = 0.0; + Double unregularNum = 0.0; + if (convertToBoolean(blockXmlVO.getUnregular())){ + unregularNum = 1.0; + }else { + plateNum = 1.0; + } + Map idMap = getId(blockXmlVO.getRoomId(), blockXmlVO.getBoxId(), roomInfos, blockXmlVO.getGroupId(), groupInfos, plateNum, unregularNum, orderId, organId); + BasePosition boxBasePoint = boxBasePositionMap.get(blockXmlVO.getRoomId()).get(blockXmlVO.getBoxId()).setBasePoint(String.valueOf(idMap.get("bodyId"))); PlateDO plateDO = PlateDO.builder() .id(plateId) @@ -476,7 +605,8 @@ public class XmlTypeRealize { .orderId(orderId) .name(blockXmlVO.getName()) .plateNo((obtainingTime) + Long.toString(plateNo).substring(2)) - .type(Integer.valueOf(blockXmlVO.getType())) + .type(dictDataApi.parseDictData(DictTypeConstants.PLATE_TYPE, + blockXmlVO.getType()).getData() == null ? 2 : Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.PLATE_TYPE, blockXmlVO.getType()).getData().getValue())) .goodsId(goodsId) .width(BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getWidth()))) .height(BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getLength()))) @@ -485,8 +615,8 @@ public class XmlTypeRealize { .splitThickness(BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getThickness()))) .splitWidth(BigDecimal.valueOf(Double.parseDouble(blockXmlVO.getWidth()))) .area(area) - .texture(Integer.valueOf(blockXmlVO.getTexture())) - .holeFace(Integer.valueOf(blockXmlVO.getLayoutFace())) + .texture(Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.GRAIN_TYPE, blockXmlVO.getTexture()).getData().getValue())) + .holeFace(Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.TYPOGRAPHY_TYPE, blockXmlVO.getLayoutFace()).getData().getValue())) .isDoor(doorType == 0) .openDoorType(doorType) .isSpecialShaped(convertToBoolean(blockXmlVO.getUnregular())) @@ -504,6 +634,16 @@ public class XmlTypeRealize { .num(1.0) .build()); + // 基点坐标获取 + BasePosition plateBasePosition = BasePosition.builder() + .basePoint(blockXmlVO.getId()) + .basePointX(blockXmlVO.getBasePointX()) + .basePointY(blockXmlVO.getBasePointY()) + .basePointZ(blockXmlVO.getBasePointZ()) + .axisXrotate(blockXmlVO.getAxisXrotate()) + .axisYrotate(blockXmlVO.getAxisYrotate()) + .axisZrotate(blockXmlVO.getAxisZrotate()) + .build(); PlateDetail plateDetail = PlateDetail.builder() .plateId(plateId) .plateNo(plateDO.getPlateNo()) @@ -517,9 +657,18 @@ public class XmlTypeRealize { .plateWidth(plateDO.getWidth()) .plateLength(plateDO.getHeight()) .acreage(plateDO.getArea()) + .bodyBasePosition(boxBasePoint) + .plateBasePosition(plateBasePosition) .splitLength(BigDecimal.valueOf(Long.parseLong(blockXmlVO.getCuttingLength()))) .splitWidth(BigDecimal.valueOf(Long.parseLong(blockXmlVO.getCuttingWidth()))) .sealAcreage(sealAcreage) + .pointDetail(new ArrayList<>()) + .rawPointDetail(new ArrayList<>()) + .holeDetail(new ArrayList<>()) + .contourDetail(new ArrayList<>()) + .sideHoleDetail(new ArrayList<>()) + .remark(new HashMap<>()) + .sideRemark(new HashMap<>()) .isUnRegular(plateDO.getIsSpecialShaped()) .build(); // 小板、es 封边值 @@ -533,7 +682,7 @@ public class XmlTypeRealize { // 小板备注信息 addRemark(plateDO, plateDetail, blockXmlVO); - // + plateDOs.add(plateDO); plateDetails.add(plateDetail); } @@ -562,24 +711,29 @@ public class XmlTypeRealize { BigDecimal sealRight = BigDecimal.valueOf(0); BigDecimal sealUp = BigDecimal.valueOf(0); BigDecimal sealDown = BigDecimal.valueOf(0); + BigDecimal size = BigDecimal.valueOf(0); if (outlineXmlVO != null && outlineXmlVO.getPointXmlVOList() != null && outlineXmlVO.getPointXmlVOList().size() > 0) { for (PointXmlVO pointXmlVO : outlineXmlVO.getPointXmlVOList()) { Double x = Double.parseDouble(pointXmlVO.getPointX()); Double y = Double.parseDouble(pointXmlVO.getPointY()); OrderPartsAddVO edging = (OrderPartsAddVO) edgIng.get(pointXmlVO.getEdgingId()); + if (edging != null){ + size = edging.getThickness(); + } + if (!plateDO.getIsSpecialShaped()) { if (x == 0 && y == 0) { - sealDown = edging.getThickness(); + sealDown = size; } if (x != 0 && y == 0) { - sealRight = edging.getThickness(); + sealRight = size; } if (x != 0 && y != 0) { - sealUp = edging.getThickness(); + sealUp = size; } if (x == 0 && y != 0) { - sealLeft = edging.getThickness(); + sealLeft = size; } } @@ -589,7 +743,7 @@ public class XmlTypeRealize { .pointY(y) .curve(Double.parseDouble(pointXmlVO.getCurvature())) .radius(Double.parseDouble(pointXmlVO.getRadius())) - .sealSize(edging.getThickness()) + .sealSize(size) .build()); plateDetail.getSideRemark().put(pointXmlVO.getId(), pointXmlVO.getRemark()); } @@ -601,8 +755,8 @@ public class XmlTypeRealize { // 点明细(不含封边) private void addPointDetail(PlateDO plateDO, PlateDetail plateDetail, CuttingOutlineXmlVO cuttingOutlineXmlVO) { if (cuttingOutlineXmlVO != null) { - plateDO.setOffsetX(BigDecimal.valueOf(Long.parseLong(cuttingOutlineXmlVO.getReferenceOffsetX()))). - setOffsetY(BigDecimal.valueOf(Long.parseLong(cuttingOutlineXmlVO.getReferenceOffsetY()))); + plateDO.setOffsetX(BigDecimal.valueOf(Double.parseDouble(cuttingOutlineXmlVO.getReferenceOffsetX()))). + setOffsetY(BigDecimal.valueOf(Double.parseDouble(cuttingOutlineXmlVO.getReferenceOffsetY()))); plateDetail.setOffsetX(plateDO.getOffsetX()).setOffsetY(plateDO.getOffsetY()); if (cuttingOutlineXmlVO.getPointXmlVOList() != null && cuttingOutlineXmlVO.getPointXmlVOList().size() > 0) { for (PointXmlVO pointXmlVO : cuttingOutlineXmlVO.getPointXmlVOList()) { @@ -620,7 +774,7 @@ public class XmlTypeRealize { // 孔 private void addHole(PlateDO plateDO, PlateDetail plateDetail, HoleXmlVOS holeXmlVOS) { - if (holeXmlVOS != null) { + if (holeXmlVOS != null && holeXmlVOS.getHoleXmlVOList() != null && holeXmlVOS.getHoleXmlVOList().size() > 0) { plateDO.setFrontHoleCount(Integer.valueOf(holeXmlVOS.getCountFaceA())). setBackHoleCount(Integer.valueOf(holeXmlVOS.getCountFaceB())). setSideHoleCount(Integer.valueOf(holeXmlVOS.getCountSide())); @@ -629,18 +783,17 @@ public class XmlTypeRealize { } if (holeXmlVOS.getHoleXmlVOList() != null && holeXmlVOS.getHoleXmlVOList().size() > 0) { for (HoleXmlVO holeXmlVO : holeXmlVOS.getHoleXmlVOList()) { - Integer faceType = Integer.valueOf(dictDataApi.parseDictData(HOLE_FACE, holeXmlVO.getFace()).getData().getValue()); - faceType = faceType == 0 || faceType == 1 ? faceType : 2; - Integer direction = Integer.valueOf(dictDataApi.parseDictData(HOLE_DIR, holeXmlVO.getDirection()).getData().getValue()); - Integer holeType = Integer.valueOf(dictDataApi.parseDictData(HOLE_TYPE, holeXmlVO.getType()).getData().getValue()); + DictDataRespDTO faceType = dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, holeXmlVO.getFace()).getData(); + Integer faceTypeValue = faceType != null ? Integer.valueOf(faceType.getValue()) : 2; + Integer direction = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.HOLE_DIR, holeXmlVO.getDirection()).getData().getValue()); + DictDataRespDTO holeType = holeXmlVO.getType() == null ? null : dictDataApi.parseDictData(DictTypeConstants.HOLE_TYPE, holeXmlVO.getType()).getData(); Double radius = holeXmlVO.getDiameter() != null ? Double.parseDouble(holeXmlVO.getDiameter()) / 2 : 0; Double depth = holeXmlVO.getDepth() != null ? Double.parseDouble(holeXmlVO.getDepth()) : 0; HoleDetail holeDetail = HoleDetail.builder() .holeName(holeXmlVO.getName()) - .faceType(faceType) - .holeType(Integer.valueOf(holeXmlVO.getType())) + .faceType(faceTypeValue) .direction(direction) - .holeType(holeType) + .holeType(holeType != null ? Integer.valueOf(holeType.getValue()) : null) .radius(radius) .depth(depth) .build(); @@ -662,7 +815,7 @@ public class XmlTypeRealize { // 造型 private void addContourDetail(PlateDO plateDO, PlateDetail plateDetail, GrooveXmlVOS grooveXmlVOS) { - if (grooveXmlVOS != null) { + if (grooveXmlVOS != null && ObjectUtils.allNull(grooveXmlVOS)) { plateDO.setFrontModelCount(Integer.valueOf(grooveXmlVOS.getCountFaceA())). setBackModelCount(Integer.valueOf(grooveXmlVOS.getCountFaceB())); if (grooveXmlVOS.getCountThrough() != null && Integer.parseInt(grooveXmlVOS.getCountThrough()) > 0) { @@ -670,7 +823,7 @@ public class XmlTypeRealize { } if (grooveXmlVOS.getGrooveXmlVOList() != null && grooveXmlVOS.getGrooveXmlVOList().size() > 0) { for (GrooveXmlVO grooveXmlVO : grooveXmlVOS.getGrooveXmlVOList()) { - Integer faceType = Integer.valueOf(dictDataApi.parseDictData(HOLE_FACE, grooveXmlVO.getFace()).getData().getValue()); + Integer faceType = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, grooveXmlVO.getFace()).getData().getValue()); faceType = faceType == 0 || faceType == 1 ? faceType : 2; ModelDetail modelDetail = ModelDetail.builder() .type(grooveXmlVO.getType()) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/test.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/test.java deleted file mode 100644 index b3d5ba98a..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/xml/test.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.cf.imes.module.executor.util.fileConversion.admin.files.xml; - -import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO; - -import java.lang.reflect.Method; - -/** - * @projectName: cf_imes_server - * @author: 晨丰科技 - * @date: 2024/8/23 16:59 - */ -public class test { - - public static void main(String[] args) { - // 给定的圆的直径 - double diameter = 5; - - // 计算半径 - double radius = diameter / 3; - - // 输出结果 - System.out.println("圆的半径是: " + radius); - } -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/type/order_add_excel.xlsx b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/type/order_add_excel.xlsx index 2e85122dbadcc896de07e243c81e015053a82397..abdf894da8a3f979d149c85a21328edaed0cee11 100644 GIT binary patch delta 16213 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 L!JP@mKeGP|X-Vq5 diff --git a/cf-module-prod-manage/cf-module-prod-manage-api/src/main/java/com/cf/imes/module/manage/enums/DictTypeConstants.java b/cf-module-prod-manage/cf-module-prod-manage-api/src/main/java/com/cf/imes/module/manage/enums/DictTypeConstants.java index fa2bb15a1..e9e377b76 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-api/src/main/java/com/cf/imes/module/manage/enums/DictTypeConstants.java +++ b/cf-module-prod-manage/cf-module-prod-manage-api/src/main/java/com/cf/imes/module/manage/enums/DictTypeConstants.java @@ -7,5 +7,5 @@ package com.cf.imes.module.manage.enums; */ public interface DictTypeConstants { - String PLATE_TEXTURE = "plate_texture_type";// 板件纹路 + String PLATE_TEXTURE = "plate_texture_type";// 板件纹里 } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java index 741724cef..313176260 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java @@ -117,10 +117,10 @@ public class PlateController { public void importTemplate(HttpServletResponse response) throws IOException { // 手动创建导出 demo List list = Arrays.asList( - PlateImportExcelVO.builder().goodsId("SP1123456").goodsName("尼龙板").material("PVC").width(String.valueOf(1200.000)).height(String.valueOf(2400.000)) - .thickness(String.valueOf(18)).brand("黑天鹅").spec("1200*2400*18").remark("板材样本").color("黑色").texture("无").build(), - PlateImportExcelVO.builder().goodsId("SP1123457").goodsName("电木板").material("塑料").width(String.valueOf(1800.000)).height(String.valueOf(2800.000)) - .thickness(String.valueOf(24)).brand("东粤橡塑厂").spec("1800*2800*24").remark("测试").color("黑色").texture("无").build() + PlateImportExcelVO.builder().goodsId("SP1123456").goodsName("5mm-多层板-高级灰").material("多层板").width(String.valueOf(1220)).height(String.valueOf(2440)) + .thickness(String.valueOf(5)).brand("AAA").spec("2440*1220*5").remark("板材样本").color("高级灰").texture("无").build(), + PlateImportExcelVO.builder().goodsId("SP1123457").goodsName("白玉木兰-欧松板").material("欧松板").width(String.valueOf(1220)).height(String.valueOf(2750)) + .thickness(String.valueOf(18)).brand("鸿达树").spec("2750*1220*18").remark("测试").color("白玉木兰").texture("无").build() ); // 输出 ExcelUtils.write(response, "板材导入模板.xlsx", "板材列表", PlateImportExcelVO.class, list); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/RemainPlateController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/RemainPlateController.java index 5e9bdea9a..33fdc6017 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/RemainPlateController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/RemainPlateController.java @@ -66,7 +66,7 @@ public class RemainPlateController { @Operation(summary = "余料板批量核销") @PreAuthorize("@ss.hasPermission('placeorder:remain')") public CommonResult updateRemainPlate(@RequestBody RemainPlateUptReqVO updateReqVO) { - remainPlateService.updateRemainPlateStatus(updateReqVO.getId(), + remainPlateService.updateRemainPlateStatus(updateReqVO.getIds(), updateReqVO.getStatus(), updateReqVO.getUseType(), updateReqVO.getPlanId()); @@ -77,7 +77,7 @@ public class RemainPlateController { @Operation(summary = "余料板批量释放") @PreAuthorize("@ss.hasPermission('placeorder:remain')") public CommonResult revertRemainPlate(@RequestBody RemainPlateUptReqVO updateReqVO) { - remainPlateService.revertRemainPlateStatus(updateReqVO.getId(),updateReqVO.getStatus()); + remainPlateService.revertRemainPlateStatus(updateReqVO.getIds(),updateReqVO.getStatus()); return success(true); } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/remain/RemainPlateUptReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/remain/RemainPlateUptReqVO.java index 800bc1cdb..5d5baa35a 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/remain/RemainPlateUptReqVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/remain/RemainPlateUptReqVO.java @@ -10,7 +10,7 @@ import java.util.Set; public class RemainPlateUptReqVO { @Schema(description = "余料板集", example = "16470") - private Set id; + private Set ids; @Schema(description = "余料板状态,0未使用,1使用中", example = "1") private Integer status; diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java index b79a1396f..2fa200f6e 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java @@ -26,17 +26,15 @@ public interface DictTypeConstants { String SMS_SEND_STATUS = "system_sms_send_status"; // 短信发送状态 String SMS_RECEIVE_STATUS = "system_sms_receive_status"; // 短信接收状态 - String TYPOGRAPHY_TYPE = "typographyType"; // 排版面 + String PLATE_TEXTURE_TYPE = "plate_texture_type";// 板材纹路:0有 1无 - String GRAIN_TYPE = "grainType";//纹路类型 - String DOOR_OPENING_DIRECTIONS = "doorOpeningDirections";//开门方向 + + String PRODUCT_TYPE = "productType";//产品类型 String SYNTHESIS_TYPE = "synthesisType";//加工组类型 - String DOOR_OPEN_DIR = "doorOpeningDirections";// 开门方向 - String HOLE_FACE = "hole_face";//孔加工面 - String HOLE_DIR = "hole_direction";// 孔方向 - String HOLE_TYPE = "hole_type";//孔类型 + + String PLATE_TEXTURE_TYPE_STATUS = "plateTextureTypeStatus";//板件纹路状态 String PLATE_TEXTURE_TYPE_STATUS_TYPE = "plateTextureTypeStatusType";//板件纹路状态类型 }