From 24dc1f728fe79f60651608279af31b54becf9735 Mon Sep 17 00:00:00 2001 From: lym <1994302445@qq.com> Date: Wed, 19 Jun 2024 17:44:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=A4=87=E6=B3=A8es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/orderParts/vo/OrderPartsRemark.java | 37 +++++++++++++++++++ .../service/order/OrderServiceImpl.java | 16 ++++---- .../admin/api/webcad/ApiTypeRealize.java | 26 +++++++------ .../admin/files/excel/ExcelTypeRealize.java | 28 +++++++++++++- .../files/excel/OrderPlateImportExcelVO.java | 1 + 5 files changed, 88 insertions(+), 20 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsRemark.java diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsRemark.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsRemark.java new file mode 100644 index 000000000..f27a98e13 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsRemark.java @@ -0,0 +1,37 @@ +package com.cf.imes.module.executor.controller.admin.orderParts.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Schema(description = "管理后台 - 生产单配件 备注信息") +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class OrderPartsRemark { + + @Schema(description = "配件 ID") + private Long partsId; + + @Schema(description = "生产单号") + private Long orderId; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "五金额外规格") + private String specExtras; + + @Schema(description = "门板组件铰链备注") + private String doorRemark; + + @Schema(description = "门板组件拉手备注") + private String hingeRemark; + + @Schema(description = "特殊备注(Json字符串)") + private String specialRemark; + +} 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 eaa033b07..2c68afde6 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 @@ -9,6 +9,7 @@ import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.module.executor.controller.admin.order.vo.order.*; import com.cf.imes.framework.datapermission.core.util.DataPermissionUtils; import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO; +import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark; import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO; import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO; import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO; @@ -354,10 +355,10 @@ public class OrderServiceImpl implements OrderService { List plateGoodDOS = (List) map.get("plateGoodDOLists"); validateCustomOrderNoExists(order.get(0).getCustomOrderNo()); - orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, order.get(0), goodsDO, plateGoodDOS); - List orderModelDOs = BeanUtils.toBean(plateDetail, OrderModelDO.class); - orderModelDOs.forEach(orderModelDO -> orderModelDO.setOrderId(order.get(0).getId())); - orderInputProcessor.batchSaveModel(orderModelDOs); +// orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, order.get(0), goodsDO, plateGoodDOS); +// List orderModelDOs = BeanUtils.toBean(plateDetail, OrderModelDO.class); +// orderModelDOs.forEach(orderModelDO -> orderModelDO.setOrderId(order.get(0).getId())); +// orderInputProcessor.batchSaveModel(orderModelDOs); return order.get(0).getId(); } @@ -521,14 +522,15 @@ public class OrderServiceImpl implements OrderService { List partsDO = (List) listMap.get("orderPartsDOS"); List itemDO = (List) listMap.get("orderItemDOS"); List orderModelDOS = (List) listMap.get("orderModelDOS"); + List orderPartsRemarks = (List) listMap.get("orderPartsRemarks"); // 板材库匹配 Map> map = getPlateGoods(goodsDO);// 检验商品板材信息是否存在 goodsDO = (List) map.get("goodsDO"); List plateGoodDOS = (List) map.get("plateGoodDOLists"); - validateCustomOrderNoExists(orderDO.getCustomOrderNo()); - orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, orderDO, goodsDO, plateGoodDOS); - orderInputProcessor.batchSaveModel(orderModelDOS); +// validateCustomOrderNoExists(orderDO.getCustomOrderNo()); +// orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, orderDO, goodsDO, plateGoodDOS); +// orderInputProcessor.batchSaveModel(orderModelDOS); } 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 2b39982c2..c682d7712 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 @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; +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; @@ -98,6 +99,8 @@ public class ApiTypeRealize { // 配件 Map> partsDO = partsInfoChange(dataParts, orderId, (Map) goodsInfoChange.get("goodsDOS"), bodyInfoChange); + Map partsRemark = (Map) partsDO.get("remarks"); // 配件备注 + map.put("partsRemark", partsRemark.values().stream().collect(Collectors.toList())); Map orderPartsDO = (Map) partsDO.get("partsInfos"); map.put("partsDO", orderPartsDO.values().stream().collect(Collectors.toList())); Map partsItems = (Map) partsDO.get("partsItems"); @@ -385,6 +388,7 @@ public class ApiTypeRealize { Map> map = new HashMap<>(); Map partsInfos = new HashMap<>(); Map partsItem = new HashMap<>(); + Map remarks =new HashMap<>(); if (value != null && !value.isEmpty()) { JSONArray partsLists = value.getJSONArray("List"); @@ -409,6 +413,7 @@ public class ApiTypeRealize { .isComposite(parts.getBoolean("IsComposite")) .remark(parts.getString("Remark")) .build(); + remarks.put(parts.getInteger("DataID"),partsRemarkChange(parts, orderId, partsId)); partsInfos.put(parts.getInteger("DataID"), partsInfo); // item 明细 @@ -430,23 +435,22 @@ public class ApiTypeRealize { map.put("partsInfos", partsInfos); map.put("partsItems", partsItem); + map.put("remarks", remarks); return map; } // 配件备注集合 - private String partsRemarkChange(JSONObject value) { - List> mapList = new ArrayList<>(); + private OrderPartsRemark partsRemarkChange(JSONObject value, Long orderId, Long partsId) { + OrderPartsRemark remark = new OrderPartsRemark(); if (value != null && !value.isEmpty()) { - Map map = new HashMap<>(); - map.put("Remark", value.getString("Remark")); - map.put("SpecExtras", value.getString("SpecExtras")); - map.put("SpecialRemark", value.getString("SpecialRemark")); - map.put("DoorRemark", value.getString("DoorRemark")); - map.put("HingeRemark", value.getString("HingeRemark")); - mapList.add(map); + remark.setPartsId(partsId); + remark.setOrderId(orderId); + remark.setRemark(value.getString("Remark")); + remark.setSpecExtras(value.getString("SpecExtras")); + remark.setSpecialRemark(value.getString("SpecialRemark")); + remark.setDoorRemark(value.getString("DoorRemark")); + remark.setHingeRemark(value.getString("HingeRemark")); } - // 转String - String remark = JSON.toJSONString(mapList); return remark; } 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 193a48fda..37a5aa43b 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 @@ -1,7 +1,9 @@ package com.cf.imes.module.executor.util.fileConversion.admin.files.excel; +import cn.hutool.json.JSONObject; 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.orderBody.OrderBodyDO; import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; @@ -59,6 +61,7 @@ public class ExcelTypeRealize { ArrayList orderItemDOS = new ArrayList<>(); ArrayList orderModuleExtraDOS = new ArrayList<>(); ArrayList orderModelDOS = new ArrayList<>(); + ArrayList orderPartsRemarks = new ArrayList<>(); HashMap> checkMap = classifyGoods(excelVOS); @@ -195,7 +198,7 @@ public class ExcelTypeRealize { .openDoorType(Integer.valueOf(combination.getOpenDoorType())) .isSpecialShaped(false) .isSculpt(false) - .remark(combination.remarkJSON()) + .remark(remarkExtract(combination.remarkJSON())) .build(); plateDOS.add(plateDO); @@ -211,11 +214,16 @@ public class ExcelTypeRealize { } else { //配件 Long partsId = (Long) snowFlakeGenerator.nextId(null); + System.err.println(" remark " + combination.remarkJSON()); OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partsId).orderId(orderId).goodsId(combination.getGoodsId()) .name(combination.getGoodsName()).material(combination.getMaterial()).type(combination.getGoodType()) .model(combination.getModel()).spec(combination.getSpec()).brand(combination.getBrand()).factory(combination.getFactory()) - .unit(combination.getUnit()).price(0.0).isComposite(false).remark(combination.remarkJSON()).isComposite(false).build(); + .unit(combination.getUnit()).price(0.0).isComposite(false).remark(remarkExtract(combination.remarkJSON())).isComposite(false).build(); orderPartsDOS.add(orderPartsDO); + // 配件备注信息存储 + OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partsId).orderId(orderId) + .remark(remarkExtract(combination.remarkJSON())).build(); + orderPartsRemarks.add(orderPartsRemark); OrderItemDO orderItemDO = OrderItemDO.builder().orderId(orderId).type(OrderItemTypeEnum.PARTS_ITEM.getStatus()) .roomId(roomId).bodyId(bodyId).partsId(partsId).groupId(groupId) .num(Double.valueOf(combination.getGoodsNumber())).build(); @@ -242,9 +250,25 @@ public class ExcelTypeRealize { map.put("orderItemDOS", orderItemDOS); map.put("orderModuleExtraDOS", orderModuleExtraDOS); map.put("orderModelDOS", orderModelDOS); + map.put("orderPartsRemarks", orderPartsRemarks); return map; } + // 备注提取 + private String remarkExtract(String remark) { + JSONObject jsonObject = new JSONObject(remark); + JSONObject nonNullJsonObject = new JSONObject(); + + for (String key : jsonObject.keySet()) { + Object value = jsonObject.get(key); + if (value != null) { + nonNullJsonObject.put(key, value); + } + } + + return nonNullJsonObject.toString(); + } + // 板材库数据 private PlateGoodDO setPlateGoodDO(OrderPlateImportExcelVO excelVO) { return PlateGoodDO.builder() 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/OrderPlateImportExcelVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderPlateImportExcelVO.java index 94a35727a..5cc86d402 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderPlateImportExcelVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderPlateImportExcelVO.java @@ -38,6 +38,7 @@ public class OrderPlateImportExcelVO { @JsonIgnore private String goodsId; + @ExcelIgnore private Long goodId;//商品id @ExcelProperty(value = "商品名称")