From b958080d22d468326d6016c6af33dafe91d72e4a Mon Sep 17 00:00:00 2001 From: FCL Date: Thu, 26 Mar 2026 16:40:25 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E6=8A=A5=E5=91=8A=E7=94=A8=E5=8D=B0iwo?= =?UTF-8?q?rk=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ReportDocumentAssistService.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java index ed664257..587f205f 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/reportdoc/service/ReportDocumentAssistService.java @@ -67,6 +67,9 @@ public class ReportDocumentAssistService { @Resource private FileApi fileApi; @Resource private BusinessFileApi businessFileApi; @Resource private DictionaryBusinessService dictionaryBusinessService; + + private final String iwork_sjly = "dt_dsc"; // + // private String sequenceKey = "QMS_REPORT_IWORK_CODE"; // todo 判断是否更新pdf @@ -135,10 +138,13 @@ public class ReportDocumentAssistService { dto.setOperatorUserId(operatorUserId); Map payload = new HashMap<>(); - payload.put("sqr", jbr); - payload.put("sqrq", sdf.format(new Date())); - payload.put("sqgs", fb); - payload.put("sqbm", yybm); + payload.put("sqr", jbr); //申请人 + payload.put("sqrq", sdf.format(new Date())); //申请日期 + payload.put("sqgs", fb); //申请公司 + payload.put("sqbm", yybm); //申请部门 + payload.put("sjly", iwork_sjly); //数据来源 + payload.put("ywxtdjbh", billNo); //业务系统单据编号 + payload.put("yyfs", "1"); //用印方式 // payload.put("yysyhnrzy", "检测报告用印"); payload.put("xyywj", url); Map param = this.buildCreatePayload( billNo, jsonObject.getString("iwork_workflowId"), new JSONObject(payload)); @@ -278,7 +284,7 @@ public class ReportDocumentAssistService { private List> buildSealMainData(JSONObject payload) { ArrayList target = new ArrayList(); - String allFields = "sqr,sqrq,sqgs,sqbm,bizId,yysyhnrzy"; + String allFields = "sqr,sqrq,sqgs,sqbm,bizId,yysyhnrzy,sjly,ywxtdjbh,yyfs"; for(String field : allFields.split(",")){ this.addField(target, field, payload.getString( field)); } From e793be73edec983b344d5b957f35d1670ab5b3f7 Mon Sep 17 00:00:00 2001 From: shusir <497819738@qq.com> Date: Thu, 26 Mar 2026 17:51:27 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=E5=87=86=E5=A4=87=E7=89=A9=E6=96=99?= =?UTF-8?q?=E6=A3=80=E5=8C=96=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/qms/enums/ErrorCodeConstants.java | 1 + .../material/constant/MaterialConstants.java | 4 + .../MaterialCorrelationAssayController.java | 105 ++++++++++++++++++ .../controller/vo/MaterialBatchPageReqVO.java | 5 +- .../controller/vo/MaterialBatchRespVO.java | 3 + .../vo/MaterialCorrelationAssayPageReqVO.java | 62 +++++++++++ .../vo/MaterialCorrelationAssayRespVO.java | 79 +++++++++++++ .../vo/MaterialCorrelationAssaySaveReqVO.java | 55 +++++++++ .../vo/MaterialLifecycleDetailRespVO.java | 6 + .../vo/MaterialLifecycleDetailSaveReqVO.java | 7 ++ .../controller/vo/MaterialProductRespVO.java | 3 + .../vo/MaterialProductSaveReqVO.java | 4 + .../MaterialCorrelationAssayDO.java | 102 +++++++++++++++++ .../dataobject/MaterialLifecycleDetailDO.java | 5 + .../dal/dataobject/MaterialProductDO.java | 5 + .../dal/mapper/MaterialBatchMapper.java | 2 + .../MaterialCorrelationAssayMapper.java | 38 +++++++ .../mapper/MaterialLifecycleDetailMapper.java | 1 + .../enums/MaterialBatchGongBusinessType.java | 6 +- .../service/MaterialBatchServiceImpl.java | 1 - .../MaterialCorrelationAssayService.java | 64 +++++++++++ .../MaterialCorrelationAssayServiceImpl.java | 89 +++++++++++++++ .../service/MaterialLifecycleServiceImpl.java | 32 +++--- .../mapper/MaterialCorrelationAssayMapper.xml | 12 ++ 24 files changed, 670 insertions(+), 21 deletions(-) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialCorrelationAssayController.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssayPageReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssayRespVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssaySaveReqVO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialCorrelationAssayDO.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialCorrelationAssayMapper.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialCorrelationAssayService.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialCorrelationAssayServiceImpl.java create mode 100644 zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialCorrelationAssayMapper.xml diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java index d3542b96..38783dbc 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/ErrorCodeConstants.java @@ -192,6 +192,7 @@ public interface ErrorCodeConstants { ErrorCode MATERIAL_PRODUCTS_EXISTS_CATEGORY = new ErrorCode(1_032_160_000, "物料大类列表中存在分类数据"); ErrorCode MATERIAL_LIFECYCLE_DETAIL_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程明细不存在"); ErrorCode MATERIAL_LIFECYCLE_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料通用流程不存在"); + ErrorCode MATERIAL_CORRELATION_ASSAY_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料检化验关联信息不存在"); ErrorCode MATERIAL_BATCH_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料批次不存在"); ErrorCode MATERIAL_BATCH_GONG_NOT_EXISTS = new ErrorCode(1_032_160_000, "物料批次工段不存在"); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/constant/MaterialConstants.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/constant/MaterialConstants.java index 08673862..e8315644 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/constant/MaterialConstants.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/constant/MaterialConstants.java @@ -14,4 +14,8 @@ public class MaterialConstants { // 外部模块 public static final String DEVICE_BURETTE_CATEGORY_NAME = "滴定管"; + + // 流程 + public static final String INIT_ASSAY_FLOW = "initAssayFlow"; + public static final String ASSAY_FLAG = "assayFlag"; } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialCorrelationAssayController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialCorrelationAssayController.java new file mode 100644 index 00000000..8373f22c --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/admin/MaterialCorrelationAssayController.java @@ -0,0 +1,105 @@ +package com.zt.plat.module.qms.resource.material.controller.admin; + +import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog; +import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.framework.excel.core.util.ExcelUtils; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayPageReqVO; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayRespVO; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssaySaveReqVO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialCorrelationAssayDO; +import com.zt.plat.module.qms.resource.material.service.MaterialCorrelationAssayService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; +import java.util.List; + +import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 物料检化验关联信息") +@RestController +@RequestMapping("/qms/material-correlation-assay") +@Validated +public class MaterialCorrelationAssayController implements BusinessControllerMarker { + + + @Resource + private MaterialCorrelationAssayService materialCorrelationAssayService; + + @PostMapping("/create") + @Operation(summary = "创建物料检化验关联信息") + @PreAuthorize("@ss.hasPermission('qms:material-correlation-assay:create')") + public CommonResult createMaterialCorrelationAssay(@Valid @RequestBody MaterialCorrelationAssaySaveReqVO createReqVO) { + return success(materialCorrelationAssayService.createMaterialCorrelationAssay(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新物料检化验关联信息") + @PreAuthorize("@ss.hasPermission('qms:material-correlation-assay:update')") + public CommonResult updateMaterialCorrelationAssay(@Valid @RequestBody MaterialCorrelationAssaySaveReqVO updateReqVO) { + materialCorrelationAssayService.updateMaterialCorrelationAssay(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除物料检化验关联信息") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('qms:material-correlation-assay:delete')") + public CommonResult deleteMaterialCorrelationAssay(@RequestParam("id") Long id) { + materialCorrelationAssayService.deleteMaterialCorrelationAssay(id); + return success(true); + } + + @DeleteMapping("/delete-list") + @Parameter(name = "ids", description = "编号", required = true) + @Operation(summary = "批量删除物料检化验关联信息") + @PreAuthorize("@ss.hasPermission('qms:material-correlation-assay:delete')") + public CommonResult deleteMaterialCorrelationAssayList(@RequestBody BatchDeleteReqVO req) { + materialCorrelationAssayService.deleteMaterialCorrelationAssayListByIds(req.getIds()); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得物料检化验关联信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('qms:material-correlation-assay:query')") + public CommonResult getMaterialCorrelationAssay(@RequestParam("id") Long id) { + MaterialCorrelationAssayDO materialCorrelationAssay = materialCorrelationAssayService.getMaterialCorrelationAssay(id); + return success(BeanUtils.toBean(materialCorrelationAssay, MaterialCorrelationAssayRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得物料检化验关联信息分页") + @PreAuthorize("@ss.hasPermission('qms:material-correlation-assay:query')") + public CommonResult> getMaterialCorrelationAssayPage(@Valid MaterialCorrelationAssayPageReqVO pageReqVO) { + PageResult pageResult = materialCorrelationAssayService.getMaterialCorrelationAssayPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, MaterialCorrelationAssayRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出物料检化验关联信息 Excel") + @PreAuthorize("@ss.hasPermission('qms:material-correlation-assay:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMaterialCorrelationAssayExcel(@Valid MaterialCorrelationAssayPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = materialCorrelationAssayService.getMaterialCorrelationAssayPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "物料检化验关联信息.xls", "数据", MaterialCorrelationAssayRespVO.class, + BeanUtils.toBean(list, MaterialCorrelationAssayRespVO.class)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialBatchPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialBatchPageReqVO.java index fa2cb7dc..0d5a2cfc 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialBatchPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialBatchPageReqVO.java @@ -1,6 +1,9 @@ package com.zt.plat.module.qms.resource.material.controller.vo; import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.module.qms.resource.material.enums.MaterialBatchBusinessType; +import com.zt.plat.module.qms.resource.material.enums.MaterialBatchGongBusinessType; +import com.zt.plat.module.qms.resource.material.enums.MaterialBatchGongType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -21,7 +24,7 @@ public class MaterialBatchPageReqVO extends PageParam { private Long productId; @Schema(description = "业务场景 batch_manage-批次管理,acceptance-验收,inbound-入库,return_exchange-退换货") - private String businessType; + private MaterialBatchGongBusinessType businessType; @Schema(description = "是否需要组装 children") private Boolean children = false; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialBatchRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialBatchRespVO.java index 3ed84b28..c6337b3d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialBatchRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialBatchRespVO.java @@ -30,6 +30,9 @@ public class MaterialBatchRespVO { @ExcelProperty("物料大类id") private Long productId; + @Schema(description = "关联的样品大类id") + private String productSampleIds; + @Schema(description = "分类自定义配置") @ExcelProperty("分类自定义配置") private JSONObject categoryCustomConfig; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssayPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssayPageReqVO.java new file mode 100644 index 00000000..7606fcfa --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssayPageReqVO.java @@ -0,0 +1,62 @@ +package com.zt.plat.module.qms.resource.material.controller.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; + +@Schema(description = "管理后台 - 物料检化验关联信息分页 Request VO") +@Data +public class MaterialCorrelationAssayPageReqVO extends PageParam { + + @Schema(description = "检化验委托id,用于关联到检化验模块", example = "8699") + private Long entrustId; + + @Schema(description = "业务类型,验收检化验等", example = "2") + private String businessType; + + @Schema(description = "检验来源,如验收明细id") + private String source; + + @Schema(description = "物料大类id", example = "31683") + private Long productId; + + @Schema(description = "样品大类id,检化验业务样品大类", example = "1909") + private Long sampleId; + + @Schema(description = "批次id", example = "3150") + private Long batchId; + + @Schema(description = "批次拆分/工段id", example = "2292") + private Long gongduanId; + + @Schema(description = "检测项") + private String item; + + @Schema(description = "状态,未开始、进行中、已完成", example = "2") + private String assayStatus; + + @Schema(description = "结果,检化验结果") + private String result; + + @Schema(description = "是否合格,字典") + private String qualified; + + @Schema(description = "说明") + private String reason; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssayRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssayRespVO.java new file mode 100644 index 00000000..0a506b00 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssayRespVO.java @@ -0,0 +1,79 @@ +package com.zt.plat.module.qms.resource.material.controller.vo; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 物料检化验关联信息 Response VO") +@Data +@ExcelIgnoreUnannotated +public class MaterialCorrelationAssayRespVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6949") + @ExcelProperty("主键id") + private Long id; + + @Schema(description = "检化验委托id,用于关联到检化验模块", example = "8699") + @ExcelProperty("检化验委托id,用于关联到检化验模块") + private Long entrustId; + + @Schema(description = "业务类型,验收检化验等", example = "2") + @ExcelProperty("业务类型,验收检化验等") + private String businessType; + + @Schema(description = "检验来源,如验收明细id") + @ExcelProperty("检验来源,如验收明细id") + private String source; + + @Schema(description = "物料大类id", example = "31683") + @ExcelProperty("物料大类id") + private Long productId; + + @Schema(description = "样品大类id,检化验业务样品大类", example = "1909") + @ExcelProperty("样品大类id,检化验业务样品大类") + private Long sampleId; + + @Schema(description = "批次id", example = "3150") + @ExcelProperty("批次id") + private Long batchId; + + @Schema(description = "批次拆分/工段id", example = "2292") + @ExcelProperty("批次拆分/工段id") + private Long gongduanId; + + @Schema(description = "检测项") + @ExcelProperty("检测项") + private String item; + + @Schema(description = "状态,未开始、进行中、已完成", example = "2") + @ExcelProperty("状态,未开始、进行中、已完成") + private String assayStatus; + + @Schema(description = "结果,检化验结果") + @ExcelProperty("结果,检化验结果") + private String result; + + @Schema(description = "是否合格,字典") + @ExcelProperty("是否合格,字典") + private String qualified; + + @Schema(description = "说明") + @ExcelProperty("说明") + private String reason; + + @Schema(description = "所属部门") + @ExcelProperty("所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + @ExcelProperty("备注") + private String remark; + + @Schema(description = "创建时间") + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssaySaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssaySaveReqVO.java new file mode 100644 index 00000000..7d70e781 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialCorrelationAssaySaveReqVO.java @@ -0,0 +1,55 @@ +package com.zt.plat.module.qms.resource.material.controller.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Schema(description = "管理后台 - 物料检化验关联信息新增/修改 Request VO") +@Data +public class MaterialCorrelationAssaySaveReqVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6949") + private Long id; + + @Schema(description = "检化验委托id,用于关联到检化验模块", example = "8699") + private Long entrustId; + + @Schema(description = "业务类型,验收检化验等", example = "2") + private String businessType; + + @Schema(description = "检验来源,如验收明细id") + private String source; + + @Schema(description = "物料大类id", example = "31683") + private Long productId; + + @Schema(description = "样品大类id,检化验业务样品大类", example = "1909") + private Long sampleId; + + @Schema(description = "批次id", example = "3150") + private Long batchId; + + @Schema(description = "批次拆分/工段id", example = "2292") + private Long gongduanId; + + @Schema(description = "检测项") + private String item; + + @Schema(description = "状态,未开始、进行中、已完成", example = "2") + private String assayStatus; + + @Schema(description = "结果,检化验结果") + private String result; + + @Schema(description = "是否合格,字典") + private String qualified; + + @Schema(description = "说明") + private String reason; + + @Schema(description = "所属部门") + private String systemDepartmentCode; + + @Schema(description = "备注") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialLifecycleDetailRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialLifecycleDetailRespVO.java index 3ed16141..0f5f8822 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialLifecycleDetailRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialLifecycleDetailRespVO.java @@ -30,6 +30,9 @@ public class MaterialLifecycleDetailRespVO { @ExcelProperty("物料大类id") private Long productId; + @Schema(description = "物料关联的样品大类") + private String productSampleIds; + @Schema(description = "物料大类名称") @ExcelProperty("物料大类名称") private String productName; @@ -94,6 +97,9 @@ public class MaterialLifecycleDetailRespVO { @ExcelProperty("是否检化验,1-是,0-否") private Integer assayFlag; + @Schema(description = "检化验id") + private Long assayId; + @Schema(description = "物料实例id", example = "968") @ExcelProperty("物料实例id") private Long infomationId; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialLifecycleDetailSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialLifecycleDetailSaveReqVO.java index f2451c6c..8157513d 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialLifecycleDetailSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialLifecycleDetailSaveReqVO.java @@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; +import java.util.List; @Schema(description = "管理后台 - 物料通用流程明细新增/修改 Request VO") @Data @@ -28,6 +29,12 @@ public class MaterialLifecycleDetailSaveReqVO { @Schema(description = "是否检化验,1-是,0-否") private Integer assayFlag; + @Schema(description = "检化验样品大类") + private Long assaySampleId; + + @Schema(description = "检化验检测项") + private List assayItemIds; + @Schema(description = "物料实例id", example = "968") private Long infomationId; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductRespVO.java index 733e47cc..26e7c2b2 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductRespVO.java @@ -88,6 +88,9 @@ public class MaterialProductRespVO { @ExcelProperty("单位") private String unit; + @Schema(description = "关联的样品大类") + private String sampleIds; + @Schema(description = "库存数量") @ExcelProperty("库存数量") private BigDecimal inventoryQuantity; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductSaveReqVO.java index e5e81b79..c5bbd568 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductSaveReqVO.java @@ -1,5 +1,6 @@ package com.zt.plat.module.qms.resource.material.controller.vo; +import com.baomidou.mybatisplus.annotation.TableField; import com.zt.plat.module.qms.resource.material.valid.AddGroup; import com.zt.plat.module.qms.resource.material.valid.UpdateGroup; import io.swagger.v3.oas.annotations.media.Schema; @@ -62,6 +63,9 @@ public class MaterialProductSaveReqVO { @Schema(description = "单位") private String unit; + @Schema(description = "关联的样品大类") + private String sampleIds; + @Schema(description = "允许按量领取,1-领用时输入量,按量领取;0-领用时不能输入量,整个领走") private Integer enablePartial; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialCorrelationAssayDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialCorrelationAssayDO.java new file mode 100644 index 00000000..585047cf --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialCorrelationAssayDO.java @@ -0,0 +1,102 @@ +package com.zt.plat.module.qms.resource.material.dal.dataobject; + +import com.baomidou.mybatisplus.annotation.*; +import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO; +import lombok.*; +/** +* 物料检化验关联信息 DO +* +* @author 后台管理 +*/ +@TableName("t_mtrl_corr_asy") +@KeySequence("t_mtrl_corr_asy_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +/** +* 支持业务基类继承:isBusiness=true 时继承 BusinessBaseDO,否则继承 BaseDO +*/ +public class MaterialCorrelationAssayDO extends BusinessBaseDO { + + + + /** + * 主键id + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + /** + * 检化验委托id,用于关联到检化验模块 + */ + @TableField("ENTT_ID") + private Long entrustId; + /** + * 业务类型,验收检化验等 + */ + @TableField("BSN_TP") + private String businessType; + /** + * 检验来源,如验收明细id + */ + @TableField("SRC") + private String source; + /** + * 物料大类id + */ + @TableField("PDT_ID") + private Long productId; + /** + * 样品大类id,检化验业务样品大类 + */ + @TableField("SMP_ID") + private Long sampleId; + /** + * 批次id + */ + @TableField("BAT_ID") + private Long batchId; + /** + * 批次拆分/工段id + */ + @TableField("GONG_ID") + private Long gongduanId; + /** + * 检测项 + */ + @TableField("ITM") + private String item; + /** + * 状态,未开始、进行中、已完成 + */ + @TableField("ASY_STS") + private String assayStatus; + /** + * 结果,检化验结果 + */ + @TableField("RSLT") + private String result; + /** + * 是否合格,字典 + */ + @TableField("QLFD") + private String qualified; + /** + * 说明 + */ + @TableField("RSN") + private String reason; + /** + * 所属部门 + */ + @TableField("SYS_DEPT_CD") + private String systemDepartmentCode; + /** + * 备注 + */ + @TableField("RMK") + private String remark; + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialLifecycleDetailDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialLifecycleDetailDO.java index eeb03744..6f665ba6 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialLifecycleDetailDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialLifecycleDetailDO.java @@ -57,6 +57,11 @@ public class MaterialLifecycleDetailDO extends BusinessBaseDO { @TableField("ASY_FLG") private Integer assayFlag; /** + * 检化验id + */ + @TableField("ASY_ID") + private Long assayId; + /** * 物料实例id */ @TableField("INF_ID") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialProductDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialProductDO.java index 3b83a31c..a3c615ad 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialProductDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialProductDO.java @@ -120,6 +120,11 @@ public class MaterialProductDO extends BusinessBaseDO { @TableField("UNT") private String unit; /** + * 关联的样品大类 + */ + @TableField("SMP_IDS") + private String sampleIds; + /** * 允许按量领取,1-领用时输入量,按量领取;0-领用时不能输入量,整个领走 */ @TableField("ENB_PRTL") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialBatchMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialBatchMapper.java index 26139c5e..132ea03b 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialBatchMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialBatchMapper.java @@ -62,6 +62,8 @@ public interface MaterialBatchMapper extends BaseMapperX { .selectAs(MaterialProductDO::getUnit, MaterialBatchRespVO::getUnit) // 标签模板,用于入库 .selectAs(MaterialProductDO::getLabelTemplateKey, MaterialBatchRespVO::getLabelTemplateKey) + // 关联的样品大类,用于检化验 + .selectAs(MaterialProductDO::getSampleIds, MaterialBatchRespVO::getProductSampleIds) // 生产日期和到期日期,用于验收和入库 .selectAs("batch.MFR_DT", MaterialBatchDO::getManufacturerDate) .selectAs("batch.DUE_DT", MaterialBatchDO::getDueDate) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialCorrelationAssayMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialCorrelationAssayMapper.java new file mode 100644 index 00000000..fc5d885c --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialCorrelationAssayMapper.java @@ -0,0 +1,38 @@ +package com.zt.plat.module.qms.resource.material.dal.mapper; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX; +import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayPageReqVO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialCorrelationAssayDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * 物料检化验关联信息 Mapper + * + * @author 后台管理 + */ +@Mapper +public interface MaterialCorrelationAssayMapper extends BaseMapperX { + + default PageResult selectPage(MaterialCorrelationAssayPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MaterialCorrelationAssayDO::getEntrustId, reqVO.getEntrustId()) + .eqIfPresent(MaterialCorrelationAssayDO::getBusinessType, reqVO.getBusinessType()) + .eqIfPresent(MaterialCorrelationAssayDO::getSource, reqVO.getSource()) + .eqIfPresent(MaterialCorrelationAssayDO::getProductId, reqVO.getProductId()) + .eqIfPresent(MaterialCorrelationAssayDO::getSampleId, reqVO.getSampleId()) + .eqIfPresent(MaterialCorrelationAssayDO::getBatchId, reqVO.getBatchId()) + .eqIfPresent(MaterialCorrelationAssayDO::getGongduanId, reqVO.getGongduanId()) + .eqIfPresent(MaterialCorrelationAssayDO::getItem, reqVO.getItem()) + .eqIfPresent(MaterialCorrelationAssayDO::getAssayStatus, reqVO.getAssayStatus()) + .eqIfPresent(MaterialCorrelationAssayDO::getResult, reqVO.getResult()) + .eqIfPresent(MaterialCorrelationAssayDO::getQualified, reqVO.getQualified()) + .eqIfPresent(MaterialCorrelationAssayDO::getReason, reqVO.getReason()) + .eqIfPresent(MaterialCorrelationAssayDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode()) + .eqIfPresent(MaterialCorrelationAssayDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MaterialCorrelationAssayDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MaterialCorrelationAssayDO::getId)); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialLifecycleDetailMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialLifecycleDetailMapper.java index aa4a0519..b206cbfb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialLifecycleDetailMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialLifecycleDetailMapper.java @@ -48,6 +48,7 @@ public interface MaterialLifecycleDetailMapper extends BaseMapperX batches = pageResult.getList(); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialCorrelationAssayService.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialCorrelationAssayService.java new file mode 100644 index 00000000..78410315 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialCorrelationAssayService.java @@ -0,0 +1,64 @@ +package com.zt.plat.module.qms.resource.material.service; + +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayPageReqVO; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayRespVO; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssaySaveReqVO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialCorrelationAssayDO; +import jakarta.validation.Valid; + +import java.util.List; + +/** + * 物料检化验关联信息 Service 接口 + * + * @author 后台管理 + */ +public interface MaterialCorrelationAssayService { + + /** + * 创建物料检化验关联信息 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + MaterialCorrelationAssayRespVO createMaterialCorrelationAssay(@Valid MaterialCorrelationAssaySaveReqVO createReqVO); + + /** + * 更新物料检化验关联信息 + * + * @param updateReqVO 更新信息 + */ + void updateMaterialCorrelationAssay(@Valid MaterialCorrelationAssaySaveReqVO updateReqVO); + + /** + * 删除物料检化验关联信息 + * + * @param id 编号 + */ + void deleteMaterialCorrelationAssay(Long id); + + /** + * 批量删除物料检化验关联信息 + * + * @param ids 编号 + */ + void deleteMaterialCorrelationAssayListByIds(List ids); + + /** + * 获得物料检化验关联信息 + * + * @param id 编号 + * @return 物料检化验关联信息 + */ + MaterialCorrelationAssayDO getMaterialCorrelationAssay(Long id); + + /** + * 获得物料检化验关联信息分页 + * + * @param pageReqVO 分页查询 + * @return 物料检化验关联信息分页 + */ + PageResult getMaterialCorrelationAssayPage(MaterialCorrelationAssayPageReqVO pageReqVO); + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialCorrelationAssayServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialCorrelationAssayServiceImpl.java new file mode 100644 index 00000000..f97a881e --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialCorrelationAssayServiceImpl.java @@ -0,0 +1,89 @@ +package com.zt.plat.module.qms.resource.material.service; + +import cn.hutool.core.collection.CollUtil; +import com.zt.plat.framework.common.pojo.PageResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayPageReqVO; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayRespVO; +import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssaySaveReqVO; +import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialCorrelationAssayDO; +import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialCorrelationAssayMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.List; + +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zt.plat.module.qms.enums.ErrorCodeConstants.MATERIAL_CORRELATION_ASSAY_NOT_EXISTS; + +/** + * 物料检化验关联信息 Service 实现类 + * + * @author 后台管理 + */ +@Service +@Validated +public class MaterialCorrelationAssayServiceImpl implements MaterialCorrelationAssayService { + + @Resource + private MaterialCorrelationAssayMapper materialCorrelationAssayMapper; + + @Override + public MaterialCorrelationAssayRespVO createMaterialCorrelationAssay(MaterialCorrelationAssaySaveReqVO createReqVO) { + // 插入 + MaterialCorrelationAssayDO materialCorrelationAssay = BeanUtils.toBean(createReqVO, MaterialCorrelationAssayDO.class); + materialCorrelationAssayMapper.insert(materialCorrelationAssay); + // 返回 + return BeanUtils.toBean(materialCorrelationAssay, MaterialCorrelationAssayRespVO.class); + } + + @Override + public void updateMaterialCorrelationAssay(MaterialCorrelationAssaySaveReqVO updateReqVO) { + // 校验存在 + validateMaterialCorrelationAssayExists(updateReqVO.getId()); + // 更新 + MaterialCorrelationAssayDO updateObj = BeanUtils.toBean(updateReqVO, MaterialCorrelationAssayDO.class); + materialCorrelationAssayMapper.updateById(updateObj); + } + + @Override + public void deleteMaterialCorrelationAssay(Long id) { + // 校验存在 + validateMaterialCorrelationAssayExists(id); + // 删除 + materialCorrelationAssayMapper.deleteById(id); + } + + @Override + public void deleteMaterialCorrelationAssayListByIds(List ids) { + // 校验存在 + validateMaterialCorrelationAssayExists(ids); + // 删除 + materialCorrelationAssayMapper.deleteByIds(ids); + } + + private void validateMaterialCorrelationAssayExists(List ids) { + List list = materialCorrelationAssayMapper.selectByIds(ids); + if (CollUtil.isEmpty(list) || list.size() != ids.size()) { + throw exception(MATERIAL_CORRELATION_ASSAY_NOT_EXISTS); + } + } + + private void validateMaterialCorrelationAssayExists(Long id) { + if (materialCorrelationAssayMapper.selectById(id) == null) { + throw exception(MATERIAL_CORRELATION_ASSAY_NOT_EXISTS); + } + } + + @Override + public MaterialCorrelationAssayDO getMaterialCorrelationAssay(Long id) { + return materialCorrelationAssayMapper.selectById(id); + } + + @Override + public PageResult getMaterialCorrelationAssayPage(MaterialCorrelationAssayPageReqVO pageReqVO) { + return materialCorrelationAssayMapper.selectPage(pageReqVO); + } + +} \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialLifecycleServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialLifecycleServiceImpl.java index 4d5dc347..9d5c4fe4 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialLifecycleServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialLifecycleServiceImpl.java @@ -966,6 +966,7 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService , } // 流程状态处理 1-提交(含退回) 3-拒绝 4-取消流程 String PROCESS_STATUS = variables.getString(QmsBpmConstant.PROCESS_INSTANCE_VARIABLE_STATUS); + Integer assayFlag = variables.getInteger(MaterialConstants.ASSAY_FLAG); String businessKey = reqDTO.getBusinessKey(); JSONArray fieldExtensions = new JSONArray(); if(variables.containsKey(QmsBpmConstant.BPM_FIELD_EXTENSIONS)){ @@ -976,6 +977,8 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService , // 检查是否最后一个节点 boolean lastActivityFlag = false; boolean firstActivityFlag = false; + // 是否为需要发起检化验流程的节点 + boolean needInitAssayFlow = false; if(!fieldExtensions.isEmpty()){ for(int i = 0; i < fieldExtensions.size(); i++){ JSONObject fieldExtension = fieldExtensions.getJSONObject(i); @@ -985,6 +988,9 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService , if(fieldExtension.getString("fieldName").equalsIgnoreCase(QmsBpmConstant.BPM_FIRST_ACTIVITY_FLAG)){ firstActivityFlag = true; } + if(fieldExtension.getString("fieldName").equalsIgnoreCase(MaterialConstants.INIT_ASSAY_FLOW)){ + needInitAssayFlow = true; + } } } // TODO 走到检化验节点时需要发起检化验流程 @@ -1025,8 +1031,14 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService , // 库存盘点通过,对相应物料进行出入库 this.inventoryCheckPassHandle(entity.getId()); } - - + } + // 需要发起检化验流程 + if(needInitAssayFlow && assayFlag != null && assayFlag == 1) { + // 获取明细批次拆分 + List details = this.getDetailListByLfcId(entity.getId()); + // 筛选需要检化验的批次 + List assayDetails = details.stream() + .filter(detail -> detail.getAssayFlag() != null && detail.getAssayFlag() == 1).toList(); } } @@ -1126,23 +1138,7 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService , .setLocationId(locationId).setQuantity(BigDecimal.valueOf(infList.size())) .setRemark("盘点后不在库的入库"); materialInventoryInboundService.inboundInfomation(inbound, null, null, infList); - /*inbounds.add(inbound); - List detailDOS = infList.stream().map(inf -> new MaterialInventoryInboundDetailDO() - .setInboundId(inbound.getId()) - .setMaterialInfomationId(inf.getId()) - .setInboundUserName(inbound.getApplyUser()) - .setInboundUserId(inbound.getApplyUserId()) - .setInboundDepartmentName(inbound.getApplyDepartment()) - .setInboundDepartmentId(inbound.getApplyDepartmentId()) - .setInboundTime(LocalDateTime.now()) - .setRemark("盘点后入库")).toList(); - inboundDetails.addAll(detailDOS);*/ } }); - /*materialInventoryInboundService.saveBatch(inbounds); - materialInventoryInboundDetailService.saveBatch(inboundDetails); - // 更新物料在库状态 - List infIds = infs.stream().map(MaterialInfomationDO::getId).toList(); - materialInfomationService.updateByIds(infIds, new MaterialInfomationDO().setUsageStatus(0));*/ } } \ No newline at end of file diff --git a/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialCorrelationAssayMapper.xml b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialCorrelationAssayMapper.xml new file mode 100644 index 00000000..171a31f0 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/resources/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialCorrelationAssayMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file