From 15621a9a5639ec71c13db8ea5e2476d1058e3fa3 Mon Sep 17 00:00:00 2001 From: wxr Date: Thu, 4 Dec 2025 10:03:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AD=E5=BF=83=E4=BA=A4=E6=8E=A5-=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E6=94=B6=E6=A0=B7=E6=B7=BB=E5=8A=A0=20=E6=94=B6?= =?UTF-8?q?=E6=A0=B7=E5=B9=B6=E9=80=81=E6=A0=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/SampleFlowController.java | 163 ++---------------- .../bus/controller/admin/TestController.java | 155 +++++++++++++++++ .../service/SampleAnalysisServiceImpl.java | 4 +- .../SampleResultReportingServiceImpl.java | 33 ---- 4 files changed, 176 insertions(+), 179 deletions(-) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/TestController.java diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleFlowController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleFlowController.java index 1fb1698..c128dff 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleFlowController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleFlowController.java @@ -1,33 +1,24 @@ package com.zt.plat.module.qms.business.bus.controller.admin; -import java.util.ArrayList; -import java.util.List; - import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.alibaba.fastjson2.JSON; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; import com.zt.plat.framework.common.pojo.CommonResult; -import com.zt.plat.framework.common.util.object.BeanUtils; -import com.zt.plat.framework.tenant.core.context.TenantContextHolder; -import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowInfo; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowParam; import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleFlowContext; import com.zt.plat.module.qms.business.bus.service.SampleFlowService; -import com.zt.plat.module.qms.core.sampleflow.SampleFlowDefinition; -import com.zt.plat.module.qms.core.sampleflow.SampleFlowNode; +import com.zt.plat.module.qms.enums.QmsCommonConstant; + import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import static com.zt.plat.framework.common.pojo.CommonResult.success; -import static com.zt.plat.framework.common.pojo.CommonResult.error; @Tag(name = "管理后台 - 样品流转") @RestController @@ -45,138 +36,22 @@ public class SampleFlowController implements BusinessControllerMarker { public CommonResult sampleFlow(@Validated @RequestBody SampleFlowParam sampleFlowParam) { LiteflowResponse response = sampleFlowService.sampleFlow(sampleFlowParam); return success(response.getContextBean(SampleFlowContext.class)); - } - - @GetMapping("/test") - public CommonResult test() { - - SampleFlowDefinition sampleFlowDefinition = new SampleFlowDefinition(); - sampleFlowDefinition.setFlowKey("flw_sub_sample_process"); - sampleFlowDefinition.setFlowName("子样样品流转流程"); - List flowNodeList = new ArrayList<>(); - - SampleFlowNode zxr = new SampleFlowNode(); - zxr.setNodeName("中心收样"); - zxr.setNodeKey("flw_center_receive"); - zxr.setSort(3100); - - SampleFlowNode zxs = new SampleFlowNode(); - zxs.setNodeName("中心送样"); - zxs.setNodeKey("flw_center_send"); - zxs.setSort(3200); - - SampleFlowNode bzr = new SampleFlowNode(); - bzr.setNodeName("班组收样"); - bzr.setNodeKey("flw_team_receive"); - bzr.setSort(3300); - - SampleFlowNode ypbm = new SampleFlowNode(); - ypbm.setNodeName("样品编密"); - ypbm.setNodeKey("flw_sample_encrypt"); - ypbm.setSort(3400); - -// SampleFlowNode fxr = new SampleFlowNode(); -// fxr.setNodeName("分析收样"); -// fxr.setNodeKey("flw_analysis_receive"); -// fxr.setSort(3500); -// - SampleFlowNode fx = new SampleFlowNode(); - fx.setNodeName("样品分析"); - fx.setNodeKey("flw_analysis"); - fx.setSort(3550); -// -// SampleFlowNode fxs = new SampleFlowNode(); -// fxs.setNodeName("分析送样"); -// fxs.setNodeKey("flw_analysis_send"); -// fxs.setSort(3600); - - SampleFlowNode bzs = new SampleFlowNode(); - bzs.setNodeName("班组送样"); - bzs.setNodeKey("flw_team_send"); - bzs.setSort(3700); - - SampleFlowNode ypgk = new SampleFlowNode(); - ypgk.setNodeName("样品归库"); - ypgk.setNodeKey("flw_sample_storage"); - ypgk.setSort(3800); - ypgk.setNextFlowNodeList(null); - flowNodeList.add(ypgk); - - - zxr.setNextFlowNodeList(new ArrayList() { - { - add(BeanUtils.toBean(zxs,SampleFlowNode.class).setIsDefault(true)); - } - }); - flowNodeList.add(zxr); - - - zxs.setNextFlowNodeList(new ArrayList<>() {{ - add(BeanUtils.toBean(bzr,SampleFlowNode.class).setIsDefault(true)); - }}); - flowNodeList.add(zxs); - - bzr.setNextFlowNodeList(new ArrayList<>() {{ - add(BeanUtils.toBean(ypbm,SampleFlowNode.class).setCondition("subSampleEncrypt"));//样品需要编密并且没编密过 - add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("subSampleNotEncrypt"));//样品无需编密或样品已编密过 - }}); - flowNodeList.add(bzr); - - - ypbm.setNextFlowNodeList(new ArrayList<>() {{ - add(BeanUtils.toBean(fx,SampleFlowNode.class).setIsDefault(true)); - }}); - flowNodeList.add(ypbm); - - -// fxr.setNextFlowNodeList(new ArrayList<>() {{ -// add(BeanUtils.toBean(fxs,SampleFlowNode.class).setIsDefault(true)); -// }}); -// flowNodeList.add(fxr); -// -// -// fxs.setNextFlowNodeList(new ArrayList<>() {{ -// add(BeanUtils.toBean(bzs,SampleFlowNode.class).setIsDefault(true).setCondition("当前部门任务已全部分析完")); -// }}); -// flowNodeList.add(fxs); - - fx.setNextFlowNodeList(new ArrayList<>() {{ - add(BeanUtils.toBean(bzs,SampleFlowNode.class).setIsDefault(true).setCondition("当前部门任务已全部分析完")); - }}); - flowNodeList.add(fx); - - bzs.setNextFlowNodeList(new ArrayList<>() {{ -// add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("样品当前分析班组结果超差,需要发起复检")); - add(BeanUtils.toBean(bzr,SampleFlowNode.class).setCondition("subSampleSelfReportedOthersPending"));//当前部门数据已全部判断上报 - add(BeanUtils.toBean(ypgk,SampleFlowNode.class).setCondition("subSampleAlldeptAnalyzed"));//当前样品所有分析任务已全部上报完 - }}); - flowNodeList.add(bzs); - - sampleFlowDefinition.setFlowNodeList(flowNodeList); - - String jsonSampleFlowDefinition = JSON.toJSONString(sampleFlowDefinition); - - System.out.println(jsonSampleFlowDefinition); - - Long tenantId = TenantContextHolder.getRequiredTenantId(); - - List sampleFlowInfoList = new ArrayList<>(); - sampleFlowInfoList.add(new SampleFlowInfo().setId(1967550576457330690L).setIsWeighing(0)); - - SampleFlowParam sampleFlowParam = new SampleFlowParam(); - sampleFlowParam.setSampleSourceType(2); - sampleFlowParam.setCurrentSampleFlowKey("P3000"); - sampleFlowParam.setSampleFlowInfoList(sampleFlowInfoList); - - - - LiteflowResponse response = flowExecutor.execute2Resp("sampleFlowChain" + tenantId, sampleFlowParam, SampleFlowContext.class); - if (response.isSuccess()) { - return success(response.getContextBean(SampleFlowContext.class)); - } else { - return error(1_032_100_000, response.getMessage()); - } - //return success(FlowBus.getNodeMap()); - } + } + /** + * 中心收样并送样 + * @param sampleFlowParam + * @return + */ + @PostMapping("/centerReceiveAndSend") + public CommonResult centerReceiveAndSend(@Validated @RequestBody SampleFlowParam sampleFlowParam) { + //中心收样 + sampleFlowParam.setCurrentSampleFlowKey(QmsCommonConstant.FLOW_NODE_CENTER_RECEIVE); + LiteflowResponse response = sampleFlowService.sampleFlow(sampleFlowParam); + //中心送样 + sampleFlowParam.setCurrentSampleFlowKey(QmsCommonConstant.FLOW_NODE_CENTER_SEND); + sampleFlowParam.setSendSampleOper(null); + response = sampleFlowService.sampleFlow(sampleFlowParam); + return success(response.getContextBean(SampleFlowContext.class)); + } } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/TestController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/TestController.java new file mode 100644 index 0000000..372c7f4 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/TestController.java @@ -0,0 +1,155 @@ +package com.zt.plat.module.qms.business.bus.controller.admin; + +import static com.zt.plat.framework.common.pojo.CommonResult.success; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.alibaba.fastjson2.JSON; +import com.zt.plat.framework.common.pojo.CommonResult; +import com.zt.plat.framework.common.util.object.BeanUtils; +import com.zt.plat.module.qms.core.sampleflow.SampleFlowDefinition; +import com.zt.plat.module.qms.core.sampleflow.SampleFlowNode; + + +@RestController +@RequestMapping("/qms/bus/test") +public class TestController { + + + @GetMapping("/testSampleFlow") + public CommonResult testSampleFlow() { + + SampleFlowDefinition sampleFlowDefinition = new SampleFlowDefinition(); + sampleFlowDefinition.setFlowKey("flw_sub_sample_process"); + sampleFlowDefinition.setFlowName("子样样品流转流程"); + List flowNodeList = new ArrayList<>(); + + SampleFlowNode zxr = new SampleFlowNode(); + zxr.setNodeName("中心收样"); + zxr.setNodeKey("flw_center_receive"); + zxr.setSort(3100); + + SampleFlowNode zxs = new SampleFlowNode(); + zxs.setNodeName("中心送样"); + zxs.setNodeKey("flw_center_send"); + zxs.setSort(3200); + + SampleFlowNode bzr = new SampleFlowNode(); + bzr.setNodeName("班组收样"); + bzr.setNodeKey("flw_team_receive"); + bzr.setSort(3300); + + SampleFlowNode ypbm = new SampleFlowNode(); + ypbm.setNodeName("样品编密"); + ypbm.setNodeKey("flw_sample_encrypt"); + ypbm.setSort(3400); + +// SampleFlowNode fxr = new SampleFlowNode(); +// fxr.setNodeName("分析收样"); +// fxr.setNodeKey("flw_analysis_receive"); +// fxr.setSort(3500); +// + SampleFlowNode fx = new SampleFlowNode(); + fx.setNodeName("样品分析"); + fx.setNodeKey("flw_analysis"); + fx.setSort(3550); +// +// SampleFlowNode fxs = new SampleFlowNode(); +// fxs.setNodeName("分析送样"); +// fxs.setNodeKey("flw_analysis_send"); +// fxs.setSort(3600); + + SampleFlowNode bzs = new SampleFlowNode(); + bzs.setNodeName("班组送样"); + bzs.setNodeKey("flw_team_send"); + bzs.setSort(3700); + + SampleFlowNode ypgk = new SampleFlowNode(); + ypgk.setNodeName("样品归库"); + ypgk.setNodeKey("flw_sample_storage"); + ypgk.setSort(3800); + ypgk.setNextFlowNodeList(null); + flowNodeList.add(ypgk); + + + zxr.setNextFlowNodeList(new ArrayList() { + private static final long serialVersionUID = 6146393613606839512L; + + { + add(BeanUtils.toBean(zxs,SampleFlowNode.class).setIsDefault(true)); + } + }); + flowNodeList.add(zxr); + + + zxs.setNextFlowNodeList(new ArrayList<>() { + private static final long serialVersionUID = 5357543125760924047L; + + { + add(BeanUtils.toBean(bzr,SampleFlowNode.class).setIsDefault(true)); + }}); + flowNodeList.add(zxs); + + bzr.setNextFlowNodeList(new ArrayList<>() { + private static final long serialVersionUID = 6376704859477839016L; + + { + add(BeanUtils.toBean(ypbm,SampleFlowNode.class).setCondition("subSampleEncrypt"));//样品需要编密并且没编密过 + add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("subSampleNotEncrypt"));//样品无需编密或样品已编密过 + }}); + flowNodeList.add(bzr); + + + ypbm.setNextFlowNodeList(new ArrayList<>() { + private static final long serialVersionUID = 1014984817516902869L; + + { + add(BeanUtils.toBean(fx,SampleFlowNode.class).setIsDefault(true)); + }}); + flowNodeList.add(ypbm); + + +// fxr.setNextFlowNodeList(new ArrayList<>() {{ +// add(BeanUtils.toBean(fxs,SampleFlowNode.class).setIsDefault(true)); +// }}); +// flowNodeList.add(fxr); +// +// +// fxs.setNextFlowNodeList(new ArrayList<>() {{ +// add(BeanUtils.toBean(bzs,SampleFlowNode.class).setIsDefault(true).setCondition("当前部门任务已全部分析完")); +// }}); +// flowNodeList.add(fxs); + + fx.setNextFlowNodeList(new ArrayList<>() { + private static final long serialVersionUID = -610440034210287957L; + + { + add(BeanUtils.toBean(bzs,SampleFlowNode.class).setIsDefault(true).setCondition("当前部门任务已全部分析完")); + }}); + flowNodeList.add(fx); + + bzs.setNextFlowNodeList(new ArrayList<>() { + private static final long serialVersionUID = -5057434004685743838L; + + { +// add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("样品当前分析班组结果超差,需要发起复检")); + add(BeanUtils.toBean(bzr,SampleFlowNode.class).setCondition("subSampleSelfReportedOthersPending"));//当前部门数据已全部判断上报 + add(BeanUtils.toBean(ypgk,SampleFlowNode.class).setCondition("subSampleAlldeptAnalyzed"));//当前样品所有分析任务已全部上报完 + }}); + flowNodeList.add(bzs); + + sampleFlowDefinition.setFlowNodeList(flowNodeList); + + String jsonSampleFlowDefinition = JSON.toJSONString(sampleFlowDefinition); + + System.out.println(jsonSampleFlowDefinition); + + return success(jsonSampleFlowDefinition); + } + +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java index c886791..c3b66aa 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisServiceImpl.java @@ -638,7 +638,7 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { List businessSubParentSampleIdList = Arrays.asList(businessAssayTaskDataDO.getBusinessSubParentSampleId()); List businessSubParentSampleAssessmentProjectList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configMethodId); BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentProject = businessSubParentSampleAssessmentProjectList.stream().filter(f -> f.getSimpleName().equals(sourceProject)).findFirst().orElse(null); - if (businessSubParentSampleAssessmentProject == null || StringUtils.isBlank(businessSubParentSampleAssessmentProject.getAssessmentValue())) { + if (businessSubParentSampleAssessmentProject != null && StringUtils.isNotBlank(businessSubParentSampleAssessmentProject.getAssessmentValue())) { businessAssayParameterDataDO.setValue(businessSubParentSampleAssessmentProject.getAssessmentValue()); } } else if (QmsCommonConstant.ENTRUST_COMMISSION_INSPECTION_SAMPLE.equals(baseSampleDO.getDictionaryBusinessKey())) {//如果是委检样 @@ -670,7 +670,7 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { List businessSubParentSampleIdList = Arrays.asList(businessAssayTaskDataDO.getBusinessSubParentSampleId()); List businessSubParentSampleAssessmentProjectList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIdList, configMethodId); BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentProject = businessSubParentSampleAssessmentProjectList.stream().filter(f -> f.getSimpleName().equals(sourceProject)).findFirst().orElse(null); - if (businessSubParentSampleAssessmentProject == null || StringUtils.isBlank(businessSubParentSampleAssessmentProject.getAssessmentValue())) { + if (businessSubParentSampleAssessmentProject != null && StringUtils.isNotBlank(businessSubParentSampleAssessmentProject.getAssessmentValue())) { businessAssayParameterDataDO.setValue(businessSubParentSampleAssessmentProject.getAssessmentValue()); } } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java index bbfdbb5..1e1878a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleResultReportingServiceImpl.java @@ -546,36 +546,6 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe } } - /** - //处理子样分析任务数据 - List businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(reqVO.getBusinessSubParentSampleIds(), reqVO.getConfigAssayMethodId()); - List businessSubSampleIdList = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList()); - List businessSubSampleDOList = businessSubSampleMapper.selectByIds(businessSubSampleIdList); - List businessSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubParentSampleIds(reqVO.getBusinessSubParentSampleIds()); - //根据子样id进行分组 - Map> businessAssayTaskDataDOMap = businessAssayTaskDataDOList.stream().collect(Collectors.groupingBy(BusinessAssayTaskDataDO::getBusinessSubSampleId)); - for (Map.Entry> businessAssayTaskDataDOEntry : businessAssayTaskDataDOMap.entrySet()) { - Long businessSubSampleId = businessAssayTaskDataDOEntry.getKey(); - //子样下的分析任务 - List valList = businessAssayTaskDataDOEntry.getValue(); - //查询子样 - BusinessSubSampleDO businessSubSampleDO = businessSubSampleDOList.stream().filter(f -> businessSubSampleId.equals(f.getId())).findFirst().orElse(null); - //查询子样下的分析班组 - List subSampleAnalysisGroupList = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSampleId)).collect(Collectors.toList()); - for (BusinessSubSampleAnalysisGroupDO subSampleAnalysisGroupDO : subSampleAnalysisGroupList) { - long count = valList.stream().filter(f -> f.getIsReported().equals(QmsCommonConstant.NO) && f.getAssayDepartmentId().equals(subSampleAnalysisGroupDO.getAssayDepartmentId())).count(); - if (count > 0) {//如果还存在未上报的数据,则继续 - continue; - } - subSampleAnalysisGroupDO.setSampleStatus("已完成");//当前班组分析已完成 - updateBusinessSubSampleAnalysisGroupDOList.add(subSampleAnalysisGroupDO); - - updateBusinessSubSampleDOList.add(businessSubSampleDO); - } - - - } - **/ //分析方法信息 ConfigAssayMethodDO configAssayMethodDO = configAssayMethodMapper.selectById(reqVO.getConfigAssayMethodId()); //查询当前分析部门下的分样判定信息 @@ -618,9 +588,6 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe updatebBusinessSampleEntrustRegistrationDOList.add(businessSampleEntrustRegistrationDO); } - - - if (saveBusinessAssayReportDataDOList.size() > 0) { businessAssayReportDataMapper.insertBatch(saveBusinessAssayReportDataDOList); }