From 9a12f5010aff990201b4adc6dec069f4e07431e6 Mon Sep 17 00:00:00 2001 From: lym <1994302445@qq.com> Date: Mon, 25 Mar 2024 11:25:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=BF=E6=9D=90=E5=BA=93=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/order/OrderController.java | 50 +++++++---- .../admin/order/vo/order/OrderPageReqVO.java | 1 + .../vo/order/OrderPlateImportExcelVO.java | 26 +++++- .../admin/order/vo/order/OrderRespVO.java | 2 + .../admin/order/vo/order/OrderSaveReqVO.java | 2 + .../admin/plate/PlateController.java | 9 ++ .../dal/dataobject/order/OrderDO.java | 5 +- .../executor/dal/mysql/order/OrderMapper.java | 30 ++++++- .../rpc/config/RpcConfiguration.java | 3 +- .../executor/service/order/OrderService.java | 31 +++++-- .../service/order/OrderServiceImpl.java | 82 ++++++++++++++----- .../executor/service/plate/PlateService.java | 18 +++- .../service/plate/PlateServiceImpl.java | 14 ++++ .../executor/util/deviseData/HoleDetail.java | 23 ++++++ .../util/deviseData/IContourData.java | 14 ++++ .../util/deviseData/IOriginModelingData.java | 20 +++++ .../executor/util/deviseData/ModelDetail.java | 21 +++++ .../executor/util/deviseData/OffSetList.java | 16 ++++ .../util/deviseData/OrgPointDetail.java | 11 +++ .../executor/util/deviseData/PointDetail.java | 14 ++++ .../executor/util/deviseData/PointList.java | 16 ++++ .../util/deviseData/SideHoleDetail.java | 22 +++++ .../util/deviseData/SideModelDetail.java | 21 +++++ .../executor/util/deviseData/detail.java | 17 ++++ .../executor/util/excel/ExcelListener.java | 2 +- .../cf/imes/module/executor/util/test.json | 2 +- .../admin/plate/PlateController.java | 3 +- .../manage/dal/dataobject/plate/PlateDO.java | 5 ++ .../manage/dal/mysql/plate/PlateMapper.java | 6 +- .../rpc/config/RpcConfiguration.java | 3 +- .../manage/service/plate/PlateService.java | 2 +- .../service/plate/PlateServiceImpl.java | 39 +++++++-- .../system/enums/DictTypeConstants.java | 3 + 33 files changed, 468 insertions(+), 65 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/HoleDetail.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/IContourData.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/IOriginModelingData.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/ModelDetail.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/OffSetList.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/OrgPointDetail.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/PointDetail.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/PointList.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/SideHoleDetail.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/SideModelDetail.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/detail.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 6435d6000..5f1980874 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,6 +1,8 @@ package com.cf.imes.module.executor.controller.admin.order; import com.cf.imes.module.executor.controller.admin.order.vo.order.*; +import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO; +import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; import io.swagger.v3.oas.annotations.Parameters; import org.springframework.util.ResourceUtils; import org.springframework.web.bind.annotation.*; @@ -74,10 +76,10 @@ public class OrderController { @DeleteMapping("/delete") @Operation(summary = "删除生产单表 order_{N}") - @Parameter(name = "id", description = "编号", required = true) + @Parameter(name = "orderIds", description = "生产单id组", required = true, example = "1,2") @PreAuthorize("@ss.hasPermission('executor:order:delete')") - public CommonResult deleteOrder(@RequestParam("id") Long id) { - orderService.deleteOrder(id); + public CommonResult deleteOrder(@RequestParam("postIds") Collection orderIds) { + orderService.deleteOrder(orderIds); return success(true); } @@ -154,28 +156,44 @@ public class OrderController { @Operation(summary = "导入生产单新增") @Parameters({ @Parameter(name = "file", description = "Excel 文件", required = true), - @Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true"), + @Parameter(name = "isAddPlate", description = "是否为生产单新增板材", example = "false"), @Parameter(name = "upload", description = "是否只上传表头,默认为只上传表头", example = "true") }) @PreAuthorize("@ss.hasPermission('executor:order:import')") public CommonResult importExcel(@RequestPart("file") MultipartFile file, + @RequestParam(value = "isAddPlate", required = false, defaultValue = "false") Boolean isAddPlate, @RequestParam(value = "upload", required = false, defaultValue = "true") Boolean upload, @RequestPart("orderSaveReqVO") OrderSaveReqVO createReqVO) throws IOException { - OrderImportRespVO orderImportRespVO = orderService.importOrderList(upload , file, createReqVO); + OrderImportRespVO orderImportRespVO = orderService.importOrderList(upload, file, createReqVO, isAddPlate); return success(orderImportRespVO); } - //生产单信息修改 - @PostMapping("/addPlates") - @Operation(summary = "生产单添加板材") - @Parameters({ - @Parameter(name = "id", description = "编号", required = true, example = "1024") - }) - @PreAuthorize("@ss.hasPermission('executor:order:update')") - public CommonResult updateOrder(@RequestParam("id") Long id, - @RequestPart("file") MultipartFile file){ -// orderService.updateOrder(updateReq); - return null; + // 清理生产单 + @DeleteMapping("/clean") + @Operation(summary = "清理生产单") + @Parameter(name = "orderId", description = "生产单编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('executor:order:delete')") + public CommonResult cleanOrder(@RequestParam("orderId") Long orderId) { + orderService.cleanOrder(orderId); + return success(true); } + + // 获取当前条件下所有生产单信息 + @GetMapping("/allOrder") + @Operation(summary = "条件选择获得生产单表") + @PreAuthorize("@ss.hasPermission('executor:order:query')") + public CommonResult> getAllOrder(@Valid OrderPageReqVO pageReqVO) { + PageResult pageResult = orderService.getOrderPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, OrderRespVO.class)); + } + +// 获得当前生产单的工序信息 +// @GetMapping("/getOrderProcess") +// @Operation(summary = "生产单获取工序信息") +// @Parameter(name = "orderId", description = "生产单编号", required = true, example = "1024") +// @PreAuthorize("@ss.hasPermission('executor:order:query')") +// public CommonResult> getOrderProcess(@RequestParam("orderId")Long orderId) { +// return success(BeanUtils.toBean(orderService.getOrderProcess(orderId), OrderProcessRespVO.class)); +// } } \ 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/OrderPageReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPageReqVO.java index 051ee51b8..efcc272c9 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPageReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPageReqVO.java @@ -67,4 +67,5 @@ public class OrderPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + private Boolean deleted; } \ 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/OrderPlateImportExcelVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlateImportExcelVO.java index 4fe237ce2..4529c0c70 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlateImportExcelVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderPlateImportExcelVO.java @@ -1,6 +1,12 @@ package com.cf.imes.module.executor.controller.admin.order.vo.order; import com.alibaba.excel.annotation.ExcelProperty; +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.framework.excel.core.annotations.DictFormat; +import com.cf.imes.framework.excel.core.convert.DictConvert; +import com.cf.imes.module.system.api.dict.DictDataApi; +import com.cf.imes.module.system.api.dict.dto.DictDataRespDTO; +import com.cf.imes.module.system.enums.DictTypeConstants; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.AllArgsConstructor; @@ -9,7 +15,9 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import javax.annotation.Resource; import java.math.BigDecimal; +import java.util.List; /** * 生产单 Excel 导入 VO @@ -20,6 +28,7 @@ import java.math.BigDecimal; @NoArgsConstructor @Accessors(chain = false) // 设置 chain = false,避免生产单导入有问 public class OrderPlateImportExcelVO { + @ExcelProperty(value = "序号") @JsonIgnore private int ordinal; @@ -130,14 +139,17 @@ public class OrderPlateImportExcelVO { @ExcelProperty(value = "排版面") @JsonIgnore + @DictFormat(DictTypeConstants.YPOGRAPHY_TYPE) private int typographicFace; @ExcelProperty(value = "纹路") @JsonIgnore +// @DictFormat(DictTypeConstants.GRAIN_TYPE) private int texture; @ExcelProperty(value = "开门方向") @JsonIgnore +// @DictFormat(DictTypeConstants.DOOR_OPENING_DIRECTIONS) private int openDoorType; @ExcelProperty(value = "备注1") @@ -219,7 +231,6 @@ public class OrderPlateImportExcelVO { public String remarkJSON(){ ObjectMapper objectMapper = new ObjectMapper(); // 设置实体类字段的值 - try { String json = objectMapper.writeValueAsString(this); return json; @@ -229,4 +240,17 @@ public class OrderPlateImportExcelVO { } } + // excel中字典转换 + private int getDictValue(String dictType, int index) { + int value = 0; + if(index == 1){ +// CommonResult dictDataRespDTOCommonResult = dictDataApi.getDictData(dictType, label); + }else if(index == 2){ + + }else if(index == 3){ + + } + return value; + } + } 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/OrderRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderRespVO.java index 0ddba605f..5901b93a3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderRespVO.java @@ -83,4 +83,6 @@ public class OrderRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + private Boolean deleted; + } \ 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/OrderSaveReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderSaveReqVO.java index 659431da2..c04687e36 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderSaveReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderSaveReqVO.java @@ -76,4 +76,6 @@ public class OrderSaveReqVO { @NotEmpty(message = "备注不能为空") private String remark; + private Boolean deleted; + } \ 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/plate/PlateController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/PlateController.java index 64f2b61bd..1e8debe81 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/PlateController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/PlateController.java @@ -92,4 +92,13 @@ public class PlateController { BeanUtils.toBean(list, PlateRespVO.class)); } +// 批量删除小板 + @DeleteMapping("deletePlenty") + @Operation(summary = "批量删除小板") + @PreAuthorize("@ss.hasPermission('executor:plate:deletePlenty')") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult deletePlates(@RequestBody Set ids) { + plateService.deletePlates(ids); + return success(true); + } } \ 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/dataobject/order/OrderDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/order/OrderDO.java index 850e4cd03..7727b4297 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/order/OrderDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/order/OrderDO.java @@ -89,5 +89,8 @@ public class OrderDO extends OrganBaseDO { * 备注 */ private String remark; - + /** + * 是否删除 + */ + private Boolean deleted; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java index 018cc8416..cd1d17b4d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderMapper.java @@ -1,7 +1,5 @@ package com.cf.imes.module.executor.dal.mysql.order; -import java.util.*; - import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; @@ -11,9 +9,13 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPageReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.ArrayList; +import java.util.Collections; + /** * 生产单表 order_{N} Mapper * @@ -39,10 +41,34 @@ public interface OrderMapper extends BaseMapperX { .eqIfPresent(OrderDO::getSalesman, reqVO.getSalesman()) .eqIfPresent(OrderDO::getSplitter, reqVO.getSplitter()) .eqIfPresent(OrderDO::getRemark, reqVO.getRemark()) + .eqIfPresent(OrderDO::getDeleted, reqVO.getDeleted()) .betweenIfPresent(OrderDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(OrderDO::getId)); } IPage selectOrderPage(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper); + + default PageResult selectOrderCheck(OrderPageReqVO reqVO) { + return selectPage(reqVO , null, new MPJLambdaWrapper() + .eqIfExists(OrderDO::getParentNo, reqVO.getParentNo()) + .between(OrderDO::getDeliveryDate, reqVO.getDeliveryDate()[0],reqVO.getDeliveryDate()[1]) + .eqIfExists(OrderDO::getType, reqVO.getType()) + .eqIfExists(OrderDO::getSort, reqVO.getSort()) + .eqIfExists(OrderDO::getDataType, reqVO.getDataType()) + .eqIfExists(OrderDO::getStatus, reqVO.getStatus()) + .eqIfExists(OrderDO::getCustomOrderNo, reqVO.getCustomOrderNo()) + .eqIfExists(OrderDO::getCustomer, reqVO.getCustomer()) + .eqIfExists(OrderDO::getAddress, reqVO.getAddress()) + .eqIfExists(OrderDO::getPhoneNumber, reqVO.getPhoneNumber()) + .eqIfExists(OrderDO::getDealer, reqVO.getDealer()) + .eqIfExists(OrderDO::getDealerPhoneNumber, reqVO.getDealerPhoneNumber()) + .eqIfExists(OrderDO::getSalesman, reqVO.getSalesman()) + .eqIfExists(OrderDO::getSplitter, reqVO.getSplitter()) + .eqIfExists(OrderDO::getRemark, reqVO.getRemark()) + .eqIfExists(OrderDO::getDeleted, reqVO.getDeleted()) + .between(OrderDO::getDeliveryDate, reqVO.getDeliveryDate()[0],reqVO.getDeliveryDate()[1]) + .orderByDesc(OrderDO::getId)); + } + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java index 624f44f4c..92d87991d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java @@ -3,6 +3,7 @@ package com.cf.imes.module.executor.framework.rpc.config; import com.cf.imes.module.infra.api.file.FileApi; import com.cf.imes.module.system.api.machine.MachineApi; import com.cf.imes.module.system.api.user.AdminUserApi; +import com.cf.imes.module.system.api.dict.DictDataApi; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.Configuration; @@ -10,6 +11,6 @@ import org.springframework.context.annotation.Configuration; * @author there */ @Configuration(proxyBeanMethods = false) -@EnableFeignClients(clients = {AdminUserApi.class, MachineApi.class, FileApi.class}) +@EnableFeignClients(clients = {AdminUserApi.class, MachineApi.class, DictDataApi.class, FileApi.class}) public class RpcConfiguration { } 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 87568ed0a..9ffde8e76 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 @@ -5,9 +5,13 @@ import javax.validation.*; import com.cf.imes.module.executor.controller.admin.order.vo.order.*; 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.plate.PlateDO; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.Collection; +import java.util.List; +import java.util.Set; /** * 生产单表 order_{N} Service 接口 @@ -34,9 +38,9 @@ public interface OrderService { /** * 删除生产单表 order_{N} * - * @param id 编号 + * @param orderIds 编号组 */ - void deleteOrder(Long id); + void deleteOrder(Collection orderIds); /** * 获得生产单表 order_{N} @@ -56,10 +60,25 @@ public interface OrderService { /** * 批量导入生产单 - * @param upload 是否只上传表头,默认为只上传表头 - * @param file 文件内容 - * @param createReqVO 生产单信息 + * + * @param upload 是否只上传表头,默认为只上传表头 + * @param file 文件内容 + * @param createReqVO 生产单信息 + * @param isAddPlate 是否为生产单新增板材 * @return OrderImportRespVO */ - OrderImportRespVO importOrderList(Boolean upload , MultipartFile file , OrderSaveReqVO createReqVO) throws IOException; + OrderImportRespVO importOrderList(Boolean upload, MultipartFile file, OrderSaveReqVO createReqVO ,Boolean isAddPlate) throws IOException; + + /** + * 清除生产单表 order_{N} + * 清除还没有清除生产单与工序相关、生产单与模块相关、生产单与包裹、余料、补板、相关 + * @param orderId 编号 + */ + void cleanOrder(Long orderId); + + /** + * @param pageReqVO: 查询信息 + * @return List + */ + PageResult getAllOrderCheck(OrderPageReqVO pageReqVO); } \ 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 9f0fbb2e6..ef0885da3 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,5 +1,6 @@ package com.cf.imes.module.executor.service.order; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; import com.cf.imes.module.executor.controller.admin.order.vo.order.*; import com.cf.imes.framework.datapermission.core.util.DataPermissionUtils; @@ -10,6 +11,7 @@ import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO; import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; +import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO; import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper; import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper; import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper; @@ -47,6 +49,7 @@ import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.e import static com.cf.imes.module.executor.enums.ErrorCodeConstants.*; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; + /** * 生产单表 order_{N} Service 实现类 * @@ -85,7 +88,6 @@ public class OrderServiceImpl implements OrderService { private static final int DEFAULT_DAYS_TO_ADD = 30; -// private Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId(); @Override public Long createOrder(OrderSaveReqVO createReqVO) { @@ -114,11 +116,12 @@ public class OrderServiceImpl implements OrderService { } @Override - public void deleteOrder(Long id) { + public void deleteOrder(Collection orderIds) { // 校验存在 - validateOrderExists(id); + if (orderMapper.selectBatchIds(orderIds).size() != orderIds.size()) + throw exception(ORDER_NOT_EXISTS); // 删除 - orderMapper.deleteById(id); + orderMapper.deleteBatchIds(orderIds); } private void validateOrderExists(Long id) { @@ -138,8 +141,8 @@ public class OrderServiceImpl implements OrderService { } @Override - @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入 - public OrderImportRespVO importOrderList(Boolean upload, MultipartFile file, OrderSaveReqVO createReqVO) throws IOException { + @Transactional(rollbackFor = Exception.class) + public OrderImportRespVO importOrderList(Boolean upload, MultipartFile file, OrderSaveReqVO createReqVO, Boolean isAddPlate) throws IOException { OrderImportRespVO orderImportRespVO = OrderImportRespVO.builder().createOrder(new ArrayList<>()) .updateOrder(new ArrayList<>()).failureOrder(new LinkedHashMap<>()).build(); // 上传文件类型判断,抽出文件中的板件信息 @@ -150,18 +153,27 @@ public class OrderServiceImpl implements OrderService { return orderImportRespVO; } else if (createReqVO.getDataType() == 3) {//Excel //文件数据读取 - list = OrderExcelUtil.read(file, OrderPlateImportExcelVO.class); + list = OrderExcelUtil.read(file, OrderPlateImportExcelVO.class);//缺少数据转换 + System.out.println("================== " +list); if (list == null || list.size() == 0) { orderImportRespVO.getFailureOrder().put("生产单导入错误", String.valueOf(OrderExcelUtil.getValue())); return orderImportRespVO; } } -// 判断是否只新建生产单 - Long id = createOrder(createReqVO); - if (upload) { - orderImportRespVO.getCreateOrder().add(String.valueOf(id)); - return orderImportRespVO; + Long id; +// 判断是否为为生产单添加板材 + if (!isAddPlate) {//只是添加板材 +// 判断是否只新建生产单 + id = createOrder(createReqVO); + if (upload) { + orderImportRespVO.getCreateOrder().add(String.valueOf(id)); + return orderImportRespVO; + } + } else { + validateOrderExists(createReqVO.getId()); + id = createReqVO.getId(); } + // 根据字段筛选出重复数据 List duplicateOrder = list.stream() .collect( @@ -229,7 +241,7 @@ public class OrderServiceImpl implements OrderService { if (plateOrParts.getGoodType().replaceAll(" ", "").equals("板材") || plateOrParts.getGoodType().replaceAll(" ", "").equals("1")) {//板材 for (int i = 0; i < plateOrParts.getGoodsNumber(); i++) { - PlateDO plateDO = BeanUtils.toBean(plateOrParts, PlateDO.class); + PlateDO plateDO = BeanUtils.toBean(plateOrParts, PlateDO.class).setOrderId(id).setGoodsId(""); plateMapper.insert(plateDO); Long plateId = plateDO.getId(); OrderItemDO orderItemDO = OrderItemDO.builder().orderId(id).type(1) @@ -262,12 +274,43 @@ public class OrderServiceImpl implements OrderService { return orderImportRespVO; } + @Override + @Transactional(rollbackFor = Exception.class) + public void cleanOrder(Long orderId) { + // 校验存在 + validateOrderExists(orderId); +// 清除 + orderBodyMapper.delete(new LambdaQueryWrapper().eq(OrderBodyDO::getOrderId, orderId)); + orderItemMapper.delete(new LambdaQueryWrapper().eq(OrderItemDO::getOrderId, orderId)); + orderGroupMapper.delete(new LambdaQueryWrapper().eq(OrderGroupDO::getOrderId, orderId)); + rawGoodsMapper.delete(new LambdaQueryWrapper().eq(RawGoodsDO::getOrderId, orderId)); + orderPartsMapper.delete(new LambdaQueryWrapper().eq(OrderPartsDO::getOrderId, orderId)); + plateMapper.delete(new LambdaQueryWrapper().eq(PlateDO::getOrderId, orderId)); + } + + @Override + public PageResult getAllOrderCheck(OrderPageReqVO pageReqVO) { + return orderMapper.selectOrderCheck(pageReqVO); + } + + // 板材信息收集 private List collectImportRawPlate(List list, Long id) { List rawGoodsDOList = new ArrayList<>(); + for (OrderPlateImportExcelVO orderPlateImportExcelVO : list) { RawGoodsSaveReqVO rawGoodsSaveReqVO = BeanUtils.toBean(orderPlateImportExcelVO, RawGoodsSaveReqVO.class); rawGoodsSaveReqVO.setOrderId(id); + rawGoodsSaveReqVO.setRawGoodsId(orderPlateImportExcelVO.getGoodsId()); + // 创建 Pattern 对象 + Pattern pattern = Pattern.compile(".*?[^\\d]+(\\d+).*"); + Matcher matcher = pattern.matcher(orderPlateImportExcelVO.getSpec()); + if (matcher.matches()) { + String number = matcher.group(1); + // 去除空格 + number = number.trim(); + rawGoodsSaveReqVO.setThickness(Double.valueOf(number)); + } rawGoodsDOList.add(rawGoodsSaveReqVO); } return rawGoodsDOList; @@ -321,15 +364,15 @@ public class OrderServiceImpl implements OrderService { } // 业务员是否存在 - private void validateSalesmanOrderNoExists(String salesman , Long organId) { - if (adminUserApi.validateUser(salesman,organId) == null) { + private void validateSalesmanOrderNoExists(String salesman, Long organId) { + if (adminUserApi.validateUser(salesman, organId).getData() == null) { throw exception(SALESMAN_ORDER_NOT_EXISTS); } } // 拆单员是否存在 - private void validateSplitterOrderNoExists(String splitter , Long organId) { - if (adminUserApi.validateUser(splitter,organId) == null) { + private void validateSplitterOrderNoExists(String splitter, Long organId) { + if (adminUserApi.validateUser(splitter, organId).getData() == null) { throw exception(SPLITTER_ORDER_NOT_EXISTS); } } @@ -358,8 +401,9 @@ public class OrderServiceImpl implements OrderService { Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId(); DataPermissionUtils.executeIgnore(() -> { validateCustomOrderNoExists(customOrderNo); - validateSalesmanOrderNoExists(salesman , organId); - validateSplitterOrderNoExists(splitter , organId); + validateSalesmanOrderNoExists(salesman, organId); + validateSplitterOrderNoExists(splitter, 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/service/plate/PlateService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java index b6e640f22..f6057e619 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateService.java @@ -2,6 +2,7 @@ package com.cf.imes.module.executor.service.plate; import java.util.*; import javax.validation.*; + import com.cf.imes.module.executor.controller.admin.plate.vo.*; import com.cf.imes.module.executor.controller.admin.rawgoods.vo.RawGoodsImportRespVO; import com.cf.imes.module.executor.controller.admin.rawgoods.vo.RawGoodsSaveReqVO; @@ -57,10 +58,23 @@ public interface PlateService { /** * 批量导入小板 * - * @param importPlates 导入生产单板材列表 - * @param orderId 生产单Id + * @param importPlates 导入生产单板材列表 + * @param orderId 生产单Id * @return 导入结果 */ PlateImportRespVO importPlatesList(List importPlates, Long orderId); + /** + * @param ids: 待删除板件id集合 + * @return void + */ + void deletePlates(Set ids); + + /** + * 获得生产单所有板材 + * + * @param orderId 生产单id + * @return List + */ + List getPlatesByOrderId(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/service/plate/PlateServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java index a5670bcc4..039afe5ef 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plate/PlateServiceImpl.java @@ -1,6 +1,7 @@ package com.cf.imes.module.executor.service.plate; import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; import com.cf.imes.module.executor.controller.admin.rawgoods.vo.RawGoodsImportRespVO; @@ -89,6 +90,7 @@ public class PlateServiceImpl implements PlateService { .updatePlates(new ArrayList<>()).failurePlates(new LinkedHashMap<>()).build(); importPlates.forEach(plateSaveReqVO -> { try { +// 改成plateMapper.insertBatch() Long id = (long) plateMapper.insert(BeanUtils.toBean(plateSaveReqVO, PlateDO.class) .setOrderId(orderId)); respVO.getCreatePlates().add(plateSaveReqVO); @@ -99,4 +101,16 @@ public class PlateServiceImpl implements PlateService { return respVO; } + @Override + public void deletePlates(Set ids) { + plateMapper.deleteBatchIds(ids); + } + + @Override + public List getPlatesByOrderId(Long orderId) { + List plates = plateMapper.selectList(new LambdaQueryWrapper().eq(PlateDO::getOrderId, orderId)); + return plates; + } + + } \ 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/util/deviseData/HoleDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/HoleDetail.java new file mode 100644 index 000000000..e83317415 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/HoleDetail.java @@ -0,0 +1,23 @@ +package com.cf.imes.module.executor.util.deviseData; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:58 + */ +public class HoleDetail { + + private Integer HoleID; + private Integer HoleType;// 请定义HoleType枚举类型 + private Integer Face; // 请定义FaceType枚举类型 + private Integer PointX; + private Integer PointY; + private Integer PointZ; + private Integer Radius; + private Integer Depth; + private Integer EndPoint; + private Integer PointX2; + private Integer PointY2; + private Integer Angle; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/IContourData.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/IContourData.java new file mode 100644 index 000000000..e94f16a0e --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/IContourData.java @@ -0,0 +1,14 @@ +package com.cf.imes.module.executor.util.deviseData; + +import java.awt.*; +import java.util.ArrayList; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:47 + */ +public class IContourData { + private ArrayList pts; + private Integer[] buls; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/IOriginModelingData.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/IOriginModelingData.java new file mode 100644 index 000000000..df9cdbf4c --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/IOriginModelingData.java @@ -0,0 +1,20 @@ +package com.cf.imes.module.executor.util.deviseData; + +import java.util.Dictionary; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:48 + */ +public class IOriginModelingData { + + private IContourData outline; + private Dictionary holes; + private Integer thickness; + private Integer dir; // 请定义FaceDirection枚举类型 + private Integer knifeRadius; + private Integer addLen; + private Integer addWidth; + private Integer addDepth; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/ModelDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/ModelDetail.java new file mode 100644 index 000000000..7cbf395af --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/ModelDetail.java @@ -0,0 +1,21 @@ +package com.cf.imes.module.executor.util.deviseData; + +import java.util.List; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:53 + */ +public class ModelDetail { + + private Integer ModelID; + private Integer LineID; + private Integer Face; + private String KnifeName; + private Integer KnifeRadius; + private Integer Depth; + private IOriginModelingData OriginModeling; + private List PointList; + private List OffSetList; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/OffSetList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/OffSetList.java new file mode 100644 index 000000000..00127979b --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/OffSetList.java @@ -0,0 +1,16 @@ +package com.cf.imes.module.executor.util.deviseData; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:51 + */ +public class OffSetList { + + private String Name; + private Integer Face;// 请定义FaceType枚举类型 + private Integer Value; + private Integer Radius; + private Integer Deep; + private Integer Angle; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/OrgPointDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/OrgPointDetail.java new file mode 100644 index 000000000..036f3743d --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/OrgPointDetail.java @@ -0,0 +1,11 @@ +package com.cf.imes.module.executor.util.deviseData; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 17:00 + */ +public class OrgPointDetail + +{ +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/PointDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/PointDetail.java new file mode 100644 index 000000000..4aecf949c --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/PointDetail.java @@ -0,0 +1,14 @@ +package com.cf.imes.module.executor.util.deviseData; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:57 + */ +public class PointDetail { + private Integer PointID; + private Integer PointX; + private Integer PointY; + private Integer Curve; + private Integer SealSize; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/PointList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/PointList.java new file mode 100644 index 000000000..77bb58bbe --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/PointList.java @@ -0,0 +1,16 @@ +package com.cf.imes.module.executor.util.deviseData; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:49 + */ +public class PointList { + private Integer LineID; + private Integer PointID; + private Integer PointX; + private Integer PointY; + private Integer Radius; + private Integer Depth; + private Integer Curve; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/SideHoleDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/SideHoleDetail.java new file mode 100644 index 000000000..f714dd448 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/SideHoleDetail.java @@ -0,0 +1,22 @@ +package com.cf.imes.module.executor.util.deviseData; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 18:02 + */ +public class SideHoleDetail { + + private Integer HoleID; + private Integer HoleType; // 请定义HoleType枚举类型 + private Integer Face; // 请定义FaceType枚举类型 + private Integer PointX; + private Integer PointY; + private Integer PointZ; + private Integer Radius; + private Integer Depth; + private String EndPoint; + private Integer PointX2; + private Integer PointY2; + private Integer Angle; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/SideModelDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/SideModelDetail.java new file mode 100644 index 000000000..51a3843c1 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/SideModelDetail.java @@ -0,0 +1,21 @@ +package com.cf.imes.module.executor.util.deviseData; + +import java.util.List; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 17:59 + */ +public class SideModelDetail { + + private Integer ModelID; + private Integer LineID; + private int Face; + private String KnifeName; + private Integer KnifeRadius; + private Integer Depth; + private IOriginModelingData OriginModeling; + private List PointList; + private List OffSetList; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/detail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/detail.java new file mode 100644 index 000000000..aadedd2d6 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/deviseData/detail.java @@ -0,0 +1,17 @@ +package com.cf.imes.module.executor.util.deviseData; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/23 9:10 + */ +public class detail { + + private ModelDetail ModelDetail ; + private PointDetail PointDetail ; + private HoleDetail HoleDetail ; + private OrgPointDetail OrgPointDetail ; + private SideModelDetail SideModelDetail ; + private SideHoleDetail SideHoleDetail; + private String remark ; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/excel/ExcelListener.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/excel/ExcelListener.java index c60a956c0..0e109f7ab 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/excel/ExcelListener.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/excel/ExcelListener.java @@ -64,7 +64,7 @@ public final class ExcelListener extends AnalysisEventListener { excelDataConvertException.getColumnIndex(), excelDataConvertException.getCellData()); value = String.valueOf(new RuntimeException("第" + (excelDataConvertException.getRowIndex() + 1) + "行" + ",第" + (excelDataConvertException.getColumnIndex() + 1) + "列读取错误")); - + System.out.println(); } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/test.json b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/test.json index 2a49cfa41..71da98019 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/test.json +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/test.json @@ -16,7 +16,7 @@ "ModelDetail //模块明细": { "ModelID": "number 模块ID", "LineID": "number 纹路ID", - "Face": " 板面类型(0正面, 1反面, 2侧面)", + "Face": " 板面类型(0正面, 1反面, 2侧面)//排版面", "KnifeName": " 刀具名称", "KnifeRadius": "number 刀半径", "Depth": "number 深度", diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java index 16b8d36e1..b9819bf73 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java @@ -122,8 +122,7 @@ public class PlateController { @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport, @RequestParam(value = "organId") Long organId) throws Exception { List list = ExcelUtils.read(file, PlateImportExcelVO.class); - return success(plateService.importPlateList(list, updateSupport)); -// return null; + return success(plateService.importPlateList(list, updateSupport , organId)); } } \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/plate/PlateDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/plate/PlateDO.java index e02804705..bd4e20823 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/plate/PlateDO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/plate/PlateDO.java @@ -74,4 +74,9 @@ public class PlateDO extends BaseDO { */ private String remark; + /** + * 组织id + */ + private Long organId; + } \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/PlateMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/PlateMapper.java index 26314979e..3cdbd759c 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/PlateMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/PlateMapper.java @@ -15,8 +15,8 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface PlateMapper extends BaseMapperX { - default PlateDO selectByGoodID(String goodId) { - return selectOne(PlateDO::getGoodsId, goodId); + default PlateDO selectByGoodID(String goodId , Long organId) { + return selectOne(PlateDO::getGoodsId, goodId, PlateDO::getOrganId, organId); } default PageResult selectPage(PlatePageReqVO reqVO) { @@ -28,7 +28,7 @@ public interface PlateMapper extends BaseMapperX { .eqIfPresent(PlateDO::getWidth, reqVO.getWidth()) .eqIfPresent(PlateDO::getHeight, reqVO.getHeight()) .eqIfPresent(PlateDO::getThickness, reqVO.getThickness()) -// .eqIfPresent(PlateDO::getPrice, reqVO.getPrice()) + .eqIfPresent(PlateDO::getOrganId, reqVO.getOrganId()) .eqIfPresent(PlateDO::getBrand, reqVO.getBrand()) .eqIfPresent(PlateDO::getSpec, reqVO.getSpec()) .eqIfPresent(PlateDO::getRemark, reqVO.getRemark()) diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/framework/rpc/config/RpcConfiguration.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/framework/rpc/config/RpcConfiguration.java index 320bbd959..154181192 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/framework/rpc/config/RpcConfiguration.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/framework/rpc/config/RpcConfiguration.java @@ -1,10 +1,11 @@ package com.cf.imes.module.manage.framework.rpc.config; +import com.cf.imes.module.system.api.organ.OrganApi; import com.cf.imes.module.system.api.user.AdminUserApi; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) -@EnableFeignClients(clients = AdminUserApi.class) +@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class}) public class RpcConfiguration { } 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 1cf488980..6edd09a0c 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 @@ -63,6 +63,6 @@ public interface PlateService { * @param isUpdateSupport 是否支持更新 * @return 导入结果 */ - PlateImportRespVO importPlateList(List importUsers, boolean isUpdateSupport); + PlateImportRespVO importPlateList(List importUsers, boolean isUpdateSupport , Long organId); } \ No newline at end of file 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 0e64acead..cea03b91f 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 @@ -3,10 +3,14 @@ package com.cf.imes.module.manage.service.plate; import cn.hutool.core.collection.CollUtil; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.framework.security.core.LoginUser; +import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateImportExcelVO; import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateImportRespVO; import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlatePageReqVO; import com.cf.imes.module.manage.controller.admin.plate.vo.plate.PlateSaveReqVO; +import com.cf.imes.module.system.api.organ.OrganApi; import com.cf.imes.module.system.enums.ErrorCodeConstants; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -38,10 +42,17 @@ public class PlateServiceImpl implements PlateService { @Resource private PlateMapper plateMapper; + @Resource + private OrganApi organApi; + @Override public Long createPlate(PlateSaveReqVO createReqVO) { - // 插入 PlateDO plate = BeanUtils.toBean(createReqVO, PlateDO.class); + if (createReqVO.getOrganId() != 0){ + validateOrganExists(createReqVO.getOrganId()); + validateGoodExists(createReqVO.getGoodsId(), createReqVO.getOrganId()); + plate.setOrganId(createReqVO.getOrganId()); + } plateMapper.insert(plate); // 返回 return plate.getId(); @@ -51,7 +62,7 @@ public class PlateServiceImpl implements PlateService { public void updatePlate(PlateSaveReqVO updateReqVO) { // 校验存在 validatePlateExists(updateReqVO.getId()); - // 更新 + // 更新 判断是否有组织id PlateDO updateObj = BeanUtils.toBean(updateReqVO, PlateDO.class); plateMapper.updateById(updateObj); } @@ -90,10 +101,11 @@ public class PlateServiceImpl implements PlateService { @Override @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入 - public PlateImportRespVO importPlateList(List importPlates, boolean isUpdateSupport) { + public PlateImportRespVO importPlateList(List importPlates, boolean isUpdateSupport , Long organId) { if (CollUtil.isEmpty(importPlates)) { throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLATE_IMPORT_LIST_IS_EMPTY); } + validateOrganExists(organId); PlateImportRespVO respVO = PlateImportRespVO.builder().createPlateNames(new ArrayList<>()) .updatePlateNames(new ArrayList<>()).failurePlateNames(new LinkedHashMap<>()).build(); importPlates.forEach(importPlate -> { @@ -105,7 +117,7 @@ public class PlateServiceImpl implements PlateService { return; } // 判断如果不存在,在进行插入 - PlateDO existPlate = plateMapper.selectByGoodID(importPlate.getGoodsId()); + PlateDO existPlate = plateMapper.selectByGoodID(importPlate.getGoodsId(), organId); if (existPlate == null) { plateMapper.insert(BeanUtils.toBean(importPlate, PlateDO.class)); respVO.getCreatePlateNames().add(importPlate.getGoodsName()); @@ -116,15 +128,26 @@ public class PlateServiceImpl implements PlateService { respVO.getFailurePlateNames().put(importPlate.getGoodsName(), ErrorCodeConstants.PLATE_EXISTS.getMsg()); return; } - PlateDO updateUser = BeanUtils.toBean(importPlate, PlateDO.class); - updateUser.setId(existPlate.getId()); - plateMapper.updateById(updateUser); + PlateDO plateDO = BeanUtils.toBean(importPlate, PlateDO.class); + plateDO.setId(existPlate.getId()); + plateMapper.updateById(plateDO); respVO.getUpdatePlateNames().add(importPlate.getGoodsName()); }); return respVO; } + private void validateOrganExists(Long organId) { + CommonResult index = organApi.validOrgan(organId); + if (!index.isSuccess()) { + throw exception(ErrorCodeConstants.ORGAN_NOT_EXISTS); + } + } - +// 当前组织中板材是否存在 + private void validateGoodExists(String goodsId ,Long organId) { + if (plateMapper.selectByGoodID(goodsId ,organId) != null){ + throw exception(ErrorCodeConstants.PLATE_EXISTS); + } + } } \ No newline at end of file diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java index a3876441d..52d19ad45 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/DictTypeConstants.java @@ -26,4 +26,7 @@ public interface DictTypeConstants { String SMS_SEND_STATUS = "system_sms_send_status"; // 短信发送状态 String SMS_RECEIVE_STATUS = "system_sms_receive_status"; // 短信接收状态 + String YPOGRAPHY_TYPE = "ypographyType"; // 排版面 + String GRAIN_TYPE = "grainType";//纹路类型 + String DOOR_OPENING_DIRECTIONS = "doorOpeningDirections";//开门方向 }