diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessAssayTaskController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessAssayTaskController.java index 79151f1..bb33948 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessAssayTaskController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessAssayTaskController.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.BusinessAssayTaskDO; import com.zt.plat.module.qms.business.bus.service.BusinessAssayTaskService; @@ -92,6 +94,10 @@ public class BusinessAssayTaskController implements BusinessControllerMarker { @Operation(summary = "获得检测任务分配业务分页") //@PreAuthorize("@ss.hasPermission('qms:business-assay-task:query')") public CommonResult> getBusinessAssayTaskPage(@Valid BusinessAssayTaskPageReqVO pageReqVO) { + if (pageReqVO.getDeptId() == null) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + pageReqVO.setDeptId(loginUser.getVisitDeptId()); + } PageResult pageResult = businessAssayTaskService.getBusinessAssayTaskPage(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/BusinessAssayTaskDataController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessAssayTaskDataController.java index c2745d0..4b6f999 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessAssayTaskDataController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/BusinessAssayTaskDataController.java @@ -26,6 +26,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.BusinessAssayTaskDataDO; import com.zt.plat.module.qms.business.bus.service.BusinessAssayTaskDataService; @@ -89,6 +91,10 @@ public class BusinessAssayTaskDataController implements BusinessControllerMarker @Operation(summary = "获得未指派的子样检测任务业务分组列表") //@PreAuthorize("@ss.hasPermission('qms:business-assay-task-data:query')") public CommonResult getUnAssayTaskGroupList(BusinessAssayTaskDataReqVO reqVO) { + if (reqVO.getAssayDepartmentId() == null) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + reqVO.setAssayDepartmentId(loginUser.getVisitDeptId()); + } List list = businessAssayTaskDataService.getUnAssayTaskGroupList(reqVO); return success(list); } @@ -97,6 +103,10 @@ public class BusinessAssayTaskDataController implements BusinessControllerMarker @Operation(summary = "获得未审核的子样检测任务业务分组列表") //@PreAuthorize("@ss.hasPermission('qms:business-assay-task-data:query')") public CommonResult getUnAuditTaskGroupList(BusinessAssayTaskDataReqVO reqVO) { + if (reqVO.getAssayDepartmentId() == null) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + reqVO.setAssayDepartmentId(loginUser.getVisitDeptId()); + } List list = businessAssayTaskDataService.getUnAuditTaskGroupList(reqVO); return success(list); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleResultReportingController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleResultReportingController.java index b781363..5d1a3aa 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleResultReportingController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleResultReportingController.java @@ -9,6 +9,8 @@ import com.alibaba.fastjson2.JSONObject; import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; +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.service.SampleResultReportingService; @@ -39,6 +41,10 @@ public class SampleResultReportingController implements BusinessControllerMarker //获取未上报的方法 @GetMapping("/getUnReportMethodGroupList") public CommonResult getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) { + if (reqVO.getAssayDepartmentId() == null) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + reqVO.setAssayDepartmentId(loginUser.getVisitDeptId()); + } List list = sampleResultReportingService.getUnReportMethodGroupList(reqVO); return success(list); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleTaskAssignController.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleTaskAssignController.java index d3d90c8..3da9459 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleTaskAssignController.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/admin/SampleTaskAssignController.java @@ -16,6 +16,8 @@ import com.zt.plat.framework.business.interceptor.BusinessControllerMarker; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO; import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore; +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.liteflow.param.SampleTaskAssignManualParam; import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam; @@ -54,6 +56,10 @@ public class SampleTaskAssignController implements BusinessControllerMarker { @GetMapping("/getAssaySampleList") public CommonResult getAssaySampleList(BusinessAssayTaskDataReqVO reqVO) { + if (reqVO.getAssayDepartmentId() == null) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + reqVO.setAssayDepartmentId(loginUser.getVisitDeptId()); + } List list = sampleTaskAssignService.getAssaySampleList(reqVO); return success(list); } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataExternalInfomation.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataExternalInfomation.java new file mode 100644 index 0000000..ae2cfea --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataExternalInfomation.java @@ -0,0 +1,47 @@ +package com.zt.plat.module.qms.business.bus.controller.vo; + +import java.io.Serializable; +import java.util.List; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +public class BusinessAssayTaskDataExternalInfomation implements Serializable { + + private static final long serialVersionUID = 2740738762124170770L; + + /** 是否退回 **/ + private Integer isRollback; + + /** 回退详情 **/ + private List rollbackDetailList; + + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class RollbackDetail { + + /** + * 退回人ID + */ + private Long rollbackOperId; + + /** + * 退回人 + */ + private String rollbackOper; + + /** + * 退回原因 + */ + private String rollbackReason; + + /** + * 退回时间 yyyy-MM-dd HH:mm:ss + */ + private String rollbackTime; + } + +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataPageReqVO.java index f3e993d..1b2d5d7 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataPageReqVO.java @@ -88,6 +88,9 @@ public class BusinessAssayTaskDataPageReqVO extends PageParam { @Schema(description = "复测次数", example = "28081") private Integer retestCount; + @Schema(description = "扩展信息") + private String externalInfomation; + @Schema(description = "乐观锁", example = "11435") private Integer updateCount; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataReqVO.java index 2b07b19..d788436 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataReqVO.java @@ -86,6 +86,9 @@ public class BusinessAssayTaskDataReqVO { @Schema(description = "复测次数", example = "28081") private Integer retestCount; + @Schema(description = "扩展信息") + private String externalInfomation; + @Schema(description = "乐观锁", example = "11435") private Integer updateCount; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataRespVO.java index a816ec3..6f47a33 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataRespVO.java @@ -111,6 +111,9 @@ public class BusinessAssayTaskDataRespVO { @ExcelProperty("复测次数") private Integer retestCount; + @Schema(description = "扩展信息") + private String externalInfomation; + @Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "11435") @ExcelProperty("乐观锁") private Integer updateCount; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataSaveReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataSaveReqVO.java index bf51bf5..fd58915 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataSaveReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/controller/vo/BusinessAssayTaskDataSaveReqVO.java @@ -96,6 +96,9 @@ public class BusinessAssayTaskDataSaveReqVO { @Schema(description = "复测次数", example = "28081") private Integer retestCount; + @Schema(description = "扩展信息") + private String externalInfomation; + @Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "11435") private Integer updateCount; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayTaskDataDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayTaskDataDO.java index e5a4d11..14fa03a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayTaskDataDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/dal/dataobject/BusinessAssayTaskDataDO.java @@ -150,6 +150,11 @@ public class BusinessAssayTaskDataDO extends BusinessBaseDO { @TableField("RTST_CNT") private Integer retestCount; /** + * 扩展信息 + */ + @TableField("EXT_INF") + private String externalInfomation; + /** * 乐观锁 */ @TableField("UPD_CNT") diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java index 430547f..bb8ebfb 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/business/bus/service/SampleAnalysisAuditServiceImpl.java @@ -327,49 +327,54 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic List businessAssayTaskDetailList = businessAssayTaskDetailMapper.selectList(new LambdaQueryWrapperX().eq(BusinessAssayTaskDetailDO::getBusinessAssayTaskId, businessAssayTaskDO.getId())); List businessAssayTaskDataList = businessAssayTaskDataMapper.selectList(new LambdaQueryWrapperX().eq(BusinessAssayTaskDataDO::getBusinessAssayTaskId, businessAssayTaskDO.getId()).eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, businessAssayTaskDO.getConfigAssayMethodId())); - for (BusinessAssayTaskDataDO businessAssayTaskDataDO : businessAssayTaskDataList) { - BusinessAssayTaskDetailDO businessAssayTaskDetailDO = businessAssayTaskDetailList.stream().filter(f -> f.getSampleId().equals(businessAssayTaskDataDO.getBusinessSubSampleId())).findFirst().orElse(null); - + for (BusinessAssayTaskDetailDO businessAssayTaskDetailDO : businessAssayTaskDetailList) { Map map = new HashedMap<>(); - map.put("businessAssayTaskDataId", businessAssayTaskDataDO.getId()); - map.put("businessAssayTaskId", businessAssayTaskDataDO.getBusinessAssayTaskId()); - map.put("businessSubSampleId", businessAssayTaskDataDO.getBusinessSubSampleId()); - map.put("businessSubParentSampleId", businessAssayTaskDataDO.getBusinessSubParentSampleId()); - map.put("configAssayMethodId", businessAssayTaskDataDO.getConfigAssayMethodId()); + map.put("businessAssayTaskDetailId", businessAssayTaskDetailDO.getId()); map.put("sampleCode", businessAssayTaskDetailDO.getSampleCode()); map.put("sampleName", businessAssayTaskDetailDO.getSampleName()); map.put("analysisType", "analysis"); map.put("assayTime", businessAssayTaskJson.get("assayTime")); + map.put("taskDetailRemark", businessAssayTaskDetailDO.getRemark()); - List businessAssayTaskParameterDataList = businessAssayTaskParameterDataMapper.selectByBusinessAssayTaskDataIds(Arrays.asList(businessAssayTaskDataDO.getId())); - for (BusinessAssayProjectAndParameterRespVO businessAssayTaskParameterDataDO : businessAssayTaskParameterDataList) { - map.put(businessAssayTaskParameterDataDO.getName(), businessAssayTaskParameterDataDO.getValue()); - } + if (!"returned".equals(businessAssayTaskDetailDO.getRollbackStatus())) { + BusinessAssayTaskDataDO businessAssayTaskDataDO = businessAssayTaskDataList.stream().filter(f -> businessAssayTaskDetailDO.getBusinessAssayTaskDataId().equals(f.getId())).findFirst().orElse(null); + map.put("businessAssayTaskDataId", businessAssayTaskDataDO.getId()); + map.put("businessAssayTaskId", businessAssayTaskDataDO.getBusinessAssayTaskId()); + map.put("businessSubSampleId", businessAssayTaskDataDO.getBusinessSubSampleId()); + map.put("businessSubParentSampleId", businessAssayTaskDataDO.getBusinessSubParentSampleId()); + map.put("configAssayMethodId", businessAssayTaskDataDO.getConfigAssayMethodId()); + + List businessAssayTaskParameterDataList = businessAssayTaskParameterDataMapper.selectByBusinessAssayTaskDataIds(Arrays.asList(businessAssayTaskDataDO.getId())); + for (BusinessAssayProjectAndParameterRespVO businessAssayTaskParameterDataDO : businessAssayTaskParameterDataList) { + map.put(businessAssayTaskParameterDataDO.getName(), businessAssayTaskParameterDataDO.getValue()); + } - BusinessAssayProjectDataReqVO projectDataSearch2 = new BusinessAssayProjectDataReqVO(); - projectDataSearch2.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); - List projectAndParameterList2 = businessAssayProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2); - for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) { - String ev = ep.getValue(); - if (StringUtils.isNotBlank(ep.getSymbol()) && !"=".equals(ep.getSymbol())) { - ev = ep.getSymbol() + ev; - } - map.put(ep.getName(), ev); - if (StringUtils.isNotEmpty(ep.getFormula())) { - BusinessAssayParameterDataReqVO parameterDataSearch = new BusinessAssayParameterDataReqVO(); - parameterDataSearch.setBusinessAssayProjectDataId(ep.getId()); - List plist = businessAssayParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch); - for (BusinessAssayProjectAndParameterRespVO p : plist) { - String v = p.getValue(); - if (StringUtils.isNotBlank(p.getSymbol()) && !"=".equals(p.getSymbol())) { - v = p.getSymbol() + v; - } - map.put(p.getName(), v); + BusinessAssayProjectDataReqVO projectDataSearch2 = new BusinessAssayProjectDataReqVO(); + projectDataSearch2.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); + List projectAndParameterList2 = businessAssayProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2); + for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) { + String ev = ep.getValue(); + if (StringUtils.isNotBlank(ep.getSymbol()) && !"=".equals(ep.getSymbol())) { + ev = ep.getSymbol() + ev; } + map.put(ep.getName(), ev); + if (StringUtils.isNotEmpty(ep.getFormula())) { + BusinessAssayParameterDataReqVO parameterDataSearch = new BusinessAssayParameterDataReqVO(); + parameterDataSearch.setBusinessAssayProjectDataId(ep.getId()); + List plist = businessAssayParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch); + for (BusinessAssayProjectAndParameterRespVO p : plist) { + String v = p.getValue(); + if (StringUtils.isNotBlank(p.getSymbol()) && !"=".equals(p.getSymbol())) { + v = p.getSymbol() + v; + } + map.put(p.getName(), v); + } + } + } - } + datas.add(map); } @@ -451,54 +456,65 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic List businessAssayTaskDetailList = businessAssayTaskDetailMapper.selectList(new LambdaQueryWrapperX().eq(BusinessAssayTaskDetailDO::getBusinessAssayTaskId, businessAssayTaskDO.getId())); List businessAssayTaskDataList = businessAssayTaskDataMapper.selectList(new LambdaQueryWrapperX().eq(BusinessAssayTaskDataDO::getBusinessAssayTaskId, businessAssayTaskDO.getId()).eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, businessAssayTaskDO.getConfigAssayMethodId())); - for (BusinessAssayTaskDataDO businessAssayTaskDataDO : businessAssayTaskDataList) { - BusinessAssayTaskDetailDO businessAssayTaskDetailDO = businessAssayTaskDetailList.stream().filter(f -> f.getSampleId().equals(businessAssayTaskDataDO.getBusinessSubSampleId())).findFirst().orElse(null); + for (BusinessAssayTaskDetailDO businessAssayTaskDetailDO : businessAssayTaskDetailList) { + //BusinessAssayTaskDetailDO businessAssayTaskDetailDO = businessAssayTaskDetailList.stream().filter(f -> f.getSampleId().equals(businessAssayTaskDataDO.getBusinessSubSampleId())).findFirst().orElse(null); HashedMap map = new HashedMap<>(); - map.put("businessAssayTaskDataId", businessAssayTaskDataDO.getId()); - map.put("businessAssayTaskId", businessAssayTaskDataDO.getBusinessAssayTaskId()); - map.put("businessSubSampleId", businessAssayTaskDataDO.getBusinessSubSampleId()); - map.put("businessSubParentSampleId", businessAssayTaskDataDO.getBusinessSubParentSampleId()); - map.put("configAssayMethodId", businessAssayTaskDataDO.getConfigAssayMethodId()); map.put("businessAssayTaskDetailId", businessAssayTaskDetailDO.getId()); map.put("sampleCode", businessAssayTaskDetailDO.getSampleCode()); map.put("sampleName", businessAssayTaskDetailDO.getSampleName()); map.put("analysisType", "analysis"); map.put("assayTime", businessAssayTaskJson.get("assayTime")); + map.put("taskDetailRemark", businessAssayTaskDetailDO.getRemark()); - List businessAssayTaskParameterDataList = businessAssayTaskParameterDataMapper.selectByBusinessAssayTaskDataIds(Arrays.asList(businessAssayTaskDataDO.getId())); - for (BusinessAssayProjectAndParameterRespVO businessAssayTaskParameterDataDO : businessAssayTaskParameterDataList) { - map.put(businessAssayTaskParameterDataDO.getName(), businessAssayTaskParameterDataDO.getValue()); + + if (!"returned".equals(businessAssayTaskDetailDO.getRollbackStatus())) { + BusinessAssayTaskDataDO businessAssayTaskDataDO = businessAssayTaskDataList.stream().filter(f -> businessAssayTaskDetailDO.getBusinessAssayTaskDataId().equals(f.getId())).findFirst().orElse(null); + + map.put("businessAssayTaskDataId", businessAssayTaskDataDO.getId()); + map.put("businessAssayTaskId", businessAssayTaskDataDO.getBusinessAssayTaskId()); + map.put("businessSubSampleId", businessAssayTaskDataDO.getBusinessSubSampleId()); + map.put("businessSubParentSampleId", businessAssayTaskDataDO.getBusinessSubParentSampleId()); + map.put("configAssayMethodId", businessAssayTaskDataDO.getConfigAssayMethodId()); + + List businessAssayTaskParameterDataList = businessAssayTaskParameterDataMapper.selectByBusinessAssayTaskDataIds(Arrays.asList(businessAssayTaskDataDO.getId())); + for (BusinessAssayProjectAndParameterRespVO businessAssayTaskParameterDataDO : businessAssayTaskParameterDataList) { + map.put(businessAssayTaskParameterDataDO.getName(), businessAssayTaskParameterDataDO.getValue()); + } + + BusinessAssayProjectDataReqVO projectDataSearch2 = new BusinessAssayProjectDataReqVO(); + projectDataSearch2.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); + List projectAndParameterList2 = businessAssayProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2); + for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) { + HashedMap newMap = SerializationUtils.clone(map); + String projectSymbol = ""; + if (StringUtils.isNotBlank(ep.getSymbol()) && !"=".equals(ep.getSymbol())) { + projectSymbol = ep.getSymbol(); + } +// newMap.put(ep.getName(), ep.getValue()); + newMap.put("projectName", ep.getShowName()); + newMap.put("projectValue", ep.getValue()); + newMap.put("projectSymbol", projectSymbol); + newMap.put("projectUnit", ep.getUnit()); + if (StringUtils.isNotEmpty(ep.getFormula())) { + BusinessAssayParameterDataReqVO parameterDataSearch = new BusinessAssayParameterDataReqVO(); + parameterDataSearch.setBusinessAssayProjectDataId(ep.getId()); + List plist = businessAssayParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch); + for (BusinessAssayProjectAndParameterRespVO p : plist) { + String v = p.getValue(); + if (StringUtils.isNotBlank(p.getSymbol()) && !"=".equals(p.getSymbol())) { + v = p.getSymbol() + v; + } + newMap.put(p.getName(), v); + } + } + datas.add(newMap); + } + + } else { + datas.add(map); } - BusinessAssayProjectDataReqVO projectDataSearch2 = new BusinessAssayProjectDataReqVO(); - projectDataSearch2.setBusinessAssayTaskDataId(businessAssayTaskDataDO.getId()); - List projectAndParameterList2 = businessAssayProjectDataMapper.selectProjectAndParameterBy(projectDataSearch2); - for (BusinessAssayProjectAndParameterRespVO ep : projectAndParameterList2) { - HashedMap newMap = SerializationUtils.clone(map); - String projectSymbol = ""; - if (StringUtils.isNotBlank(ep.getSymbol()) && !"=".equals(ep.getSymbol())) { - projectSymbol = ep.getSymbol(); - } -// newMap.put(ep.getName(), ep.getValue()); - newMap.put("projectName", ep.getShowName()); - newMap.put("projectValue", ep.getValue()); - newMap.put("projectSymbol", projectSymbol); - newMap.put("projectUnit", ep.getUnit()); - if (StringUtils.isNotEmpty(ep.getFormula())) { - BusinessAssayParameterDataReqVO parameterDataSearch = new BusinessAssayParameterDataReqVO(); - parameterDataSearch.setBusinessAssayProjectDataId(ep.getId()); - List plist = businessAssayParameterDataMapper.selectProjectAndParameterBy(parameterDataSearch); - for (BusinessAssayProjectAndParameterRespVO p : plist) { - String v = p.getValue(); - if (StringUtils.isNotBlank(p.getSymbol()) && !"=".equals(p.getSymbol())) { - v = p.getSymbol() + v; - } - newMap.put(p.getName(), v); - } - } - datas.add(newMap); - } } List businessQCManagementDataDOList = businessQCManagementDataMapper.selectByBusinessAssayTaskId(businessAssayTaskDO.getId()); 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 b780a8f..a85d3c9 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 @@ -21,8 +21,10 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.zt.plat.framework.common.exception.ServiceException; +import com.zt.plat.framework.common.util.date.DateUtils; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX; +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.BatchSampleAnalysisColumnRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayParameterDataExtendRespVO; @@ -34,6 +36,8 @@ import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskAnalys import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskAnalysisSampleProjectRespVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskBackSampleReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataExtendRespVO; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataExternalInfomation; +import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataExternalInfomation.RollbackDetail; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessQCCoefficientParameterDataReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessQCManagementParameterDataReqVO; import com.zt.plat.module.qms.business.bus.controller.vo.BusinessQCManagementProjectDataReqVO; @@ -96,6 +100,8 @@ import com.zt.plat.module.qms.enums.QmsCommonConstant; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import jakarta.annotation.Resource; @Service @@ -1317,14 +1323,56 @@ public class SampleAnalysisServiceImpl implements SampleAnalysisService { @Override public void rollbackAnalysisSample(BusinessAssayTaskBackSampleReqVO req) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + String loginUserNickname = SecurityFrameworkUtils.getLoginUserNickname(); List businessAssayTaskDetailList = businessAssayTaskDetailMapper.selectByIds(req.getIdList()); for (BusinessAssayTaskDetailDO businessAssayTaskDetailDO : businessAssayTaskDetailList) { businessAssayTaskDetailDO.setRollbackStatus("returned"); businessAssayTaskDetailDO.setRemark(req.getBackDesc()); } + List businessAssayTaskDataIdList = businessAssayTaskDetailList.stream().map(m -> m.getBusinessAssayTaskDataId()).collect(Collectors.toList()); + List businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByIds(businessAssayTaskDataIdList); + for (BusinessAssayTaskDataDO businessAssayTaskDataDO : businessAssayTaskDataDOList) { + businessAssayTaskDataDO.setBusinessAssayTaskId(null); + businessAssayTaskDataDO.setAssayOperatorId(null); + businessAssayTaskDataDO.setAssayOperator(null); + businessAssayTaskDataDO.setAssignTaskTime(null); + businessAssayTaskDataDO.setIsAssignTasked(0); + + BusinessAssayTaskDataExternalInfomation businessAssayTaskDataExternalInfomation = null; + String externalInfomation = businessAssayTaskDataDO.getExternalInfomation(); + if (StringUtils.isNotBlank(externalInfomation)) { + businessAssayTaskDataExternalInfomation = JSON.parseObject(externalInfomation, BusinessAssayTaskDataExternalInfomation.class); + } else { + businessAssayTaskDataExternalInfomation = new BusinessAssayTaskDataExternalInfomation(); + } + + businessAssayTaskDataExternalInfomation.setIsRollback(QmsCommonConstant.YES); + + List rollbackDetailList = businessAssayTaskDataExternalInfomation.getRollbackDetailList(); + if (CollUtil.isEmpty(businessAssayTaskDataDOList)) { + rollbackDetailList = new ArrayList<>(); + } + //回退详情 + RollbackDetail rollbackDetail = new RollbackDetail(); + rollbackDetail.setRollbackOperId(loginUser.getId()); + rollbackDetail.setRollbackOper(loginUserNickname); + rollbackDetail.setRollbackReason(req.getBackDesc()); + rollbackDetail.setRollbackTime(DateUtil.formatLocalDateTime(LocalDateTime.now())); + rollbackDetailList.add(rollbackDetail); + + businessAssayTaskDataExternalInfomation.setRollbackDetailList(rollbackDetailList); + businessAssayTaskDataDO.setExternalInfomation(JSON.toJSONString(businessAssayTaskDataExternalInfomation)); + + } - businessAssayTaskDetailMapper.updateBatch(businessAssayTaskDetailList); + if (CollUtil.isNotEmpty(businessAssayTaskDetailList)) { + businessAssayTaskDetailMapper.updateBatch(businessAssayTaskDetailList); + } + if (CollUtil.isNotEmpty(businessAssayTaskDataDOList)) { + businessAssayTaskDataMapper.updateBatch(businessAssayTaskDataDOList); + } } @Override