From 405be1af0d60f833c505f35a34ad3837654bb40d Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Fri, 21 Feb 2025 15:23:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=AA=E6=8E=92=E5=8D=95=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=8E=92=E5=8D=95=E6=96=B0=E9=9C=80=E6=B1=82=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E6=9B=B4=E6=94=B9=EF=BC=8C=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=80=BB=E8=BE=91=E6=9B=B4=E6=94=B9=EF=BC=8C?= =?UTF-8?q?=E6=8E=92=E5=8D=95=E6=8E=92=E5=BA=8F=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/enums/MixConfigTypeEnum.java | 26 + .../executor/api/plan/OrderPlanApiImpl.java | 2 +- .../controller/admin/plan/PlanController.java | 7 +- .../controller/admin/plan/bo/GoodsNum.java | 19 - .../controller/admin/plan/bo/OrderSource.java | 5 +- .../controller/admin/plan/vo/MixConfig.java | 18 + .../admin/plan/vo/PlanActualGoodsList.java | 27 + .../admin/plan/vo/PlanActualGoodsResp.java | 29 + .../admin/plan/vo/PlanSaveReqVO.java | 7 +- .../admin/plan/vo/PlateResList.java | 2 + .../admin/plan/vo/SavePlanPlateList.java | 6 + .../controller/admin/plan/vo/SortVO.java | 9 +- .../plate/vo/GoodsPlateFilterPageReqVO.java | 6 +- .../goods/PlanActualGoodsModelDO.java | 56 ++ .../executor/dal/dataobject/plan/PlanDO.java | 5 + .../executor/dal/mysql/goods/GoodsMapper.java | 3 + .../executor/dal/mysql/plan/PlanMapper.java | 125 +++-- .../dal/mysql/planitem/PlanItemMapper.java | 6 +- .../optimizeplan/OptimizePlanService.java | 2 + .../optimizeplan/OptimizePlanServiceImpl.java | 24 +- .../executor/service/plan/PlanService.java | 3 +- .../service/plan/PlanServiceImpl.java | 514 ++++++++++++++---- .../service/plate/PlateServiceImpl.java | 43 +- .../resources/mapper/goods/GoodsMapper.xml | 36 +- .../resources/mapper/order/OrderMapper.xml | 1 + .../main/resources/mapper/plan/PlanMapper.xml | 98 +++- .../mapper/planitem/PlanItemMapper.xml | 22 +- .../systemconfig/dto/ProcessSchemeDTO.java | 14 + .../system/enums/ErrorCodeConstants.java | 6 +- .../api/systemconfig/SystemConfigApiImpl.java | 26 +- .../controller/admin/dept/PostController.java | 8 + .../admin/dept/vo/post/PostRespVO.java | 2 +- .../system/dal/mysql/dept/PostMapper.java | 14 - .../enums/config/SystemConfigTypeEnum.java | 2 +- .../service/machine/MachineServiceImpl.java | 1 + .../oauth2/OAuth2TokenServiceImpl.java | 2 +- .../impl/DataProcessServiceHandler.java | 3 + .../impl/IntellectBranchingService.java | 3 + .../MultiColorOrderPlanServiceHandler.java | 3 + .../impl/ProcessSchemeServiceHandler.java | 3 + .../impl/ProcessScreeningServiceHandler.java | 3 + 41 files changed, 897 insertions(+), 294 deletions(-) create mode 100644 cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/MixConfigTypeEnum.java delete mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/GoodsNum.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/MixConfig.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanActualGoodsList.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanActualGoodsResp.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/PlanActualGoodsModelDO.java diff --git a/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/MixConfigTypeEnum.java b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/MixConfigTypeEnum.java new file mode 100644 index 000000000..0d14eed95 --- /dev/null +++ b/cf-framework/cf-common/src/main/java/com/cf/imes/framework/common/enums/MixConfigTypeEnum.java @@ -0,0 +1,26 @@ +package com.cf.imes.framework.common.enums; + + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public enum MixConfigTypeEnum { + + SAMEMATERIALANDTHICKNESS(1,"相同材质和厚度"), + SAMETHICKNESS(2,"相同厚度"); + + + private Integer type; + private String filterName; + + public boolean equals(Integer type) { + return this.type .equals(type) ; + } + + public boolean equals(MixConfigTypeEnum enableStatusEnum) { + return enableStatusEnum != null && enableStatusEnum.type .equals(this.getType()) ; + } + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApiImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApiImpl.java index e09435381..f3f0689d3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApiImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/api/plan/OrderPlanApiImpl.java @@ -140,7 +140,7 @@ public class OrderPlanApiImpl implements OrderPlanApi{ List planIds = planItemDOS.stream().map(PlanItemDO::getPlanId).distinct().toList(); - List planDOS = planMapper.selectPLanList(planIds,getUserOrganId()); + List planDOS = planMapper.selectPlanList(planIds,getUserOrganId()); if(CollUtil.isEmpty(planDOS)){ return CommonResult.success(true); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java index 3d55a3e78..ac356de89 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java @@ -111,8 +111,11 @@ public class PlanController { @PostMapping("/setSort") @Operation(summary = "设置排单优先级") @PreAuthorize("@ss.hasPermission('placeorder:priority')") - public CommonResult setSort(@Valid @NotEmpty(message = "参数不能空") @RequestBody List sortVos) { - return success(planService.setSort(sortVos)); + public CommonResult setSort(@Valid @NotEmpty(message = "参数不能空") @Size(max = 2,message = "做多两条数据") @RequestBody List sortVos) { + + planService.setSort(sortVos); + + return success(Boolean.TRUE); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/GoodsNum.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/GoodsNum.java deleted file mode 100644 index 67ed0867c..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/GoodsNum.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.cf.imes.module.executor.controller.admin.plan.bo; - - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Builder; -import lombok.Data; - -@Data -@Builder -public class GoodsNum { - - @Schema(description = "生产单ID") - private Long orderId; - - - @Schema(description = "商品数量") - private Long goodsNum; - -} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/OrderSource.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/OrderSource.java index f003ab7af..aed43ce7d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/OrderSource.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/bo/OrderSource.java @@ -7,6 +7,7 @@ import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PrintOrder import com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.PlateDetailRespVO; import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO; +import com.cf.imes.module.executor.dal.dataobject.goods.PlanActualGoodsModelDO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO; @@ -64,11 +65,13 @@ public class OrderSource { private List orderPartsRemarks; - @Schema(description = "生产单包裹信息") private List orderPackReqVOS; + @Schema(description = "混单时选择的实际的大板信息") + private PlanActualGoodsModelDO planActualGoodsModelDO; + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/MixConfig.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/MixConfig.java new file mode 100644 index 000000000..d71cae6d0 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/MixConfig.java @@ -0,0 +1,18 @@ +package com.cf.imes.module.executor.controller.admin.plan.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class MixConfig { + + + @Schema(description = "是否开启混单,true 开启 false 关闭") + private Boolean isMixed; + + + @Schema(description = "混单方式 1 相同材质和厚度 2 相同厚度") + private Integer mixedType; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanActualGoodsList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanActualGoodsList.java new file mode 100644 index 000000000..d34461904 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanActualGoodsList.java @@ -0,0 +1,27 @@ +package com.cf.imes.module.executor.controller.admin.plan.vo; + + +import com.cf.imes.module.executor.dal.dataobject.goods.PlanActualGoodsModelDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PlanActualGoodsList { + + @Schema(description = "大板的分类ID") + private List ids; + + @Schema(description = "混单时选择的实际的大板信息") + private PlanActualGoodsModelDO planActualGoodsModelDO; + + + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanActualGoodsResp.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanActualGoodsResp.java new file mode 100644 index 000000000..4f1f16048 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanActualGoodsResp.java @@ -0,0 +1,29 @@ +package com.cf.imes.module.executor.controller.admin.plan.vo; + + +import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsRespVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PlanActualGoodsResp { + + + @Schema(description = "大板的分类ID") + private List ids; + + + @Schema(description = "页面显示的大板信息") + private List goodsRespVOS; + + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanSaveReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanSaveReqVO.java index 33df233e5..22c36ac99 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanSaveReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlanSaveReqVO.java @@ -26,7 +26,8 @@ public class PlanSaveReqVO { @Schema(description = "是否已投产") private Boolean isScheduled; - @Schema(description = "需要进行排单的板材信息") + + @Schema(description = "需要进行排单的板材信息-数据不改变") private SavePlanPlateList savePlanPlateList; @@ -42,4 +43,8 @@ public class PlanSaveReqVO { private List deleteOrderPlateIds; + @Schema(description = "混单创建排单时选择的实际的大板信息") + private List planActualGoodsListList; + + } \ 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/plan/vo/PlateResList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateResList.java index b0f1e2f28..69b4a1604 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateResList.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateResList.java @@ -60,6 +60,8 @@ public class PlateResList { private String material; @Schema(description = "纹路") private Integer texture; + @Schema(description = "品牌") + private String brand; @Schema(description = "备注") 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/plan/vo/SavePlanPlateList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateList.java index 366a2d290..7dedf0f3c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateList.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateList.java @@ -16,6 +16,9 @@ import java.util.List; public class SavePlanPlateList { + @Schema(description = "混单的配置项",requiredMode = Schema.RequiredMode.REQUIRED) + private MixConfig mixConfig; + @Schema(description = "小板的信息列表",requiredMode = Schema.RequiredMode.REQUIRED) @Valid @@ -74,6 +77,9 @@ public class SavePlanPlateList { private String color; + @Schema(description = "大板的品牌") + private String brand; + } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SortVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SortVO.java index 0e67f876b..c2905a266 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SortVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SortVO.java @@ -12,6 +12,8 @@ import javax.validation.constraints.NotNull; @Data @Valid public class SortVO { + + @Schema(description = "排单id", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "排单id 不能空") private Long planId; @@ -20,8 +22,13 @@ public class SortVO { @NotNull(message = "排序不能空") private Long sort; + @Schema(description = "是否置顶", requiredMode = Schema.RequiredMode.REQUIRED,example = "false") -// @NotNull(message = "是否置顶不能空") private Boolean isTopUp; + + @Schema(description = "是否第一条数据",example = "false") + private Boolean isOnePlan; + + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/GoodsPlateFilterPageReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/GoodsPlateFilterPageReqVO.java index e9ec87e9f..59d71936e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/GoodsPlateFilterPageReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/GoodsPlateFilterPageReqVO.java @@ -22,12 +22,12 @@ public class GoodsPlateFilterPageReqVO extends PageParam { @Schema(description = "排单ID",requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "排单ID不能为空") +// @NotNull(message = "排单ID不能为空") private Long planId; @Schema(description = "厚度",requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "厚度不能为空") +// @NotNull(message = "厚度不能为空") private BigDecimal thickness; @@ -37,7 +37,7 @@ public class GoodsPlateFilterPageReqVO extends PageParam { @Schema(description = "颜色",requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "颜色不能为空") +// @NotNull(message = "颜色不能为空") private String color; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/PlanActualGoodsModelDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/PlanActualGoodsModelDO.java new file mode 100644 index 000000000..8dfbd7cf3 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/PlanActualGoodsModelDO.java @@ -0,0 +1,56 @@ +package com.cf.imes.module.executor.dal.dataobject.goods; + + +import com.cf.imes.framework.es.core.dal.ESDocument; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Schema(description = "混单选择的实际的大板信息") +public class PlanActualGoodsModelDO extends ESDocument { + + + @Schema(description = "排单ID") + private Long planId; + + @Schema(description = "商品 ID") + private String goodsId; + + @Schema(description = "商品名称") + private String goodsName; + + @Schema(description = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板") + private String material; + + @Schema(description = "颜色") + private String color; + + @Schema(description = "品牌") + private String brand; + + @Schema(description = "厚度") + private BigDecimal thickness; + + +// @Schema(description = "纹路") +// private Integer texture; +// +// @Schema(description = "宽度") +// private BigDecimal width; +// +// @Schema(description = "高度") +// private BigDecimal height; +// +// @Schema(description = "规格") +// private String spec; + + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plan/PlanDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plan/PlanDO.java index a56a42260..49b78b962 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plan/PlanDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plan/PlanDO.java @@ -43,6 +43,11 @@ public class PlanDO extends BaseDO { */ private Integer status; + /** + * 是否置顶,0 未置顶 1 已置顶 + */ + private Boolean isTop; + /** * 是否已投产:0未投产,1已投产 */ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java index 80fc94ee0..075bfd701 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/goods/GoodsMapper.java @@ -8,6 +8,7 @@ import com.cf.imes.framework.common.pojo.PageResult; 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.goods.vo.GoodsPageReqVO; +import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderGoodsPlateIds; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList; import com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO; @@ -200,6 +201,8 @@ public interface GoodsMapper extends BaseMapperX { } + List selectNoOrderPlanGoods(@Param("ids") List ids, @Param("organId") Long organId); + List selectInsertGoodsIds(@Param("orderIds") List orderIds,@Param("goodsIds") List goodsIds,@Param("organId") Long organId); // 通过orderId查找板材 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java index d6f549c47..0a6f30fbc 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java @@ -1,25 +1,20 @@ package com.cf.imes.module.executor.dal.mysql.plan; -import com.cf.imes.framework.common.pojo.PageResult; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; -import com.cf.imes.framework.mybatis.core.query.MPJLambdaWrapperX; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsAreaRespVO; import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsCountRespVO; -import com.cf.imes.module.executor.controller.admin.plan.vo.PlanPageReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize; -import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO; -import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO; -import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; -import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; - /** * 生产单开料排单 Mapper * @@ -28,48 +23,52 @@ import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.ge @Mapper public interface PlanMapper extends BaseMapperX { - default PageResult selectPage(PlanPageReqVO reqVO) { - if(StringUtils.isNotBlank(reqVO.getCustomer())) { - return selectJoinPage(reqVO, PlanDO.class, new MPJLambdaWrapperX() - .eq(PlanDO::getDeleted,false) - .eq(PlanDO::getOrganId,getUserOrganId()) - .eqIfPresent(PlanDO::getIsScheduled,reqVO.getIsScheduled()) - .eqIfPresent(PlanDO::getId, reqVO.getId()) - .eqIfPresent(PlanDO::getSort, reqVO.getSort()) - .eqIfPresent(PlanDO::getType, reqVO.getType()) - .inIfPresent(PlanDO::getStatus, reqVO.getStatus()) - .eqIfPresent(PlanDO::getMachineId, reqVO.getMachineId()) - .betweenIfPresent(PlanDO::getPlanTime, reqVO.getPlanTime()) - .likeIfPresent(PlanDO::getOrderNos, reqVO.getOrderNos()) - .eqIfPresent(PlanDO::getRemark, reqVO.getRemark()) - .betweenIfPresent(PlanDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(PlanDO::getOperator, reqVO.getOperator()) - .betweenIfPresent(PlanDO::getProduceTime, reqVO.getProduceTime()) - .leftJoin(PlanItemDO.class, PlanItemDO::getPlanId, PlanDO::getId) - .leftJoin(OrderDO.class, OrderDO::getId, PlanItemDO::getOrderId) - .like(OrderDO::getCustomer, reqVO.getCustomer()) - .orderByDesc(PlanDO::getCreateTime) - .distinct() - ); - } - return selectPage(reqVO, new LambdaQueryWrapperX() - .eq(PlanDO::getDeleted,false) - .eq(PlanDO::getOrganId,getUserOrganId()) - .eqIfPresent(PlanDO::getIsScheduled,reqVO.getIsScheduled()) - .eqIfPresent(PlanDO::getId, reqVO.getId()) - .eqIfPresent(PlanDO::getSort, reqVO.getSort()) - .eqIfPresent(PlanDO::getType, reqVO.getType()) - .inIfPresent(PlanDO::getStatus, reqVO.getStatus()) - .eqIfPresent(PlanDO::getMachineId, reqVO.getMachineId()) - .betweenIfPresent(PlanDO::getPlanTime, reqVO.getPlanTime()) - .likeIfPresent(PlanDO::getOrderNos, reqVO.getOrderNos()) - .eqIfPresent(PlanDO::getRemark, reqVO.getRemark()) - .betweenIfPresent(PlanDO::getCreateTime, reqVO.getCreateTime()) - .eqIfPresent(PlanDO::getOperator, reqVO.getOperator()) - .betweenIfPresent(PlanDO::getProduceTime, reqVO.getProduceTime()) - .orderByDesc(PlanDO::getCreateTime)); - } + IPage selectPlanPageList(@Param("page") IPage page,@Param(Constants.WRAPPER) Wrapper wrapper); + + +// default PageResult selectPage(PlanPageReqVO reqVO) { +// if(StringUtils.isNotBlank(reqVO.getCustomer())) { +// return selectJoinPage(reqVO, PlanDO.class, new MPJLambdaWrapperX() +// .eq(PlanDO::getDeleted,false) +// .eq(PlanDO::getOrganId,getUserOrganId()) +// .eqIfPresent(PlanDO::getIsScheduled,reqVO.getIsScheduled()) +// .eqIfPresent(PlanDO::getId, reqVO.getId()) +// .eqIfPresent(PlanDO::getSort, reqVO.getSort()) +// .eqIfPresent(PlanDO::getType, reqVO.getType()) +// .inIfPresent(PlanDO::getStatus, reqVO.getStatus()) +// .eqIfPresent(PlanDO::getMachineId, reqVO.getMachineId()) +// .betweenIfPresent(PlanDO::getPlanTime, reqVO.getPlanTime()) +// .likeIfPresent(PlanDO::getOrderNos, reqVO.getOrderNos()) +// .eqIfPresent(PlanDO::getRemark, reqVO.getRemark()) +// .betweenIfPresent(PlanDO::getCreateTime, reqVO.getCreateTime()) +// .eqIfPresent(PlanDO::getOperator, reqVO.getOperator()) +// .betweenIfPresent(PlanDO::getProduceTime, reqVO.getProduceTime()) +// .leftJoin(PlanItemDO.class, PlanItemDO::getPlanId, PlanDO::getId) +// .leftJoin(OrderDO.class, OrderDO::getId, PlanItemDO::getOrderId) +// .like(OrderDO::getCustomer, reqVO.getCustomer()) +// .orderByDesc(PlanDO::getCreateTime) +// .distinct() +// ); +// } +// +// return selectPage(reqVO, new LambdaQueryWrapperX() +// .eq(PlanDO::getDeleted,false) +// .eq(PlanDO::getOrganId,getUserOrganId()) +// .eqIfPresent(PlanDO::getIsScheduled,reqVO.getIsScheduled()) +// .eqIfPresent(PlanDO::getId, reqVO.getId()) +// .eqIfPresent(PlanDO::getSort, reqVO.getSort()) +// .eqIfPresent(PlanDO::getType, reqVO.getType()) +// .inIfPresent(PlanDO::getStatus, reqVO.getStatus()) +// .eqIfPresent(PlanDO::getMachineId, reqVO.getMachineId()) +// .betweenIfPresent(PlanDO::getPlanTime, reqVO.getPlanTime()) +// .likeIfPresent(PlanDO::getOrderNos, reqVO.getOrderNos()) +// .eqIfPresent(PlanDO::getRemark, reqVO.getRemark()) +// .betweenIfPresent(PlanDO::getCreateTime, reqVO.getCreateTime()) +// .eqIfPresent(PlanDO::getOperator, reqVO.getOperator()) +// .betweenIfPresent(PlanDO::getProduceTime, reqVO.getProduceTime()) +// .orderByDesc(PlanDO::getCreateTime)); +// } List selectPlateListByPlanId(@Param("planId") Long planId, @Param("organId") Long organId); @@ -103,11 +102,11 @@ public interface PlanMapper extends BaseMapperX { - List selectPlanIds(@Param("createTime") String createTime,@Param("sort") Long sort,@Param("organId") Long organId,@Param("planId") Long planId); + List selectPlanIds(@Param("sort") Long sort,@Param("organId") Long organId); - List selectPlanIdsFalse(@Param("createTime") String createTime,@Param("sort") Long sort,@Param("organId") Long organId,@Param("planId") Long planId); + List selectPlanIdsFalse(@Param("sort") Long sort,@Param("organId") Long organId); List selectPlanStatus(@Param("planIds") List planIds,@Param("organId") Long organId); @@ -116,7 +115,7 @@ public interface PlanMapper extends BaseMapperX { - List selectPLanList(@Param("planIds") List planIds, @Param("organId") Long organId); + List selectPlanList(@Param("planIds") List planIds, @Param("organId") Long organId); @@ -129,13 +128,7 @@ public interface PlanMapper extends BaseMapperX { } - default List selectPlanSortList(List status,Long organId) { - return selectList( new LambdaQueryWrapperX() - .eq(PlanDO::getOrganId,organId) - .eq(PlanDO::getDeleted,false) - .in(PlanDO::getStatus,status) - .orderByAsc(PlanDO::getSort)); - } + List selectPlanSortList(@Param("status") List status,@Param("organId") Long organId); @@ -147,4 +140,18 @@ public interface PlanMapper extends BaseMapperX { .select(PlanDO::getId)); } + + PlanDO selectSortOnePlan(@Param("sort") Long sort, @Param("organId") Long organId); + + + PlanDO selectLostPlan(@Param("sort") Long sort, @Param("organId") Long organId); + + + default List selectIsTopPlanList(Long organId) { + return selectList( new LambdaQueryWrapperX() + .eq(PlanDO::getOrganId,organId) + .eq(PlanDO::getDeleted,false) + .eq(PlanDO::getIsTop,true) + .orderByAsc(PlanDO::getUpdateTime)); + } } \ 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/planitem/PlanItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java index b15bf2736..43b692a7b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java @@ -45,11 +45,11 @@ public interface PlanItemMapper extends BaseMapperX { IPage selectPlateListByPlateIds(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper); - IPage selectNoPlanGoodsByRoomAndBodyIds(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper); + IPage selectNoPlanGoodsByRoomAndBodyIds(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper,@Param("organId") Long organId); - IPage selectNoPlanGoodsList(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper); + IPage selectNoPlanGoodsList(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper,@Param("organId") Long organId); - List selectNoOrderGoodsIdList(@Param(Constants.WRAPPER) Wrapper wrapper); + List selectNoOrderGoodsIdList(@Param(Constants.WRAPPER) Wrapper wrapper,@Param("organId") Long organId); List selectPlanIncrementPlate(@Param("noPlanIds") List noPlanIds,@Param("organId") Long organId); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java index d56c564f4..8b3793d1c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java @@ -20,6 +20,8 @@ public interface OptimizePlanService { String PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL = "imes_plan_process_scheme_optimize_model"; + String PLAN_ACTUAL_GOODS_MODEL = "imes_plan_actual_goods_model"; + List getPlateListByPlanId(Long planId); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index b6ad0e5d8..d7ace9ff4 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -37,6 +37,7 @@ import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.*; import com.cf.imes.module.executor.controller.admin.plan.vo.*; import com.cf.imes.module.executor.dal.dataobject.goods.CutedBoardInfo; import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO; +import com.cf.imes.module.executor.dal.dataobject.goods.PlanActualGoodsModelDO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO; import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; @@ -567,7 +568,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { AssertUtils.notEmpty(goodsDOS,PLAN_GOODS_DATA_ERROR); - List orderIds = goodsDOS.stream().map(GoodsReqVO::getOrderId).distinct().toList(); + String orderNos = Optional.ofNullable(planDO.getOrderNos()).orElse("[]"); + + List orderIds = JSON.parseArray(orderNos).toJavaList(Long.class).stream().distinct().toList(); + +// List orderIds = goodsDOS.stream().map(GoodsReqVO::getOrderId).distinct().toList(); List ids = goodsDOS.stream().map(GoodsReqVO::getId).toList(); @@ -614,6 +619,16 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { List optimizeRemainPlates = BeanUtils.toBean(remainPlateDOS, OptimizeRemainPlate.class); + // 获取混单时选择的实际开料的大板信息 + List planActualGoodsModelDOS = esUtils.getEsDocument(FIELD_PLAN_ID, planId, PLAN_ACTUAL_GOODS_MODEL, PlanActualGoodsModelDO.class); + +// PlanActualGoodsModelDO planActualGoodsModelDO = new PlanActualGoodsModelDO(); +// +// if(CollUtil.isNotEmpty(planActualGoodsModelDOS)){ +// +// planActualGoodsModelDO = planActualGoodsModelDOS.get(0); +// } + // 查询生产单对应的配件信息 List printOrderPartsRespVOS = orderPartsMapper.selectPartList(orderIds, getUserOrganId()); @@ -643,6 +658,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { .goodsList(goodsDOS) .plateList(plateDetailRespVOS) .plateModels(orderModelDOS) + .planActualGoodsModelDO(CollUtil.isNotEmpty(planActualGoodsModelDOS) ? planActualGoodsModelDOS.get(0) : null) .optimizeRemainPlates(optimizeRemainPlates) .orderPartsRespVOS(printOrderPartsRespVOS) .orderPartsRemarks(orderPartsRemarks) @@ -661,9 +677,9 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { Long processId = req.getProcessId(); - List actualGoodsLists = Optional.ofNullable(boardModelDO.getActualGoodsList()).orElse(new ArrayList<>()); - - AssertUtils.notEmpty(actualGoodsLists,PLAN_NO_ACTUAL_PLATE); +// List actualGoodsLists = Optional.ofNullable(boardModelDO.getActualGoodsList()).orElse(new ArrayList<>()); +// +// AssertUtils.notEmpty(actualGoodsLists,PLAN_NO_ACTUAL_PLATE); Long planId = boardModelDO.getPlanId(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java index ac5ce305a..f57b2f3e1 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java @@ -64,11 +64,12 @@ public interface PlanService { PageResult getOrderByPlanId(PlanOrderPageReqVO pageReqVO); - Boolean setSort(List sortVos); + void setSort(List sortVos); List getPlateList(List planIds); List getOrderRoomBody(List orderIds); + List getPlanGoodsList(SavePlanPlateList savePlanPlateList); } \ 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/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index 536bd26f3..ef1442074 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -6,6 +6,7 @@ import co.elastic.clients.elasticsearch._types.FieldValue; import co.elastic.clients.elasticsearch.core.UpdateByQueryRequest; import co.elastic.clients.json.JsonData; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; @@ -19,6 +20,7 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.query.QueryWrapperX; import com.cf.imes.framework.security.core.LoginUser; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; +import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderRoomBodyList; import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.PlatePlaceInfo; @@ -27,6 +29,7 @@ import com.cf.imes.module.executor.controller.admin.plan.vo.*; import com.cf.imes.module.executor.controller.admin.plate.vo.OrderPlateIds; import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO; import com.cf.imes.module.executor.dal.dataobject.goods.OptimizeBoardModelDO; +import com.cf.imes.module.executor.dal.dataobject.goods.PlanActualGoodsModelDO; 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.orderItem.OrderItemDO; @@ -116,6 +119,8 @@ public class PlanServiceImpl implements PlanService { private static final String PLAN_PROCESS_SCHEME_OPTIMIZE_MODEL = "imes_plan_process_scheme_optimize_model"; + private static final String PLAN_ACTUAL_GOODS_MODEL = "imes_plan_actual_goods_model"; + @Resource private ElasticsearchClient elasticsearchClient; @@ -151,9 +156,7 @@ public class PlanServiceImpl implements PlanService { Long processId = systemConfigRespDTO.getId(); - Boolean isMix = systemConfigApi.getMultiColorConfigStatus().getCheckedData(); - - ArrayList planDOS = new ArrayList<>(); + List planDOS = new ArrayList<>(); List ids = new ArrayList<>(); @@ -163,54 +166,56 @@ public class PlanServiceImpl implements PlanService { List planItemDOS = new ArrayList<>(); + List planActualGoodsModelDOS = new ArrayList<>(); + SavePlanPlateList savePlanPlateList = Optional.ofNullable(createReqVO.getSavePlanPlateList()).orElseThrow(()-> new ServiceException(PLAN_PLATE_DATA_ERROR)); - if (Boolean.TRUE.equals(isMix)) { + if (savePlanPlateList.getMixConfig() != null && Boolean.TRUE.equals(savePlanPlateList.getMixConfig().getIsMixed())) { + + Integer mixedType = Optional.ofNullable(savePlanPlateList.getMixConfig().getMixedType()).orElse(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType()); // 混单时走的逻辑 List plateItemList = Optional.ofNullable(savePlanPlateList.getPlateItemList()).orElseThrow(()-> new ServiceException(PLAN_PLATE_DATA_ERROR)); List goodsItemList = Optional.ofNullable(savePlanPlateList.getGoodsItemList()).orElseThrow(()-> new ServiceException(PLAN_PLATE_DATA_ERROR)); - // 查找材质和厚度相同的大板 - Map> grouped = groupByMaterialAndThickness(goodsItemList); + List planActualGoodsLists = Optional.ofNullable(createReqVO.getPlanActualGoodsListList()).orElse(new ArrayList<>()); - // 进行数据处理:value 里为 大板的分类ID - grouped.forEach((key, value) -> { + Map> grouped = new HashMap<>(); - // 查找和大板分类ID相同的小板的数据 - List plateList = plateItemList.stream().filter(p -> value.contains(p.getId())).toList(); + if(CollUtil.isNotEmpty(planActualGoodsLists)) { - List orderIdList = plateList.stream().map(SavePlanPlateList.PlateItemList::getOrderId).distinct().toList(); + getCreatePlanMultipleGoodsList(planActualGoodsLists,planItemDOS,plateItemList,planActualGoodsModelDOS,planDOS,processId,loginUser); - AtomicLong sort = new AtomicLong(System.currentTimeMillis()); - sort.addAndGet(1); + if(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.equals(mixedType)){ + // 筛选出材质和厚度相同的大板 + grouped = groupByMaterialAndThicknessEqualToOne(goodsItemList); - Long planId = (Long) identifierGenerator.nextId(null); + }else { - // 创建排单 - planDOS.add(PlanDO.builder() - .id(planId) - .sort(sort.get()) - .type(PlanTypeEnum.MIXEDORDERPLAN.getType()) - .processId(processId) - .orderNos(orderIdList.toString()) - .produceTime(null) - .status(PlanStatusEnum.NOCUTTING.getStatus()) - .operator(loginUser.getNickname()) - .planTime(LocalDateTime.now()) - .build()); + grouped = groupByThicknessEqualToOne(goodsItemList); + } - plateList.forEach(i -> - planItemDOS.add(PlanItemDO.builder() - .planId(planId) - .plateId(i.getPlateId()) - .orderId(i.getOrderId()) - .goodsId(i.getId()) - .build())); + if(CollUtil.isNotEmpty(grouped)) { + createPlanAndPlateDataList(grouped,planItemDOS,plateItemList,planDOS,processId,loginUser); + } - }); + }else { + + if(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.equals(mixedType)){ + // 筛选出材质和厚度相同的大板 + grouped = groupByMaterialAndThickness(goodsItemList); + + }else { + // 筛选出厚度相同的大板 + grouped = groupByThickness(goodsItemList); + + } + + createPlanAndPlateDataList(grouped,planItemDOS,plateItemList,planDOS,processId,loginUser); + + } // 获取所有的大板ID ids.addAll(goodsItemList.stream().map(SavePlanPlateList.GoodsItemList::getId).distinct().toList()); @@ -227,45 +232,9 @@ public class PlanServiceImpl implements PlanService { List goodsItemList = Optional.ofNullable(savePlanPlateList.getGoodsItemList()).orElseThrow(()-> new ServiceException(PLAN_PLATE_DATA_ERROR)); // 查找材质和厚度和颜色相同的大板 - Map> grouped = groupByMaterialAndThicknessAndColor(goodsItemList); - - // 进行数据处理:value 里为 大板的分类ID - grouped.forEach((key, value) -> { - - // 查找和大板分类ID相同的小板的数据 - List plateList = plateItemList.stream().filter(p -> value.contains(p.getId())).toList(); - - List orderIdList = plateList.stream().map(SavePlanPlateList.PlateItemList::getOrderId).distinct().toList(); - - AtomicLong sort = new AtomicLong(System.currentTimeMillis()); - sort.addAndGet(1); - - Long planId = (Long) identifierGenerator.nextId(null); - - // 创建排单 - planDOS.add(PlanDO.builder() - .id(planId) - .sort(sort.get()) - .type(PlanTypeEnum.MIXEDORDERPLAN.getType()) - .processId(processId) - .orderNos(orderIdList.toString()) - .produceTime(null) - .status(PlanStatusEnum.NOCUTTING.getStatus()) - .operator(loginUser.getNickname()) - .planTime(LocalDateTime.now()) - .build()); - - plateList.forEach(i -> { - - planItemDOS.add(PlanItemDO.builder() - .planId(planId) - .plateId(i.getPlateId()) - .orderId(i.getOrderId()) - .goodsId(i.getId()) - .build()); - }); - }); + Map> grouped = groupByMaterialAndThicknessAndColorAndBrand(goodsItemList); + createPlanAndPlateDataList(grouped,planItemDOS,plateItemList,planDOS,processId,loginUser); // 获取所有的大板ID ids.addAll(goodsItemList.stream().map(SavePlanPlateList.GoodsItemList::getId).distinct().toList()); @@ -294,13 +263,13 @@ public class PlanServiceImpl implements PlanService { planMapper.insertBatch(planDOS); - -// plateMapper.updatePlateIsOptimized(orderIds, ids, plateIds, getUserOrganId()); - - planItemMapper.insertBatch(planItemDOS, planItemDOS.size()); + if(CollUtil.isNotEmpty(planActualGoodsModelDOS)) { + esUtils.saveEsDocument(PLAN_ACTUAL_GOODS_MODEL, planActualGoodsModelDOS); + } + } @@ -483,8 +452,9 @@ public class PlanServiceImpl implements PlanService { @Override public PageResult getPlanPage(PlanPageReqVO pageReqVO) { - PageResult planDOPageResult = new PageResult<>(); + PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); + IPage planDOPageResult = new PageDTO<>(); if(pageReqVO.getIsUp() != null) { @@ -492,32 +462,66 @@ public class PlanServiceImpl implements PlanService { AssertUtils.notEmpty(planDO,ORDER_PLAN_DATE_ERROR); - List plan = pageReqVO.getIsUp() ? - planMapper.selectPlanIds(planDO.getCreateTime().toString(),planDO.getSort(), getUserOrganId(), planDO.getId()) : - planMapper.selectPlanIdsFalse(planDO.getCreateTime().toString(),planDO.getSort(), getUserOrganId(), planDO.getId()); + if(planDO.getIsTop()){ - if (plan.isEmpty()) { - throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ? "第" : "最后"); + + + }else { + + List plan = pageReqVO.getIsUp() ? + planMapper.selectPlanIds(planDO.getSort(), getUserOrganId()) : + + planMapper.selectPlanIdsFalse(planDO.getSort(), getUserOrganId()); + + if (plan.isEmpty()) { + + List planDOS = planMapper.selectIsTopPlanList(getUserOrganId()); + + if(CollUtil.isEmpty(planDOS)) { + throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ? "第" : "最后"); + } + + plan.add(planDOS.get(0)); + } + + planDOPageResult.setRecords(plan); + planDOPageResult.setTotal(1L); + } - planDOPageResult.setList(plan); - planDOPageResult.setTotal(1L); + }else { - planDOPageResult = planMapper.selectPage(pageReqVO); - if (CollUtil.isEmpty(planDOPageResult.getList())) { + + QueryWrapperX queryWrapperX = new QueryWrapperX<>(); + queryWrapperX + .eq("op.organ_id",getUserOrganId()) + .eq(FIELD_OP_DELETED,false) + .eqIfPresent("op.is_scheduled",pageReqVO.getIsScheduled()) + .eqIfPresent(FIELD_OP_ID, pageReqVO.getId()) + .eqIfPresent("op.sort", pageReqVO.getSort()) + .eqIfPresent("op.type", pageReqVO.getType()) + .inIfPresent("op.status", pageReqVO.getStatus()) + .betweenIfPresent("op.plan_time", pageReqVO.getPlanTime()) + .likeIfPresent("op.order_nos", pageReqVO.getOrderNos()) + .likeIfPresent(FIELD_CUSTOMER, pageReqVO.getCustomer()); + + + planDOPageResult = planMapper.selectPlanPageList(page,queryWrapperX); + + if (CollUtil.isEmpty(planDOPageResult.getRecords())) { return new PageResult<>(); } } - List processIds = planDOPageResult.getList().stream().map(PlanDO::getProcessId).distinct().toList(); + List processIds = planDOPageResult.getRecords().stream().map(PlanDO::getProcessId).distinct().toList(); - List planIds = planDOPageResult.getList().stream().map(PlanDO::getId).toList(); + List planIds = planDOPageResult.getRecords().stream().map(PlanDO::getId).toList(); List configDOS = systemConfigApi.getProcessByIds(processIds).getData(); @@ -548,11 +552,10 @@ public class PlanServiceImpl implements PlanService { List planOrderRespVOS = orderMapper.selectPlanOrderList(planIds, getUserOrganId()); - PageResult planRespVOPageResult = BeanUtils.toBean(planDOPageResult, PlanRespVO.class); + List planRespVOPageResult = BeanUtils.toBean(planDOPageResult.getRecords(), PlanRespVO.class); - - planRespVOPageResult.getList().forEach(e -> { + planRespVOPageResult.forEach(e -> { // 方案信息 e.setProcessName(getProcessName(e.getProcessId(), configDOS)); // 大板信息列表 @@ -572,7 +575,7 @@ public class PlanServiceImpl implements PlanService { }); - return planRespVOPageResult; + return new PageResult<>(planRespVOPageResult, planDOPageResult.getTotal()); } @@ -762,7 +765,7 @@ public class PlanServiceImpl implements PlanService { .likeIfPresent(FIELD_ADDRESS, pageReqVO.getConsigneeAddress()) .betweenIfPresent(FIELD_ORDER_DATE, pageReqVO.getCreateTime()); - orderGoodsResps = planItemMapper.selectNoPlanGoodsByRoomAndBodyIds(page,queryWrapperX); + orderGoodsResps = planItemMapper.selectNoPlanGoodsByRoomAndBodyIds(page,queryWrapperX,getUserOrganId()); }else { @@ -781,7 +784,7 @@ public class PlanServiceImpl implements PlanService { .likeIfPresent(FIELD_ADDRESS, pageReqVO.getConsigneeAddress()) .betweenIfPresent(FIELD_ORDER_DATE, pageReqVO.getCreateTime()); - orderGoodsResps = planItemMapper.selectNoPlanGoodsList(page,queryWrapperX); + orderGoodsResps = planItemMapper.selectNoPlanGoodsList(page,queryWrapperX,getUserOrganId()); } @@ -812,7 +815,7 @@ public class PlanServiceImpl implements PlanService { .inIfPresent("og.thickness",thickness) .inIfPresent("og.brand",brand); - List orderGoodsIdList = planItemMapper.selectNoOrderGoodsIdList(queryWrapperX); + List orderGoodsIdList = planItemMapper.selectNoOrderGoodsIdList(queryWrapperX,getUserOrganId()); mergeOrderGoodsLists(records,orderGoodsIdList); @@ -889,39 +892,74 @@ public class PlanServiceImpl implements PlanService { @Override - public Boolean setSort(List sortVos) { + @Transactional(rollbackFor = Exception.class) + public void setSort(List sortVos) { - ArrayList planDOS = new ArrayList<>(); + List planIds = sortVos.stream().map(SortVO::getPlanId).toList(); - Boolean isTopUp = sortVos.get(0).getIsTopUp(); + for (Long planId : planIds) { - if(Boolean.TRUE.equals(isTopUp)){ + PlanDO planDO = planMapper.selectById(planId); - List status = Arrays.asList(PlanStatusEnum.NOCUTTING.getStatus(),PlanStatusEnum.OPENING.getStatus()); - - // 后续的查询需要加上 是否置顶 的判断条件 - List planDOList = planMapper.selectPlanSortList(status, getUserOrganId()); - if(CollUtil.isNotEmpty(planDOList)) { - // 修改为 未置顶 -// planDOList.forEach(f->f); - - planDOS.addAll(planDOList); + if(planDO == null){ + throw exception(PLAN_NOT_DATA_EXISTS,planId); } + } + if(sortVos.size() == 1){ + + SortVO sortVO = sortVos.get(0); + + if(sortVO.getIsOnePlan() != null){ + + PlanDO planDO = planMapper.selectById(sortVO.getPlanId()); + + Long sort = planDO.getSort(); + + PlanDO plan = Boolean.TRUE.equals(sortVO.getIsOnePlan()) ? + planMapper.selectSortOnePlan(sort, getUserOrganId()) : + planMapper.selectLostPlan(sort, getUserOrganId()); + + + AssertUtils.notEmpty(plan,PLAN_SORT_DATA_ERROR); + + planDO.setSort(plan.getSort()); + + plan.setSort(sort); + + planMapper.updateById(planDO); + planMapper.updateById(plan); + + return; + + } + + + planMapper.update(new LambdaUpdateWrapper() + .eq(PlanDO::getOrganId, getUserOrganId()) + .eq(PlanDO::getDeleted,false) + .eq(PlanDO::getId,sortVO.getPlanId()) + .set(PlanDO::getIsTop,sortVO.getIsTopUp())); + + return; + + } + + + ArrayList planDOS = new ArrayList<>(); sortVos.forEach(e -> { planDOS.add(PlanDO.builder() .id(e.getPlanId()) .sort(e.getSort()) -// .isTopUp(e.getIsTopUp()) .build()); }); planMapper.updateBatch(planDOS); - return Boolean.TRUE; + } @@ -968,6 +1006,48 @@ public class PlanServiceImpl implements PlanService { } + @Override + public List getPlanGoodsList(SavePlanPlateList savePlanPlateList) { + + if(savePlanPlateList.getMixConfig() == null){ + return new ArrayList<>(); + } + + Integer mixedType = Optional.ofNullable(savePlanPlateList.getMixConfig().getMixedType()).orElse(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType()); + + List goodsItemListList = Optional.ofNullable(savePlanPlateList.getGoodsItemList()).orElseThrow(()-> new ServiceException(PLAN_PLATE_DATA_ERROR)); + + List planActualGoodsResps = new ArrayList<>(); + + Map> grouped; + + if(MixConfigTypeEnum.SAMEMATERIALANDTHICKNESS.getType().equals(mixedType)){ + + grouped = groupByMaterialAndThicknessFilterLessThanOne(goodsItemListList); + + }else { + + grouped = groupByThicknessFilterLessThanOne(goodsItemListList); + + } + + + grouped.forEach((key,value) ->{ + + List goodsRespVOS = goodsMapper.selectNoOrderPlanGoods(value, getUserOrganId()); + + planActualGoodsResps.add( + PlanActualGoodsResp.builder() + .ids(value) + .goodsRespVOS(goodsRespVOS) + .build() + ); + + }); + + return planActualGoodsResps; + } + private PlanDO validatePlan(Long id) { @@ -1311,14 +1391,119 @@ public class PlanServiceImpl implements PlanService { return groupedItems; } - - - public static Map> groupByMaterialAndThicknessAndColor(List items) { + public static Map> groupByThickness(List items) { Map> groupedItems = new HashMap<>(); for (SavePlanPlateList.GoodsItemList item : items) { // 将 material 和 thickness 组合成键 - String key = item.getMaterial() + "|" + item.getThickness() + "|" + item.getColor(); + String key = item.getThickness().toString(); + + // 如果键不存在,初始化一个新的列表 + groupedItems.putIfAbsent(key, new ArrayList<>()); + + // 添加当前项的 id 到对应的分组 + groupedItems.get(key).add(item.getId()); + } + + + return groupedItems; + } + + + + + public static Map> groupByMaterialAndThicknessFilterLessThanOne(List items) { + Map> groupedItems = new HashMap<>(); + + for (SavePlanPlateList.GoodsItemList item : items) { + // 将 material 和 thickness 组合成键 + String key = item.getMaterial() + "|" + item.getThickness(); + + // 如果键不存在,初始化一个新的列表 + groupedItems.putIfAbsent(key, new ArrayList<>()); + + // 添加当前项的 id 到对应的分组 + groupedItems.get(key).add(item.getId()); + } + + // 过滤掉只包含一个 id 的分组(可选,视需求) + groupedItems.entrySet().removeIf(entry -> entry.getValue().size() < 2); + + return groupedItems; + } + + + public static Map> groupByThicknessFilterLessThanOne(List items) { + Map> groupedItems = new HashMap<>(); + + for (SavePlanPlateList.GoodsItemList item : items) { + // 将 material 和 thickness 组合成键 + String key = item.getThickness().toString(); + + // 如果键不存在,初始化一个新的列表 + groupedItems.putIfAbsent(key, new ArrayList<>()); + + // 添加当前项的 id 到对应的分组 + groupedItems.get(key).add(item.getId()); + } + + // 过滤掉只包含一个 id 的分组(可选,视需求) + groupedItems.entrySet().removeIf(entry -> entry.getValue().size() < 2); + + return groupedItems; + } + + + public static Map> groupByMaterialAndThicknessEqualToOne(List items) { + Map> groupedItems = new HashMap<>(); + + for (SavePlanPlateList.GoodsItemList item : items) { + // 将 material 和 thickness 组合成键 + String key = item.getMaterial() + "|" + item.getThickness(); + + // 如果键不存在,初始化一个新的列表 + groupedItems.putIfAbsent(key, new ArrayList<>()); + + // 添加当前项的 id 到对应的分组 + groupedItems.get(key).add(item.getId()); + } + + // 过滤掉只包含一个 id 的分组(可选,视需求) + groupedItems.entrySet().removeIf(entry -> entry.getValue().size() > 1); + + return groupedItems; + } + + + public static Map> groupByThicknessEqualToOne(List items) { + Map> groupedItems = new HashMap<>(); + + for (SavePlanPlateList.GoodsItemList item : items) { + // 将 material 和 thickness 组合成键 + String key = item.getThickness().toString(); + + // 如果键不存在,初始化一个新的列表 + groupedItems.putIfAbsent(key, new ArrayList<>()); + + // 添加当前项的 id 到对应的分组 + groupedItems.get(key).add(item.getId()); + } + + // 过滤掉只包含一个 id 的分组(可选,视需求) + groupedItems.entrySet().removeIf(entry -> entry.getValue().size() > 1); + + return groupedItems; + } + + + + + public static Map> groupByMaterialAndThicknessAndColorAndBrand(List items) { + Map> groupedItems = new HashMap<>(); + + for (SavePlanPlateList.GoodsItemList item : items) { + // 将 material 和 thickness 组合成键 + String key = item.getMaterial() + "|" + item.getThickness() + "|" + item.getColor()+ "|" + item.getBrand(); // 如果键不存在,初始化一个新的列表 groupedItems.putIfAbsent(key, new ArrayList<>()); @@ -1432,6 +1617,107 @@ public class PlanServiceImpl implements PlanService { + private void getCreatePlanMultipleGoodsList(List planActualGoodsLists, + List planItemDOS, + List plateItemList, + List planActualGoodsModelDOS , + List planDOS, + Long processId, + LoginUser loginUser) { + + + planActualGoodsLists.forEach(f -> { + + // 查找和大板分类ID相同的小板的数据 + List plateList = plateItemList.stream().filter(p -> f.getIds().contains(p.getId())).toList(); + + List orderIdList = plateList.stream().map(SavePlanPlateList.PlateItemList::getOrderId).distinct().toList(); + + AtomicLong sort = new AtomicLong(System.currentTimeMillis()); + sort.addAndGet(1); + + Long planId = (Long) identifierGenerator.nextId(null); + + // 创建排单 + planDOS.add(PlanDO.builder() + .id(planId) + .sort(sort.get()) + .type(PlanTypeEnum.MIXEDORDERPLAN.getType()) + .processId(processId) + .orderNos(orderIdList.toString()) + .produceTime(null) + .status(PlanStatusEnum.NOCUTTING.getStatus()) + .operator(loginUser.getNickname()) + .planTime(LocalDateTime.now()) + .build()); + + plateList.forEach(i -> + planItemDOS.add(PlanItemDO.builder() + .planId(planId) + .plateId(i.getPlateId()) + .orderId(i.getOrderId()) + .goodsId(i.getId()) + .build())); + + if (f.getPlanActualGoodsModelDO() != null) { + + planActualGoodsModelDOS.add(f.getPlanActualGoodsModelDO().setPlanId(planId)); + + } + + }); + + + } + + + + + private void createPlanAndPlateDataList(Map> grouped, + List planItemDOS, + List plateItemList, + List planDOS, + Long processId, + LoginUser loginUser){ + + AtomicLong sort = new AtomicLong(System.currentTimeMillis()); + + // 进行数据处理:value 里为 大板的分类ID + grouped.forEach((key, value) -> { + + // 查找和大板分类ID相同的小板的数据 + List plateList = plateItemList.stream().filter(p -> value.contains(p.getId())).toList(); + + List orderIdList = plateList.stream().map(SavePlanPlateList.PlateItemList::getOrderId).distinct().toList(); + + sort.addAndGet(1); + + Long planId = (Long) identifierGenerator.nextId(null); + + // 创建排单 + planDOS.add(PlanDO.builder() + .id(planId) + .sort(sort.get()) + .type(PlanTypeEnum.MIXEDORDERPLAN.getType()) + .processId(processId) + .orderNos(orderIdList.toString()) + .produceTime(null) + .status(PlanStatusEnum.NOCUTTING.getStatus()) + .operator(loginUser.getNickname()) + .planTime(LocalDateTime.now()) + .build()); + + plateList.forEach(i -> + planItemDOS.add(PlanItemDO.builder() + .planId(planId) + .plateId(i.getPlateId()) + .orderId(i.getOrderId()) + .goodsId(i.getId()) + .build())); + + }); + + } } \ 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 6bd422534..8bc4e027a 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 @@ -12,8 +12,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.cf.imes.framework.common.enums.OrderPlateCutStatusEnum; import com.cf.imes.framework.common.enums.OrderPlateTypeEnum; -import com.cf.imes.framework.common.enums.PlanStatusEnum; -import com.cf.imes.framework.common.enums.PlanTypeEnum; import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; import com.cf.imes.framework.common.pojo.PageResult; @@ -67,7 +65,6 @@ import java.util.stream.Collectors; import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; -import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS; import static com.cf.imes.module.system.enums.ErrorCodeConstants.*; /** * 生产单板件 Service 实现类 @@ -273,26 +270,26 @@ public class PlateServiceImpl implements PlateService { @Override public PageResult getGoodsPlate(GoodsPlateFilterPageReqVO pageReqVO) { - PlanDO planDO = planMapper.selectById(pageReqVO.getPlanId()); - - AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS); - - if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){ - throw exception(THIS_PLAN_PLATE_OPTIMIZE_IS_ALL); - } - - - if (planDO.getType().equals(PlanTypeEnum.MIXEDORDERPLAN.getType())) { - - pageReqVO.setColor(null); - - } - - - if(planDO.getType().equals(PlanTypeEnum.ORDERPLAN.getType()) && pageReqVO.getFilterColor() != null){ - throw exception(PLAN_GOODS_IS_FILTER_DATA_ERROR); - - } +// PlanDO planDO = planMapper.selectById(pageReqVO.getPlanId()); +// +// AssertUtils.notEmpty(planDO,PLAN_NOT_EXISTS); +// +// if(planDO.getStatus().equals(PlanStatusEnum.OPENED.getStatus())){ +// throw exception(THIS_PLAN_PLATE_OPTIMIZE_IS_ALL); +// } +// +// +// if (planDO.getType().equals(PlanTypeEnum.MIXEDORDERPLAN.getType())) { +// +// pageReqVO.setColor(null); +// +// } +// +// +// if(planDO.getType().equals(PlanTypeEnum.ORDERPLAN.getType()) && pageReqVO.getFilterColor() != null){ +// throw exception(PLAN_GOODS_IS_FILTER_DATA_ERROR); +// +// } return plateGoodMapper.selectGoodsPage(pageReqVO, getUserOrganId()); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml index 826b1665b..0730ee41e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/goods/GoodsMapper.xml @@ -28,18 +28,11 @@ resultType="com.cf.imes.module.executor.controller.admin.plan.vo.GoodsReqVO"> select distinct - og.order_id, - og.raw_goods_id, og.goods_id, og.goods_name, og.material, og.color, - og.texture, - og.width, - og.height, og.thickness, - og.price, - og.spec, og.brand, og.remark, orp.id as remainId @@ -316,9 +309,9 @@ from order_body ob - left join order_item oi on ob.organ_id = oi.organ_id and ob.order_id = oi.order_id and ob.id = oi.body_id - left join order_plate op on oi.organ_id = op.organ_id and oi.order_id = op.order_id and oi.plate_id = op.id - left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id + left join order_item oi on ob.organ_id = oi.organ_id and ob.order_id = oi.order_id and ob.id = oi.body_id and oi.organ_id = #{organId} + left join order_plate op on oi.organ_id = op.organ_id and oi.order_id = op.order_id and oi.plate_id = op.id and op.organ_id = #{organId} + left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id and opi.organ_id = #{organId} where ob.organ_id = #{organId} and ob.order_id in @@ -554,6 +547,29 @@ + + + diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml index 86e23a230..4693d0ed4 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml @@ -439,6 +439,7 @@ og.material as material, og.color as color, og.goods_id as goodsId, + og.brand as brand, op.name as plateName, op.height as height, op.width as width, diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml index e1ff9737f..058f9616f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml @@ -10,6 +10,23 @@ --> + + + + + - select * from order_plan where - organ_id = #{organId} - and deleted = false - and create_time >= #{createTime} - and id != #{planId} + SELECT * + FROM order_plan - ORDER BY create_time + WHERE organ_id = #{organId} + AND deleted = false + and is_top = false + and sort < #{sort} + ORDER BY sort desc limit 1; @@ -96,17 +114,19 @@ - select id from order_plan @@ -138,7 +158,6 @@ - UPDATE order_plan @@ -154,5 +173,56 @@ + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml index 163406109..a40beb77a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml @@ -168,10 +168,10 @@ og.brand as brand from orders o - left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id - left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id - left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id - left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id + left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id and og.organ_id = #{organId} + left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and op.organ_id = #{organId} + left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id and oi.organ_id = #{organId} + left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id and opi.organ_id = #{organId} ${ew.customSqlSegment} @@ -193,9 +193,9 @@ og.brand as brand from orders o - left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id - left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id - left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id + left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id and og.organ_id = #{organId} + left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and op.organ_id = #{organId} + left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id and opi.organ_id = #{organId} ${ew.customSqlSegment} @@ -221,10 +221,10 @@ og.order_id as orderId from orders o - left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id - left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id - left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id - left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id + left join order_goods og on o.organ_id = og.organ_id and o.id = og.order_id and og.organ_id = #{organId} + left join order_plate op on og.organ_id = op.organ_id and og.order_id = op.order_id and og.id = op.goods_id and op.organ_id = #{organId} + left join order_item oi on op.organ_id = oi.organ_id and op.order_id = oi.order_id and op.id = oi.plate_id and oi.organ_id = #{organId} + left join order_plan_item opi on op.organ_id = opi.organ_id and op.order_id = opi.order_id and op.id = opi.plate_id and opi.organ_id = #{organId} ${ew.customSqlSegment} diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/systemconfig/dto/ProcessSchemeDTO.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/systemconfig/dto/ProcessSchemeDTO.java index c41962cb8..22158fdfc 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/systemconfig/dto/ProcessSchemeDTO.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/systemconfig/dto/ProcessSchemeDTO.java @@ -7,6 +7,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; +import java.time.LocalDateTime; /** * @author 加工方案组配置 @@ -40,6 +41,10 @@ public class ProcessSchemeDTO implements Serializable { private String processLineConfigSetting; + @Schema(description = "加工分线的更新时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime processLineUpdateTime; + + @Schema(description = "数据优化配置ID", requiredMode = Schema.RequiredMode.REQUIRED) private Long optimizationConfig; @@ -52,6 +57,10 @@ public class ProcessSchemeDTO implements Serializable { private String optimizationConfigSetting; + @Schema(description = "数据优化配置的更新时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime optimizationUpdateTime; + + @Schema(description = "解析器配置ID", requiredMode = Schema.RequiredMode.REQUIRED) private Long analyzer; @@ -63,6 +72,11 @@ public class ProcessSchemeDTO implements Serializable { @Schema(description = "解析器配置-机台的配置", requiredMode = Schema.RequiredMode.REQUIRED) private String analyzerConfigSetting; + + @Schema(description = "解析器配置-机台的配置的更新时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime analyzerUpdateTime; + + @Schema(description = "机台类型", requiredMode = Schema.RequiredMode.REQUIRED) private Integer machineType; diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index 2e6c285fb..db833d0cb 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -335,10 +335,8 @@ public class ErrorCodeConstants { public static final ErrorCode THIS_PLAN_PLATE_IS_CUT = new ErrorCode(1_002_041_045, "当前排单已有板材开料,无法修改"); public static final ErrorCode THIS_ORDER_NOT_PLATE_DATA = new ErrorCode(1_002_041_046, "当前生产单无板材数据,无法进行用板量计算"); public static final ErrorCode THIS_PLAN_SCHEME_DATA_ERROR = new ErrorCode(1_002_041_047, "当前方案组的优化信息有误,请重新选择方案组或重新导入排单再进行优化"); - - - public static final ErrorCode THIS_PLAN_PLATE_OPTIMIZE_IS_ALL = new ErrorCode(1_002_041_046, "当前排单已全部开料,无法进行选择"); - public static final ErrorCode THIS_PLATE_IS_OPTIMIZE = new ErrorCode(1_002_041_046, "小板:{},已开料,无法删除,请重新选择小板再删除"); + public static final ErrorCode PLAN_SORT_DATA_ERROR = new ErrorCode(1_002_041_048, "已无可进行排序的数据,无法进行排序"); + public static final ErrorCode THIS_PLATE_IS_OPTIMIZE = new ErrorCode(1_002_041_049, "小板:{},已开料,无法删除,请重新选择小板再删除"); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/systemconfig/SystemConfigApiImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/systemconfig/SystemConfigApiImpl.java index 5a2348412..4e4283be8 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/systemconfig/SystemConfigApiImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/systemconfig/SystemConfigApiImpl.java @@ -209,32 +209,46 @@ public class SystemConfigApiImpl implements SystemConfigApi { f.setProcessLineConfigName(processLineConfigList.stream() .filter(p->f.getProcessLineConfig().equals(p.getId())) - .map(SystemConfigDO::getName) + .map(SystemConfigProcessDO::getName) .toList().get(0) ); f.setProcessLineConfigSetting( processLineConfigList.stream() .filter(p->f.getProcessLineConfig().equals(p.getId())) - .map(SystemConfigDO::getSetting) + .map(SystemConfigProcessDO::getSetting) + .toList().get(0) + ); + f.setProcessLineUpdateTime( + processLineConfigList.stream() + .filter(p->f.getProcessLineConfig().equals(p.getId())) + .map(SystemConfigProcessDO::getUpdateTime) .toList().get(0) ); - f.setOptimizationConfigName(processLineConfigList.stream() - .filter(p->f.getProcessLineConfig().equals(p.getId())) - .map(SystemConfigDO::getName) + f.setOptimizationConfigName(optimizationConfigList.stream() + .filter(p->f.getOptimizationConfig().equals(p.getId())) + .map(SystemConfigDataDO::getName) .toList().get(0) ); f.setOptimizationConfigSetting( optimizationConfigList.stream() .filter(p->f.getOptimizationConfig().equals(p.getId())) - .map(SystemConfigDO::getSetting) + .map(SystemConfigDataDO::getSetting) .toList().get(0) ); + f.setOptimizationUpdateTime( + optimizationConfigList.stream() + .filter(p->f.getOptimizationConfig().equals(p.getId())) + .map(SystemConfigDataDO::getUpdateTime) + .toList().get(0) + ); + MachineDO machineDO = analyzerList.stream().filter(p -> f.getAnalyzer().equals(p.getId())).toList().get(0); f.setAnalyzerConfigName(machineDO.getName()); f.setAnalyzerConfigSetting(unzipString(machineDO.getSetting())); + f.setAnalyzerUpdateTime(machineDO.getUpdateTime()); f.setMachineType(machineDO.getMachineType()); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/PostController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/PostController.java index 21248e311..e61522234 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/PostController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/PostController.java @@ -27,6 +27,7 @@ import java.io.IOException; import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.concurrent.atomic.AtomicLong; import static com.cf.imes.framework.common.pojo.CommonResult.success; import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -98,6 +99,13 @@ public class PostController { public void export(HttpServletResponse response, @Validated PostPageReqVO reqVO) throws IOException { reqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = postService.getPostPage(reqVO).getList(); + + AtomicLong sort = new AtomicLong(); + list.forEach(f->{ + sort.addAndGet(1); + f.setId(sort.get()); + }); + // 输出 ExcelUtils.write(response, "岗位数据.xls", "岗位列表", PostRespVO.class, BeanUtils.toBean(list, PostRespVO.class)); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostRespVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostRespVO.java index 0f9453cc5..3fa8beda3 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostRespVO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/dept/vo/post/PostRespVO.java @@ -17,7 +17,7 @@ import java.time.LocalDateTime; public class PostRespVO { @Schema(description = "岗位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") - @ExcelProperty("岗位编号") + @ExcelProperty("序号") private Long id; @Schema(description = "岗位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "小土豆") diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/dept/PostMapper.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/dept/PostMapper.java index 642ef74ba..9b6e53a31 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/dept/PostMapper.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/mysql/dept/PostMapper.java @@ -7,7 +7,6 @@ import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.framework.security.core.LoginUser; import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.module.system.controller.admin.dept.vo.post.PostPageReqVO; -import com.cf.imes.module.system.dal.dataobject.dept.DeptDO; import com.cf.imes.module.system.dal.dataobject.dept.PostDO; import org.apache.ibatis.annotations.Mapper; @@ -35,19 +34,6 @@ public interface PostMapper extends BaseMapperX { }else{ lambdaQueryWrapperX.eqIfPresent(PostDO::getOrganId, loginUser.getOrganId()); } - // 获取分页结果 -// PageResult pageResult = selectPage(reqVO, lambdaQueryWrapperX -// .likeIfPresent(PostDO::getCode, reqVO.getCode()) -// .likeIfPresent(PostDO::getName, reqVO.getName()) -// .eqIfPresent(PostDO::getStatus, reqVO.getStatus()) -// .orderByDesc(PostDO::getSort)); - - // 重新设置 id 值 -// List records = pageResult.getList(); -// for (int i = 0; i < records.size(); i++) { -// PostDO postDO = records.get(i); -// postDO.setId((long) (i + 1)); -// } lambdaQueryWrapperX.likeIfPresent(PostDO::getCode, reqVO.getCode()) .likeIfPresent(PostDO::getName, reqVO.getName()) diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/SystemConfigTypeEnum.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/SystemConfigTypeEnum.java index bc05cd710..652c8b919 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/SystemConfigTypeEnum.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/enums/config/SystemConfigTypeEnum.java @@ -36,7 +36,7 @@ public enum SystemConfigTypeEnum { /** * 数据处理 */ - DATA_PROCESSING(5, "优化数据配置"), + DATA_PROCESSING(5, "数据处理"), /** * 加工方案 diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java index 7b77c9484..79390aaad 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java @@ -343,6 +343,7 @@ public class MachineServiceImpl implements MachineService { // 更新 MachineDO updateObj = MachineConvert.convert(updateReqVO); + updateObj.setUpdateTime(LocalDateTime.now()); // 判断传入的机台配置是否存在,如果存在,压缩数据后更新 if (!updateReqVO.getMachineSettingDO().isEmpty()) { diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java index 697c97da6..3a334da10 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/oauth2/OAuth2TokenServiceImpl.java @@ -120,7 +120,7 @@ public class OAuth2TokenServiceImpl implements OAuth2TokenService { // 校验组织的有效性 organService.validOrgan(accessTokenDO.getOrganId()); // 有令牌的校验,代表有接口访问,延长令牌的过期时间(30分钟) - oauth2AccessTokenRedisDAO.expire(accessToken, 1800, TimeUnit.SECONDS); + oauth2AccessTokenRedisDAO.expire(accessToken, 1, TimeUnit.DAYS); } return accessTokenDO; } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DataProcessServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DataProcessServiceHandler.java index f8948999e..9440558e6 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DataProcessServiceHandler.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/DataProcessServiceHandler.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @@ -135,6 +136,8 @@ public class DataProcessServiceHandler extends AbstractSystemConfigServiceHandle systemConfigDataDO.setSetting(reqVO.getSetting()); // 覆盖名称 systemConfigDataDO.setName(reqVO.getName()); + // 更新时间 + systemConfigDataDO.setUpdateTime(LocalDateTime.now()); // 更新 systemConfigDataMapper.updateById(systemConfigDataDO); } else { diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java index 567ed25e5..2007683a8 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/IntellectBranchingService.java @@ -15,6 +15,7 @@ import com.cf.imes.module.system.service.systemconfig.factory.service.AbstractSy import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @@ -153,6 +154,8 @@ public class IntellectBranchingService extends AbstractSystemConfigServiceHandle systemConfigFilterDO.setSetting(reqVO.getSetting()); // 覆盖名称 systemConfigFilterDO.setName(reqVO.getName()); + // 更新时间 + systemConfigFilterDO.setUpdateTime(LocalDateTime.now()); // 更新 systemConfigFilterMapper.updateById(systemConfigFilterDO); } else { diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/MultiColorOrderPlanServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/MultiColorOrderPlanServiceHandler.java index 4c295be37..1b6bd2990 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/MultiColorOrderPlanServiceHandler.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/MultiColorOrderPlanServiceHandler.java @@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.List; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -123,6 +124,8 @@ public class MultiColorOrderPlanServiceHandler extends AbstractSystemConfigServi systemConfigDO.setSetting(reqVO.getSetting()); // 覆盖名称 systemConfigDO.setName(reqVO.getName()); + // 更新时间 + systemConfigDO.setUpdateTime(LocalDateTime.now()); // 更新 systemConfigMapper.updateById(systemConfigDO); } else { diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessSchemeServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessSchemeServiceHandler.java index 5e06b449a..c43dded90 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessSchemeServiceHandler.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessSchemeServiceHandler.java @@ -18,6 +18,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -208,6 +209,8 @@ public class ProcessSchemeServiceHandler extends AbstractSystemConfigServiceHand systemConfigSchemeDO.setSetting(reqVO.getSetting()); // 覆盖名称 systemConfigSchemeDO.setName(reqVO.getName()); + // 更新时间 + systemConfigSchemeDO.setUpdateTime(LocalDateTime.now()); // 更新 systemConfigSchemeMapper.updateById(systemConfigSchemeDO); } else { diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessScreeningServiceHandler.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessScreeningServiceHandler.java index 67ce300be..a60140132 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessScreeningServiceHandler.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/systemconfig/factory/service/impl/ProcessScreeningServiceHandler.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @@ -136,6 +137,8 @@ public class ProcessScreeningServiceHandler extends AbstractSystemConfigServiceH systemConfigProcessDO.setSetting(reqVO.getSetting()); // 覆盖名称 systemConfigProcessDO.setName(reqVO.getName()); + // 更新时间 + systemConfigProcessDO.setUpdateTime(LocalDateTime.now()); // 更新 systemConfigProcessMapper.updateById(systemConfigProcessDO); } else {