diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPageReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPageReqVO.java index 895cd8ed3..527db3c91 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPageReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPageReqVO.java @@ -8,6 +8,7 @@ import com.cf.imes.framework.common.pojo.PageParam; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import javax.validation.constraints.Pattern; import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -20,7 +21,9 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH public class OrderPageReqVO extends PageParam { @Schema(description = "生产单号") - private Long id; + @Pattern(regexp = "^[0-9]*$",message = "生产单号应为数字") + @Length(max = 19,message = "排单号长度不能超过19位") + private String id; @Schema(description = "父单号") private Long parentNo; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java index 0670198e1..2ce5d6617 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java @@ -43,7 +43,7 @@ public interface OrderMapper extends BaseMapperX { default PageResult selectPage(OrderPageReqVO reqVO) { LambdaQueryWrapperX query = new LambdaQueryWrapperX() .eqIfPresent(OrderDO::getParentNo, reqVO.getParentNo()) - .likeIfPresent(OrderDO::getId, reqVO.getId() == null ? null : String.valueOf(reqVO.getId())) + .likeIfPresent(OrderDO::getId, reqVO.getId() == null ? null : reqVO.getId()) .betweenIfPresent(OrderDO::getDeliveryDate, reqVO.getDeliveryDate()) .eqIfPresent(OrderDO::getApiOrderId, reqVO.getApiOrderId()) .betweenIfPresent(OrderDO::getOrderDate, reqVO.getOrderDate()) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/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 index 44a1fe082..5c165a247 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/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 @@ -10,7 +10,7 @@ import lombok.experimental.Accessors; import java.util.List; /** - * 板的造型数据 + * 板的造型生成刀路数据 */ @Data @Builder @@ -41,6 +41,6 @@ public class IOriginModelingData { private Double addDepth; // ============ 启用 api ============= - @Schema(description = "点列表") + @Schema(description = "造型点列表") private List pointList; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/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 index 69d90271b..b11e13f0a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/structure/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 @@ -56,9 +56,9 @@ public class ModelDetail { @Schema(description = "造型数据") private IOriginModelingData originModeling; - @Schema(description = "点列表") + @Schema(description = "造型点列表") private List pointList; - @Schema(description = "偏移量列表-模块偏移数据") + @Schema(description = "造型偏移量列表-模块偏移数据") private List offSetList; } 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 8498a2299..f3a73a732 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 @@ -13,6 +13,7 @@ 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.collections4.MapUtils; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -84,6 +85,12 @@ public class ExcelReadUtil { // 文件读取 // order 数据转换 public Map changeOrderDO(Map orderMap) { Map map = new HashMap<>(); + + if (MapUtils.isEmpty(orderMap)) { + map.put("error", false); + return map; + } + boolean error = true; if (orderMap.get("客户") == null) { @@ -156,65 +163,6 @@ public class ExcelReadUtil { // 文件读取 map.put("error", error); return map; } -// public Map changeOrderDO(Map orderMap) { -// Map map = new HashMap<>(); -// String error = ""; -// if (orderMap.get("客户") == null) { -// error += "客户不能为空;"; -// } -// if (orderMap.get("经销商") == null) { -// error += "经销商不能为空;"; -// } -// if (orderMap.get("客户地址") == null) { -// error += "客户地址不能为空;"; -// } -// if (orderMap.get("客户电话") == null) { -// error += "客户电话不能为空;"; -// } else { -// if (!ToolUtil.validatePhoneNumber((String) orderMap.get("客户电话"))) { -// error += orderMap.get("客户电话") + "-客户电话格式错误;"; -// } -// } -// if (orderMap.get("经销商电话") != null) { -// if (!ToolUtil.validatePhoneNumber((String) orderMap.get("经销商电话"))) { -// error += orderMap.get("经销商电话") + "-经销商电话格式错误;"; -// } -// } -// OrderDO orderDO = OrderDO.builder() -// .organId(OrganContextHolder.getOrganId()) -// .dataType(DataTypeEnum.FILE_IMPORT.getStatus()) -// .orderDate(LocalDateTime.now()) -// .customer((String) orderMap.get("客户")) // -// .customOrderNo((String) orderMap.get("自定义单号")) -// .dealer((String) orderMap.get("经销商")) // -// .dealerPhoneNumber((String) orderMap.get("经销商电话")) -// .address((String) orderMap.get("客户地址")) // -// .phoneNumber((String) orderMap.get("客户电话")) // -// .salesman((String) orderMap.get("业务员")) -// .splitter((String) orderMap.get("拆单员")) -// .orderType(OrderTypeEnum.MAIN_ORDER.getStatus()) -// .remark((String) orderMap.get("备注")) -// .build(); -// if (orderMap.get("出货日期") == null) { -// error += "出货日期不能为空;"; -// } else { -// String s = (String) orderMap.get("出货日期"); -// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); -// Map mapDate = ToolUtil.changeDate(s, formatter); -// if (mapDate.get("error") instanceof Integer && (Integer) mapDate.get("error") == -1) { -// error += s + "-出货日期格式错误;"; -// } else { -// LocalDate deliveryDate = (LocalDate) mapDate.get("date"); -// if (deliveryDate.isBefore(LocalDate.now())) { -// deliveryDate = LocalDate.now().plus(30, ChronoUnit.DAYS); -// } -// orderDO.setDeliveryDate(deliveryDate.atStartOfDay()); -// } -// } -// map.put("order", orderDO); -// map.put("error", error); -// return map; -// } // 赋值单元格数据 private OrderPlateImportExcelVO changeValue(Map dataMap) { 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 d1974d117..740d76f65 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 @@ -1091,8 +1091,8 @@ public class XmlTypeRealize { } } - String jsonString = JSONObject.toJSONString(extraVO); - JSONObject jsonObject = JSONObject.parseObject(jsonString); + String jsonString = JSON.toJSONString(extraVO); + JSONObject jsonObject = JSON.parseObject(jsonString); plateDetail.setPlateExtraRemark(jsonObject); } plateDetail.setSealUp(sealUp).setSealDown(sealDown).setSealLeft(sealLeft).setSealRight(sealRight); @@ -1149,115 +1149,163 @@ public class XmlTypeRealize { // 孔 private void addHole(PlateDO plateDO, PlateDetail plateDetail, HoleXmlVOS holeXmlVOS) { - if (holeXmlVOS != null && holeXmlVOS.getHoleXmlVOList() != null && holeXmlVOS.getHoleXmlVOList().size() > 0) { - Map holeCountMap = new HashMap<>(); - holeCountMap.put("count",Integer.valueOf(holeXmlVOS.getCount())); - holeCountMap.put("countFaceA", Integer.valueOf(holeXmlVOS.getCountFaceA())); - holeCountMap.put("countFaceB", Integer.valueOf(holeXmlVOS.getCountFaceB())); - holeCountMap.put("countSide", Integer.valueOf(holeXmlVOS.getCountSide())); - holeCountMap.put("countSideL", Integer.valueOf(holeXmlVOS.getCountSideL())); - holeCountMap.put("countSideD", Integer.valueOf(holeXmlVOS.getCountSideD())); - holeCountMap.put("countSideR", Integer.valueOf(holeXmlVOS.getCountSideR())); - holeCountMap.put("countSideU", Integer.valueOf(holeXmlVOS.getCountSideU())); - holeCountMap.put("countBevelled", Integer.valueOf(holeXmlVOS.getCountBevelled())); - holeCountMap.put("countLocking", Integer.valueOf(holeXmlVOS.getCountLocking())); - holeCountMap.put("countBuildIn", Integer.valueOf(holeXmlVOS.getCountBuildIn())); - holeCountMap.put("countHinge", Integer.valueOf(holeXmlVOS.getCountHinge())); - holeCountMap.put("countThrough", Integer.valueOf(holeXmlVOS.getCountThrough())); - plateDetail.getHoleCount().putAll(holeCountMap); - plateDO.setFrontHoleCount(Integer.valueOf(holeXmlVOS.getCountFaceA())). - setBackHoleCount(Integer.valueOf(holeXmlVOS.getCountFaceB())). - setSideHoleCount(Integer.valueOf(holeXmlVOS.getCountSide())); - if (holeXmlVOS.getCountThrough() != null && Integer.parseInt(holeXmlVOS.getCountThrough()) > 0) { - plateDO.setFilterType(plateDO.getFilterType() + ",2"); - } - if (holeXmlVOS.getHoleXmlVOList() != null && holeXmlVOS.getHoleXmlVOList().size() > 0) { - for (HoleXmlVO holeXmlVO : holeXmlVOS.getHoleXmlVOList()) { - DictDataRespDTO faceType = dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, holeXmlVO.getFace()).getData(); - Integer faceTypeValue = faceType != null ? Integer.parseInt(faceType.getValue()) : 2; - Integer direction = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.HOLE_DIRECTION, 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(faceTypeValue) - .direction(direction) - .holeType(holeType != null ? Integer.valueOf(holeType.getValue()) : null) - .radius(radius) - .depth(depth) - .startX(holeXmlVO.getStartX() != null ? Double.parseDouble(holeXmlVO.getStartX()) : 0) - .startY(holeXmlVO.getStartY() != null ? Double.parseDouble(holeXmlVO.getStartY()) : 0) - .startZ(holeXmlVO.getStartZ() != null ? Double.parseDouble(holeXmlVO.getStartZ()) : 0) - .endX(holeXmlVO.getEndX() != null ? Double.parseDouble(holeXmlVO.getEndX()) : 0) - .endY(holeXmlVO.getEndY() != null ? Double.parseDouble(holeXmlVO.getEndY()) : 0) - .endZ(holeXmlVO.getEndZ() != null ? Double.parseDouble(holeXmlVO.getEndZ()) : 0) - .build(); -// if (holeXmlVO.getPointBeginXmlVO() != null) { -// holeDetail.setStartX(Double.parseDouble(holeXmlVO.getPointBeginXmlVO().getX())). -// setStartY(Double.parseDouble(holeXmlVO.getPointBeginXmlVO().getY())). -// setStartZ(Double.parseDouble(holeXmlVO.getPointBeginXmlVO().getZ())); -// } -// if (holeXmlVO.getPointEndXmlVO() != null) { -// holeDetail.setEndX(Double.parseDouble(holeXmlVO.getPointEndXmlVO().getX())). -// setEndY(Double.parseDouble(holeXmlVO.getPointEndXmlVO().getY())). -// setEndZ(Double.parseDouble(holeXmlVO.getPointEndXmlVO().getZ())); -// } - plateDetail.getHoleDetail().add(holeDetail); - } - } + if (holeXmlVOS == null || holeXmlVOS.getHoleXmlVOList() == null || holeXmlVOS.getHoleXmlVOList().isEmpty()) { + return; } + + Map holeCountMap = extractHoleCount(holeXmlVOS); + updatePlateDetailHoleCount(plateDetail, holeCountMap); + updatePlateDOHoleCount(plateDO, holeXmlVOS); + updatePlateDOFilterTypeIfThroughHolesExist(plateDO, holeXmlVOS); + addHoleDetailsToPlateDetail(plateDetail, holeXmlVOS.getHoleXmlVOList()); + } + + private Map extractHoleCount(HoleXmlVOS holeXmlVOS) { + Map holeCountMap = new HashMap<>(); + holeCountMap.put("count", Integer.valueOf(holeXmlVOS.getCount())); + holeCountMap.put("countFaceA", Integer.valueOf(holeXmlVOS.getCountFaceA())); + holeCountMap.put("countFaceB", Integer.valueOf(holeXmlVOS.getCountFaceB())); + holeCountMap.put("countSide", Integer.valueOf(holeXmlVOS.getCountSide())); + holeCountMap.put("countSideL", Integer.valueOf(holeXmlVOS.getCountSideL())); + holeCountMap.put("countSideD", Integer.valueOf(holeXmlVOS.getCountSideD())); + holeCountMap.put("countSideR", Integer.valueOf(holeXmlVOS.getCountSideR())); + holeCountMap.put("countSideU", Integer.valueOf(holeXmlVOS.getCountSideU())); + holeCountMap.put("countBevelled", Integer.valueOf(holeXmlVOS.getCountBevelled())); + holeCountMap.put("countLocking", Integer.valueOf(holeXmlVOS.getCountLocking())); + holeCountMap.put("countBuildIn", Integer.valueOf(holeXmlVOS.getCountBuildIn())); + holeCountMap.put("countHinge", Integer.valueOf(holeXmlVOS.getCountHinge())); + holeCountMap.put("countThrough", Integer.valueOf(holeXmlVOS.getCountThrough())); + return holeCountMap; + } + + private void updatePlateDetailHoleCount(PlateDetail plateDetail, Map holeCountMap) { + plateDetail.getHoleCount().putAll(holeCountMap); + } + + private void updatePlateDOHoleCount(PlateDO plateDO, HoleXmlVOS holeXmlVOS) { + plateDO.setFrontHoleCount(Integer.valueOf(holeXmlVOS.getCountFaceA())); + plateDO.setBackHoleCount(Integer.valueOf(holeXmlVOS.getCountFaceB())); + plateDO.setSideHoleCount(Integer.valueOf(holeXmlVOS.getCountSide())); + } + + private void updatePlateDOFilterTypeIfThroughHolesExist(PlateDO plateDO, HoleXmlVOS holeXmlVOS) { + if (holeXmlVOS.getCountThrough() != null && Integer.parseInt(holeXmlVOS.getCountThrough()) > 0) { + plateDO.setFilterType(plateDO.getFilterType() + ",2"); + } + } + + private void addHoleDetailsToPlateDetail(PlateDetail plateDetail, List holeXmlVOList) { + for (HoleXmlVO holeXmlVO : holeXmlVOList) { + HoleDetail holeDetail = createHoleDetail(holeXmlVO); + plateDetail.getHoleDetail().add(holeDetail); + } + } + + private HoleDetail createHoleDetail(HoleXmlVO holeXmlVO) { + DictDataRespDTO faceType = dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, holeXmlVO.getFace()).getData(); + Integer faceTypeValue = faceType != null ? Integer.parseInt(faceType.getValue()) : 2; + Integer direction = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.HOLE_DIRECTION, 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; + + return HoleDetail.builder() + .holeName(holeXmlVO.getName()) + .faceType(faceTypeValue) + .direction(direction) + .holeType(holeType != null ? Integer.valueOf(holeType.getValue()) : null) + .radius(radius) + .depth(depth) + .startX(holeXmlVO.getStartX() != null ? Double.parseDouble(holeXmlVO.getStartX()) : 0) + .startY(holeXmlVO.getStartY() != null ? Double.parseDouble(holeXmlVO.getStartY()) : 0) + .startZ(holeXmlVO.getStartZ() != null ? Double.parseDouble(holeXmlVO.getStartZ()) : 0) + .endX(holeXmlVO.getEndX() != null ? Double.parseDouble(holeXmlVO.getEndX()) : 0) + .endY(holeXmlVO.getEndY() != null ? Double.parseDouble(holeXmlVO.getEndY()) : 0) + .endZ(holeXmlVO.getEndZ() != null ? Double.parseDouble(holeXmlVO.getEndZ()) : 0) + .build(); } // 造型 private void addContourDetail(PlateDO plateDO, PlateDetail plateDetail, GrooveXmlVOS grooveXmlVOS) { - if (grooveXmlVOS != null && ObjectUtils.allNull(grooveXmlVOS)) { - Map contourCount = new HashMap<>(); - contourCount.put("count",Integer.valueOf(grooveXmlVOS.getCount())); - contourCount.put("countFaceA", Integer.valueOf(grooveXmlVOS.getCountFaceA())); - contourCount.put("countFaceB", Integer.valueOf(grooveXmlVOS.getCountFaceB())); - contourCount.put("countSide", Integer.valueOf(grooveXmlVOS.getCountSide())); - contourCount.put("countSideL", Integer.valueOf(grooveXmlVOS.getCountSideL())); - contourCount.put("countSideD", Integer.valueOf(grooveXmlVOS.getCountSideD())); - contourCount.put("countSideR", Integer.valueOf(grooveXmlVOS.getCountSideR())); - contourCount.put("countSideU", Integer.valueOf(grooveXmlVOS.getCountSideU())); - contourCount.put("countBevelled", Integer.valueOf(grooveXmlVOS.getCountBevelled())); - contourCount.put("countRectangle", Integer.valueOf(grooveXmlVOS.getCountRectangle())); - contourCount.put("count2V", Integer.valueOf(grooveXmlVOS.getCount2V())); - contourCount.put("count3D", Integer.valueOf(grooveXmlVOS.getCount3D())); - contourCount.put("countThrough", Integer.valueOf(grooveXmlVOS.getCountThrough())); - plateDetail.getHoleCount().putAll(contourCount); - plateDetail.setHas2DModel(Integer.parseInt(grooveXmlVOS.getCount2V()) > 0); - plateDetail.setHas3DModel(Integer.parseInt(grooveXmlVOS.getCount3D()) > 0); - plateDO.setFrontModelCount(Integer.valueOf(grooveXmlVOS.getCountFaceA())). - setBackModelCount(Integer.valueOf(grooveXmlVOS.getCountFaceB())); - if (grooveXmlVOS.getCountThrough() != null && Integer.parseInt(grooveXmlVOS.getCountThrough()) > 0) { - plateDO.setFilterType(plateDO.getFilterType() + ",1"); - } - if (grooveXmlVOS.getGrooveXmlVOList() != null && grooveXmlVOS.getGrooveXmlVOList().size() > 0) { - for (GrooveXmlVO grooveXmlVO : grooveXmlVOS.getGrooveXmlVOList()) { - int faceType = Integer.parseInt(dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, grooveXmlVO.getFace()).getData().getValue()); - faceType = faceType == 0 || faceType == 1 ? faceType : 2; - ModelDetail modelDetail = ModelDetail.builder() - .id(Integer.valueOf(grooveXmlVO.getId())) - .parentId(Integer.valueOf(grooveXmlVO.getParentId())) - .type(grooveXmlVO.getType()) - .faceType(faceType) - .width(Double.parseDouble(grooveXmlVO.getWidth())) - .length(Double.parseDouble(grooveXmlVO.getLength())) - .depth(Double.parseDouble(grooveXmlVO.getDepth())) - .knifeName(grooveXmlVO.getToolName()) - .knifeRadius(Double.parseDouble(grooveXmlVO.getToolDiameter()) / 2) - .round(Double.parseDouble(grooveXmlVO.getRound())) - .redundance(Double.parseDouble(grooveXmlVO.getRedundance())) - .tangentAngle(Double.parseDouble(grooveXmlVO.getTangentAngle())) - .originModeling(getOriginModelingData(grooveXmlVO)) - .pointList(addPointDetail(grooveXmlVO.getPointXmlVOS())) - .offSetList(addOffSetDetail(grooveXmlVO.getOffsetLineXmlVOS())).build(); - plateDetail.getContourDetail().add(modelDetail); - } - } + if (grooveXmlVOS == null || ObjectUtils.allNull(grooveXmlVOS)) { + return; } + + Map contourCount = extractContourCount(grooveXmlVOS); + updatePlateDetailWithContourCount(plateDetail, contourCount); + updatePlateDOWithContourCount(plateDO, grooveXmlVOS); + updatePlateDOFilterTypeIfThroughGroovesExist(plateDO, grooveXmlVOS); + + if (grooveXmlVOS.getGrooveXmlVOList() != null && !grooveXmlVOS.getGrooveXmlVOList().isEmpty()) { + addGrooveDetailsToPlateDetail(plateDetail, grooveXmlVOS.getGrooveXmlVOList()); + } + } + + private Map extractContourCount(GrooveXmlVOS grooveXmlVOS) { + Map contourCount = new HashMap<>(); + contourCount.put("count", Integer.valueOf(grooveXmlVOS.getCount())); + contourCount.put("countFaceA", Integer.valueOf(grooveXmlVOS.getCountFaceA())); + contourCount.put("countFaceB", Integer.valueOf(grooveXmlVOS.getCountFaceB())); + contourCount.put("countSide", Integer.valueOf(grooveXmlVOS.getCountSide())); + contourCount.put("countSideL", Integer.valueOf(grooveXmlVOS.getCountSideL())); + contourCount.put("countSideD", Integer.valueOf(grooveXmlVOS.getCountSideD())); + contourCount.put("countSideR", Integer.valueOf(grooveXmlVOS.getCountSideR())); + contourCount.put("countSideU", Integer.valueOf(grooveXmlVOS.getCountSideU())); + contourCount.put("countBevelled", Integer.valueOf(grooveXmlVOS.getCountBevelled())); + contourCount.put("countRectangle", Integer.valueOf(grooveXmlVOS.getCountRectangle())); + contourCount.put("count2V", Integer.valueOf(grooveXmlVOS.getCount2V())); + contourCount.put("count3D", Integer.valueOf(grooveXmlVOS.getCount3D())); + contourCount.put("countThrough", Integer.valueOf(grooveXmlVOS.getCountThrough())); + return contourCount; + } + + private void updatePlateDetailWithContourCount(PlateDetail plateDetail, Map contourCount) { + plateDetail.getHoleCount().putAll(contourCount); + plateDetail.setHas2DModel(contourCount.getOrDefault("count2V", 0) > 0); + plateDetail.setHas3DModel(contourCount.getOrDefault("count3D", 0) > 0); + } + + private void updatePlateDOWithContourCount(PlateDO plateDO, GrooveXmlVOS grooveXmlVOS) { + plateDO.setFrontModelCount(Integer.valueOf(grooveXmlVOS.getCountFaceA())); + plateDO.setBackModelCount(Integer.valueOf(grooveXmlVOS.getCountFaceB())); + } + + private void updatePlateDOFilterTypeIfThroughGroovesExist(PlateDO plateDO, GrooveXmlVOS grooveXmlVOS) { + if (grooveXmlVOS.getCountThrough() != null && Integer.parseInt(grooveXmlVOS.getCountThrough()) > 0) { + plateDO.setFilterType(plateDO.getFilterType() + ",1"); + } + } + + private void addGrooveDetailsToPlateDetail(PlateDetail plateDetail, List grooveXmlVOList) { + for (GrooveXmlVO grooveXmlVO : grooveXmlVOList) { + int faceType = parseFaceType(grooveXmlVO.getFace()); + ModelDetail modelDetail = createModelDetail(grooveXmlVO, faceType); + plateDetail.getContourDetail().add(modelDetail); + } + } + + private int parseFaceType(String face) { + int faceType = Integer.parseInt(dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, face).getData().getValue()); + return faceType == 0 || faceType == 1 ? faceType : 2; + } + + private ModelDetail createModelDetail(GrooveXmlVO grooveXmlVO, int faceType) { + return ModelDetail.builder() + .id(Integer.valueOf(grooveXmlVO.getId())) + .parentId(Integer.valueOf(grooveXmlVO.getParentId())) + .type(grooveXmlVO.getType()) + .faceType(faceType) + .width(Double.parseDouble(grooveXmlVO.getWidth())) + .length(Double.parseDouble(grooveXmlVO.getLength())) + .depth(Double.parseDouble(grooveXmlVO.getDepth())) + .knifeName(grooveXmlVO.getToolName()) + .knifeRadius(Double.parseDouble(grooveXmlVO.getToolDiameter()) / 2) + .round(Double.parseDouble(grooveXmlVO.getRound())) + .redundance(Double.parseDouble(grooveXmlVO.getRedundance())) + .tangentAngle(Double.parseDouble(grooveXmlVO.getTangentAngle())) + .originModeling(getOriginModelingData(grooveXmlVO)) + .offSetList(addOffSetDetail(grooveXmlVO.getOffsetLineXmlVOS())) + .build(); } // 造像轮廓数据 @@ -1268,6 +1316,7 @@ public class XmlTypeRealize { .addLen(Double.valueOf(grooveXmlVO.getLengthExtend())) .addDepth(Double.valueOf(grooveXmlVO.getDepthExtend())) .addWidth(Double.valueOf(grooveXmlVO.getWidthExtend())) + .pointList(addPointDetail(grooveXmlVO.getPointXmlVOS())) .build(); } 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/RemainPlatePageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/remain/RemainPlatePageReqVO.java index 8aa298021..aade9354d 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/remain/RemainPlatePageReqVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/remain/RemainPlatePageReqVO.java @@ -23,18 +23,18 @@ import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH public class RemainPlatePageReqVO extends PageParam { @Schema(description = "ID", example = "16628") - @Pattern(regexp = "^[0-9]*$",message = "余料号必须为数字") + @Pattern(regexp = "^[0-9]*$",message = "余料号应为数字") private String id; @Schema(description = "排单 ID", example = "16628") - @Pattern(regexp = "^[0-9]*$",message = "排单号必须为数字") + @Pattern(regexp = "^[0-9]*$",message = "使用排单号应为数字") private String planId; @Schema(description = "组织id", example = "1") private Long organId; @Schema(description = "初始排单 ID", example = "6628") - @Pattern(regexp = "^[0-9]*$",message = "初始排单号必须为数字") + @Pattern(regexp = "^[0-9]*$",message = "排单号应为数字") private String initPlanId; @Schema(description = "余料板状态,0未使用,1使用中", example = "0")