From 3cef4142feb5d9c62b2b8b87b36a9d04f744f410 Mon Sep 17 00:00:00 2001 From: lym <1994302445@qq.com> Date: Sat, 11 May 2024 10:23:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/order/OrderController.java | 91 +-- .../order/vo/order/OrderModuleRespVO.java | 10 +- .../vo/order/OrderPlatesDetailReqVO.java | 70 ++ .../vo/order/OrderPlatesDetailRespVO.java | 29 + .../orderParts/vo/OrderPartsPageReqVO.java | 2 +- .../admin/orderParts/vo/OrderPartsRespVO.java | 2 +- .../orderParts/vo/OrderPartsSaveReqVO.java | 2 +- .../admin/plate/vo/PlateRespVO.java | 8 + .../dal/dataobject/plate/PlateGoodDO.java | 83 +++ .../dal/mysql/orderBody/OrderBodyMapper.java | 4 + .../dal/mysql/orderItem/OrderItemMapper.java | 8 +- .../OrderModuleExtraMapper.java | 2 +- .../dal/mysql/plate/PlateGoodMapper.java | 16 + .../service/order/OrderInputProcessor.java | 30 +- .../executor/service/order/OrderService.java | 21 +- .../service/order/OrderServiceImpl.java | 130 ++-- .../executor/util/deviseData/group.java | 24 - .../api/webcad/ApiTypeChangeRealize.java | 664 ------------------ .../admin/api/webcad/ApiTypeRealize.java | 25 +- .../admin/files/excel/ExcelListener.java | 23 +- ...hangeRealize.java => FileTypeRealize.java} | 9 +- .../admin/files/excel/OrderExcelUtil.java | 6 +- .../files/excel/OrderPlateImportExcelVO.java | 8 +- .../admin/files/excel/PlateImportVO.java | 60 -- .../mapper/orderBody/OrderBodyMapper.xml | 7 + .../mapper/orderItem/OrderItemMapper.xml | 43 +- .../module/manage/api/plate/PlateApi.java | 4 + .../manage/api/plate/PlateServiceImpl.java | 12 + .../manage/service/plate/PlateService.java | 8 + .../service/plate/PlateServiceImpl.java | 5 + 30 files changed, 499 insertions(+), 907 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlatesDetailReqVO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlatesDetailRespVO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateGoodMapper.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/group.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeChangeRealize.java rename cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/{FileTypeChangeRealize.java => FileTypeRealize.java} (96%) delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/PlateImportVO.java 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 911ebee6d..a87c31583 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 @@ -1,15 +1,11 @@ package com.cf.imes.module.executor.controller.admin.order; import com.alibaba.excel.EasyExcel; -import com.alibaba.fastjson.JSONObject; -import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderModuleRespVO; -import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPageReqVO; -import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO; -import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderSaveReqVO; +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.dal.dataobject.orderModuleExtra.OrderModuleExtraDO; -import com.cf.imes.module.executor.service.order.ApiOrderService; -import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.PlateImportVO; +import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO; +import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderExcelUtil; +import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPlateImportExcelVO; import io.swagger.v3.oas.annotations.Parameters; import org.springframework.util.ResourceUtils; import org.springframework.web.bind.annotation.*; @@ -28,15 +24,12 @@ import java.io.*; import java.net.URLEncoder; import java.util.*; -import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.framework.common.util.object.BeanUtils; import static com.cf.imes.framework.common.pojo.CommonResult.success; -import com.cf.imes.framework.excel.core.util.ExcelUtils; - import com.cf.imes.framework.operatelog.core.annotations.OperateLog; import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.*; @@ -64,6 +57,9 @@ public class OrderController { @Resource private OrderService orderService; + @Resource + private OrderExcelUtil orderExcelUtil; + private static final Logger log = LoggerFactory.getLogger(OrderController.class); @PostMapping("/create") @@ -204,7 +200,7 @@ public class OrderController { @GetMapping("/get-room") - @Operation(summary = "生产单详情-房间、柜体信息") + @Operation(summary = "生产单详情-房间和柜体id") @Parameter(name = "orderId", description = "生产单编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('executor:order:query')") public CommonResult> getRoom(@RequestParam("orderId") Long orderId) { @@ -213,30 +209,43 @@ public class OrderController { } @GetMapping("/get-module") - @Operation(summary = "生产单详情-模块全部数量信息") - @Parameters({ - @Parameter(name = "orderId", description = "生产单编号", example = "1024"), - @Parameter(name = "roomId", description = "房间编号", example = "1024"), - @Parameter(name = "bodyId", description = "柜体编号", example = "1024") - }) + @Operation(summary = "生产单详情-数量信息") + @Parameter(name = "orderId", description = "生产单编号", example = "1024") @PreAuthorize("@ss.hasPermission('executor:order:query')") - public CommonResult> getModule(@RequestParam("orderId") Long orderId) { - List moduleDOList = orderService.getModule(orderId); + public CommonResult>> getModule(@RequestParam("orderId") Long orderId) { + Map> moduleDOList = orderService.getModule(orderId); return success(moduleDOList); } - @GetMapping("/get-moduleDetails") - @Operation(summary = "生产单详情-模块详细信息")//生产单详情-模块全部数量信息 + @GetMapping("/get-platesDetails") + @Operation(summary = "生产单详情-板材详细信息") + @Parameters({ + @Parameter(name = "orderId", description = "生产单编号", example = "1024"), + @Parameter(name = "roomId", description = "房间编号", example = "1024"), + @Parameter(name = "bodyId", description = "柜体编号", example = "1024"), + @Parameter(name = "groupId", description = "加工组编号", example = "1024") + }) + @PreAuthorize("@ss.hasPermission('executor:order:query')") + public CommonResult> platesDetails(@RequestParam("orderId") Long orderId, + @RequestParam(value = "roomId", required = false) Long roomId, + @RequestParam(value = "bodyId", required = false) Long bodyId, + @RequestParam(value = "groupId", required = false) Long groupId) { + List moduleDOList = orderService.getPlatesDetail(orderId, roomId, bodyId,groupId); + return success(moduleDOList); + } + + @GetMapping("/get-partsDetails") + @Operation(summary = "生产单详情-配件详细信息") @Parameters({ @Parameter(name = "orderId", description = "生产单编号", example = "1024"), @Parameter(name = "roomId", description = "房间编号", example = "1024"), @Parameter(name = "bodyId", description = "柜体编号", example = "1024") }) @PreAuthorize("@ss.hasPermission('executor:order:query')") - public CommonResult> getModule(@RequestParam("orderId") Long orderId, - @RequestParam(value = "roomId", required = false) Long roomId, - @RequestParam(value = "bodyId", required = false) Long bodyId) { - List moduleDOList = orderService.getModuleDetail(orderId, roomId, bodyId); + public CommonResult> partsDetails(@RequestParam("orderId") Long orderId, + @RequestParam(value = "roomId", required = false) Long roomId, + @RequestParam(value = "bodyId", required = false) Long bodyId) { + List moduleDOList = orderService.getPartsDetail(orderId, roomId, bodyId); return success(moduleDOList); } @@ -264,41 +273,37 @@ public class OrderController { @GetMapping("getApiData") - @Operation(summary = "api数据获取") + @Operation(summary = "生产单api数据导入新增") @PreAuthorize("@ss.hasPermission('executor:order:getApiData')") - public CommonResult test(@RequestParam(value = "orderNo", required = false, defaultValue = "20230809027818") String orderNo) { + public CommonResult test(@RequestParam(value = "orderNo", required = false, defaultValue = "20230809027818") String orderNo) { return success(orderService.importApiData(orderNo)); } @PostMapping("/importFile") - @Operation(summary = "生产单导入新增") + @Operation(summary = "生产单文件导入新增") @Parameters({ @Parameter(name = "file", description = "文件", required = true), - @Parameter(name = "type", description = "文件类型", required = true), - @Parameter(name = "isAddPlate", description = "是否为生产单新增板材", example = "false"), - @Parameter(name = "upload", description = "是 更新、否 新建", example = "false") + @Parameter(name = "type", description = "文件类型", required = true) }) @PreAuthorize("@ss.hasPermission('executor:order:importExcel')") @OperateLog(type = EXPORT) public void exportTest(@RequestPart("file") MultipartFile file, @RequestParam(value = "type", required = false, defaultValue = "true") Integer type, - @RequestParam(value = "isAddPlate", required = false, defaultValue = "false") Boolean isAddPlate, - @RequestParam(value = "upload", required = false, defaultValue = "false") Boolean upload, HttpServletResponse response) throws IOException { -// 判断是否更新板材 + List list = new ArrayList<>(); + if (type == 0) { //excel + // 读取文件 + orderExcelUtil.read(file, OrderPlateImportExcelVO.class,0); +// List orderPlateImportExcelVOS = orderExcelUtil.read(file, OrderPlateImportExcelVO.class,0); +// list = orderPlateImportExcelVOS; + } else if (type == 1) { // json - EasyExcel.read(file.getInputStream(), OrderRespVO.class, null) - .headRowNumber(2) - .autoCloseStream(false) // 不要自动关闭,交给 Servlet 自己处理 - .doReadAllSync(); + }else if (type == 2) { // xml - List orderPlateImportExcelVOS = ExcelUtils.read(file, PlateImportVO.class); - System.out.println( - "orderPlateImportExcelVOS " + orderPlateImportExcelVOS - ); + } } } \ No newline at end of file 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/OrderModuleRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleRespVO.java index 8b8434a03..c7a731291 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderModuleRespVO.java @@ -10,7 +10,7 @@ import lombok.Data; public class OrderModuleRespVO { @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20230414026120") - private Long id; + private Long orderId; @Schema(description = "房间Id", requiredMode = Schema.RequiredMode.REQUIRED) private Long roomId; @@ -21,9 +21,9 @@ public class OrderModuleRespVO { @Schema(description = "加工组Id", requiredMode = Schema.RequiredMode.REQUIRED) private Long groupId; - @Schema(description = "柜体板块数量", requiredMode = Schema.RequiredMode.REQUIRED) - private Integer bodyNum; + @Schema(description = "加工组名", requiredMode = Schema.RequiredMode.REQUIRED) + private String groupName; - @Schema(description = "加工组板块数量", requiredMode = Schema.RequiredMode.REQUIRED) - private Integer groupNum; + @Schema(description = "柜体中的板材数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer plateNum; } 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/OrderPlatesDetailReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlatesDetailReqVO.java new file mode 100644 index 000000000..c8eeedd9f --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlatesDetailReqVO.java @@ -0,0 +1,70 @@ +package com.cf.imes.module.executor.controller.admin.order.vo.order; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 生产单板件 Response VO") +@Data +@ExcelIgnoreUnannotated +public class OrderPlatesDetailReqVO { + + @Schema(description = "板件 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "32523") + private Long id; + + @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11087") + Long orderId; + + @Schema(description = "板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰") + private String name; + + @Schema(description = "自定义板名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰") + private String plateNo; + + @Schema(description = "材质", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰") + private String material; + + @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal width; + + @Schema(description = "高度", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal height; + + @Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal thickness; + + @Schema(description = "面积", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal area; + + @Schema(description = "左封边厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal sealLeft; + + @Schema(description = "右封边厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal sealRight; + + @Schema(description = "上封边厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal sealUp; + + @Schema(description = "下封边厚度", requiredMode = Schema.RequiredMode.REQUIRED) + private BigDecimal sealDown; + + @Schema(description = "纹路类型,0 正纹 1 可翻转 2 反纹", requiredMode = Schema.RequiredMode.REQUIRED) + private Integer texture; + + @Schema(description = "是否异形", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean isSpecialShaped; + + @Schema(description = "是否造型", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean isSculpt; + + @Schema(description = "是否排孔", requiredMode = Schema.RequiredMode.REQUIRED) + private Boolean isHole; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") + @ExcelProperty("备注") + private String remark; + +} 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/OrderPlatesDetailRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlatesDetailRespVO.java new file mode 100644 index 000000000..26158e99e --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlatesDetailRespVO.java @@ -0,0 +1,29 @@ +package com.cf.imes.module.executor.controller.admin.order.vo.order; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 生产单表 order Response VO") +@Data +@ExcelIgnoreUnannotated +public class OrderPlatesDetailRespVO { + + @Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20230414026120") + private Long orderId; + + @Schema(description = "房间Id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long roomId; + + @Schema(description = "柜体Id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long bodyId; + + @Schema(description = "加工组Id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long groupId; + + @Schema(description = "配件名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String partName; + + @Schema(description = "柜体中的配件数量", requiredMode = Schema.RequiredMode.REQUIRED) + private Double plateNum; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsPageReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsPageReqVO.java index 81486d9ef..a005e7657 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsPageReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsPageReqVO.java @@ -28,7 +28,7 @@ public class OrderPartsPageReqVO extends PageParam { private String material; @Schema(description = "配件类型", example = "2") - private Integer type; + private String type; @Schema(description = "型号") private String model; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsRespVO.java index 7de91d7a2..155607dea 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsRespVO.java @@ -35,7 +35,7 @@ public class OrderPartsRespVO { @Schema(description = "配件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @ExcelProperty("配件类型") - private Integer type; + private String type; @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("型号") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsSaveReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsSaveReqVO.java index dfef723d9..12e83c790 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsSaveReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/orderParts/vo/OrderPartsSaveReqVO.java @@ -30,7 +30,7 @@ public class OrderPartsSaveReqVO { @Schema(description = "配件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotEmpty(message = "配件类型不能为空") - private Integer type; + private String type; @Schema(description = "型号", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "型号不能为空") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateRespVO.java index a1da4ff49..d06656e01 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateRespVO.java @@ -149,6 +149,14 @@ public class PlateRespVO { @ExcelProperty("排单过滤类型,1 有挖穿造型 2 有挖穿孔 4 有二维刀路 8 可叠") private Integer filterType; + @Schema(description = "是否异形", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否异形") + private Boolean isSpecialShaped; + + @Schema(description = "是否造型", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("是否造型") + private Boolean isSculpt; + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") @ExcelProperty("备注") private String remark; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java new file mode 100644 index 000000000..3d809e285 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java @@ -0,0 +1,83 @@ +package com.cf.imes.module.executor.dal.dataobject.plate; + +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.cf.imes.framework.mybatis.core.dataobject.BaseDO; +import lombok.*; + +/** + * 板材信息表 plate_N DO + * + * @author 晨丰科技 + */ +@TableName("plate") +@KeySequence("plate_n_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PlateGoodDO extends BaseDO { + + /** + * 主键 + */ + @TableId + private Long id; + /** + * 客户的商品编号 + */ + private String goodsId; + /** + * 商品名称 + */ + private String goodsName; + /** + * 材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板 + */ + private String material; + /** + * 颜色 + */ + private String color; + /** + * 纹路 + */ + private String texture; + /** + * 宽度 + */ + private Double width; + /** + * 高度 + */ + private Double height; + /** + * 厚度 + */ + private Double thickness; + /** + * 价格 + */ + private Double price; + /** + * 品牌 + */ + private String brand; + /** + * 规格 + */ + private String spec; + /** + * 备注 + */ + private String remark; + + /** + * 组织id + */ + private Long organId; + +} \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderBody/OrderBodyMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderBody/OrderBodyMapper.java index cbffbec1b..6c4d34fc3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderBody/OrderBodyMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderBody/OrderBodyMapper.java @@ -1,11 +1,13 @@ package com.cf.imes.module.executor.dal.mysql.orderBody; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; +import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderModuleRespVO; import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.io.Serializable; +import java.util.List; /** * 生产单柜体 Mapper @@ -18,4 +20,6 @@ public interface OrderBodyMapper extends BaseMapperX { int updatePlateNumById(@Param("orderId") Long orderId, @Param("plateNum") Double plateNum); int deleteAllByOrderId(@Param("orderId") Long orderId, @Param("bodyId") Long bodyId); + + List selectModuleByOrderId(@Param("orderId") Long orderId); } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java index b5be6e209..92b8d7d91 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderItem/OrderItemMapper.java @@ -2,6 +2,10 @@ package com.cf.imes.module.executor.dal.mysql.orderItem; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderModuleRespVO; +import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO; +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.orderItem.OrderItemDO; import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleExtraDO; import org.apache.ibatis.annotations.Mapper; @@ -17,8 +21,9 @@ import java.util.List; @Mapper public interface OrderItemMapper extends BaseMapperX { - List selectExtraById(@Param("orderId")Long orderId, @Param("roomId")Long roomId , @Param("bodyId")Long bodyId); + List selectPlatesDetailByOrderId(@Param("orderId")Long orderId, @Param("roomId")Long roomId , @Param("bodyId")Long bodyId , @Param("groupId")Long groupId); + List selectPartsDetailByOrderId(@Param("orderId")Long orderId, @Param("roomId")Long roomId , @Param("bodyId")Long bodyId ); default List selectByOrderId(Long orderId) { return selectList(new LambdaQueryWrapperX() @@ -26,4 +31,5 @@ public interface OrderItemMapper extends BaseMapperX { } + List selectPartsByOrderId(@Param("orderId") Long orderId); } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderModuleExtra/OrderModuleExtraMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderModuleExtra/OrderModuleExtraMapper.java index a504a56b6..b0de51260 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderModuleExtra/OrderModuleExtraMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/orderModuleExtra/OrderModuleExtraMapper.java @@ -14,5 +14,5 @@ public interface OrderModuleExtraMapper extends BaseMapperX int insertOne(@Param("orderModuleExtraDO")OrderModuleExtraDO orderModuleExtraDO); - List selectExtraById(@Param("orderId")Long orderId, @Param("roomId")Long roomId , @Param("bodyId")Long bodyId); + } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateGoodMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateGoodMapper.java new file mode 100644 index 000000000..c589de2cc --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateGoodMapper.java @@ -0,0 +1,16 @@ +package com.cf.imes.module.executor.dal.mysql.plate; + +import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; +import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 板材信息 Mapper plate + * + * @author 晨丰科技 + */ +@Mapper +public interface PlateGoodMapper extends BaseMapperX { + + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderInputProcessor.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderInputProcessor.java index 9e13579dc..f4c12da79 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderInputProcessor.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderInputProcessor.java @@ -8,6 +8,7 @@ import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.es.core.service.ESDocumentService; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; import com.cf.imes.framework.organ.core.context.OrganContextHolder; +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; import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; @@ -16,13 +17,16 @@ import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleEx import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO; import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; +import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO; import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO; +import com.cf.imes.module.executor.dal.mysql.goods.GoodsMapper; import com.cf.imes.module.executor.dal.mysql.order.OrderMapper; import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper; import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper; import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper; import com.cf.imes.module.executor.dal.mysql.orderModuleExtra.OrderModuleExtraMapper; import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper; +import com.cf.imes.module.executor.dal.mysql.plate.PlateGoodMapper; import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper; import com.cf.imes.module.executor.dal.mysql.rawgoods.RawGoodsMapper; import com.cf.imes.module.executor.util.RandomUtils; @@ -73,6 +77,12 @@ public class OrderInputProcessor { @Resource private OrderItemMapper orderItemMapper; + @Resource + private GoodsMapper goodsMapper; + + @Resource + private PlateGoodMapper plateGoodMapper; + @Resource private OrderModuleExtraMapper orderModuleExtraMapper; @@ -298,10 +308,11 @@ public class OrderInputProcessor { * @param itemDOS */ @Transactional - public void batchInsert(Collection rawGoodsDOS, Collection orderBodyDOS, + public Long batchInsert(Collection rawGoodsDOS, Collection orderBodyDOS, Collection orderGroupDOS, Collection orderPartsDOS, Collection plateDOS, Collection orderModuleExtraDOS, - Collection itemDOS, OrderDO orderDO) { + Collection itemDOS, OrderDO orderDO, + Collection goodsDOS, Collection plateGoodDOS) { if (orderDO != null) orderMapper.insert(orderDO); @@ -330,11 +341,21 @@ public class OrderInputProcessor { orderModuleExtraMapper.insertBatch(orderModuleExtraDOS.stream().skip(i).limit(1000).collect(Collectors.toList())); } } - if (itemDOS != null) + if (itemDOS != null) { for (int i = 0; i < itemDOS.size(); i += 1000) { orderItemMapper.insertBatch(itemDOS.stream().skip(i).limit(1000).collect(Collectors.toList())); } - + } + if (goodsDOS != null) { + for (int i = 0; i < itemDOS.size(); i += 1000) { + goodsMapper.insertBatch(goodsDOS.stream().skip(i).limit(1000).collect(Collectors.toList())); + } + } + if (plateGoodDOS != null) { + for (int i = 0; i < itemDOS.size(); i += 1000) { + plateGoodMapper.insertBatch(plateGoodDOS.stream().skip(i).limit(1000).collect(Collectors.toList())); + } + } //rawGoodsMapper.insertBatch(rawGoodsDOS); //orderBodyMapper.insertBatch(orderBodyDOS); //orderGroupMapper.insertBatch(orderGroupDOS); @@ -342,6 +363,7 @@ public class OrderInputProcessor { //plateMapper.insertBatch(plateDOS); //orderModuleExtraMapper.insertBatch(orderModuleExtraDOS); //orderItemMapper.insertBatch(itemDOS); + return orderDO.getId(); } /** 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 9663705e2..3eba02a77 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 @@ -4,6 +4,8 @@ import javax.validation.*; 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.orderParts.vo.OrderPartsRespVO; +import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO; 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; @@ -79,18 +81,27 @@ public interface OrderService { /** * @param orderId: 生产单Id - * @return Map> + * @return Map> */ - List getModule(Long orderId); + Map> getModule(Long orderId); /** * @param orderId: 生产单id * @param roomId: 房间id * @param bodyId: 柜体id - * @return List + * @return List * 需要修改返回值 */ - List getModuleDetail(Long orderId, Long roomId , Long bodyId); + List getPlatesDetail(Long orderId, Long roomId , Long bodyId , Long groupId); + + /** + * @param orderId: 生产单id + * @param roomId: 房间id + * @param bodyId: 柜体id + * @return List + * 需要修改返回值 + */ + List getPartsDetail(Long orderId, Long roomId , Long bodyId); /** * 删除柜体 @@ -113,5 +124,5 @@ public interface OrderService { * @author Administrator * @date 2024/3/30 */ - Boolean importApiData(String orderNo); + Long importApiData(String orderNo); } \ No newline at end of file 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 166081e3f..f5af109d4 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,14 +1,14 @@ package com.cf.imes.module.executor.service.order; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import cn.smallbun.screw.core.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; +import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; 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.order.vo.product.ProductRespVO; +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; import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO; import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; @@ -17,24 +17,20 @@ import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleEx import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO; import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; +import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO; import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO; import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper; import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper; import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper; import com.cf.imes.module.executor.dal.mysql.orderModuleExtra.OrderModuleExtraMapper; import com.cf.imes.module.executor.dal.mysql.orderParts.OrderPartsMapper; +import com.cf.imes.module.executor.dal.mysql.plate.PlateGoodMapper; import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper; import com.cf.imes.module.executor.dal.mysql.rawgoods.RawGoodsMapper; -import com.cf.imes.module.executor.util.FileTypeChangeUtil; -import com.cf.imes.module.executor.util.deviseData.Detail; import com.cf.imes.module.executor.util.deviseData.dataTwo.PlateDetail; -import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeChangeRealize; import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeRealize; import com.cf.imes.module.system.api.application.ApplicationApi; -import com.cf.imes.module.system.api.organ.OrganApi; import com.cf.imes.module.system.api.user.AdminUserApi; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -48,9 +44,6 @@ import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.module.executor.dal.mysql.order.OrderMapper; - -import java.io.IOException; -import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; @@ -86,6 +79,9 @@ public class OrderServiceImpl implements OrderService { @Resource private PlateMapper plateMapper; + @Resource + private PlateGoodMapper plateGoodMapper; + @Resource private OrderBodyMapper orderBodyMapper; @@ -95,18 +91,12 @@ public class OrderServiceImpl implements OrderService { @Resource private OrderItemMapper orderItemMapper; - @Resource - private SnowFlakeGenerator snowFlakeGenerator; - @Resource private AdminUserApi adminUserApi; @Resource private OrderModuleExtraMapper orderModuleExtraMapper; - @Resource - private ApiTypeChangeRealize apiTypeChangeRealize; - @Resource private ApiTypeRealize apiTypeRealize; @@ -119,6 +109,9 @@ public class OrderServiceImpl implements OrderService { @Resource private ApiOrderService apiOrderService; + @Resource + private IdentifierGenerator identifierGenerator; + private static final int DEFAULT_DAYS_TO_ADD = 30; private static final int PARTS_PAGE_MAX = 1000; @@ -198,20 +191,53 @@ public class OrderServiceImpl implements OrderService { public List getOrderBody(Long orderId) { // 校验存在 validateOrderExists(orderId); - List orderBodyRespVOList = BeanUtils.toBean(orderBodyMapper.selectList(new LambdaQueryWrapper().eq(OrderBodyDO::getOrderId, orderId)), OrderBodyRespVO.class); + List orderBodyRespVOList = BeanUtils.toBean(orderBodyMapper.selectList(new LambdaQueryWrapper() + .eq(OrderBodyDO::getOrderId, orderId)), OrderBodyRespVO.class); +// Map> map = orderBodyRespVOList.stream().collect(Collectors.groupingBy(OrderBodyRespVO::getRoomId)); +// Map roomMap = map.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, entry -> { +// List orderBodyRespVOS = entry.getValue(); +// return orderBodyRespVOS.get(0).getRoomName(); +// })); +// Map> mapLists = new HashMap<>(); +// mapLists.put("room",roomMap); +// mapLists.put("body",map); return orderBodyRespVOList; } @Override - public List getModule(Long orderId) { + public Map> getModule(Long orderId) { + // 校验存在 + validateOrderExists(orderId); + // 模块信息 + List orderModuleRespVOList = orderBodyMapper.selectModuleByOrderId(orderId); // 模块信息 + // 配件 + List orderItemDOS = orderItemMapper.selectPartsByOrderId(orderId); - return null; + Map> map = new HashMap<>(); + map.put("module",orderModuleRespVOList); + map.put("parts",orderItemDOS); + return map; } @Override - public List getModuleDetail(Long orderId, Long roomId, Long bodyId) { - List orderModuleExtraDOS = orderModuleExtraMapper.selectExtraById(orderId, roomId, bodyId); - return orderModuleExtraDOS; + public List getPlatesDetail(Long orderId, Long roomId, Long bodyId, Long groupId) { + List orderDetail = orderItemMapper.selectPlatesDetailByOrderId(orderId, roomId, bodyId, groupId); + List platesDetailReqVOS = new ArrayList<>(); + orderDetail.forEach(orderPlatesDetailRespVO -> { + OrderPlatesDetailReqVO orderPlatesDetailReqVO = BeanUtils.toBean(orderPlatesDetailRespVO, OrderPlatesDetailReqVO.class) + .setIsHole(false); + if (orderPlatesDetailRespVO.getUnregularPointCount()>0 || orderPlatesDetailRespVO.getFrontHoleCount()>0 + || orderPlatesDetailRespVO.getBackHoleCount()>0 || orderPlatesDetailRespVO.getSideHoleCount()>0) + orderPlatesDetailReqVO.setIsHole(true); + platesDetailReqVOS.add(orderPlatesDetailReqVO); + }); + return platesDetailReqVOS; + } + + @Override + public List getPartsDetail(Long orderId, Long roomId, Long bodyId) { + List orderDetail = orderItemMapper.selectPartsDetailByOrderId(orderId, roomId, bodyId); + return orderDetail; } @Override @@ -237,7 +263,7 @@ public class OrderServiceImpl implements OrderService { } @Override - public Boolean importApiData(String orderNo) { + public Long importApiData(String orderNo) { // 获取token Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId(); JSONObject app = applicationApi.getApplicationByOrganId(organId); @@ -329,7 +355,7 @@ public class OrderServiceImpl implements OrderService { // + " dataGoods " + dataGoods+ "\n" // + " plate " + plate+ "\n" // + " dataModule " + dataModule); - Map> listMap = apiTypeRealize.apiPlateDataChange( + Map> listMap = apiTypeRealize.apiPlateDataChange( dataPlates.getJSONObject("value"),//板件生产信息 dataParts,// 配件信息 dataBody, // 柜体信息 @@ -346,10 +372,36 @@ public class OrderServiceImpl implements OrderService { List plateDetail = (List) listMap.get("plateDetail"); List itemDO = (List) listMap.get("itemDO"); - orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, order.get(0)); - System.out.println(BeanUtils.toBean(plateDetail, OrderModelDO.class)); + Map> map = getPlateGoods(goodsDO); + goodsDO = (List) map.get("goodsDO"); + List plateGoodDOS = (List) map.get("plateGoodDOLists"); + orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, order.get(0),goodsDO,plateGoodDOS); orderInputProcessor.batchSaveModel(BeanUtils.toBean(plateDetail, OrderModelDO.class)); - return null; + return order.get(0).getId(); + } + + private Map> getPlateGoods(List goodsLists) { + Map> map = new HashMap<>(); + List plateGoodLists = new ArrayList<>(); + + for (GoodsDO goodsDO : goodsLists) { + if (goodsDO.getGoodsId() != null){ // 有goodsId + PlateGoodDO plateGoodDO = plateGoodMapper.selectOne(PlateGoodDO::getGoodsId, goodsDO.getGoodsId()); + if (plateGoodDO != null) {//存在 + goodsDO.setGoodsId(plateGoodDO.getId()); + } + } + + Long plateGoods = (Long) identifierGenerator.nextId(null); + PlateGoodDO plateGoodDO = BeanUtils.toBean(goodsDO, PlateGoodDO.class) + .setId(plateGoods) + .setGoodsId(String.valueOf(goodsDO.getGoodsId())); + goodsDO.setGoodsId(plateGoodDO.getId()); + plateGoodLists.add(plateGoodDO); + } + map.put("goodsDO", goodsLists); + map.put("plateGoodDOLists", plateGoodLists); + return map; } // 合并两个 JSON 对象的方法 @@ -366,32 +418,12 @@ public class OrderServiceImpl implements OrderService { } - private void validateOrderBodyExists(Long orderId, Long bodyId) { if (orderBodyMapper.selectCount(new LambdaQueryWrapper().eq(OrderBodyDO::getOrderId, orderId).eq(OrderBodyDO::getId, bodyId)) == 0) { throw exception(ORDER_BODY_NOT_EXISTS); } } - // 对数据进行分类 - private HashMap> classifyGoods(List list) { - HashMap> map = new HashMap<>(); - List plateLists = new ArrayList<>(); - List partsLists = new ArrayList<>(); - for (Detail detail : list) { - //判断是板材还是配件 - if (detail.getIBoardProdInfo().getGoodType() == 1) { - plateLists.add(detail); - } else { - partsLists.add(detail); - } -// detail.getIBoardProdInfo().setRemark(orderPlateImportExcelVO.remarkJSON()); - } - map.put("plate", plateLists); - map.put("parts", partsLists); - return map; - } - private LocalDateTime getAfterDate(LocalDateTime date) { // 获取当前日期类型 2024-03-06 16:50:15 // 获取当前日期,明确指定时区为业务所在时区,例如Asia/Shanghai diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/group.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/group.java deleted file mode 100644 index 32cb95b35..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/group.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.cf.imes.module.executor.util.deviseData; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * 加工组信息 - */ -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class group -{ - private String name; - - private Double width; - - private Double height; - - private Double depth; -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeChangeRealize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeChangeRealize.java deleted file mode 100644 index 0245ca7e5..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeChangeRealize.java +++ /dev/null @@ -1,664 +0,0 @@ -package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; -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; -import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; -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.system.api.dict.DictDataApi; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; - -import javax.annotation.Resource; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - - -/** - * 实现数据格式转换 - */ -@Slf4j -@Component -public class ApiTypeChangeRealize { - - @Resource - private IdentifierGenerator identifierGenerator; - - @Resource - private DictDataApi dictDataApi; - - public Map> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts - , JSONObject dataBody, JSONObject dataGoods - , JSONObject plates, JSONObject dataModule) { - - // 上产单id - Long orderId = (Long) identifierGenerator.nextId(null); - Map> map = new HashMap<>(); - - // raw商品数据获取 - Map> rawGoodsMap = rawGoodsInfoChange(dataGoods, orderId); //数据完整 - // 获取柜体数据转换 - Map orderBodyDOMap = bodyInfoChange(dataBody, orderId); // 缺少数量 - // 板材数据转换 - List plateDetails = new ArrayList<>(); - // 获取 Orders 字段对应的数组 - JSONArray ordersArray = dataPlates.getJSONArray("Orders"); - - // 如果 Orders 数组不为空,则获取第一个订单对象 - Map>> goodsMap = new HashMap<>(); - if (ordersArray != null && !ordersArray.isEmpty()) { - for (int i = 0; i < ordersArray.size(); i++) { -// Map> orderMap = new HashMap<>(); - - JSONObject order = ordersArray.getJSONObject(i); - // 生产单信息 - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - LocalDate orderDate = LocalDate.parse(order.getString("SaleDate"), formatter); - LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter); - OrderDO orderDO = OrderDO.builder() - .id(orderId) - .orderDate(orderDate.atStartOfDay()) - .dataType(2) - .customOrderNo(order.getString("CustomOrderNo")) - .deliveryDate(deliveryDate.atStartOfDay()) - .dealer(order.getString("CustomName")) - .salesman(order.getString("salesman")) - .customer(order.getString("Consigee")) - .phoneNumber(order.getString("ConsigeePhone")) - .address(order.getString("ConsigeeAddress")) - .remark(order.getString("Remark")) - .build(); - - // 获取材料信息 - if (order.getJSONArray("Materials") != null && !order.getJSONArray("Materials").isEmpty()) { - List goodsDOS = new ArrayList<>(); - for (int j = 0; j < order.getJSONArray("Materials").size(); j++) { - JSONObject material = order.getJSONArray("Materials").getJSONObject(j); - Long goodsId = (Long) identifierGenerator.nextId(null); - GoodsDO goodsDO = GoodsDO.builder() - .id(goodsId) - .orderId(orderId) - .goodsId(Long.valueOf(material.getString("GoodsID"))) - .goodsName(material.getString("Name")) - .material(material.getString("Material")) - .color(material.getString("Color")) - .width(BigDecimal.valueOf(material.getDouble("Width"))) - .height(BigDecimal.valueOf(material.getDouble("Length"))) - .thickness(BigDecimal.valueOf(material.getDouble("Thickness"))) - .brand(material.getString("Brand")) - .spec(material.getString("Specification")) - .build(); - goodsDOS.add(goodsDO); - - // 板件信息 - if (material.getJSONArray("Blocks") != null && !material.getJSONArray("Blocks").isEmpty()) { - List orderPartsDOS = new ArrayList<>(); - for (int k = 0; k < material.getJSONArray("Blocks").size(); k++) { - JSONObject block = material.getJSONArray("Blocks").getJSONObject(k);// 每块板 - Long plateId = (Long) identifierGenerator.nextId(null); -// 字典转换板类型 - Integer type = Integer.valueOf(dictDataApi.parseDictData("order_plate_type", - block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("boardType")) - .getData().getValue()); - PlateDO orderPartsDO = PlateDO.builder() - .id(plateId) - .goodsId(Long.valueOf(goodsId)) - .orderId(orderId) - .name(block.getString("BlockName")) - .plateNo(block.getString("CustomNo")) - .type(type) - .width(BigDecimal.valueOf(block.getDouble("Width"))) - .height(BigDecimal.valueOf(block.getDouble("Length"))) - .thickness(BigDecimal.valueOf(0)) - .splitWidth(BigDecimal.valueOf(block.getDouble("CuttingWidth"))) - .splitHeight(BigDecimal.valueOf(block.getDouble("CuttingLength"))) - .splitThickness(BigDecimal.valueOf(0)) - .sealLeft(BigDecimal.valueOf(block.getDouble("BorderLeft"))) - .sealRight(BigDecimal.valueOf(block.getDouble("BorderRight"))) - .sealUp(BigDecimal.valueOf(block.getDouble("BorderUpper"))) - .sealDown(BigDecimal.valueOf(block.getDouble("BorderUnder"))) - .area(BigDecimal.valueOf(block.getDouble("Size"))) - - .texture(0) - .holeFace(0) - .holeArrange(0) - .unregularPointCount(0) - .frontHoleCount(0) - .frontModelCount(0) - .backHoleCount(0) - .sideHoleCount(0) - .backModelCount(0) - - .isDoor(block.getInteger("OpenDoorType") == 0 ? false : true) - .openDoorType(block.getInteger("OpenDoorType")) - .offsetX(block.getBigDecimal("OffsetX")) - .offsetY(block.getBigDecimal("OffsetY")) - - .isArcAcross(false) - .moduleTypeId(0L) - - .isSpecialShaped(false) - .isCancel(false) - - .filterType(0) - .remark(remarkToMap(block).toString()) - .isCancel(false) - .build(); - - PlateDetail plateDetail = PlateDetail.builder() - .bodyNo(block.getString("BoxNo")) - .plateNo(block.getString("BlockNo")) - .name(block.getString("BlockName")) - .customPlateNo(block.getString("CustomNo")) - .roomsName(block.getString("RoomName")) - .bodyName(block.getString("BoxName")) - .group(block.getString("ProcessGroupName")) - .multiNum(1) -// .groupList(getProcessGroup(block)) - .plateWidth(block.getBigDecimal("Width")) - .plateLength(block.getBigDecimal("Length")) - .acreage(block.getBigDecimal("Size")) - .splitWidth(block.getBigDecimal("CuttingWidth")) - .splitLength(block.getBigDecimal("CuttingLength")) - .sealAcreage(block.getBigDecimal("CuttingSize")) - .isUnRegular(block.getBoolean("IsUnRegular")) - .sealLeft(block.getBigDecimal("BorderLeft")) - .sealRight(block.getBigDecimal("BorderRight")) - .sealUp(block.getBigDecimal("BorderUpper")) - .sealDown(block.getBigDecimal("BorderUnder")) - .texture(block.getInteger("Wave")) - .typographicFace(Integer.valueOf(block.getString("PlaceFace"))) - .openDoorType(Integer.valueOf(block.getString("OpenDoorType"))) - .offsetX(block.getBigDecimal("OffsetX")) - .offsetY(block.getBigDecimal("OffsetY")) - .pointDetail(getPointDetail(block, 1)) - .rawPointDetail(getPointDetail(block, 3)) - .holeDetail(getHoleDetail(block, 1)) - .sideHoleDetail(getHoleDetail(block, 3)) - .contourDetail(getModelDetail(block)) -// 排钻类型 - .drillsInfos(getDrillsInfo(block)) - .boardType(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("boardType")) - .throughHoleCount(Double.valueOf(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("throughHoleCount"))) - .throughModelCount(Double.valueOf(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("throughModelCount"))) - .has2DModel(Boolean.valueOf(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("has2DModel"))) - .has3DModel(Boolean.valueOf(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("has3DModel"))) - .remark(remarkToMap(block)) - .sideRemark(edgeRemarkToMap(block.getJSONObject("ExtraRemark").getJSONObject("extra"))) - .build(); - - plateDetails.add(plateDetail); - System.out.println("plateDetail " + plateDetail); - } - } - - } - - } - System.out.println("板块 " + plateDetails.size()); - } - - } else { - System.out.println("JSON 数据中没有订单信息(Orders 数组为空)。"); - } - - - return map; - } - - /** - * 生产单信息转换 - * - * @param dataPlates: - * @return OrderDO - * @author Administrator - * @date 2024/4/30 - */ - public OrderDO orderInfoChange(JSONObject dataPlates, Long orderId) { - List plateDetails = new ArrayList<>(); - // 获取 Orders 字段对应的数组 - JSONObject order = dataPlates.getJSONObject("Orders"); - - // 如果 Orders 数组不为空,则获取第一个订单对象 - if (order != null && !order.isEmpty()) { - // 获取生产单信息 - // 使用 DateTimeFormatter 解析日期字符串 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - LocalDate orderDate = LocalDate.parse(order.getString("SaleDate"), formatter); - LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter); - - OrderDO orderDO = OrderDO.builder() - .id(orderId) - .parentNo(0L) - .orderDate(orderDate.atStartOfDay()) - .deliveryDate(deliveryDate.atStartOfDay()) - .orderType(1) - .orderSort(0) - .dataType(2) - .status(0) - .customOrderNo(order.getString("CustomOrderNo")) - .customer(order.getString("Consigee")) - .address(order.getString("ConsigeeAddress")) - .phoneNumber(order.getString("ConsigeePhone")) - .dealer(order.getString("CustomName")) - .dealerPhoneNumber("无") - .salesman(order.getString("SalePerson")) - .splitter("无") - .remark(order.getString("Remark")) - .build(); - return orderDO; - } - return null; - } - - - /** - * raw商品信息转换 和 商品信息转换 - * - * @param dataRawGoods: - * @param orderId: - * @return Map> String 标识 , Integer:商品ID标识,RawGoodsDO:商品信息 - * @author Administrator - * @date 2024/4/30 - */ - public Map> rawGoodsInfoChange(JSONObject dataRawGoods, Long orderId) { - Map> map = new HashMap<>(); - Map rawGoodsDOS = new HashMap<>(); - Map goodsDOS = new HashMap<>(); - - dataRawGoods.getJSONArray("List").forEach(item -> { - JSONObject parts = (JSONObject) item; - RawGoodsDO rawGoodsDO = RawGoodsDO.builder() - .id((Long) identifierGenerator.nextId(null)) - .orderId(orderId) - .rawGoodsId(String.valueOf(parts.getLong("GoodsID"))) - .goodsName(parts.getString("GoodsName")) - .material(parts.getString("Material")) - .color(parts.getString("Color")) - .thickness(parts.getDouble("Thickness")) - .price(parts.getDouble("Price")) - .brand(parts.getString("Brand")) - .spec(parts.getString("Spec")) - .build(); - rawGoodsDOS.put(parts.getInteger("GoodsID"), rawGoodsDO); - - GoodsDO goodsDO = GoodsDO.builder() - .id((Long) identifierGenerator.nextId(null)) - .orderId(orderId) - .rawGoodsId(rawGoodsDO.getId()) - .goodsId(parts.getLong("GoodsID")) - .goodsName(parts.getString("GoodsName")) - .material(parts.getString("Material")) - .color(parts.getString("Color")) - .width(BigDecimal.valueOf(parts.getDouble("Width"))) - .height(BigDecimal.valueOf(parts.getDouble("Height"))) - .thickness(BigDecimal.valueOf(parts.getDouble("Thickness"))) - .price(BigDecimal.valueOf(parts.getDouble("Price"))) - .brand(parts.getString("Brand")) - .spec(parts.getString("Spec")) - .build(); - goodsDOS.put(parts.getInteger("GoodsID"), goodsDO); - }); - map.put("rawGoodsDOS", rawGoodsDOS); - map.put("goodsDOS", goodsDOS); - return map; - } - - /** - * 柜体信息转换 - * - * @param dataBody: - * @return Map Integer:柜体ID标识,OrderBodyDO:柜体信息(差数据) - * @author Administrator - * @date 2024/4/30 - */ - private Map bodyInfoChange(JSONObject dataBody, Long orderId) { - Map bodyInfos = new HashMap<>(); - - dataBody.getJSONArray("List").forEach(item -> { - JSONObject body = (JSONObject) item; - OrderBodyDO bodyInfo = OrderBodyDO.builder() - .id(Long.valueOf(body.getString("BoxID")))// 差一个BoxID,没有对应的 - .orderId(orderId) - .roomId(Long.valueOf(body.getString("RoomID"))) - .roomName(body.getString("Room")) - .name(body.getString("Name")) - .width(body.getDouble("Width")) - .height(body.getDouble("Height")) - .depth(body.getDouble("Depth")) - .multiNum(0) - .plateNum(0) - .unregularNum(0) - .filename("无") - .remark("无") - .build(); - bodyInfos.put(body.getInteger("BoxID"), bodyInfo); - - - }); - return bodyInfos; - } - - /** - * 加工组信息转换 - * - * @param dataGroup: JSON 数据 - * @param orderId: - * @param body: 柜体信息 - * @return Map>>> Integer 柜体id , List>> 相同柜体的加工组信息 - * OrderGroupDO:加工组信息 , List:加工组中包含的板材配件信息 - * (差数据) - * @author Administrator - * @date 2024/4/30 - */ - private Map>>> groupInfoChange(JSONObject dataGroup, Long orderId - , Map body) { - - Map>>> groupInfosAndBodyId = new HashMap<>(); - List>> groupInfosAndItemList = new ArrayList<>(); - Map> groupInfos = new HashMap<>(); - - dataGroup.getJSONArray("value").forEach(value -> { - JSONObject group = (JSONObject) value; - OrderGroupDO bodyInfo = OrderGroupDO.builder() - .id((Long) identifierGenerator.nextId(null))// 自动生成 - .orderId(orderId) - .bodyId(0L) - .groupTypeId(Long.valueOf(group.getInteger("ModuleTypeID"))) - .groupTypeName("无") - .name(group.getString("ModuleTypeName")) - .width(group.getDouble("Width")) - .height(group.getDouble("Length")) - .depth(group.getDouble("Thickness")) - .multiNum(0) - .plateNum(0) - .unregularNum(0) - .filename("无") - .remark("无") - .build(); - - if (body.get(group.getInteger("BoxID")) != null) { - bodyInfo.setBodyId(body.get(group.getInteger("BoxID")).getId()); - } else { - bodyInfo.setBodyId(-0L); - } - groupInfos.put(bodyInfo, jsonArrayToList(group.getJSONArray("ItemIDList"))); - }); - // 遍历groupInfos,以OrderGroupDO中的bodyId为key,将groupInfosAndItemList中的value添加到groupInfosAndBodyId中 - // 遍历 groupInfos - groupInfos.forEach((groupInfo, itemList) -> { - // 获取当前分组信息的 bodyId - Long bodyId = groupInfo.getBodyId(); - - // 如果 groupInfosAndBodyId 中已经存在该 bodyId,则获取对应的项目列表,否则创建一个新的列表 - List>> existingItemList = groupInfosAndBodyId.getOrDefault(bodyId, new ArrayList<>()); - - // 创建包含当前分组信息及项目列表的 Map - Map> infoAndItemList = new HashMap<>(); - infoAndItemList.put(groupInfo, itemList); - - // 将当前的分组信息及项目列表添加到列表中 - existingItemList.add(infoAndItemList); - - // 更新 groupInfosAndBodyId 中的映射关系 - groupInfosAndBodyId.put(bodyId, existingItemList);// 有问题 - }); - return groupInfosAndBodyId; - } - - /** - * JSONArray转List - */ - public List jsonArrayToList(JSONArray jsonArray) { - List list = new ArrayList<>(); - for (int i = 0; i < jsonArray.size(); i++) { - list.add(jsonArray.getInteger(i)); - } - return list; - } - - /** - * 配件信息转存 - * - * @param value: JSON数据 - * @param orderId: - * @param group: 加工组信息 - * @return List - * @author Administrator - * @date 2024/4/30 - */ - public List partsInfoChange(JSONObject value, Long orderId, Map> group) { - List partsInfos = new ArrayList<>(); - - if (value != null && !value.isEmpty()) { - JSONArray partsLists = value.getJSONArray("List"); - for (int i = 0; i < partsLists.size(); i++) { - JSONObject parts = partsLists.getJSONObject(i); - PartsInfo partsInfo = PartsInfo.builder() - .id(parts.getString("DataID")) - .name(parts.getString("Name")) - .roomName(parts.getString("RoomName")) - .bodyName(parts.getString("BoxName")) - .bodyNo(parts.getInteger("BoxID")) - .multiNum(Integer.valueOf(parts.getString("MultiNum"))) - .goodsNo(parts.getString("GoodsNo")) - .goodId(Long.valueOf(parts.getString("GoodsID"))) - .material(parts.getString("material")) - .color(parts.getString("color")) - .factory(parts.getString("Factory")) - .brand(parts.getString("Brand")) - .model(parts.getString("Model")) - .unit(parts.getString("Units")) - .price(parts.getDouble("Price")) - .isComposite(Boolean.valueOf(parts.getString("IsComposite"))) - .groupName(parts.getString("GroupName")) - .objectType(parts.getString("ObjectType")) - .objectSpecExtras(parts.getString("SpecExtras")) - .goodsNumber(Double.valueOf(parts.getString("GoodsNumber"))) - .doorRemark(parts.getString("DoorRemark")) - .hingeRemark(parts.getString("HingeRemark")) - .specialRemark(parts.getString("SpecialRemark")) - .remark(parts.getString("Remark")) - .processGroup(parts.getString("ProcessGroup")) - .build(); - partsInfos.add(partsInfo); - } - } - // 配件信息转换成 柜体id,配件信息 - Map> partsInfoMap = partsInfos.stream().collect(Collectors.groupingBy(PartsInfo::getBodyNo)); - System.out.println(" partsInfos " + partsInfos); - return partsInfos; - } - - - // 异形板的开料轮廓 (type 为1,不含封边;其他为,含封边) - private List getPointDetail(JSONObject block, Integer type) { - List pointDetailList = new ArrayList<>(); - - if (type == 1) { // 不含封边 - if (block.getJSONArray("Points") != null && !block.getJSONArray("Points").isEmpty()) { - for (int i = 0; i < block.getJSONArray("Points").size(); i++) { - JSONObject point = block.getJSONArray("Points").getJSONObject(i); - pointDetailList.add(PointDetail.builder() - .pointX(Double.valueOf(point.getString("X"))) - .pointY(Double.valueOf(point.getString("Y"))) - .curve(Double.valueOf(point.getString("Curve"))) - .build()); - } - } - } else { // 含封边 - if (block.getJSONArray("OrgPoints") != null && !block.getJSONArray("OrgPoints").isEmpty()) { - for (int i = 0; i < block.getJSONArray("OrgPoints").size(); i++) { - JSONObject rawPoint = block.getJSONArray("OrgPoints").getJSONObject(i); - pointDetailList.add(PointDetail.builder() - .pointX(Double.valueOf(rawPoint.getString("X"))) - .pointY(Double.valueOf(rawPoint.getString("Y"))) - .curve(Double.valueOf(rawPoint.getString("Curve"))) - .sealSize(Double.valueOf(rawPoint.getString("Edge"))) - .build()); - - } - } - } - return pointDetailList; - } - - // 孔明细板数据解析 (type 为1,正面;3,侧面) - private List getHoleDetail(JSONObject block, Integer type) { - List holeDetails = new ArrayList<>(); - if (type == 1) { // 1,正面 - if (block.getJSONArray("Holes") != null && !block.getJSONArray("Holes").isEmpty()) { - for (int i = 0; i < block.getJSONArray("Holes").size(); i++) { - JSONObject hole = block.getJSONArray("Holes").getJSONObject(i); - holeDetails.add(HoleDetail.builder() - .startX(Double.valueOf(hole.getString("X"))) - .startY(Double.valueOf(hole.getString("Y"))) - .faceType(1) - .radius(Double.valueOf(hole.getString("Diameter")) / 2) - .depth(Double.valueOf(hole.getString("Depth"))) - .build()); - } - } - } else { - if (block.getJSONArray("SideHoles") != null && !block.getJSONArray("SideHoles").isEmpty()) { - for (int i = 0; i < block.getJSONArray("SideHoles").size(); i++) { - JSONObject hole = block.getJSONArray("SideHoles").getJSONObject(i); - String[] startPoints = splitAndTrim(hole.getString("StartPoint")); - String[] endPoints = splitAndTrim(hole.getString("EndPoint")); - try { - holeDetails.add(HoleDetail.builder() - .startX(Double.valueOf(startPoints[0])) - .startY(Double.valueOf(startPoints[1])) - .startZ(Double.valueOf(startPoints[2])) - .endX(Double.valueOf(endPoints[0])) - .endY(Double.valueOf(endPoints[1])) - .endZ(Double.valueOf(endPoints[2])) - .faceType(3) - .radius(Double.valueOf(hole.getString("Diameter")) / 2) - .depth(Double.valueOf(hole.getString("Depth"))) - .build()); - } catch (Exception e) { - System.out.println("HoleDetail " + hole); - } - - } - } - } - - return holeDetails; - } - - // 造型明细板数据解析 (type 为1,正面;3,侧面) - private List getModelDetail(JSONObject block) { - List modelDetails = new ArrayList<>(); - - if (block.getJSONArray("Models") != null && !block.getJSONArray("Models").isEmpty()) { - for (int i = 0; i < block.getJSONArray("Models").size(); i++) { - JSONObject model = block.getJSONArray("Models").getJSONObject(i); - - List pointLists = new ArrayList<>(); - if (model.getJSONArray("Points") != null && !model.getJSONArray("Points").isEmpty()) { - for (int j = 0; j < model.getJSONArray("Points").size(); j++) { - JSONObject point = model.getJSONArray("Points").getJSONObject(j); - String[] points = splitAndTrim(point.getString("Pos")); - pointLists.add(PointList.builder() - .pointX(Double.valueOf(points[0])) - .pointY(Double.valueOf(points[1])) - .pointZ(Double.valueOf(points[2])) - .curve(Double.valueOf(point.getString("Curve"))) - .build()); - } - } - - List offSetLists = new ArrayList<>(); - if (model.getJSONArray("OffsetList") != null && !model.getJSONArray("OffsetList").isEmpty()) { - for (int j = 0; j < model.getJSONArray("OffsetList").size(); j++) { - JSONObject offSet = model.getJSONArray("OffsetList").getJSONObject(j); - offSetLists.add(OffSetList.builder() - .value(Double.valueOf(offSet.getString("Value"))) - .name(offSet.getString("Name")) - .radius(Double.valueOf(offSet.getString("Diameter")) / 2) - .angle(Double.valueOf(offSet.getString("Angle"))) - .depth(Double.valueOf(offSet.getString("Depth"))) - .build()); - } - } - modelDetails.add(ModelDetail.builder() - .depth(Double.valueOf(model.getString("Depth"))) - .faceType(Integer.valueOf(model.getString("Face"))) - .knifeName(model.getString("TooINo")) - .knifeRadius(Double.valueOf(model.getString("Diameter")) / 2) - .pointList(pointLists) - .offSetList(offSetLists) - .build()); - } - } - - return modelDetails; - } - - // 排钻数据 - private List getDrillsInfo(JSONObject block) { - List drillsInfos = new ArrayList<>(); - - if (block.getJSONArray("drills") != null && !block.getJSONArray("drills").isEmpty()) { - for (int i = 0; i < block.getJSONArray("drills").size(); i++) { - JSONObject drill = block.getJSONArray("drills").getJSONObject(i); - drillsInfos.add(DrillsInfo.builder() - .name(drill.getString("name")) - .type(drill.getString("type")) - .face(drill.getString("face")) - .count(Double.valueOf(drill.getString("count"))) - .build()); - } - } - return drillsInfos; - } - - // String[] 以逗号分割,去空格 - public String[] splitAndTrim(String str) { - String[] strs = str.split(","); - for (int i = 0; i < strs.length; i++) { - strs[i] = strs[i].trim(); - } - return strs; - } - - - // 将remark转为map - public Map remarkToMap(JSONObject block) { - Map map = new HashMap<>(); - for (int i = 0; i < 4; i++) { - if (block.getString("remark" + i) != null && !block.getString("remark" + i).isEmpty()) { - map.put("remark" + i, block.getString("remark" + i)); - } - } - return map; - } - - // 将remark转为map - public Map edgeRemarkToMap(JSONObject edgeRemark) { - Map map = new HashMap<>(); - if (edgeRemark.getJSONArray("edgeRemarks") != null && !edgeRemark.getJSONArray("edgeRemarks").isEmpty()) { - for (int i = 0; i < edgeRemark.getJSONArray("edgeRemarks").size(); i++) { - if (edgeRemark.getJSONArray("edgeRemarks").getString(i) != null && !edgeRemark.getJSONArray("edgeRemarks").getString(i).isEmpty()) { - map.put(String.valueOf(i), edgeRemark.getJSONArray("edgeRemarks").getString(i)); - } - } - } - return map; - } -} - 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 12aa8b80f..e863fb451 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 @@ -21,8 +21,6 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.concurrent.atomic.AtomicReference; -import java.util.function.BiConsumer; import java.util.stream.Collectors; /** @@ -39,6 +37,9 @@ public class ApiTypeRealize { @Resource private DictDataApi dictDataApi; + private Integer num = 0; + + private Integer groupNum = 0; /** * @param dataPlates: 板件生产信息 * @param dataParts: 配件信息 @@ -127,28 +128,20 @@ public class ApiTypeRealize { Map> groupLists, Map partsItems) { groupLists.forEach((k, v) -> { - AtomicReference groupNum = new AtomicReference<>(0); v.forEach(v1 -> { if (partsItems.get(v1) != null) { partsItems.get(v1).setGroupId(orderGroupDO.get(k).getId()); - groupNum.getAndSet(groupNum.get() + 1); + if (partsItems.get(v1).getPlateId() != null) + groupNum++; } }); - orderGroupDO.get(k).setPlateNum(groupNum.get()); + orderGroupDO.get(k).setPlateNum(groupNum); + groupNum = 0; }); -// partsItems.forEach((k, v) -> { -// if (bodyInfoChange.get(Integer.parseInt(String.valueOf(v.getBodyId()))) != null) { -// v.setRoomId(bodyInfoChange.get(Integer.parseInt(String.valueOf(v.getBodyId()))).getRoomId()); -// } -// }); return partsItems; } - /** - * 柜体,加工组板材数量添加 !!!!!!!!!!!!!! - */ - /** * 加工组 信息转换 */ @@ -407,9 +400,8 @@ public class ApiTypeRealize { return map; } - private Integer num = 0; /** - * 板材信息转换 写表 Integer指板材的ItemID板id 还没有存备注!!!!!!!!!!!!!!!!!!!! + * 板材信息转换 写表 Integer指板材的ItemID板id 还没有存备注!!!!!!!!!!!!!!!!!!!! 加一个板材自定义编号 */ private Map> platesInfoChange(JSONObject value, JSONObject dataPlates, Long orderId, Map goodsDOMap, Map bodyInfos) { // 板材 写ES @@ -509,6 +501,7 @@ public class ApiTypeRealize { m.setPlateNum(num); } }); + num =0; }); System.err.println(bodyInfos); map.put("platesInfos", platesInfos); 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/ExcelListener.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelListener.java index e156649ef..f2a8c3308 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelListener.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelListener.java @@ -31,6 +31,7 @@ public final class ExcelListener extends AnalysisEventListener extends AnalysisEventListener fileDataChange(MultipartFile file) throws IOException { List orderPlateImportExcelVOS = orderExcelUtil.read(file, OrderPlateImportExcelVO.class,7); @@ -62,7 +62,6 @@ public class FileTypeChangeRealize implements FileTypeChangeUtil { return details; } - @Override public boolean getFlag() { return this.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/excel/OrderExcelUtil.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderExcelUtil.java index 909bde0a6..d5c16db7e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderExcelUtil.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderExcelUtil.java @@ -1,11 +1,9 @@ package com.cf.imes.module.executor.util.fileConversion.admin.files.excel; -import co.elastic.clients.elasticsearch.nodes.Ingest; import com.alibaba.excel.EasyExcel; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; -import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -13,7 +11,9 @@ import java.util.*; @Slf4j @Component -public class OrderExcelUtil { +public class OrderExcelUtil { // 文件读取 + + private String value; private ExcelListener excelListener = new ExcelListener<>(); 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 a496b23b2..31f772eb7 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 @@ -86,7 +86,7 @@ public class OrderPlateImportExcelVO { @JsonIgnore private String name; - @ExcelProperty(value = "板号") + @ExcelProperty(value = "自定义板编号") @JsonIgnore private String plateNo; @@ -118,15 +118,15 @@ public class OrderPlateImportExcelVO { @JsonIgnore private float sealDown; - @ExcelProperty(value = "组合类型", converter = DictConvert.class) + @ExcelProperty(value = "加工组类型", converter = DictConvert.class) @JsonIgnore @DictFormat(DictTypeConstants.SYNTHESIS_TYPE) private int synthesis; @JsonIgnore - private String synthesisTypeName;//组合类型的名称 + private String synthesisTypeName;//加工组类型的名称 - @ExcelProperty(value = "组合名称") + @ExcelProperty(value = "加工组名称") @JsonIgnore private String combinationName; 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/PlateImportVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/PlateImportVO.java deleted file mode 100644 index 583261269..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/PlateImportVO.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.cf.imes.module.executor.util.fileConversion.admin.files.excel; - - -import com.alibaba.excel.annotation.ExcelProperty; -import com.cf.imes.framework.excel.core.annotations.DictFormat; -import com.cf.imes.framework.excel.core.convert.DictConvert; -import com.cf.imes.module.system.enums.DictTypeConstants; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; -import lombok.experimental.Accessors; - -import javax.validation.constraints.NotNull; -import java.math.BigDecimal; - -/** - * 生产单 Excel 导入 VO - */ -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -@Accessors(chain = false) // 设置 chain = false,避免生产单导入有问 -public class PlateImportVO { - - @ExcelProperty(value = "自定义单号") - private String customOrderNo; - - @ExcelProperty(value = "客户") - private String customer; - - @ExcelProperty(value = "经销商") - private String dealer; - - @ExcelProperty(value = "客户地址") - private String address; - - @ExcelProperty(value = "经销商电话") - private String dealerPhoneNumber; - - @ExcelProperty(value = "客户电话") - private String phoneNumber; - - @ExcelProperty(value = "业务员") - private String salesman; - - @ExcelProperty(value = "出货日期") - private String deliveryDate; - - @ExcelProperty(value = "拆单员") - private String splitter; - - @ExcelProperty(value = "备注") - private String remark; - - -} \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderBody/OrderBodyMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderBody/OrderBodyMapper.xml index 90f87d6b6..e46cbdf0b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderBody/OrderBodyMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderBody/OrderBodyMapper.xml @@ -16,4 +16,11 @@ LEFT JOIN order_module_extra ON order_module_extra.body_id = order_body.id WHERE order_body.id = #{bodyId} AND order_body.order_id = #{orderId}; + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml index f73f63887..9acaaefc7 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml @@ -2,19 +2,44 @@ - + SELECT i.order_id, p.id, p.plate_no, g.material, p.name, p.area, p.seal_left, p.seal_down, + p.seal_right, p.seal_up, p.texture, p.is_special_shaped, p.is_sculpt, p.unregular_point_count, p.front_hole_count, + p.back_hole_count, p.side_hole_count,p.width,p.height,p.thickness + FROM order_item i + RIGHT JOIN `order_plate` p ON i.plate_id = p.id + LEFT JOIN `order_goods` g ON g.id = p.goods_id + WHERE i.order_id = #{orderId} - AND room_id = #{roomId} + AND i.room_id = #{roomId} - AND body_id = #{bodyId} + AND i.body_id = #{bodyId} + + + AND i.group_id = #{groupId} + + + \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-api/src/main/java/com/cf/imes/module/manage/api/plate/PlateApi.java b/cf-module-prod-manage/cf-module-prod-manage-api/src/main/java/com/cf/imes/module/manage/api/plate/PlateApi.java index 16332c191..65fae6e4a 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-api/src/main/java/com/cf/imes/module/manage/api/plate/PlateApi.java +++ b/cf-module-prod-manage/cf-module-prod-manage-api/src/main/java/com/cf/imes/module/manage/api/plate/PlateApi.java @@ -20,4 +20,8 @@ public interface PlateApi { @Parameter(name = "id", description = "编号", required = true, example = "1024") CommonResult getPlate(@RequestParam("id") Long id); + @GetMapping(PREFIX +"/getGoodsId") + @Operation(summary = "判断板材是否存在") + @Parameter(name = "id", description = "客户的商品编号", required = true, example = "1024") + CommonResult getPlateGoods(@RequestParam("id") Long goodsId); } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/api/plate/PlateServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/api/plate/PlateServiceImpl.java index aa9ae8869..3308abd69 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/api/plate/PlateServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/api/plate/PlateServiceImpl.java @@ -21,4 +21,16 @@ public class PlateServiceImpl implements PlateApi{ } return success(true); } + + @Override + public CommonResult getPlateGoods(Long goodsId) { + if (goodsId == null) { + return success(0L); + } + PlateDO plateDO = plateService.getPlateGoods(goodsId); + if (plateDO == null) { + return success(0L); + } + return success(plateDO.getId()); + } } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateService.java index a2d34a894..737774dca 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateService.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateService.java @@ -48,6 +48,14 @@ public interface PlateService { */ PlateDO getPlate(Long id); + /** + * 获得板材信息表 plate_{N} + * + * @param id 编号 + * @return 板材信息表 plate_{N} + */ + PlateDO getPlateGoods(Long id); + /** * 获得板材信息表 plate_{N}分页 * diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateServiceImpl.java index 119febc4c..51e7f3854 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateServiceImpl.java @@ -98,6 +98,11 @@ public class PlateServiceImpl implements PlateService { return plateMapper.selectById(id); } + @Override + public PlateDO getPlateGoods(Long id) { + return plateMapper.selectOne(PlateDO::getGoodsId,id); + } + @Override public PageResult getPlatePage(PlatePageReqVO pageReqVO) { if (pageReqVO.getOrganId() == null || pageReqVO.getOrganId() == 0){