From 2336c370fa32df580cf3cebd60b3974011c291b0 Mon Sep 17 00:00:00 2001 From: wxr Date: Mon, 26 Jan 2026 17:54:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E9=AA=8C=E5=A7=94=E6=89=98=E7=9A=84?= =?UTF-8?q?=E4=B8=80=E8=88=AC=E5=A7=94=E6=89=98=E5=92=8C=E4=BB=B2=E8=A3=81?= =?UTF-8?q?=E5=A7=94=E6=89=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/qms/enums/QmsCommonConstant.java | 1 + .../BusinessHandoverRecordSubController.java | 7 +++++ .../BusinessSampleHandoverController.java | 7 +++++ .../entrust/SampleEntrustCreateDataCmp.java | 23 ++++++++++++++ .../SampleEntrustGenSampleDataCmp.java | 4 ++- .../entrust/SampleEntrustUpdateDataCmp.java | 31 +++++++++++++++++-- .../flow/SampleSubProcessUpdateCmp.java | 2 +- .../service/BusinessSubSampleServiceImpl.java | 12 +++---- 8 files changed, 76 insertions(+), 11 deletions(-) diff --git a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java index 90824f2..6351b1d 100644 --- a/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java +++ b/zt-module-qms/zt-module-qms-api/src/main/java/com/zt/plat/module/qms/enums/QmsCommonConstant.java @@ -211,4 +211,5 @@ public interface QmsCommonConstant { /** 临时数据标识 **/ String TEMP_DATA_CODE = "-1"; + } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessHandoverRecordSubController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessHandoverRecordSubController.java index 7370d56..c9fc1ea 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessHandoverRecordSubController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessHandoverRecordSubController.java @@ -29,6 +29,8 @@ import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIg import static com.zt.plat.framework.common.pojo.CommonResult.success; import com.zt.plat.framework.excel.core.util.ExcelUtils; +import com.zt.plat.framework.security.core.LoginUser; +import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessHandoverRecordSubDO; import com.zt.plat.module.qms.business.bus.service.BusinessHandoverRecordSubService; @@ -92,6 +94,11 @@ public class BusinessHandoverRecordSubController implements BusinessControllerMa @Operation(summary = "获得子样交接记录业务分页") //@PreAuthorize("@ss.hasPermission('qms:business-handover-record-sub:query')") public CommonResult> getBusinessHandoverRecordSubPage(@Valid BusinessHandoverRecordSubPageReqVO pageReqVO) { + if (pageReqVO.getDeptId() == null) { + //当前登录用户 + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + pageReqVO.setDeptId(loginUser.getVisitDeptId()); + } PageResult pageResult = businessHandoverRecordSubService.getBusinessHandoverRecordSubPage(pageReqVO); return success(pageResult); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleHandoverController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleHandoverController.java index 7dbea2d..62c1432 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleHandoverController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessSampleHandoverController.java @@ -28,6 +28,8 @@ import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIg import static com.zt.plat.framework.common.pojo.CommonResult.success; import com.zt.plat.framework.excel.core.util.ExcelUtils; +import com.zt.plat.framework.security.core.LoginUser; +import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; import com.zt.plat.module.qms.business.bus.controller.vo.*; import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleHandoverDO; import com.zt.plat.module.qms.business.bus.service.BusinessSampleHandoverService; @@ -100,6 +102,11 @@ public class BusinessSampleHandoverController { @Operation(summary = "获得样品交接单业务分页") //@PreAuthorize("@ss.hasPermission('qms:business-sample-handover:query')") public CommonResult> getBusinessSampleHandoverPage(@Valid BusinessSampleHandoverPageReqVO pageReqVO) { + if (pageReqVO.getDeptId() == null) { + //当前登录用户 + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + pageReqVO.setDeptId(loginUser.getVisitDeptId()); + } PageResult pageResult = businessSampleHandoverService.getBusinessSampleHandoverPage(pageReqVO); return success(BeanUtils.toBean(pageResult, BusinessSampleHandoverRespVO.class)); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustCreateDataCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustCreateDataCmp.java index 6fd2513..fc9912c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustCreateDataCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustCreateDataCmp.java @@ -2,6 +2,8 @@ package com.zt.plat.module.qms.business.bus.liteflow.sample.entrust; import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; @@ -83,6 +85,18 @@ public class SampleEntrustCreateDataCmp extends NodeComponent { List sampleAssayResultList = new ArrayList<>(); + //提取委托单号 + String year = null; + String number = null; + Pattern pattern = Pattern.compile("\\((\\d+)\\)第(\\d+)号"); + //一般委托或仲裁委托才提取 + if ("xsqywtybwt".equals(configEntrustSource.getKey()) || "xsqywtzcwt".equals(configEntrustSource.getKey())) { + Matcher matcher = pattern.matcher(sampleEntrustRegistration.getEntrustNumber()); + if (matcher.find()) { + year = matcher.group(1); // "2026" + number = matcher.group(2); // "0027" + } + } List sampleEntrustDetailList = sampleEntrustContext.getSampleEntrustDetailList(); for (BusinessSampleEntrustDetailDO businessSampleEntrustDetail : sampleEntrustDetailList) { businessSampleEntrustDetail.setBusinessSampleEntrustRegistrationId(sampleEntrustRegistration.getId()); @@ -93,6 +107,15 @@ public class SampleEntrustCreateDataCmp extends NodeComponent { sampleAssayResult.setData(businessSampleEntrustDetail.getForecastResult()); sampleAssayResultList.add(sampleAssayResult); } + + //一般委托 + if ("xsqywtybwt".equals(configEntrustSource.getKey())) { + String sampleCode = "W" + year + number + "-" + StringUtils.leftPad(businessSampleEntrustDetail.getSort().toString(), 2, "0"); + businessSampleEntrustDetail.setSampleCode(sampleCode); + } else if ("xsqywtzcwt".equals(configEntrustSource.getKey())) {//仲裁委托 + String sampleCode = "ZW" + year + number + "-" + StringUtils.leftPad(businessSampleEntrustDetail.getSort().toString(), 2, "0"); + businessSampleEntrustDetail.setSampleCode(sampleCode); + } } List sampleEntrustProjectList = sampleEntrustContext.getSampleEntrustProjectList(); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java index bc31ae3..f221b27 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustGenSampleDataCmp.java @@ -334,7 +334,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent { businessBaseSampleDO.setDictionaryBusinessId(businessSampleEntrustDetailDO.getSampleTypeDictionaryBusinessId()); //生成样品编号 String sampleCode = businessSampleEntrustDetailDO.getEntrustSampleCode();//默认取来样编号 - if (StringUtils.isNotBlank(configBaseSample.getCodeRule())) {//如果配置了样品编号生成规则,则以生成规则为准 + if (StringUtils.isNotBlank(businessSampleEntrustDetailDO.getSampleCode())) {//如果已经提前生成, + sampleCode = businessSampleEntrustDetailDO.getSampleCode(); + } else if (StringUtils.isNotBlank(configBaseSample.getCodeRule())) {//如果配置了样品编号生成规则,则以生成规则为准 sampleCode = sequenceUtil.genCode(configBaseSample.getCodeRule()); } businessBaseSampleDO.setSampleCode(sampleCode); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustUpdateDataCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustUpdateDataCmp.java index 9e559f2..10d6ce5 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustUpdateDataCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/entrust/SampleEntrustUpdateDataCmp.java @@ -2,6 +2,8 @@ package com.zt.plat.module.qms.business.bus.liteflow.sample.entrust; import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; @@ -47,6 +49,8 @@ public class SampleEntrustUpdateDataCmp extends NodeComponent { SampleEntrustContext sampleEntrustContext = this.getContextBean(SampleEntrustContext.class); //样品委托 BusinessSampleEntrustRegistrationDO sampleEntrustRegistration = sampleEntrustContext.getSampleEntrustRegistration(); + BusinessSampleEntrustRegistrationDO oldSampleEntrustRegistration = businessSampleEntrustRegistrationMapper.selectById(sampleEntrustRegistration.getId()); + sampleEntrustRegistration.setEntrustNumber(oldSampleEntrustRegistration.getEntrustNumber());//重新赋值委托单号 //获取委托来源配置 ConfigEntrustSourceDO configEntrustSource = sampleEntrustContext.getConfigEntrustSourceById(sampleEntrustRegistration.getConfigEntrustSourceId()); @@ -80,8 +84,19 @@ public class SampleEntrustUpdateDataCmp extends NodeComponent { //保存更新新的 List sampleAssayResultList = new ArrayList<>(); - - + + //提取委托单号 + String year = null; + String number = null; + Pattern pattern = Pattern.compile("\\((\\d+)\\)第(\\d+)号"); + //一般委托或仲裁委托才提取 + if ("xsqywtybwt".equals(configEntrustSource.getKey()) || "xsqywtzcwt".equals(configEntrustSource.getKey())) { + Matcher matcher = pattern.matcher(sampleEntrustRegistration.getEntrustNumber()); + if (matcher.find()) { + year = matcher.group(1); // "2026" + number = matcher.group(2); // "0027" + } + } List sampleEntrustDetailList = sampleEntrustContext.getSampleEntrustDetailList(); for (BusinessSampleEntrustDetailDO businessSampleEntrustDetail : sampleEntrustDetailList) { businessSampleEntrustDetail.setBusinessSampleEntrustRegistrationId(sampleEntrustRegistration.getId()); @@ -92,6 +107,16 @@ public class SampleEntrustUpdateDataCmp extends NodeComponent { sampleAssayResult.setData(businessSampleEntrustDetail.getForecastResult()); sampleAssayResultList.add(sampleAssayResult); } + + //一般委托 + if ("xsqywtybwt".equals(configEntrustSource.getKey())) { + String sampleCode = "W" + year + number + "-" + StringUtils.leftPad(businessSampleEntrustDetail.getSort().toString(), 2, "0"); + businessSampleEntrustDetail.setSampleCode(sampleCode); + } else if ("xsqywtzcwt".equals(configEntrustSource.getKey())) {//仲裁委托 + String sampleCode = "ZW" + year + number + "-" + StringUtils.leftPad(businessSampleEntrustDetail.getSort().toString(), 2, "0"); + businessSampleEntrustDetail.setSampleCode(sampleCode); + } + } List sampleEntrustProjectList = sampleEntrustContext.getSampleEntrustProjectList(); @@ -119,5 +144,5 @@ public class SampleEntrustUpdateDataCmp extends NodeComponent { } } - + } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java index caf6a86..75f6188 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/liteflow/sample/flow/SampleSubProcessUpdateCmp.java @@ -145,7 +145,7 @@ public class SampleSubProcessUpdateCmp extends NodeComponent { } //如果是班组送样,需要更新分析班组表 - if (QmsCommonConstant.FLOW_NODE_ANALYSIS_SEND.equals(currentSampleFlowKey)) { + if (QmsCommonConstant.FLOW_NODE_TEAM_SEND.equals(currentSampleFlowKey)) { List curDeptSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getAssayDepartmentId().equals(loginUser.getVisitDeptId())).collect(Collectors.toList()); for (BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO : curDeptSubSampleAnalysisGroupDOList) { businessSubSampleAnalysisGroupDO.setIsSend(QmsCommonConstant.YES); diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSubSampleServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSubSampleServiceImpl.java index f9226d0..a053190 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSubSampleServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/BusinessSubSampleServiceImpl.java @@ -235,18 +235,18 @@ public class BusinessSubSampleServiceImpl implements BusinessSubSampleService { @Override public BusinessSubSampleExtendRespVO getBySampleCodeAndFlowKey(@Valid BusinessSubSampleReqVO reqVO) { -// LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); BusinessSubSampleExtendRespVO subSample = null; if (QmsCommonConstant.FLOW_NODE_TEAM_RECEIVE.equals(reqVO.getSampleFlowNodeKey())) { subSample = businessSubSampleMapper.getBySampleCode(reqVO); if (subSample == null) { return subSample; } -// List businessSubSampleAnalysisGroupList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubSampleId(subSample.getId()); -// BusinessSubSampleAnalysisGroupDO receiveSample = businessSubSampleAnalysisGroupList.stream().filter(f -> "已收样".equals(f.getSampleStatus()) && !f.getAssayDepartmentId().equals(loginUser.getVisitDeptId())).findFirst().orElse(null); -// if (receiveSample != null) { -// throw new ServiceException(1_032_100_000, "当前样品在" + receiveSample.getAssayDepartmentName() + ",不允许收样!"); -// } + List businessSubSampleAnalysisGroupList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubSampleId(subSample.getId()); + BusinessSubSampleAnalysisGroupDO receiveSample = businessSubSampleAnalysisGroupList.stream().filter(f -> f.getAssayDepartmentId().equals(loginUser.getVisitDeptId())).findFirst().orElse(null); + if (receiveSample == null) { + throw new ServiceException(1_032_100_000, "当前样品不在" + loginUser.getVisitDeptName() + ",不允许收样!"); + } } else { subSample = businessSubSampleMapper.getBySampleCodeAndFlowKey(reqVO); }