From 1747b96d2b6cdf93ef5db065b2a66cc9bed583f0 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 12 Nov 2025 09:28:20 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=9B=BD=E8=B4=B8=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=90=88=E5=90=8C=E6=8E=A5=E5=8F=A3=EF=BC=9A=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=8F=B7=E5=8F=82=E6=95=B0=E5=90=8D=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/vo/contract/international/IntPushContractReqVO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntPushContractReqVO.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntPushContractReqVO.java index 4758570..66e403b 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntPushContractReqVO.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/vo/contract/international/IntPushContractReqVO.java @@ -8,7 +8,7 @@ import lombok.Data; public class IntPushContractReqVO { @Schema(description = "接口请求号") - private String __requestId_; + private String __requestId__; @Schema(description = "接口类型") private String __interfaceType__; @Schema(description = "操作标志") From 2ee461bef232b228baafb6617e8206c2a8518a06 Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 12 Nov 2025 09:28:58 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=9B=BD=E8=B4=B8=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E5=90=88=E5=90=8C=E6=8E=A5=E5=8F=A3=EF=BC=9A=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=8F=B7=E5=8F=82=E6=95=B0=E5=90=8D=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/zt/plat/module/contractorder/api/ContractApiImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java index 3da24f3..5ca45d3 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/ContractApiImpl.java @@ -376,7 +376,7 @@ public class ContractApiImpl implements ContractApi { // 返回数据 IntPushContractRespVO body = new IntPushContractRespVO(); - body.set__requestId_(pushReqVO.get__requestId_()); + body.set__requestId_(pushReqVO.get__requestId__()); body.set__interfaceType__("R_MY_JG_10"); body.setBusiBillCode(pushReqVO.getBusiBillCode()); body.setCode(code); From 33bea2cad04213ac59bf0b00dd428e77329b4acf Mon Sep 17 00:00:00 2001 From: guojunyun Date: Wed, 12 Nov 2025 11:08:12 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=88=E5=90=8C?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=9A=E8=8E=B7=E5=8F=96=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E3=80=81=E8=A1=A8=E5=8D=95=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/contract/ContractServiceImpl.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java index 3a50cce..d86c507 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/contract/ContractServiceImpl.java @@ -391,11 +391,15 @@ public class ContractServiceImpl implements ContractService { } // 查询合同动态字段及条款 - TmplInscBsnRelRespVO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(contractMainDO.getBusinessId()); - // 设置合同动态字段 - respVO.setDynamicsFields(tmplInscBsnRel.getTmplInscDatBsnRespVOS()); - // 设置合同动态条款 - respVO.setDynamicsItems(tmplInscBsnRel.getTmplInscItmBsnRespVOS()); + if (contractMainDO.getBusinessId() != null) { + TmplInscBsnRelRespVO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(contractMainDO.getBusinessId()); + if (tmplInscBsnRel != null) { + // 设置合同动态字段 + respVO.setDynamicsFields(tmplInscBsnRel.getTmplInscDatBsnRespVOS()); + // 设置合同动态条款 + respVO.setDynamicsItems(tmplInscBsnRel.getTmplInscItmBsnRespVOS()); + } + } return respVO; } @@ -478,11 +482,15 @@ public class ContractServiceImpl implements ContractService { } // 查询合同动态字段及条款 - TmplInscBsnRelRespVO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(contractMainDO.getBusinessId()); - // 设置合同动态字段 - respVO.setDynamicsFields(tmplInscBsnRel.getTmplInscDatBsnRespVOS()); - // 设置合同动态条款 - respVO.setDynamicsItems(tmplInscBsnRel.getTmplInscItmBsnRespVOS()); + if (contractMainDO.getBusinessId() != null) { + TmplInscBsnRelRespVO tmplInscBsnRel = tmplInscBsnRelService.getTmplInscBsnRel(contractMainDO.getBusinessId()); + if (tmplInscBsnRel != null) { + // 设置合同动态字段 + respVO.setDynamicsFields(tmplInscBsnRel.getTmplInscDatBsnRespVOS()); + // 设置合同动态条款 + respVO.setDynamicsItems(tmplInscBsnRel.getTmplInscItmBsnRespVOS()); + } + } return respVO; } From 75382dfbebdeb64ba3d16879e923d76e5826c67f Mon Sep 17 00:00:00 2001 From: chenbowen Date: Wed, 12 Nov 2025 15:23:12 +0800 Subject: [PATCH 4/4] =?UTF-8?q?1.=20=E6=96=B0=E5=A2=9E=E5=B7=A5=E5=BA=8F?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=AE=A1=E7=90=86=E3=80=81=E5=B7=A5=E8=89=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=AE=A1=E7=90=86=E3=80=81=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E5=B7=A5=E8=89=BA=E5=B7=A5=E5=BA=8F=E4=BF=A1=E6=81=AF=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/ProcessingInfomationPageReqVO.java | 2 +- .../vo/ProcessingInfomationRespVO.java | 2 +- .../vo/ProcessingInfomationSaveReqVO.java | 2 +- .../vo/ProcessingInfomationTreeRespVO.java | 2 +- ...ocessingInfomationOperationController.java | 19 +- ...essingInfomationOperationDetailRespVO.java | 20 + ...singInfomationOperationMaterialRespVO.java | 54 ++ ...gInfomationOperationMaterialSaveReqVO.java | 32 + ...omationOperationOrganizationPageReqVO.java | 33 ++ ...InfomationOperationOrganizationRespVO.java | 52 ++ ...rocessingInfomationOperationPageReqVO.java | 3 + .../ProcessingInfomationOperationRespVO.java | 16 + ...rocessingInfomationOperationSaveReqVO.java | 9 + .../ProcessingOperationController.java | 5 +- .../vo/ProcessingOperationSimpleRespVO.java | 3 + .../ProcessingInfomationOperationMapper.java | 2 + .../ProcessingOperationMapper.java | 7 + .../ProcessingOperationMaterialMapper.java | 29 + .../ProcessingInfomationDO.java | 2 +- .../ProcessingInfomationOperationDO.java | 6 + .../ProcessingOperationMaterialDO.java | 2 + .../ProcessingInfomationServiceImpl.java | 60 +- .../ProcessingInfomationOperationService.java | 14 +- ...cessingInfomationOperationServiceImpl.java | 557 +++++++++++++++--- .../ProcessingOperationService.java | 8 + .../ProcessingOperationServiceImpl.java | 9 +- 26 files changed, 839 insertions(+), 111 deletions(-) create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationDetailRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationMaterialRespVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationMaterialSaveReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationOrganizationPageReqVO.java create mode 100644 zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationOrganizationRespVO.java diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationPageReqVO.java index 35efbf8..018fed6 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationPageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationPageReqVO.java @@ -23,7 +23,7 @@ public class ProcessingInfomationPageReqVO extends PageParam { private String name; @Schema(description = "工艺类型值") - private Long typeValue; + private String typeValue; @Schema(description = "状态值-工艺状态") private String statusValue; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationRespVO.java index c22e4e9..3c51658 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationRespVO.java @@ -30,7 +30,7 @@ public class ProcessingInfomationRespVO { @Schema(description = "工艺类型值") @ExcelProperty("工艺类型值") - private Long typeValue; + private String typeValue; @Schema(description = "状态值-工艺状态", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("状态值-工艺状态") diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationSaveReqVO.java index bcf17ca..ac43b56 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationSaveReqVO.java @@ -26,7 +26,7 @@ public class ProcessingInfomationSaveReqVO { private String name; @Schema(description = "工艺类型值") - private Long typeValue; + private String typeValue; @Schema(description = "状态值-工艺状态", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "状态值-工艺状态不能为空") diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationTreeRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationTreeRespVO.java index 87b276a..9ceccc0 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationTreeRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomation/vo/ProcessingInfomationTreeRespVO.java @@ -23,7 +23,7 @@ public class ProcessingInfomationTreeRespVO { private String name; @Schema(description = "工艺类型值") - private Long typeValue; + private String typeValue; @Schema(description = "状态值-工艺状态") private String statusValue; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/ProcessingInfomationOperationController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/ProcessingInfomationOperationController.java index 16b2509..06f4a39 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/ProcessingInfomationOperationController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/ProcessingInfomationOperationController.java @@ -9,8 +9,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import jakarta.validation.constraints.*; -import jakarta.validation.*; +import jakarta.validation.Valid; import jakarta.servlet.http.*; import java.util.*; import java.io.IOException; @@ -19,7 +18,6 @@ import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.CommonResult; -import com.zt.plat.framework.common.util.object.BeanUtils; import static com.zt.plat.framework.common.pojo.CommonResult.success; import com.zt.plat.framework.excel.core.util.ExcelUtils; @@ -28,7 +26,6 @@ import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*; import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.*; -import com.zt.plat.module.base.dal.dataobject.processinginfomationoperation.ProcessingInfomationOperationDO; import com.zt.plat.module.base.service.processinginfomationoperation.ProcessingInfomationOperationService; @Tag(name = "管理后台 - 工艺工序") @@ -44,7 +41,7 @@ public class ProcessingInfomationOperationController { @PostMapping("/create") @Operation(summary = "创建工艺工序") @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:create')") - public CommonResult createProcessingInfomationOperation(@Valid @RequestBody ProcessingInfomationOperationSaveReqVO createReqVO) { + public CommonResult createProcessingInfomationOperation(@Valid @RequestBody ProcessingInfomationOperationSaveReqVO createReqVO) { return success(processingInfomationOperationService.createProcessingInfomationOperation(createReqVO)); } @@ -78,9 +75,8 @@ public class ProcessingInfomationOperationController { @Operation(summary = "获得工艺工序") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:query')") - public CommonResult getProcessingInfomationOperation(@RequestParam("id") Long id) { - ProcessingInfomationOperationDO processingInfomationOperation = processingInfomationOperationService.getProcessingInfomationOperation(id); - return success(BeanUtils.toBean(processingInfomationOperation, ProcessingInfomationOperationRespVO.class)); + public CommonResult getProcessingInfomationOperation(@RequestParam("id") Long id) { + return success(processingInfomationOperationService.getProcessingInfomationOperation(id)); } @GetMapping("/page") @@ -91,6 +87,13 @@ public class ProcessingInfomationOperationController { return success(pageResult); } + @GetMapping("/organization/page") + @Operation(summary = "获得组织工艺工序分页") + @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:query')") + public CommonResult> getOrganizationOperationPage(@Valid ProcessingInfomationOperationOrganizationPageReqVO pageReqVO) { + return success(processingInfomationOperationService.getOrganizationOperationPage(pageReqVO)); + } + @GetMapping("/export-excel") @Operation(summary = "导出工艺工序 Excel") @PreAuthorize("@ss.hasPermission('base:processing-infomation-operation:export')") diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationDetailRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationDetailRespVO.java new file mode 100644 index 0000000..0d55c23 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationDetailRespVO.java @@ -0,0 +1,20 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Collections; +import java.util.List; + +/** + * 工艺工序详情 Response VO + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessingInfomationOperationDetailRespVO extends ProcessingInfomationOperationRespVO { + + @Schema(description = "工艺工序关联的物料信息") + private List materials = Collections.emptyList(); + +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationMaterialRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationMaterialRespVO.java new file mode 100644 index 0000000..465a346 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationMaterialRespVO.java @@ -0,0 +1,54 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Collections; +import java.util.List; + +/** + * 工艺工序物料 Response VO(包含扩展信息) + */ +@Data +public class ProcessingInfomationOperationMaterialRespVO { + + @Schema(description = "主键ID", example = "10086") + private Long id; + + @Schema(description = "工艺工序ID", example = "20001") + private Long processingOperationId; + + @Schema(description = "物料ID", example = "30001") + private Long materialId; + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "物料名称") + private String materialName; + + @Schema(description = "物料类型值", example = "input") + private String typeValue; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "关联组织ID列表") + private List departmentIds = Collections.emptyList(); + + @Schema(description = "关联组织信息") + private List departments = Collections.emptyList(); + + @Schema(description = "创建时间") + private LocalDateTime createTime; + + @Data + public static class ProcessingInfomationOperationMaterialDeptRespVO { + @Schema(description = "组织ID", example = "50001") + private Long id; + + @Schema(description = "组织名称") + private String name; + } +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationMaterialSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationMaterialSaveReqVO.java new file mode 100644 index 0000000..be1d495 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationMaterialSaveReqVO.java @@ -0,0 +1,32 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * 工艺工序物料保存 Request VO + */ +@Data +public class ProcessingInfomationOperationMaterialSaveReqVO { + + @Schema(description = "主键ID", example = "10086") + private Long id; + + @Schema(description = "物料ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "20001") + @NotNull(message = "物料不能为空") + private Long materialId; + + @Schema(description = "物料类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "input") + @NotEmpty(message = "物料类型不能为空") + private String typeValue; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "组织ID集合") + private List departmentIds; +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationOrganizationPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationOrganizationPageReqVO.java new file mode 100644 index 0000000..5108b49 --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationOrganizationPageReqVO.java @@ -0,0 +1,33 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo; + +import com.zt.plat.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +/** + * 组织工艺工序分页 Request VO + */ +@Data +public class ProcessingInfomationOperationOrganizationPageReqVO extends PageParam { + + @Schema(description = "组织ID", example = "1001") + private Long deptId; + + @Schema(description = "工艺ID", example = "2001") + private Long processingId; + + @Schema(description = "工序ID", example = "3001") + private Long operationId; + + @Schema(description = "是否关键工序") + private Integer isKey; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationOrganizationRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationOrganizationRespVO.java new file mode 100644 index 0000000..f8cafee --- /dev/null +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationOrganizationRespVO.java @@ -0,0 +1,52 @@ +package com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 组织工艺工序 Response VO + */ +@Data +public class ProcessingInfomationOperationOrganizationRespVO { + + @Schema(description = "工艺工序关联ID") + private Long id; + + @Schema(description = "组织ID") + private Long deptId; + + @Schema(description = "组织名称") + private String deptName; + + @Schema(description = "工艺ID") + private Long processingId; + + @Schema(description = "工艺编码") + private String processingCode; + + @Schema(description = "工艺名称") + private String processingName; + + @Schema(description = "工序ID") + private Long operationId; + + @Schema(description = "工序编码") + private String operationCode; + + @Schema(description = "工序名称") + private String operationName; + + @Schema(description = "工序是否关键") + private Integer isKey; + + @Schema(description = "工艺状态") + private String processingStatus; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + private LocalDateTime createTime; +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationPageReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationPageReqVO.java index 96590e1..778ff0f 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationPageReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationPageReqVO.java @@ -22,6 +22,9 @@ public class ProcessingInfomationOperationPageReqVO extends PageParam { @Schema(description = "工艺ID", example = "5773") private Long processingId; + @Schema(description = "工序ID", example = "3001") + private Long operationId; + @Schema(description = "是否关键工序") private Integer isKey; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationRespVO.java index 78b09db..44a1632 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationRespVO.java @@ -44,6 +44,22 @@ public class ProcessingInfomationOperationRespVO { @ExcelProperty("工艺ID") private Long processingId; + @Schema(description = "工序ID", example = "3001") + @ExcelProperty("工序ID") + private Long operationId; + + @Schema(description = "工序编码") + @ExcelProperty("工序编码") + private String operationCode; + + @Schema(description = "工序名称") + @ExcelProperty("工序名称") + private String operationName; + + @Schema(description = "工序类型值") + @ExcelProperty("工序类型值") + private String operationTypeValue; + @Schema(description = "是否关键工序") @ExcelProperty("是否关键工序") private Integer isKey; diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationSaveReqVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationSaveReqVO.java index eb396ca..348e9f2 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationSaveReqVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processinginfomationoperation/vo/ProcessingInfomationOperationSaveReqVO.java @@ -21,6 +21,12 @@ public class ProcessingInfomationOperationSaveReqVO { @Schema(description = "工艺ID", example = "5773") private Long processingId; + @Schema(description = "工序ID", example = "3001") + private Long operationId; + + @Schema(description = "工序类型值") + private String operationTypeValue; + @Schema(description = "是否关键工序") private Integer isKey; @@ -28,4 +34,7 @@ public class ProcessingInfomationOperationSaveReqVO { @NotEmpty(message = "备注不能为空") private String remark; + @Schema(description = "关联物料配置") + private List materials; + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/ProcessingOperationController.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/ProcessingOperationController.java index 4dd1339..8934d1f 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/ProcessingOperationController.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/ProcessingOperationController.java @@ -107,8 +107,9 @@ public class ProcessingOperationController { @GetMapping("/simple-list") @Operation(summary = "获得工序简单列表") @PreAuthorize("@ss.hasPermission('base:processing-operation:query')") - public CommonResult> getProcessingOperationSimpleList() { - List list = processingOperationService.getProcessingOperationList(); + public CommonResult> getProcessingOperationSimpleList( + @RequestParam(value = "typeValue", required = false) String typeValue) { + List list = processingOperationService.getProcessingOperationListByType(typeValue); return success(BeanUtils.toBean(list, ProcessingOperationSimpleRespVO.class)); } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSimpleRespVO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSimpleRespVO.java index 7580848..0b8a901 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSimpleRespVO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/controller/admin/processingoperation/vo/ProcessingOperationSimpleRespVO.java @@ -16,4 +16,7 @@ public class ProcessingOperationSimpleRespVO { @Schema(description = "工序名称", example = "熔铸") private String name; + @Schema(description = "工序类型值", example = "10") + private String typeValue; + } diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomationoperation/ProcessingInfomationOperationMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomationoperation/ProcessingInfomationOperationMapper.java index e8748cc..95cbb5c 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomationoperation/ProcessingInfomationOperationMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processinginfomationoperation/ProcessingInfomationOperationMapper.java @@ -22,6 +22,7 @@ public interface ProcessingInfomationOperationMapper extends BaseMapperX selectSimpleList(String typeValue) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProcessingOperationDO::getTypeValue, typeValue) + .orderByAsc(ProcessingOperationDO::getSort) + .orderByAsc(ProcessingOperationDO::getId)); + } + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperationmaterial/ProcessingOperationMaterialMapper.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperationmaterial/ProcessingOperationMaterialMapper.java index 81a4b50..45cad75 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperationmaterial/ProcessingOperationMaterialMapper.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dao/processingoperationmaterial/ProcessingOperationMaterialMapper.java @@ -5,6 +5,7 @@ import java.util.*; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationOrganizationPageReqVO; import com.zt.plat.module.base.dal.dataobject.processingoperationmaterial.ProcessingOperationMaterialDO; import org.apache.ibatis.annotations.Mapper; import com.zt.plat.module.base.controller.admin.processingoperationmaterial.vo.*; @@ -26,4 +27,32 @@ public interface ProcessingOperationMaterialMapper extends BaseMapperX() + .eq(ProcessingOperationMaterialDO::getProcessingOperationId, processingOperationId)); + } + + default void deleteByProcessingOperationIds(Collection processingOperationIds) { + if (processingOperationIds == null || processingOperationIds.isEmpty()) { + return; + } + delete(new LambdaQueryWrapperX() + .in(ProcessingOperationMaterialDO::getProcessingOperationId, processingOperationIds)); + } + + default List selectListByProcessingOperationIds(Collection processingOperationIds) { + if (processingOperationIds == null || processingOperationIds.isEmpty()) { + return Collections.emptyList(); + } + return selectList(new LambdaQueryWrapperX() + .in(ProcessingOperationMaterialDO::getProcessingOperationId, processingOperationIds)); + } + + default List selectOrganizationList(ProcessingInfomationOperationOrganizationPageReqVO reqVO) { + return selectList(); + } + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomation/ProcessingInfomationDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomation/ProcessingInfomationDO.java index 45c196a..2b3f6a4 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomation/ProcessingInfomationDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomation/ProcessingInfomationDO.java @@ -51,7 +51,7 @@ public class ProcessingInfomationDO extends BaseDO { * 工艺类型值 */ @TableField("TP_VAL") - private Long typeValue; + private String typeValue; /** * 状态值-工艺状态 */ diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomationoperation/ProcessingInfomationOperationDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomationoperation/ProcessingInfomationOperationDO.java index 1710df1..56d6e04 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomationoperation/ProcessingInfomationOperationDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processinginfomationoperation/ProcessingInfomationOperationDO.java @@ -31,6 +31,12 @@ public class ProcessingInfomationOperationDO extends BaseDO { */ @TableId(type = IdType.ASSIGN_ID) private Long id; + /** + * 工序ID + */ + @TableField("OPTN_ID") + private Long operationId; + /** * 前序工序ID */ diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperationmaterial/ProcessingOperationMaterialDO.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperationmaterial/ProcessingOperationMaterialDO.java index e1447cd..e963825 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperationmaterial/ProcessingOperationMaterialDO.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/dal/dataobject/processingoperationmaterial/ProcessingOperationMaterialDO.java @@ -34,10 +34,12 @@ public class ProcessingOperationMaterialDO extends BaseDO { /** * 工艺工序ID */ + @TableField("PROC_OPTN_ID") private Long processingOperationId; /** * 物料ID */ + @TableField("MTRL_ID") private Long materialId; /** * 类型值-物料类型(产出/投入) diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationServiceImpl.java index 68d4575..7b10972 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomation/ProcessingInfomationServiceImpl.java @@ -1,6 +1,7 @@ package com.zt.plat.module.base.service.processinginfomation; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -32,11 +33,52 @@ public class ProcessingInfomationServiceImpl implements ProcessingInfomationServ @Resource private ProcessingInfomationMapper processingInfomationMapper; + private String normalizeDictionaryValue(String value) { + if (StrUtil.isBlank(value)) { + return null; + } + String trimmed = value.trim(); + int idx = trimmed.length(); + while (idx > 0 && Character.isDigit(trimmed.charAt(idx - 1))) { + idx--; + } + if (idx == trimmed.length()) { + // no trailing digits + return trimmed; + } + String digits = trimmed.substring(idx); + String prefix = trimmed.substring(0, idx); + if (StrUtil.isEmpty(prefix) || isSafeDictionaryPrefix(prefix)) { + return digits; + } + return trimmed; + } + + private void normalizeProcessingInfomation(ProcessingInfomationDO data) { + if (data == null) { + return; + } + data.setTypeValue(normalizeDictionaryValue(data.getTypeValue())); + data.setStatusValue(normalizeDictionaryValue(data.getStatusValue())); + } + + private boolean isSafeDictionaryPrefix(String prefix) { + for (int i = 0; i < prefix.length(); i++) { + char ch = prefix.charAt(i); + if (!(Character.isLetter(ch) || ch == '_' || ch == '-' || ch == ':')) { + return false; + } + } + return true; + } + @Override public ProcessingInfomationRespVO createProcessingInfomation(ProcessingInfomationSaveReqVO createReqVO) { // 插入 ProcessingInfomationDO processingInfomation = BeanUtils.toBean(createReqVO, ProcessingInfomationDO.class); + normalizeProcessingInfomation(processingInfomation); processingInfomationMapper.insert(processingInfomation); + normalizeProcessingInfomation(processingInfomation); // 返回 return BeanUtils.toBean(processingInfomation, ProcessingInfomationRespVO.class); } @@ -47,6 +89,7 @@ public class ProcessingInfomationServiceImpl implements ProcessingInfomationServ validateProcessingInfomationExists(updateReqVO.getId()); // 更新 ProcessingInfomationDO updateObj = BeanUtils.toBean(updateReqVO, ProcessingInfomationDO.class); + normalizeProcessingInfomation(updateObj); processingInfomationMapper.updateById(updateObj); } @@ -81,17 +124,28 @@ public class ProcessingInfomationServiceImpl implements ProcessingInfomationServ @Override public ProcessingInfomationDO getProcessingInfomation(Long id) { - return processingInfomationMapper.selectById(id); + ProcessingInfomationDO data = processingInfomationMapper.selectById(id); + normalizeProcessingInfomation(data); + return data; } @Override public PageResult getProcessingInfomationPage(ProcessingInfomationPageReqVO pageReqVO) { - return processingInfomationMapper.selectPage(pageReqVO); + PageResult pageResult = processingInfomationMapper.selectPage(pageReqVO); + List records = pageResult.getList(); + if (CollUtil.isNotEmpty(records)) { + records.forEach(this::normalizeProcessingInfomation); + } + return pageResult; } @Override public List getProcessingInfomationList() { - return processingInfomationMapper.selectList(); + List list = processingInfomationMapper.selectList(); + if (CollUtil.isNotEmpty(list)) { + list.forEach(this::normalizeProcessingInfomation); + } + return list; } } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationService.java index 75fa2a7..a072741 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationService.java @@ -1,7 +1,8 @@ package com.zt.plat.module.base.service.processinginfomationoperation; -import java.util.*; -import jakarta.validation.*; +import java.util.List; + +import jakarta.validation.Valid; import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.*; import com.zt.plat.module.base.dal.dataobject.processinginfomationoperation.ProcessingInfomationOperationDO; import com.zt.plat.framework.common.pojo.PageResult; @@ -20,7 +21,7 @@ public interface ProcessingInfomationOperationService { * @param createReqVO 创建信息 * @return 编号 */ - ProcessingInfomationOperationRespVO createProcessingInfomationOperation(@Valid ProcessingInfomationOperationSaveReqVO createReqVO); + ProcessingInfomationOperationDetailRespVO createProcessingInfomationOperation(@Valid ProcessingInfomationOperationSaveReqVO createReqVO); /** * 更新工艺工序 @@ -49,7 +50,7 @@ public interface ProcessingInfomationOperationService { * @param id 编号 * @return 工艺工序 */ - ProcessingInfomationOperationDO getProcessingInfomationOperation(Long id); + ProcessingInfomationOperationDetailRespVO getProcessingInfomationOperation(Long id); /** * 获得工艺工序分页 @@ -75,4 +76,9 @@ public interface ProcessingInfomationOperationService { */ List getProcessingInfomationOperationDetailList(ProcessingInfomationOperationPageReqVO pageReqVO); + /** + * 获得组织工艺工序分页 + */ + PageResult getOrganizationOperationPage(ProcessingInfomationOperationOrganizationPageReqVO pageReqVO); + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationServiceImpl.java index 1beddb6..782ed74 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processinginfomationoperation/ProcessingInfomationOperationServiceImpl.java @@ -2,34 +2,55 @@ package com.zt.plat.module.base.service.processinginfomationoperation; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; -import org.springframework.stereotype.Service; import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; -import java.util.*; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; -import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.*; -import com.zt.plat.module.base.dal.dataobject.processinginfomationoperation.ProcessingInfomationOperationDO; -import com.zt.plat.module.base.dal.dao.processingoperation.ProcessingOperationMapper; -import com.zt.plat.module.base.dal.dataobject.processingoperation.ProcessingOperationDO; -import com.zt.plat.framework.common.pojo.PageResult; -import com.zt.plat.framework.common.pojo.PageParam; -import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationDetailRespVO; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationMaterialRespVO; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationMaterialRespVO.ProcessingInfomationOperationMaterialDeptRespVO; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationMaterialSaveReqVO; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationOrganizationPageReqVO; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationOrganizationRespVO; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationPageReqVO; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationRespVO; +import com.zt.plat.module.base.controller.admin.processinginfomationoperation.vo.ProcessingInfomationOperationSaveReqVO; +import com.zt.plat.module.base.dal.dao.processinginfomation.ProcessingInfomationMapper; import com.zt.plat.module.base.dal.dao.processinginfomationoperation.ProcessingInfomationOperationMapper; +import com.zt.plat.module.base.dal.dao.processingoperation.ProcessingOperationMapper; +import com.zt.plat.module.base.dal.dao.processingoperationmaterial.ProcessingOperationMaterialMapper; +import com.zt.plat.module.base.dal.dataobject.base.MaterialInfomationDO; +import com.zt.plat.module.base.dal.dataobject.processinginfomation.ProcessingInfomationDO; +import com.zt.plat.module.base.dal.dataobject.processinginfomationoperation.ProcessingInfomationOperationDO; +import com.zt.plat.module.base.dal.dataobject.processingoperation.ProcessingOperationDO; +import com.zt.plat.module.base.dal.dataobject.processingoperationmaterial.ProcessingOperationMaterialDO; +import com.zt.plat.module.base.dal.mysql.base.MaterialInfomationMapper; +import com.zt.plat.module.system.api.dept.DeptApi; +import com.zt.plat.module.system.api.dept.dto.DeptRespDTO; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; -import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList; -import static com.zt.plat.module.base.enums.ErrorCodeConstants.*; +import static com.zt.plat.module.base.enums.ErrorCodeConstants.PROCESSING_INFOMATION_OPERATION_NOT_EXISTS; /** - * 工艺工序 Service 实现类 - * - * @author 后台管理-1 + * Processing operation service implementation. */ @Service @Validated @@ -39,43 +60,52 @@ public class ProcessingInfomationOperationServiceImpl implements ProcessingInfom private ProcessingInfomationOperationMapper processingInfomationOperationMapper; @Resource private ProcessingOperationMapper processingOperationMapper; + @Resource + private ProcessingOperationMaterialMapper processingOperationMaterialMapper; + @Resource + private ProcessingInfomationMapper processingInfomationMapper; + @Resource + private MaterialInfomationMapper materialInfomationMapper; + @Resource + private DeptApi deptApi; @Override - public ProcessingInfomationOperationRespVO createProcessingInfomationOperation(ProcessingInfomationOperationSaveReqVO createReqVO) { - // 插入 - ProcessingInfomationOperationDO processingInfomationOperation = BeanUtils.toBean(createReqVO, ProcessingInfomationOperationDO.class); - processingInfomationOperationMapper.insert(processingInfomationOperation); - // 返回 - return BeanUtils.toBean(processingInfomationOperation, ProcessingInfomationOperationRespVO.class); + @Transactional(rollbackFor = Exception.class) + public ProcessingInfomationOperationDetailRespVO createProcessingInfomationOperation(ProcessingInfomationOperationSaveReqVO createReqVO) { + ProcessingInfomationOperationDO relation = BeanUtils.toBean(createReqVO, ProcessingInfomationOperationDO.class); + processingInfomationOperationMapper.insert(relation); + saveOperationMaterials(relation.getId(), createReqVO.getMaterials()); + return getProcessingInfomationOperation(relation.getId()); } @Override + @Transactional(rollbackFor = Exception.class) public void updateProcessingInfomationOperation(ProcessingInfomationOperationSaveReqVO updateReqVO) { - // 校验存在 validateProcessingInfomationOperationExists(updateReqVO.getId()); - // 更新 ProcessingInfomationOperationDO updateObj = BeanUtils.toBean(updateReqVO, ProcessingInfomationOperationDO.class); processingInfomationOperationMapper.updateById(updateObj); + saveOperationMaterials(updateReqVO.getId(), updateReqVO.getMaterials()); } @Override public void deleteProcessingInfomationOperation(Long id) { - // 校验存在 validateProcessingInfomationOperationExists(id); - // 删除 processingInfomationOperationMapper.deleteById(id); + processingOperationMaterialMapper.deleteByProcessingOperationId(id); } @Override - public void deleteProcessingInfomationOperationListByIds(List ids) { - // 校验存在 + public void deleteProcessingInfomationOperationListByIds(List ids) { validateProcessingInfomationOperationExists(ids); - // 删除 - processingInfomationOperationMapper.deleteByIds(ids); - } + processingInfomationOperationMapper.deleteBatchIds(ids); + processingOperationMaterialMapper.deleteByProcessingOperationIds(ids); + } private void validateProcessingInfomationOperationExists(List ids) { - List list = processingInfomationOperationMapper.selectByIds(ids); + if (CollUtil.isEmpty(ids)) { + throw exception(PROCESSING_INFOMATION_OPERATION_NOT_EXISTS); + } + List list = processingInfomationOperationMapper.selectBatchIds(ids); if (CollUtil.isEmpty(list) || list.size() != ids.size()) { throw exception(PROCESSING_INFOMATION_OPERATION_NOT_EXISTS); } @@ -88,8 +118,17 @@ public class ProcessingInfomationOperationServiceImpl implements ProcessingInfom } @Override - public ProcessingInfomationOperationDO getProcessingInfomationOperation(Long id) { - return processingInfomationOperationMapper.selectById(id); + public ProcessingInfomationOperationDetailRespVO getProcessingInfomationOperation(Long id) { + ProcessingInfomationOperationDO relation = processingInfomationOperationMapper.selectById(id); + if (relation == null) { + return null; + } + Map operationMap = loadOperationMap(Collections.singletonList(relation)); + Map> materialMap = buildMaterialDetailMap(Collections.singletonList(relation.getId())); + ProcessingInfomationOperationDetailRespVO detail = BeanUtils.toBean(relation, ProcessingInfomationOperationDetailRespVO.class); + fillOperationInfo(relation, detail, operationMap); + detail.setMaterials(materialMap.getOrDefault(relation.getId(), Collections.emptyList())); + return detail; } @Override @@ -100,22 +139,7 @@ public class ProcessingInfomationOperationServiceImpl implements ProcessingInfom @Override public PageResult getProcessingInfomationOperationDetailPage(ProcessingInfomationOperationPageReqVO pageReqVO) { List detailList = buildDetailList(pageReqVO); - int total = detailList.size(); - if (total == 0) { - return new PageResult<>(Collections.emptyList(), 0L); - } - Integer pageSize = pageReqVO.getPageSize(); - if (pageSize != null && pageSize <= 0) { - return new PageResult<>(detailList, (long) total); - } - int pageNo = pageReqVO.getPageNo() == null ? 1 : pageReqVO.getPageNo(); - int size = (pageSize == null || pageSize <= 0) ? total : pageSize; - int fromIndex = Math.max((pageNo - 1) * size, 0); - if (fromIndex >= total) { - return new PageResult<>(Collections.emptyList(), (long) total); - } - int toIndex = Math.min(fromIndex + size, total); - return new PageResult<>(detailList.subList(fromIndex, toIndex), (long) total); + return paginate(detailList, pageReqVO.getPageNo(), pageReqVO.getPageSize()); } @Override @@ -123,60 +147,417 @@ public class ProcessingInfomationOperationServiceImpl implements ProcessingInfom return buildDetailList(pageReqVO); } + @Override + public PageResult getOrganizationOperationPage(ProcessingInfomationOperationOrganizationPageReqVO pageReqVO) { + List materialRecords = processingOperationMaterialMapper.selectOrganizationList(pageReqVO); + if (CollUtil.isEmpty(materialRecords)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + + Long deptFilter = pageReqVO.getDeptId(); + List filteredMaterials = materialRecords.stream() + .filter(Objects::nonNull) + .filter(item -> { + if (deptFilter == null) { + return true; + } + List deptIds = parseDepartmentIds(item.getDepartmentIds()); + return CollUtil.isNotEmpty(deptIds) && deptIds.contains(deptFilter); + }) + .collect(Collectors.toList()); + if (CollUtil.isEmpty(filteredMaterials)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + + Set relationIds = filteredMaterials.stream() + .map(ProcessingOperationMaterialDO::getProcessingOperationId) + .filter(Objects::nonNull) + .collect(Collectors.toCollection(LinkedHashSet::new)); + if (CollUtil.isEmpty(relationIds)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + + List relations = processingInfomationOperationMapper.selectBatchIds(relationIds); + if (CollUtil.isEmpty(relations)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + + Map relationMap = relations.stream() + .filter(Objects::nonNull) + .collect(Collectors.toMap(ProcessingInfomationOperationDO::getId, Function.identity(), (v1, v2) -> v1, LinkedHashMap::new)); + Map operationMap = loadOperationMap(relations); + Map processingMap = loadProcessingMap(relations); + Map> materialDetailMap = buildMaterialDetailMap(relationIds); + + List dataList = new ArrayList<>(); + LocalDateTime[] createTimeRange = pageReqVO.getCreateTime(); + for (ProcessingInfomationOperationDO relation : relationMap.values()) { + if (pageReqVO.getIsKey() != null && !Objects.equals(relation.getIsKey(), pageReqVO.getIsKey())) { + continue; + } + if (pageReqVO.getProcessingId() != null && !Objects.equals(relation.getProcessingId(), pageReqVO.getProcessingId())) { + continue; + } + if (createTimeRange != null && createTimeRange.length == 2 && createTimeRange[0] != null && createTimeRange[1] != null && relation.getCreateTime() != null) { + if (relation.getCreateTime().isBefore(createTimeRange[0]) || relation.getCreateTime().isAfter(createTimeRange[1])) { + continue; + } + } + + Long displayOperationId = resolveDisplayOperationId(relation); + if (pageReqVO.getOperationId() != null && !Objects.equals(displayOperationId, pageReqVO.getOperationId())) { + continue; + } + + List materials = materialDetailMap.getOrDefault(relation.getId(), Collections.emptyList()); + if (CollUtil.isEmpty(materials)) { + continue; + } + + Map deptNameMap = new LinkedHashMap<>(); + for (ProcessingInfomationOperationMaterialRespVO material : materials) { + List deptIds = material.getDepartmentIds(); + if (CollUtil.isEmpty(deptIds)) { + continue; + } + for (Long deptId : deptIds) { + if (deptId == null) { + continue; + } + deptNameMap.putIfAbsent(deptId, resolveDeptName(material, deptId)); + } + } + if (deptNameMap.isEmpty()) { + continue; + } + if (deptFilter != null && !deptNameMap.containsKey(deptFilter)) { + continue; + } + + Stream deptStream = deptFilter != null ? Stream.of(deptFilter) : deptNameMap.keySet().stream(); + deptStream.forEach(deptId -> { + ProcessingInfomationOperationOrganizationRespVO resp = buildOrganizationResp( + deptId, + deptNameMap.get(deptId), + relation, + processingMap, + operationMap, + displayOperationId + ); + dataList.add(resp); + }); + } + return paginate(dataList, pageReqVO.getPageNo(), pageReqVO.getPageSize()); + } + + private String resolveDeptName(ProcessingInfomationOperationMaterialRespVO material, Long deptId) { + if (deptId == null) { + return null; + } + List departments = material.getDepartments(); + if (CollUtil.isEmpty(departments)) { + return null; + } + return departments.stream() + .filter(item -> Objects.equals(item.getId(), deptId)) + .map(ProcessingInfomationOperationMaterialDeptRespVO::getName) + .findFirst() + .orElse(null); + } + + private ProcessingInfomationOperationOrganizationRespVO buildOrganizationResp(Long deptId, + String deptName, + ProcessingInfomationOperationDO relation, + Map processingMap, + Map operationMap, + Long displayOperationId) { + ProcessingInfomationOperationOrganizationRespVO resp = new ProcessingInfomationOperationOrganizationRespVO(); + resp.setId(relation.getId()); + resp.setDeptId(deptId); + resp.setDeptName(deptName); + resp.setRemark(relation.getRemark()); + resp.setCreateTime(relation.getCreateTime()); + resp.setIsKey(relation.getIsKey()); + + ProcessingInfomationDO processing = processingMap.get(relation.getProcessingId()); + if (processing != null) { + resp.setProcessingId(processing.getId()); + resp.setProcessingCode(processing.getCode()); + resp.setProcessingName(processing.getName()); + resp.setProcessingStatus(processing.getStatusValue()); + } + + resp.setOperationId(displayOperationId); + ProcessingOperationDO operation = operationMap.get(displayOperationId); + if (operation != null) { + resp.setOperationCode(operation.getCode()); + resp.setOperationName(operation.getName()); + } + return resp; + } + + private Long resolveDisplayOperationId(ProcessingInfomationOperationDO relation) { + if (relation.getOperationId() != null) { + return relation.getOperationId(); + } + if (relation.getNextOperationId() != null) { + return relation.getNextOperationId(); + } + return relation.getPreviousOperationId(); + } + private List buildDetailList(ProcessingInfomationOperationPageReqVO pageReqVO) { List relations = processingInfomationOperationMapper.selectList(pageReqVO); if (CollUtil.isEmpty(relations)) { return Collections.emptyList(); } - Set operationIds = relations.stream() - .flatMap(item -> Stream.of(item.getPreviousOperationId(), item.getNextOperationId())) - .filter(Objects::nonNull) - .collect(Collectors.toSet()); - Map operationMap; - if (operationIds.isEmpty()) { - operationMap = Collections.emptyMap(); - } else { - List operations = processingOperationMapper.selectBatchIds(operationIds); - if (CollUtil.isEmpty(operations)) { - operationMap = Collections.emptyMap(); - } else { - operationMap = operations.stream() - .filter(Objects::nonNull) - .collect(Collectors.toMap(ProcessingOperationDO::getId, Function.identity(), (v1, v2) -> v1)); - } - } + Map operationMap = loadOperationMap(relations); List detailList = relations.stream() - .map(item -> convertToResp(item, operationMap)) + .map(item -> { + ProcessingInfomationOperationRespVO resp = BeanUtils.toBean(item, ProcessingInfomationOperationRespVO.class); + fillOperationInfo(item, resp, operationMap); + return resp; + }) .collect(Collectors.toList()); - String nextCode = pageReqVO.getNextOperationCode(); - if (StrUtil.isNotBlank(nextCode)) { - detailList = detailList.stream() - .filter(item -> StrUtil.containsIgnoreCase(item.getNextOperationCode(), nextCode)) - .collect(Collectors.toList()); - } - String nextName = pageReqVO.getNextOperationName(); - if (StrUtil.isNotBlank(nextName)) { - detailList = detailList.stream() - .filter(item -> StrUtil.containsIgnoreCase(item.getNextOperationName(), nextName)) - .collect(Collectors.toList()); - } + applyOperationFilters(detailList, pageReqVO); return detailList; } - private ProcessingInfomationOperationRespVO convertToResp(ProcessingInfomationOperationDO relation, - Map operationMap) { - ProcessingInfomationOperationRespVO resp = BeanUtils.toBean(relation, ProcessingInfomationOperationRespVO.class); + private void applyOperationFilters(List list, ProcessingInfomationOperationPageReqVO pageReqVO) { + if (StrUtil.isNotBlank(pageReqVO.getNextOperationCode())) { + list.removeIf(item -> !StrUtil.containsIgnoreCase(StrUtil.blankToDefault(item.getNextOperationCode(), ""), pageReqVO.getNextOperationCode())); + } + if (StrUtil.isNotBlank(pageReqVO.getNextOperationName())) { + list.removeIf(item -> !StrUtil.containsIgnoreCase(StrUtil.blankToDefault(item.getNextOperationName(), ""), pageReqVO.getNextOperationName())); + } + } + + private Map loadOperationMap(Collection relations) { + if (CollUtil.isEmpty(relations)) { + return Collections.emptyMap(); + } + Set operationIds = relations.stream() + .flatMap(item -> Stream.of(item.getOperationId(), item.getPreviousOperationId(), item.getNextOperationId())) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if (CollUtil.isEmpty(operationIds)) { + return Collections.emptyMap(); + } + List operations = processingOperationMapper.selectBatchIds(operationIds); + if (CollUtil.isEmpty(operations)) { + return Collections.emptyMap(); + } + return operations.stream() + .filter(Objects::nonNull) + .collect(Collectors.toMap(ProcessingOperationDO::getId, Function.identity(), (v1, v2) -> v1)); + } + + private Map loadProcessingMap(Collection relations) { + Set processingIds = relations.stream() + .map(ProcessingInfomationOperationDO::getProcessingId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if (CollUtil.isEmpty(processingIds)) { + return Collections.emptyMap(); + } + List list = processingInfomationMapper.selectBatchIds(processingIds); + if (CollUtil.isEmpty(list)) { + return Collections.emptyMap(); + } + return list.stream() + .filter(Objects::nonNull) + .collect(Collectors.toMap(ProcessingInfomationDO::getId, Function.identity(), (v1, v2) -> v1)); + } + + private void fillOperationInfo(ProcessingInfomationOperationDO relation, + ProcessingInfomationOperationRespVO target, + Map operationMap) { + ProcessingOperationDO current = operationMap.get(relation.getOperationId()); + String operationType = null; + if (current != null) { + target.setOperationCode(current.getCode()); + target.setOperationName(current.getName()); + operationType = normalizeOperationTypeValue(current.getTypeValue()); + } ProcessingOperationDO previous = operationMap.get(relation.getPreviousOperationId()); if (previous != null) { - resp.setPreviousOperationCode(previous.getCode()); - resp.setPreviousOperationName(previous.getName()); + target.setPreviousOperationCode(previous.getCode()); + target.setPreviousOperationName(previous.getName()); + if (operationType == null) { + operationType = normalizeOperationTypeValue(previous.getTypeValue()); + } } ProcessingOperationDO next = operationMap.get(relation.getNextOperationId()); if (next != null) { - resp.setNextOperationCode(next.getCode()); - resp.setNextOperationName(next.getName()); + target.setNextOperationCode(next.getCode()); + target.setNextOperationName(next.getName()); + if (operationType == null) { + operationType = normalizeOperationTypeValue(next.getTypeValue()); + } + } + target.setOperationTypeValue(operationType); + } + + private String normalizeOperationTypeValue(String typeValue) { + if (StrUtil.isBlank(typeValue)) { + return null; + } + return StrUtil.trim(typeValue); + } + + private void saveOperationMaterials(Long relationId, List materials) { + processingOperationMaterialMapper.deleteByProcessingOperationId(relationId); + if (CollUtil.isEmpty(materials)) { + return; + } + List entities = new ArrayList<>(); + for (ProcessingInfomationOperationMaterialSaveReqVO item : materials) { + if (item == null || item.getMaterialId() == null) { + continue; + } + ProcessingOperationMaterialDO entity = new ProcessingOperationMaterialDO(); + entity.setProcessingOperationId(relationId); + entity.setMaterialId(item.getMaterialId()); + entity.setTypeValue(item.getTypeValue()); + entity.setRemark(item.getRemark()); + entity.setDepartmentIds(formatDepartmentIds(item.getDepartmentIds())); + entities.add(entity); + } + if (CollUtil.isNotEmpty(entities)) { + processingOperationMaterialMapper.insertBatch(entities); + } + } + + private Map> buildMaterialDetailMap(Collection relationIds) { + if (CollUtil.isEmpty(relationIds)) { + return Collections.emptyMap(); + } + List materialList = processingOperationMaterialMapper.selectListByProcessingOperationIds(relationIds); + if (CollUtil.isEmpty(materialList)) { + return Collections.emptyMap(); + } + Set materialIds = materialList.stream() + .map(ProcessingOperationMaterialDO::getMaterialId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + Map materialMap = Collections.emptyMap(); + if (CollUtil.isNotEmpty(materialIds)) { + List materials = materialInfomationMapper.selectBatchIds(materialIds); + if (CollUtil.isNotEmpty(materials)) { + materialMap = materials.stream() + .filter(Objects::nonNull) + .collect(Collectors.toMap(MaterialInfomationDO::getId, Function.identity(), (v1, v2) -> v1)); + } + } + Set deptIds = materialList.stream() + .flatMap(item -> parseDepartmentIds(item.getDepartmentIds()).stream()) + .collect(Collectors.toSet()); + Map deptMap = loadDeptMap(deptIds); + + Map> result = new LinkedHashMap<>(); + for (ProcessingOperationMaterialDO item : materialList) { + ProcessingInfomationOperationMaterialRespVO resp = buildMaterialResp(item, materialMap, deptMap); + result.computeIfAbsent(item.getProcessingOperationId(), key -> new ArrayList<>()).add(resp); + } + return result; + } + + private Map loadDeptMap(Set deptIds) { + if (CollUtil.isEmpty(deptIds)) { + return Collections.emptyMap(); + } + try { + List deptList = deptApi.getDeptList(deptIds).getCheckedData(); + if (CollUtil.isEmpty(deptList)) { + return Collections.emptyMap(); + } + return deptList.stream() + .filter(Objects::nonNull) + .collect(Collectors.toMap(DeptRespDTO::getId, Function.identity(), (v1, v2) -> v1)); + } catch (Exception ex) { + return Collections.emptyMap(); + } + } + + private ProcessingInfomationOperationMaterialRespVO buildMaterialResp(ProcessingOperationMaterialDO materialDO, + Map materialMap, + Map deptMap) { + ProcessingInfomationOperationMaterialRespVO resp = new ProcessingInfomationOperationMaterialRespVO(); + resp.setId(materialDO.getId()); + resp.setProcessingOperationId(materialDO.getProcessingOperationId()); + resp.setMaterialId(materialDO.getMaterialId()); + resp.setTypeValue(materialDO.getTypeValue()); + resp.setRemark(materialDO.getRemark()); + resp.setCreateTime(materialDO.getCreateTime()); + + MaterialInfomationDO material = materialMap.get(materialDO.getMaterialId()); + if (material != null) { + resp.setMaterialCode(material.getCode()); + resp.setMaterialName(material.getName()); + } + List deptIds = parseDepartmentIds(materialDO.getDepartmentIds()); + resp.setDepartmentIds(new ArrayList<>(deptIds)); + if (CollUtil.isNotEmpty(deptIds)) { + List deptInfos = deptIds.stream() + .map(id -> { + ProcessingInfomationOperationMaterialDeptRespVO deptResp = new ProcessingInfomationOperationMaterialDeptRespVO(); + deptResp.setId(id); + DeptRespDTO dept = deptMap.get(id); + if (dept != null) { + deptResp.setName(dept.getName()); + } + return deptResp; + }) + .collect(Collectors.toList()); + resp.setDepartments(deptInfos); + } else { + resp.setDepartments(Collections.emptyList()); } return resp; } -} \ No newline at end of file + private List parseDepartmentIds(String raw) { + if (StrUtil.isBlank(raw)) { + return Collections.emptyList(); + } + return Arrays.stream(raw.split(",")) + .map(String::trim) + .filter(StrUtil::isNotEmpty) + .map(id -> { + try { + return Long.parseLong(id); + } catch (NumberFormatException ex) { + return null; + } + }) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + } + + private String formatDepartmentIds(List deptIds) { + if (CollUtil.isEmpty(deptIds)) { + return null; + } + List normalized = deptIds.stream() + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + if (CollUtil.isEmpty(normalized)) { + return null; + } + return CollUtil.join(normalized, ","); + } + + private PageResult paginate(List list, Integer pageNo, Integer pageSize) { + if (CollUtil.isEmpty(list)) { + return new PageResult<>(Collections.emptyList(), 0L); + } + int current = pageNo == null || pageNo <= 0 ? 1 : pageNo; + int size = pageSize == null || pageSize <= 0 ? list.size() : pageSize; + int fromIndex = Math.min((current - 1) * size, list.size()); + int toIndex = Math.min(fromIndex + size, list.size()); + List pageList = list.subList(fromIndex, toIndex); + return new PageResult<>(pageList, (long) list.size()); + } +} diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationService.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationService.java index 401bc35..fbdd87d 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationService.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationService.java @@ -66,4 +66,12 @@ public interface ProcessingOperationService { */ List getProcessingOperationList(); + /** + * 按类型获得工序列表 + * + * @param typeValue 工序类型值,可为空 + * @return 工序列表 + */ + List getProcessingOperationListByType(String typeValue); + } \ No newline at end of file diff --git a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationServiceImpl.java b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationServiceImpl.java index 536da7b..e20d345 100644 --- a/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationServiceImpl.java +++ b/zt-module-base/zt-module-base-server/src/main/java/com/zt/plat/module/base/service/processingoperation/ProcessingOperationServiceImpl.java @@ -1,6 +1,7 @@ package com.zt.plat.module.base.service.processingoperation; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -91,7 +92,13 @@ public class ProcessingOperationServiceImpl implements ProcessingOperationServic @Override public List getProcessingOperationList() { - return processingOperationMapper.selectList(); + return processingOperationMapper.selectSimpleList(null); + } + + @Override + public List getProcessingOperationListByType(String typeValue) { + String normalized = StrUtil.isBlank(typeValue) ? null : StrUtil.trim(typeValue); + return processingOperationMapper.selectSimpleList(normalized); } } \ No newline at end of file