Merge remote-tracking branch 'origin/test' into test
This commit is contained in:
37
pom.xml
37
pom.xml
@@ -18,6 +18,9 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<revision>3.0.47-SNAPSHOT</revision>
|
<revision>3.0.47-SNAPSHOT</revision>
|
||||||
|
<!-- qms服务相关 -->
|
||||||
|
<zzjc.tio.version>3.9.1.v20251204-RELEASE</zzjc.tio.version>
|
||||||
|
<liteflow.version>2.15.3</liteflow.version>
|
||||||
<!-- Maven 相关 -->
|
<!-- Maven 相关 -->
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||||
@@ -41,6 +44,40 @@
|
|||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<!-- liteflow -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.yomahub</groupId>
|
||||||
|
<artifactId>liteflow-spring-boot-starter</artifactId>
|
||||||
|
<version>${liteflow.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.yomahub</groupId>
|
||||||
|
<artifactId>liteflow-script-javax-pro</artifactId>
|
||||||
|
<version>${liteflow.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.yomahub</groupId>
|
||||||
|
<artifactId>liteflow-script-groovy</artifactId>
|
||||||
|
<version>${liteflow.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.yomahub</groupId>
|
||||||
|
<artifactId>liteflow-script-qlexpress</artifactId>
|
||||||
|
<version>${liteflow.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.yomahub</groupId>
|
||||||
|
<artifactId>liteflow-script-graaljs</artifactId>
|
||||||
|
<version>${liteflow.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- tio -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>tech.zzjc.tio</groupId>
|
||||||
|
<artifactId>zzjc-tio-spring-boot-starter</artifactId>
|
||||||
|
<version>${zzjc.tio.version}</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
|||||||
@@ -16,10 +16,7 @@
|
|||||||
<description>
|
<description>
|
||||||
QMS模块。
|
QMS模块。
|
||||||
</description>
|
</description>
|
||||||
<properties>
|
|
||||||
<zzjc.tio.version>3.9.1.v20251204-RELEASE</zzjc.tio.version>
|
|
||||||
<liteflow.version>2.15.2</liteflow.version>
|
|
||||||
</properties>
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- Spring Cloud 基础 -->
|
<!-- Spring Cloud 基础 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -142,27 +139,22 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.yomahub</groupId>
|
<groupId>com.yomahub</groupId>
|
||||||
<artifactId>liteflow-spring-boot-starter</artifactId>
|
<artifactId>liteflow-spring-boot-starter</artifactId>
|
||||||
<version>${liteflow.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.yomahub</groupId>
|
<groupId>com.yomahub</groupId>
|
||||||
<artifactId>liteflow-script-javax-pro</artifactId>
|
<artifactId>liteflow-script-javax-pro</artifactId>
|
||||||
<version>${liteflow.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.yomahub</groupId>
|
<groupId>com.yomahub</groupId>
|
||||||
<artifactId>liteflow-script-groovy</artifactId>
|
<artifactId>liteflow-script-groovy</artifactId>
|
||||||
<version>${liteflow.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.yomahub</groupId>
|
<groupId>com.yomahub</groupId>
|
||||||
<artifactId>liteflow-script-qlexpress</artifactId>
|
<artifactId>liteflow-script-qlexpress</artifactId>
|
||||||
<version>${liteflow.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.yomahub</groupId>
|
<groupId>com.yomahub</groupId>
|
||||||
<artifactId>liteflow-script-graaljs</artifactId>
|
<artifactId>liteflow-script-graaljs</artifactId>
|
||||||
<version>${liteflow.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- pdfbox -->
|
<!-- pdfbox -->
|
||||||
@@ -199,7 +191,6 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>tech.zzjc.tio</groupId>
|
<groupId>tech.zzjc.tio</groupId>
|
||||||
<artifactId>zzjc-tio-spring-boot-starter</artifactId>
|
<artifactId>zzjc-tio-spring-boot-starter</artifactId>
|
||||||
<version>${zzjc.tio.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
|
|||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
import com.zt.plat.framework.datapermission.core.annotation.DeptDataPermissionIgnore;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.*;
|
import com.zt.plat.module.qms.business.bus.controller.vo.*;
|
||||||
|
import com.zt.plat.module.qms.business.bus.controller.vo.BatchAssessmentDataReportingReqVO.BusinessSubSampleIdAndRetestCount;
|
||||||
import com.zt.plat.module.qms.business.bus.service.SampleAnalysisAuditService;
|
import com.zt.plat.module.qms.business.bus.service.SampleAnalysisAuditService;
|
||||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
|
|
||||||
@@ -39,7 +40,7 @@ public class SampleAnalysisAuditController implements BusinessControllerMarker {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/crossAudit")
|
@PostMapping("/crossAudit")
|
||||||
public CommonResult<?> crossAudit(Long businessAssayTaskId, String auditStatus) {
|
public CommonResult<?> crossAudit(Long businessAssayTaskId, String auditStatus) {
|
||||||
sampleAnalysisAuditService.crossAuditByByTaskId(businessAssayTaskId, auditStatus);
|
sampleAnalysisAuditService.crossAuditByTaskId(businessAssayTaskId, auditStatus);
|
||||||
return success("成功");
|
return success("成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,23 +89,23 @@ public class SampleAnalysisAuditController implements BusinessControllerMarker {
|
|||||||
|
|
||||||
//判定数据上报
|
//判定数据上报
|
||||||
@PostMapping("/assessmentDataReporting")
|
@PostMapping("/assessmentDataReporting")
|
||||||
public CommonResult<?> assessmentDataReporting(Long businessSubSampleId, Long configAssayMethodId) {
|
public CommonResult<?> assessmentDataReporting(Long businessSubSampleId, Long configAssayMethodId, Integer retestCount) {
|
||||||
sampleAnalysisAuditService.assessmentDataReporting(businessSubSampleId, configAssayMethodId);
|
sampleAnalysisAuditService.assessmentDataReporting(businessSubSampleId, configAssayMethodId, retestCount);
|
||||||
return success("成功");
|
return success("成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/batchAssessmentDataReporting")
|
@PostMapping("/batchAssessmentDataReporting")
|
||||||
public CommonResult<?> batchAssessmentDataReporting(@RequestBody BatchAssessmentDataReportingReqVO reqVO) {
|
public CommonResult<?> batchAssessmentDataReporting(@RequestBody BatchAssessmentDataReportingReqVO reqVO) {
|
||||||
for (Long businessSubSampleId : reqVO.getBusinessSubSampleIds()) {
|
for (BusinessSubSampleIdAndRetestCount businessSubSampleIdAndRetestCount : reqVO.getBusinessSubSampleIdAndRetestCounts()) {
|
||||||
sampleAnalysisAuditService.assessmentDataReporting(businessSubSampleId, reqVO.getConfigAssayMethodId());
|
sampleAnalysisAuditService.assessmentDataReporting(businessSubSampleIdAndRetestCount.getBusinessSubSampleId(), reqVO.getConfigAssayMethodId(), businessSubSampleIdAndRetestCount.getRetestCount());
|
||||||
}
|
}
|
||||||
return success("成功");
|
return success("成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
//重新创建复检委托
|
//重新创建复检委托
|
||||||
@PostMapping("/createReAnalysis")
|
@PostMapping("/createReAnalysis")
|
||||||
public CommonResult<?> createReAnalysis(Long businessSubSampleId, Long configAssayMethodId) {
|
public CommonResult<?> createReAnalysis(Long businessSubSampleId, Long configAssayMethodId, Integer retestCount) {
|
||||||
sampleAnalysisAuditService.createReAnalysis(businessSubSampleId, configAssayMethodId);
|
sampleAnalysisAuditService.createReAnalysis(businessSubSampleId, configAssayMethodId, retestCount);
|
||||||
return success("成功");
|
return success("成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class SampleReportDataQueryController {
|
|||||||
@Operation(summary = "委托单详情数据")
|
@Operation(summary = "委托单详情数据")
|
||||||
@GetMapping("/crossAuditByTaskId")
|
@GetMapping("/crossAuditByTaskId")
|
||||||
public CommonResult<?> crossAuditByTaskId(Long businessAssayTaskId) {
|
public CommonResult<?> crossAuditByTaskId(Long businessAssayTaskId) {
|
||||||
JSONObject result = sampleAnalysisAuditService.crossAuditByTaskId(businessAssayTaskId);
|
JSONObject result = sampleAnalysisAuditService.getCrossAuditDataByTaskId(businessAssayTaskId);
|
||||||
return success(result);
|
return success(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,35 @@
|
|||||||
package com.zt.plat.module.qms.business.bus.controller.vo;
|
package com.zt.plat.module.qms.business.bus.controller.vo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class BatchAssessmentDataReportingReqVO {
|
public class BatchAssessmentDataReportingReqVO {
|
||||||
|
|
||||||
private List<Long> businessSubSampleIds;
|
private List<BusinessSubSampleIdAndRetestCount> businessSubSampleIdAndRetestCounts;
|
||||||
|
|
||||||
|
public List<Long> getBusinessSubSampleIds() {
|
||||||
|
if (CollUtil.isEmpty(this.businessSubSampleIdAndRetestCounts)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this.businessSubSampleIdAndRetestCounts.stream().map(m -> m.getBusinessSubSampleId()).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
private Long configAssayMethodId;
|
private Long configAssayMethodId;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class BusinessSubSampleIdAndRetestCount {
|
||||||
|
|
||||||
|
private Long businessSubSampleId;
|
||||||
|
|
||||||
|
private Integer retestCount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,34 @@
|
|||||||
package com.zt.plat.module.qms.business.bus.controller.vo;
|
package com.zt.plat.module.qms.business.bus.controller.vo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class BatchResultDataReportingReqVO {
|
public class BatchResultDataReportingReqVO {
|
||||||
|
|
||||||
private List<Long> businessSubParentSampleIds;
|
private List<BusinessSubParentSampleIdAndRetestCount> businessSubParentSampleIdAndRetestCounts;
|
||||||
|
|
||||||
private Long configAssayMethodId;
|
private Long configAssayMethodId;
|
||||||
|
|
||||||
|
public List<Long> getBusinessSubParentSampleIds() {
|
||||||
|
if (CollUtil.isEmpty(this.businessSubParentSampleIdAndRetestCounts)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return this.businessSubParentSampleIdAndRetestCounts.stream().map(m -> m.getBusinessSubParentSampleId()).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class BusinessSubParentSampleIdAndRetestCount {
|
||||||
|
|
||||||
|
private Long businessSubParentSampleId;
|
||||||
|
|
||||||
|
private Integer retestCount;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,9 @@ public class BusinessSubParentSampleAssessmentProjectRespVO {
|
|||||||
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23188")
|
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "23188")
|
||||||
@ExcelProperty("样品分样ID")
|
@ExcelProperty("样品分样ID")
|
||||||
private Long businessSubParentSampleId;
|
private Long businessSubParentSampleId;
|
||||||
|
|
||||||
|
@Schema(description = "班组判定数据业务ID")
|
||||||
|
private Long businessSubParentSampleAssessmentId;
|
||||||
|
|
||||||
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "17642")
|
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "17642")
|
||||||
@ExcelProperty("检测项目ID,字典表【T_DIC_PRJ】")
|
@ExcelProperty("检测项目ID,字典表【T_DIC_PRJ】")
|
||||||
|
|||||||
@@ -441,16 +441,18 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
|
|||||||
* @param excludeIds 排除的id列表
|
* @param excludeIds 排除的id列表
|
||||||
* @param businessSubSampleId 子样id
|
* @param businessSubSampleId 子样id
|
||||||
* @param configAssayMethodId 分析方法id
|
* @param configAssayMethodId 分析方法id
|
||||||
|
* @param retestCount 复测次数
|
||||||
* @param isReported 是否上报
|
* @param isReported 是否上报
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
default List<BusinessAssayTaskDataDO> selectIsReportedList(List<Long> excludeIds, Long businessSubSampleId, Long configAssayMethodId, Integer isReported) {
|
default List<BusinessAssayTaskDataDO> selectIsReportedList(List<Long> excludeIds, Long businessSubSampleId, Long configAssayMethodId, Integer retestCount, Integer isReported) {
|
||||||
LambdaQueryWrapper<BusinessAssayTaskDataDO> queryWrapper = new LambdaQueryWrapperX<BusinessAssayTaskDataDO>();
|
LambdaQueryWrapper<BusinessAssayTaskDataDO> queryWrapper = new LambdaQueryWrapperX<BusinessAssayTaskDataDO>();
|
||||||
if (CollUtil.isNotEmpty(excludeIds)) {
|
if (CollUtil.isNotEmpty(excludeIds)) {
|
||||||
queryWrapper.notIn(BusinessAssayTaskDataDO::getId, excludeIds);
|
queryWrapper.notIn(BusinessAssayTaskDataDO::getId, excludeIds);
|
||||||
}
|
}
|
||||||
queryWrapper.eq(BusinessAssayTaskDataDO::getBusinessSubSampleId, businessSubSampleId)
|
queryWrapper.eq(BusinessAssayTaskDataDO::getBusinessSubSampleId, businessSubSampleId)
|
||||||
.eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, configAssayMethodId)
|
.eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, configAssayMethodId)
|
||||||
|
.eq(BusinessAssayTaskDataDO::getRetestCount, retestCount)
|
||||||
.eq(BusinessAssayTaskDataDO::getIsReported, isReported);
|
.eq(BusinessAssayTaskDataDO::getIsReported, isReported);
|
||||||
return selectList(queryWrapper);
|
return selectList(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,10 +45,11 @@ public interface BusinessSubParentSampleAssessmentMapper extends BaseMapperX<Bus
|
|||||||
.in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleIds));
|
.in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleIds));
|
||||||
}
|
}
|
||||||
|
|
||||||
default BusinessSubParentSampleAssessmentDO selectByBusinessSubParentSampleIdAndConfigAssayMethodId(Long businessSubParentSampleId, Long configAssayMethodId) {
|
default BusinessSubParentSampleAssessmentDO selectByBusinessSubParentSampleIdAndConfigAssayMethodIdAndRetestCount(Long businessSubParentSampleId, Long configAssayMethodId, Integer retestCount) {
|
||||||
return selectOne(new LambdaQueryWrapperX<BusinessSubParentSampleAssessmentDO>()
|
return selectOne(new LambdaQueryWrapperX<BusinessSubParentSampleAssessmentDO>()
|
||||||
.eq(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleId)
|
.eq(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, businessSubParentSampleId)
|
||||||
.eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId));
|
.eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId)
|
||||||
|
.eq(BusinessSubParentSampleAssessmentDO::getRetestCount, retestCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<BusinessSubParentSampleAssessmentExtendRespVO> selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(List<Long> businessSubParentSampleIds, Long configAssayMethodId) {
|
default List<BusinessSubParentSampleAssessmentExtendRespVO> selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(List<Long> businessSubParentSampleIds, Long configAssayMethodId) {
|
||||||
|
|||||||
@@ -50,12 +50,14 @@ public interface BusinessSubSampleAssessmentMapper extends BaseMapperX<BusinessS
|
|||||||
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId));
|
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId));
|
||||||
}
|
}
|
||||||
|
|
||||||
default BusinessSubSampleAssessmentDO selectByBusinessSubSampleIdAndConfigAssayMethodId(Long businessSubSampleId, Long configAssayMethodId) {
|
default BusinessSubSampleAssessmentDO selectByBusinessSubSampleIdAndConfigAssayMethodIdAndRetestCount(Long businessSubSampleId, Long configAssayMethodId, Integer retestCount) {
|
||||||
return selectOne(new LambdaQueryWrapperX<BusinessSubSampleAssessmentDO>()
|
return selectOne(new LambdaQueryWrapperX<BusinessSubSampleAssessmentDO>()
|
||||||
.eq(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleId)
|
.eq(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleId)
|
||||||
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId));
|
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId)
|
||||||
|
.eq(BusinessSubSampleAssessmentDO::getRetestCount, retestCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Deprecated
|
||||||
default List<BusinessSubSampleAssessmentDO> selectByBusinessSubSampleIdsAndConfigAssayMethodIdAndRetestCount(List<Long> businessSubSampleIds, Long configAssayMethodId, Integer retestCount) {
|
default List<BusinessSubSampleAssessmentDO> selectByBusinessSubSampleIdsAndConfigAssayMethodIdAndRetestCount(List<Long> businessSubSampleIds, Long configAssayMethodId, Integer retestCount) {
|
||||||
return selectList(new LambdaQueryWrapperX<BusinessSubSampleAssessmentDO>()
|
return selectList(new LambdaQueryWrapperX<BusinessSubSampleAssessmentDO>()
|
||||||
.in(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleIds)
|
.in(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleIds)
|
||||||
|
|||||||
@@ -100,8 +100,11 @@ public interface BusinessSubSampleAssessmentProjectMapper extends BaseMapperX<Bu
|
|||||||
.eq(BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodId, configAssayMethodId));
|
.eq(BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodId, configAssayMethodId));
|
||||||
}
|
}
|
||||||
|
|
||||||
default List<BusinessSubSampleAssessmentProjectExtendRespVO> selectByBusinessSubSampleIdAndConfigAssayMethodId(Long businessSubSampleId, Long configAssayMethodId) {
|
@Deprecated
|
||||||
|
default List<BusinessSubSampleAssessmentProjectExtendRespVO> selectByBusinessSubSampleIdAndConfigAssayMethodId(Long businessSubSampleId, Long configAssayMethodId) {
|
||||||
return selectJoinList(BusinessSubSampleAssessmentProjectExtendRespVO.class, new MPJLambdaWrapperX<BusinessSubSampleAssessmentProjectDO>()
|
return selectJoinList(BusinessSubSampleAssessmentProjectExtendRespVO.class, new MPJLambdaWrapperX<BusinessSubSampleAssessmentProjectDO>()
|
||||||
|
.leftJoin(BusinessSubSampleAssessmentDO.class, BusinessSubSampleAssessmentDO::getId, BusinessSubSampleAssessmentProjectDO::getBusinessSubSampleAssessmentId)
|
||||||
|
.leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodId)
|
||||||
.leftJoin(ConfigAssayMethodProjectDO.class, ConfigAssayMethodProjectDO::getId, BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodProjectId)
|
.leftJoin(ConfigAssayMethodProjectDO.class, ConfigAssayMethodProjectDO::getId, BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodProjectId)
|
||||||
.leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessSubSampleAssessmentProjectDO::getDictionaryProjectId)
|
.leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessSubSampleAssessmentProjectDO::getDictionaryProjectId)
|
||||||
.selectAll(BusinessSubSampleAssessmentProjectDO.class)
|
.selectAll(BusinessSubSampleAssessmentProjectDO.class)
|
||||||
@@ -113,6 +116,22 @@ public interface BusinessSubSampleAssessmentProjectMapper extends BaseMapperX<Bu
|
|||||||
.eq(BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodId, configAssayMethodId));
|
.eq(BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodId, configAssayMethodId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default List<BusinessSubSampleAssessmentProjectExtendRespVO> selectByBusinessSubSampleIdAndConfigAssayMethodIdAndRetestCount(Long businessSubSampleId, Long configAssayMethodId, Integer retestCount) {
|
||||||
|
return selectJoinList(BusinessSubSampleAssessmentProjectExtendRespVO.class, new MPJLambdaWrapperX<BusinessSubSampleAssessmentProjectDO>()
|
||||||
|
.leftJoin(BusinessSubSampleAssessmentDO.class, BusinessSubSampleAssessmentDO::getId, BusinessSubSampleAssessmentProjectDO::getBusinessSubSampleAssessmentId)
|
||||||
|
.leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodId)
|
||||||
|
.leftJoin(ConfigAssayMethodProjectDO.class, ConfigAssayMethodProjectDO::getId, BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodProjectId)
|
||||||
|
.leftJoin(DictionaryProjectDO.class, DictionaryProjectDO::getId, BusinessSubSampleAssessmentProjectDO::getDictionaryProjectId)
|
||||||
|
.selectAll(BusinessSubSampleAssessmentProjectDO.class)
|
||||||
|
.selectAs(ConfigAssayMethodProjectDO::getDictionaryProjectUnit, BusinessSubSampleAssessmentProjectExtendRespVO::getDictionaryProjectUnit)
|
||||||
|
.selectAs(DictionaryProjectDO::getKey, BusinessSubSampleAssessmentProjectExtendRespVO::getDictionaryProjectKey)
|
||||||
|
.selectAs(DictionaryProjectDO::getSimpleName, BusinessSubSampleAssessmentProjectExtendRespVO::getSimpleName)
|
||||||
|
.selectAs(DictionaryProjectDO::getShowName, BusinessSubSampleAssessmentProjectExtendRespVO::getShowName)
|
||||||
|
.eq(BusinessSubSampleAssessmentProjectDO::getBusinessSubSampleId, businessSubSampleId)
|
||||||
|
.eq(BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodId, configAssayMethodId)
|
||||||
|
.eq(BusinessSubSampleAssessmentDO::getRetestCount, retestCount));
|
||||||
|
}
|
||||||
|
|
||||||
default BusinessSubSampleAssessmentProjectDO selectByBusinessSubSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(Long businessSubSampleId, Long configAssayMethodId, Long configAssayMethodProjectId) {
|
default BusinessSubSampleAssessmentProjectDO selectByBusinessSubSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(Long businessSubSampleId, Long configAssayMethodId, Long configAssayMethodProjectId) {
|
||||||
return selectOne(new LambdaQueryWrapperX<BusinessSubSampleAssessmentProjectDO>()
|
return selectOne(new LambdaQueryWrapperX<BusinessSubSampleAssessmentProjectDO>()
|
||||||
.eq(BusinessSubSampleAssessmentProjectDO::getBusinessSubSampleId, businessSubSampleId)
|
.eq(BusinessSubSampleAssessmentProjectDO::getBusinessSubSampleId, businessSubSampleId)
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataRe
|
|||||||
*/
|
*/
|
||||||
public interface SampleAnalysisAuditService {
|
public interface SampleAnalysisAuditService {
|
||||||
|
|
||||||
JSONObject crossAuditByTaskId(Long businessAssayTaskId);
|
JSONObject getCrossAuditDataByTaskId(Long businessAssayTaskId);
|
||||||
|
|
||||||
void crossAuditByByTaskId(Long businessAssayTaskId, String auditStatus);
|
void crossAuditByTaskId(Long businessAssayTaskId, String auditStatus);
|
||||||
|
|
||||||
JSONObject getSampleResultAssessmentList(BusinessAssayTaskDataReqVO reqVO);
|
JSONObject getSampleResultAssessmentList(BusinessAssayTaskDataReqVO reqVO);
|
||||||
|
|
||||||
@@ -20,9 +20,9 @@ public interface SampleAnalysisAuditService {
|
|||||||
|
|
||||||
JSONObject getDoubleCupResultAssessment(Long businessSubParentSampleId, Long configAssayMethodId);
|
JSONObject getDoubleCupResultAssessment(Long businessSubParentSampleId, Long configAssayMethodId);
|
||||||
|
|
||||||
void assessmentDataReporting(Long businessSubSampleId, Long configAssayMethodId);
|
void assessmentDataReporting(Long businessSubSampleId, Long configAssayMethodId, Integer retestCount);
|
||||||
|
|
||||||
void createReAnalysis(Long businessSubSampleId, Long configAssayMethodId);
|
void createReAnalysis(Long businessSubSampleId, Long configAssayMethodId, Integer retestCount);
|
||||||
|
|
||||||
JSONObject modifyParallelResultAssessment(Long businessSubSampleId, Long configAssayMethodId, Long businessSubSampleAssessmentId, List<Long> businessAssayProjectDataIds);
|
JSONObject modifyParallelResultAssessment(Long businessSubSampleId, Long configAssayMethodId, Long businessSubSampleAssessmentId, List<Long> businessAssayProjectDataIds);
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import com.zt.plat.framework.common.exception.ServiceException;
|
|||||||
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
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.controller.vo.*;
|
||||||
|
import com.zt.plat.module.qms.business.bus.controller.vo.BatchResultDataReportingReqVO.BusinessSubParentSampleIdAndRetestCount;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayParameterDataDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayProjectDataDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
|
||||||
@@ -198,7 +199,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
//为空则未添加过判定记录
|
//为空则未添加过判定记录
|
||||||
if (assessmentMap == null) {
|
if (assessmentMap == null) {
|
||||||
if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(businessAssayTaskDataExtendRespVO.getAssayType())) {//平行
|
if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(businessAssayTaskDataExtendRespVO.getAssayType())) {//平行
|
||||||
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessAssayTaskDataExtendRespVO.getBusinessSubSampleId(), configAssayMethodId);
|
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndRetestCount(businessAssayTaskDataExtendRespVO.getBusinessSubSampleId(), configAssayMethodId, businessAssayTaskDataExtendRespVO.getRetestCount());
|
||||||
for (BusinessSubSampleAssessmentProjectExtendRespVO businessSubSampleAssessment : businessSubSampleAssessmentList) {
|
for (BusinessSubSampleAssessmentProjectExtendRespVO businessSubSampleAssessment : businessSubSampleAssessmentList) {
|
||||||
businessAssayTaskDataAssessmentMap.put("id", businessSubSampleAssessment.getId());
|
businessAssayTaskDataAssessmentMap.put("id", businessSubSampleAssessment.getId());
|
||||||
businessAssayTaskDataAssessmentMap.put("assessmentStatus", businessSubSampleAssessment.getAssessmentStatus());
|
businessAssayTaskDataAssessmentMap.put("assessmentStatus", businessSubSampleAssessment.getAssessmentStatus());
|
||||||
@@ -291,7 +292,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JSONObject crossAuditByTaskId(Long businessAssayTaskId) {
|
public JSONObject getCrossAuditDataByTaskId(Long businessAssayTaskId) {
|
||||||
JSONWriter.Context context = JSONFactory.createWriteContext();
|
JSONWriter.Context context = JSONFactory.createWriteContext();
|
||||||
context.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
context.setDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
@@ -622,13 +623,13 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void crossAuditByByTaskId(Long businessAssayTaskId, String auditStatus) {
|
public void crossAuditByTaskId(Long businessAssayTaskId, String auditStatus) {
|
||||||
|
|
||||||
//当前登录用户昵称
|
//当前登录用户昵称
|
||||||
String nickName = SecurityFrameworkUtils.getLoginUserNickname();
|
String nickName = SecurityFrameworkUtils.getLoginUserNickname();
|
||||||
|
|
||||||
//自动上报的子样
|
//自动上报的子样判定数据
|
||||||
List<Long> automaticBusinessSubSampleIdList = new ArrayList<>();
|
List<BusinessSubSampleAssessmentDO> automaticBusinessSubSampleAssessmentList = new ArrayList<>();
|
||||||
|
|
||||||
//判定记录
|
//判定记录
|
||||||
List<BusinessSubSampleAssessmentDO> updateBusinessSubSampleAssessmentDOList = new ArrayList<>();
|
List<BusinessSubSampleAssessmentDO> updateBusinessSubSampleAssessmentDOList = new ArrayList<>();
|
||||||
@@ -645,9 +646,17 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
|
|
||||||
//查询分析任务明细
|
//查询分析任务明细
|
||||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessAssayTaskId(businessAssayTaskId);
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessAssayTaskId(businessAssayTaskId);
|
||||||
Integer recheckCount = businessAssayTaskDataDOList.get(0).getRetestCount();
|
|
||||||
List<Long> businessSubSampleIdList = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList());
|
|
||||||
List<BusinessSubSampleAssessmentDO> businessSubSampleAssessmentDOList = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdsAndConfigAssayMethodIdAndRetestCount(businessSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId(), recheckCount);
|
// Integer recheckCount = businessAssayTaskDataDOList.get(0).getRetestCount();
|
||||||
|
// List<Long> businessSubSampleIdList = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList());
|
||||||
|
// List<BusinessSubSampleAssessmentDO> businessSubSampleAssessmentDOList = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdsAndConfigAssayMethodIdAndRetestCount(businessSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId(), recheckCount);
|
||||||
|
|
||||||
|
//获取任务明细对应的判定id
|
||||||
|
List<Long> businessSubSampleAssessmentIdList = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleAssessmentId()).distinct().collect(Collectors.toList());
|
||||||
|
//获取子样判定数据
|
||||||
|
List<BusinessSubSampleAssessmentDO> businessSubSampleAssessmentDOList = businessSubSampleAssessmentMapper.selectByIds(businessSubSampleAssessmentIdList);
|
||||||
|
|
||||||
//根据子样分组
|
//根据子样分组
|
||||||
Map<Long, List<BusinessAssayTaskDataDO>> businessAssayTaskDataDOMap = businessAssayTaskDataDOList.stream().collect(Collectors.groupingBy(BusinessAssayTaskDataDO::getBusinessSubSampleId));
|
Map<Long, List<BusinessAssayTaskDataDO>> businessAssayTaskDataDOMap = businessAssayTaskDataDOList.stream().collect(Collectors.groupingBy(BusinessAssayTaskDataDO::getBusinessSubSampleId));
|
||||||
//循环分组
|
//循环分组
|
||||||
@@ -655,43 +664,144 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
|
|
||||||
Long businessSubSampleId = businessAssayTaskDataDOMapEntry.getKey();
|
Long businessSubSampleId = businessAssayTaskDataDOMapEntry.getKey();
|
||||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataList = businessAssayTaskDataDOMapEntry.getValue();
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataList = businessAssayTaskDataDOMapEntry.getValue();
|
||||||
List<Long> businessAssayTaskDataIdList = businessAssayTaskDataList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
|
||||||
BusinessAssayTaskDataDO businessAssayTaskDataDO = businessAssayTaskDataList.get(0);
|
|
||||||
|
|
||||||
BusinessSubSampleDO businessSubSampleDO = businessSubSampleMapper.selectById(businessSubSampleId);
|
Map<Integer, List<BusinessAssayTaskDataDO>> businessAssayTaskDataDORetestMap = businessAssayTaskDataList.stream().collect(Collectors.groupingBy(BusinessAssayTaskDataDO::getRetestCount));
|
||||||
//获取子样分析方法配置
|
|
||||||
ConfigSubSampleMethodExtendRespVO configSubSampleMethodDO = configSubSampleMethodMapper.selectByConfigSubSampleIdAndConfigAssayMethodId(businessSubSampleDO.getConfigSubSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId());
|
for (Map.Entry<Integer, List<BusinessAssayTaskDataDO>> businessAssayTaskDataDORetestMapEntry : businessAssayTaskDataDORetestMap.entrySet()) {
|
||||||
|
Integer retestCount = businessAssayTaskDataDORetestMapEntry.getKey();
|
||||||
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataRetestList = businessAssayTaskDataDORetestMapEntry.getValue();
|
||||||
|
|
||||||
|
List<Long> businessAssayTaskDataIdList = businessAssayTaskDataRetestList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
BusinessAssayTaskDataDO businessAssayTaskDataDO = businessAssayTaskDataRetestList.get(0);
|
||||||
|
|
||||||
|
BusinessSubSampleDO businessSubSampleDO = businessSubSampleMapper.selectById(businessSubSampleId);
|
||||||
|
//获取子样分析方法配置
|
||||||
|
ConfigSubSampleMethodExtendRespVO configSubSampleMethodDO = configSubSampleMethodMapper.selectByConfigSubSampleIdAndConfigAssayMethodId(businessSubSampleDO.getConfigSubSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId());
|
||||||
|
|
||||||
|
if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(businessAssayTaskDataDO.getAssayType())) {
|
||||||
|
//根据子样id及分析方法id,查询未上报的分析任务
|
||||||
|
List<BusinessAssayTaskDataDO> unReportedList = businessAssayTaskDataMapper.selectIsReportedList(businessAssayTaskDataIdList, businessAssayTaskDataDO.getBusinessSubSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId(), retestCount, QmsCommonConstant.NO);
|
||||||
|
if (unReportedList.size() > 0) {//还有未上报数据,直接处理,无需判定
|
||||||
|
continue;
|
||||||
|
} else {//做超差判定
|
||||||
|
//根据子样id及分析方法id,查询已上报的分析任务
|
||||||
|
List<BusinessAssayTaskDataDO> reportedList = businessAssayTaskDataMapper.selectIsReportedList(businessAssayTaskDataIdList, businessAssayTaskDataDO.getBusinessSubSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId(), retestCount, QmsCommonConstant.YES);
|
||||||
|
if (reportedList.size() > 0) {
|
||||||
|
List<Long> reportedBusinessAssayTaskDataIdList = reportedList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
businessAssayTaskDataIdList.addAll(reportedBusinessAssayTaskDataIdList);
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询判定业务
|
||||||
|
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = updateBusinessSubSampleAssessmentDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleAssessmentId())).findFirst().orElse(null);
|
||||||
|
if (businessSubSampleAssessmentDO == null) {
|
||||||
|
businessSubSampleAssessmentDO = businessSubSampleAssessmentDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleAssessmentId())).findFirst().orElse(null);
|
||||||
|
updateBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
|
||||||
|
}
|
||||||
|
//状态设置为待上报
|
||||||
|
businessSubSampleAssessmentDO.setReportedStatus(QmsCommonConstant.ASMT_PENDING_REPORT);
|
||||||
|
//查询分析项目
|
||||||
|
List<BusinessAssayProjectDataDO> businessAssayProjectDataDOList = businessAssayProjectDataMapper.selectList(new LambdaQueryWrapperX<BusinessAssayProjectDataDO>().in(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataIdList));
|
||||||
|
Map<Long, List<BusinessAssayProjectDataDO>> businessAssayProjectDataDOMap = businessAssayProjectDataDOList.stream().collect(Collectors.groupingBy(BusinessAssayProjectDataDO::getDictionaryProjectId));
|
||||||
|
for (Map.Entry<Long, List<BusinessAssayProjectDataDO>> businessAssayProjectDataDOEntry : businessAssayProjectDataDOMap.entrySet()) {
|
||||||
|
Long dictionaryProjectId = businessAssayProjectDataDOEntry.getKey();
|
||||||
|
List<BusinessAssayProjectDataDO> val1 = businessAssayProjectDataDOEntry.getValue();
|
||||||
|
BusinessAssayProjectDataDO businessAssayProjectDataDO = val1.get(0);
|
||||||
|
List<ConfigAssayMethodProjectAssessmentDO> configAssayMethodProjectAssessmentDOList = configAssayMethodProjectAssessmentMapper.selectByConfigBaseSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(configSubSampleMethodDO.getConfigBaseSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId(), businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
||||||
|
|
||||||
if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(businessAssayTaskDataDO.getAssayType())) {
|
//查询判定结果数据
|
||||||
//根据子样id及分析方法id,查询未上报的分析任务
|
BusinessSubSampleAssessmentProjectDO businessSubSampleAssessmentProjectDO = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(businessSubSampleId, businessAssayTaskDataDO.getConfigAssayMethodId(), businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
||||||
List<BusinessAssayTaskDataDO> unReportedList = businessAssayTaskDataMapper.selectIsReportedList(businessAssayTaskDataIdList, businessAssayTaskDataDO.getBusinessSubSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId(), QmsCommonConstant.NO);
|
if (businessSubSampleAssessmentProjectDO == null) {
|
||||||
if (unReportedList.size() > 0) {//还有未上报数据,直接处理,无需判定
|
businessSubSampleAssessmentProjectDO = new BusinessSubSampleAssessmentProjectDO();
|
||||||
continue;
|
|
||||||
} else {//做超差判定
|
saveBusinessSubSampleAssessmentProjectDOList.add(businessSubSampleAssessmentProjectDO);
|
||||||
//根据子样id及分析方法id,查询已上报的分析任务
|
} else {
|
||||||
List<BusinessAssayTaskDataDO> reportedList = businessAssayTaskDataMapper.selectIsReportedList(businessAssayTaskDataIdList, businessAssayTaskDataDO.getBusinessSubSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId(), QmsCommonConstant.YES);
|
updateBusinessSubSampleAssessmentProjectDOList.add(businessSubSampleAssessmentProjectDO);
|
||||||
if (reportedList.size() > 0) {
|
}
|
||||||
List<Long> reportedBusinessAssayTaskDataIdList = reportedList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
businessSubSampleAssessmentProjectDO.setBusinessSubParentSampleId(businessAssayTaskDataDO.getBusinessSubParentSampleId());
|
||||||
businessAssayTaskDataIdList.addAll(reportedBusinessAssayTaskDataIdList);
|
businessSubSampleAssessmentProjectDO.setBusinessSubSampleId(businessAssayTaskDataDO.getBusinessSubSampleId());
|
||||||
|
businessSubSampleAssessmentProjectDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());
|
||||||
|
businessSubSampleAssessmentProjectDO.setConfigAssayMethodId(businessAssayTaskDataDO.getConfigAssayMethodId());
|
||||||
|
businessSubSampleAssessmentProjectDO.setConfigAssayMethodProjectId(businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
||||||
|
businessSubSampleAssessmentProjectDO.setDictionaryProjectId(dictionaryProjectId);
|
||||||
|
businessSubSampleAssessmentProjectDO.setDataType(businessAssayProjectDataDO.getDataType());
|
||||||
|
businessSubSampleAssessmentProjectDO.setDecimalPosition(businessAssayProjectDataDO.getDecimalPosition());
|
||||||
|
businessSubSampleAssessmentProjectDO.setAssayType(businessAssayTaskDataDO.getAssayType());
|
||||||
|
businessSubSampleAssessmentProjectDO.setTaskType(businessAssayTaskDataDO.getTaskType());
|
||||||
|
businessSubSampleAssessmentProjectDO.setUsage(businessAssayProjectDataDO.getUsage());
|
||||||
|
businessSubSampleAssessmentProjectDO.setSymbol(businessAssayProjectDataDO.getSymbol());
|
||||||
|
businessSubSampleAssessmentProjectDO.setAssessmentStatus(QmsCommonConstant.NORMAL);
|
||||||
|
|
||||||
|
// 排序并处理 null
|
||||||
|
List<BigDecimal> sortedValues = val1.stream()
|
||||||
|
.map(v -> {
|
||||||
|
String val = v.getValue();
|
||||||
|
return val == null || val.trim().isEmpty() ? BigDecimal.ZERO : new BigDecimal(val.trim());
|
||||||
|
})
|
||||||
|
.sorted()
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 获取小数精度
|
||||||
|
int elementScale = businessAssayProjectDataDO.getDecimalPosition();
|
||||||
|
// 计算代表值(均值或差值)
|
||||||
|
BigDecimal representativeValue = calculateRepresentativeValue(sortedValues, elementScale);
|
||||||
|
|
||||||
|
//设置判定值
|
||||||
|
businessSubSampleAssessmentProjectDO.setAssessmentValue(representativeValue.toPlainString());
|
||||||
|
|
||||||
|
// 查找匹配的允差规则
|
||||||
|
ConfigAssayMethodProjectAssessmentDO matchedRule = findMatchingRule(configAssayMethodProjectAssessmentDOList, representativeValue);
|
||||||
|
if (matchedRule == null) {
|
||||||
|
throw new ServiceException(1_032_100_000, "未找到超差判定区间范围,元素ID: " + dictionaryProjectId + ", 值: " + representativeValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 计算允差值
|
||||||
|
BigDecimal allowValue;
|
||||||
|
try {
|
||||||
|
allowValue = allowanceCalculatorComponent.calculateAllowableValue(new BigDecimal(matchedRule.getMinimumValue()), new BigDecimal(matchedRule.getMaximumValue()), new BigDecimal(matchedRule.getMinimumToleraanceValue()), new BigDecimal(matchedRule.getMaximumToleraanceValue()), new BigDecimal(matchedRule.getToleraanceAdjustmentValue()), representativeValue, matchedRule.getIsUseFormula(), matchedRule.getFormula(), elementScale);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ServiceException(1_032_100_000, "超差判定计算出错,检测项目ID: " + dictionaryProjectId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 判断相邻差值是否超差
|
||||||
|
for (int i = 0; i < sortedValues.size() - 1; i++) {
|
||||||
|
BigDecimal diff = sortedValues.get(i + 1).subtract(sortedValues.get(i)).abs();
|
||||||
|
if (diff.compareTo(allowValue) > 0) {
|
||||||
|
businessSubSampleAssessmentProjectDO.setAssessmentStatus(QmsCommonConstant.EXCEEDS_TOLERANCE);
|
||||||
|
//存在超差,设置为待判定
|
||||||
|
businessSubSampleAssessmentDO.setReportedStatus(QmsCommonConstant.ASMT_PENDING_ASSESSMENT);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//如果为自动上报, 并且上报状态为待上报的
|
||||||
|
if (QmsCommonConstant.AUTOMATIC.equals(configSubSampleMethodDO.getResultTreatmentWay()) && QmsCommonConstant.ASMT_PENDING_REPORT.equals(businessSubSampleAssessmentDO.getReportedStatus())) {
|
||||||
|
automaticBusinessSubSampleAssessmentList.add(businessSubSampleAssessmentDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} else if (QmsCommonConstant.ASSAY_TYPE_DOUBLE_CUP.equals(businessAssayTaskDataDO.getAssayType())) {
|
||||||
|
|
||||||
|
} else {//单杯
|
||||||
|
|
||||||
//查询判定业务
|
//查询判定业务
|
||||||
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = updateBusinessSubSampleAssessmentDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleAssessmentId())).findFirst().orElse(null);
|
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = updateBusinessSubSampleAssessmentDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleAssessmentId())).findFirst().orElse(null);
|
||||||
if (businessSubSampleAssessmentDO == null) {
|
if (businessSubSampleAssessmentDO == null) {
|
||||||
businessSubSampleAssessmentDO = businessSubSampleAssessmentDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleAssessmentId())).findFirst().orElse(null);
|
businessSubSampleAssessmentDO = businessSubSampleAssessmentDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleAssessmentId())).findFirst().orElse(null);
|
||||||
updateBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
|
updateBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
|
||||||
}
|
}
|
||||||
//状态设置为待上报
|
//修改状态为待上报
|
||||||
businessSubSampleAssessmentDO.setReportedStatus(QmsCommonConstant.ASMT_PENDING_REPORT);
|
businessSubSampleAssessmentDO.setReportedStatus(QmsCommonConstant.ASMT_PENDING_REPORT);
|
||||||
|
|
||||||
//查询分析项目
|
//查询分析项目
|
||||||
List<BusinessAssayProjectDataDO> businessAssayProjectDataDOList = businessAssayProjectDataMapper.selectList(new LambdaQueryWrapperX<BusinessAssayProjectDataDO>().in(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataIdList));
|
List<BusinessAssayProjectDataDO> businessAssayProjectDataDOList = businessAssayProjectDataMapper.selectList(new LambdaQueryWrapperX<BusinessAssayProjectDataDO>().in(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataIdList));
|
||||||
Map<Long, List<BusinessAssayProjectDataDO>> businessAssayProjectDataDOMap = businessAssayProjectDataDOList.stream().collect(Collectors.groupingBy(BusinessAssayProjectDataDO::getDictionaryProjectId));
|
|
||||||
for (Map.Entry<Long, List<BusinessAssayProjectDataDO>> businessAssayProjectDataDOEntry : businessAssayProjectDataDOMap.entrySet()) {
|
for (BusinessAssayProjectDataDO businessAssayProjectDataDO : businessAssayProjectDataDOList) {
|
||||||
Long dictionaryProjectId = businessAssayProjectDataDOEntry.getKey();
|
|
||||||
List<BusinessAssayProjectDataDO> val1 = businessAssayProjectDataDOEntry.getValue();
|
|
||||||
BusinessAssayProjectDataDO businessAssayProjectDataDO = val1.get(0);
|
|
||||||
List<ConfigAssayMethodProjectAssessmentDO> configAssayMethodProjectAssessmentDOList = configAssayMethodProjectAssessmentMapper.selectByConfigBaseSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(configSubSampleMethodDO.getConfigBaseSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId(), businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
|
||||||
|
|
||||||
//查询判定结果数据
|
//查询判定结果数据
|
||||||
BusinessSubSampleAssessmentProjectDO businessSubSampleAssessmentProjectDO = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(businessSubSampleId, businessAssayTaskDataDO.getConfigAssayMethodId(), businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
BusinessSubSampleAssessmentProjectDO businessSubSampleAssessmentProjectDO = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(businessSubSampleId, businessAssayTaskDataDO.getConfigAssayMethodId(), businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
||||||
if (businessSubSampleAssessmentProjectDO == null) {
|
if (businessSubSampleAssessmentProjectDO == null) {
|
||||||
@@ -706,120 +816,26 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
businessSubSampleAssessmentProjectDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());
|
businessSubSampleAssessmentProjectDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());
|
||||||
businessSubSampleAssessmentProjectDO.setConfigAssayMethodId(businessAssayTaskDataDO.getConfigAssayMethodId());
|
businessSubSampleAssessmentProjectDO.setConfigAssayMethodId(businessAssayTaskDataDO.getConfigAssayMethodId());
|
||||||
businessSubSampleAssessmentProjectDO.setConfigAssayMethodProjectId(businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
businessSubSampleAssessmentProjectDO.setConfigAssayMethodProjectId(businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
||||||
businessSubSampleAssessmentProjectDO.setDictionaryProjectId(dictionaryProjectId);
|
businessSubSampleAssessmentProjectDO.setDictionaryProjectId(businessAssayProjectDataDO.getDictionaryProjectId());
|
||||||
businessSubSampleAssessmentProjectDO.setDataType(businessAssayProjectDataDO.getDataType());
|
businessSubSampleAssessmentProjectDO.setDataType(businessAssayProjectDataDO.getDataType());
|
||||||
businessSubSampleAssessmentProjectDO.setDecimalPosition(businessAssayProjectDataDO.getDecimalPosition());
|
businessSubSampleAssessmentProjectDO.setDecimalPosition(businessAssayProjectDataDO.getDecimalPosition());
|
||||||
businessSubSampleAssessmentProjectDO.setAssayType(businessAssayTaskDataDO.getAssayType());
|
businessSubSampleAssessmentProjectDO.setAssayType(businessAssayTaskDataDO.getAssayType());
|
||||||
businessSubSampleAssessmentProjectDO.setTaskType(businessAssayTaskDataDO.getTaskType());
|
businessSubSampleAssessmentProjectDO.setTaskType(businessAssayTaskDataDO.getTaskType());
|
||||||
businessSubSampleAssessmentProjectDO.setUsage(businessAssayProjectDataDO.getUsage());
|
businessSubSampleAssessmentProjectDO.setUsage(businessAssayProjectDataDO.getUsage());
|
||||||
|
businessSubSampleAssessmentProjectDO.setMinimumLimitValue(businessAssayProjectDataDO.getMinimumLimitValue());
|
||||||
businessSubSampleAssessmentProjectDO.setSymbol(businessAssayProjectDataDO.getSymbol());
|
businessSubSampleAssessmentProjectDO.setSymbol(businessAssayProjectDataDO.getSymbol());
|
||||||
businessSubSampleAssessmentProjectDO.setAssessmentStatus(QmsCommonConstant.NORMAL);
|
businessSubSampleAssessmentProjectDO.setAssessmentStatus(QmsCommonConstant.NORMAL);
|
||||||
|
businessSubSampleAssessmentProjectDO.setAssessmentValue(businessAssayProjectDataDO.getValue());
|
||||||
// 排序并处理 null
|
|
||||||
List<BigDecimal> sortedValues = val1.stream()
|
|
||||||
.map(v -> {
|
|
||||||
String val = v.getValue();
|
|
||||||
return val == null || val.trim().isEmpty() ? BigDecimal.ZERO : new BigDecimal(val.trim());
|
|
||||||
})
|
|
||||||
.sorted()
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
// 获取小数精度
|
|
||||||
int elementScale = businessAssayProjectDataDO.getDecimalPosition();
|
|
||||||
// 计算代表值(均值或差值)
|
|
||||||
BigDecimal representativeValue = calculateRepresentativeValue(sortedValues, elementScale);
|
|
||||||
|
|
||||||
//设置判定值
|
|
||||||
businessSubSampleAssessmentProjectDO.setAssessmentValue(representativeValue.toPlainString());
|
|
||||||
|
|
||||||
// 查找匹配的允差规则
|
|
||||||
ConfigAssayMethodProjectAssessmentDO matchedRule = findMatchingRule(configAssayMethodProjectAssessmentDOList, representativeValue);
|
|
||||||
if (matchedRule == null) {
|
|
||||||
throw new ServiceException(1_032_100_000, "未找到超差判定区间范围,元素ID: " + dictionaryProjectId + ", 值: " + representativeValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 计算允差值
|
|
||||||
BigDecimal allowValue;
|
|
||||||
try {
|
|
||||||
allowValue = allowanceCalculatorComponent.calculateAllowableValue(new BigDecimal(matchedRule.getMinimumValue()), new BigDecimal(matchedRule.getMaximumValue()), new BigDecimal(matchedRule.getMinimumToleraanceValue()), new BigDecimal(matchedRule.getMaximumToleraanceValue()), new BigDecimal(matchedRule.getToleraanceAdjustmentValue()), representativeValue, matchedRule.getIsUseFormula(), matchedRule.getFormula(), elementScale);
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new ServiceException(1_032_100_000, "超差判定计算出错,检测项目ID: " + dictionaryProjectId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 判断相邻差值是否超差
|
|
||||||
for (int i = 0; i < sortedValues.size() - 1; i++) {
|
|
||||||
BigDecimal diff = sortedValues.get(i + 1).subtract(sortedValues.get(i)).abs();
|
|
||||||
if (diff.compareTo(allowValue) > 0) {
|
|
||||||
businessSubSampleAssessmentProjectDO.setAssessmentStatus(QmsCommonConstant.EXCEEDS_TOLERANCE);
|
|
||||||
//存在超差,设置为待判定
|
|
||||||
businessSubSampleAssessmentDO.setReportedStatus(QmsCommonConstant.ASMT_PENDING_ASSESSMENT);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//如果为自动上报, 并且上报状态为待上报的
|
|
||||||
|
//如果为自动上报
|
||||||
if (QmsCommonConstant.AUTOMATIC.equals(configSubSampleMethodDO.getResultTreatmentWay()) && QmsCommonConstant.ASMT_PENDING_REPORT.equals(businessSubSampleAssessmentDO.getReportedStatus())) {
|
if (QmsCommonConstant.AUTOMATIC.equals(configSubSampleMethodDO.getResultTreatmentWay()) && QmsCommonConstant.ASMT_PENDING_REPORT.equals(businessSubSampleAssessmentDO.getReportedStatus())) {
|
||||||
automaticBusinessSubSampleIdList.add(businessSubSampleId);
|
automaticBusinessSubSampleAssessmentList.add(businessSubSampleAssessmentDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} else if (QmsCommonConstant.ASSAY_TYPE_DOUBLE_CUP.equals(businessAssayTaskDataDO.getAssayType())) {
|
|
||||||
|
|
||||||
} else {//单杯
|
|
||||||
|
|
||||||
|
|
||||||
//查询判定业务
|
|
||||||
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = updateBusinessSubSampleAssessmentDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleAssessmentId())).findFirst().orElse(null);
|
|
||||||
if (businessSubSampleAssessmentDO == null) {
|
|
||||||
businessSubSampleAssessmentDO = businessSubSampleAssessmentDOList.stream().filter(f -> f.getId().equals(businessAssayTaskDataDO.getBusinessSubSampleAssessmentId())).findFirst().orElse(null);
|
|
||||||
updateBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
|
|
||||||
}
|
|
||||||
//修改状态为待上报
|
|
||||||
businessSubSampleAssessmentDO.setReportedStatus(QmsCommonConstant.ASMT_PENDING_REPORT);
|
|
||||||
|
|
||||||
//查询分析项目
|
|
||||||
List<BusinessAssayProjectDataDO> businessAssayProjectDataDOList = businessAssayProjectDataMapper.selectList(new LambdaQueryWrapperX<BusinessAssayProjectDataDO>().in(BusinessAssayProjectDataDO::getBusinessAssayTaskDataId, businessAssayTaskDataIdList));
|
|
||||||
|
|
||||||
for (BusinessAssayProjectDataDO businessAssayProjectDataDO : businessAssayProjectDataDOList) {
|
|
||||||
|
|
||||||
//查询判定结果数据
|
|
||||||
BusinessSubSampleAssessmentProjectDO businessSubSampleAssessmentProjectDO = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndConfigAssayMethodProjectId(businessSubSampleId, businessAssayTaskDataDO.getConfigAssayMethodId(), businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
|
||||||
if (businessSubSampleAssessmentProjectDO == null) {
|
|
||||||
businessSubSampleAssessmentProjectDO = new BusinessSubSampleAssessmentProjectDO();
|
|
||||||
|
|
||||||
saveBusinessSubSampleAssessmentProjectDOList.add(businessSubSampleAssessmentProjectDO);
|
|
||||||
} else {
|
|
||||||
updateBusinessSubSampleAssessmentProjectDOList.add(businessSubSampleAssessmentProjectDO);
|
|
||||||
}
|
|
||||||
businessSubSampleAssessmentProjectDO.setBusinessSubParentSampleId(businessAssayTaskDataDO.getBusinessSubParentSampleId());
|
|
||||||
businessSubSampleAssessmentProjectDO.setBusinessSubSampleId(businessAssayTaskDataDO.getBusinessSubSampleId());
|
|
||||||
businessSubSampleAssessmentProjectDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());
|
|
||||||
businessSubSampleAssessmentProjectDO.setConfigAssayMethodId(businessAssayTaskDataDO.getConfigAssayMethodId());
|
|
||||||
businessSubSampleAssessmentProjectDO.setConfigAssayMethodProjectId(businessAssayProjectDataDO.getConfigAssayMethodProjectId());
|
|
||||||
businessSubSampleAssessmentProjectDO.setDictionaryProjectId(businessAssayProjectDataDO.getDictionaryProjectId());
|
|
||||||
businessSubSampleAssessmentProjectDO.setDataType(businessAssayProjectDataDO.getDataType());
|
|
||||||
businessSubSampleAssessmentProjectDO.setDecimalPosition(businessAssayProjectDataDO.getDecimalPosition());
|
|
||||||
businessSubSampleAssessmentProjectDO.setAssayType(businessAssayTaskDataDO.getAssayType());
|
|
||||||
businessSubSampleAssessmentProjectDO.setTaskType(businessAssayTaskDataDO.getTaskType());
|
|
||||||
businessSubSampleAssessmentProjectDO.setUsage(businessAssayProjectDataDO.getUsage());
|
|
||||||
businessSubSampleAssessmentProjectDO.setMinimumLimitValue(businessAssayProjectDataDO.getMinimumLimitValue());
|
|
||||||
businessSubSampleAssessmentProjectDO.setSymbol(businessAssayProjectDataDO.getSymbol());
|
|
||||||
businessSubSampleAssessmentProjectDO.setAssessmentStatus(QmsCommonConstant.NORMAL);
|
|
||||||
businessSubSampleAssessmentProjectDO.setAssessmentValue(businessAssayProjectDataDO.getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//如果为自动上报
|
|
||||||
if (QmsCommonConstant.AUTOMATIC.equals(configSubSampleMethodDO.getResultTreatmentWay())) {
|
|
||||||
automaticBusinessSubSampleIdList.add(businessSubSampleId);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -850,9 +866,9 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
}
|
}
|
||||||
|
|
||||||
//执行自动上报
|
//执行自动上报
|
||||||
if (automaticBusinessSubSampleIdList.size() > 0) {
|
if (automaticBusinessSubSampleAssessmentList.size() > 0) {
|
||||||
for (Long automaticBusinessSubSampleId : automaticBusinessSubSampleIdList) {
|
for (BusinessSubSampleAssessmentDO automaticBusinessSubSampleAssessment : automaticBusinessSubSampleAssessmentList) {
|
||||||
this.assessmentDataReporting(automaticBusinessSubSampleId, businessAssayTaskDO.getConfigAssayMethodId());
|
this.assessmentDataReporting(automaticBusinessSubSampleAssessment.getBusinessSubSampleId(), businessAssayTaskDO.getConfigAssayMethodId(), automaticBusinessSubSampleAssessment.getRetestCount());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -936,29 +952,29 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void assessmentDataReporting(Long businessSubSampleId, Long configAssayMethodId) {
|
public void assessmentDataReporting(Long businessSubSampleId, Long configAssayMethodId, Integer retestCount) {
|
||||||
//当前登录用户昵称
|
//当前登录用户昵称
|
||||||
String nickName = SecurityFrameworkUtils.getLoginUserNickname();
|
String nickName = SecurityFrameworkUtils.getLoginUserNickname();
|
||||||
List<BusinessAssayTaskDataDO> unReportedList = businessAssayTaskDataMapper.selectIsReportedList(null, businessSubSampleId, configAssayMethodId, QmsCommonConstant.NO);
|
List<BusinessAssayTaskDataDO> unReportedList = businessAssayTaskDataMapper.selectIsReportedList(null, businessSubSampleId, configAssayMethodId, retestCount, QmsCommonConstant.NO);
|
||||||
if (unReportedList.size() > 0) {
|
if (unReportedList.size() > 0) {
|
||||||
throw new ServiceException(1_032_100_000, "存在未上报的数据");
|
throw new ServiceException(1_032_100_000, "存在未上报的数据");
|
||||||
}
|
}
|
||||||
//自动上报
|
//自动上报
|
||||||
List<Long> automaticBusinessSubParentSampleIdList = new ArrayList<>();
|
List<BusinessSubParentSampleIdAndRetestCount> automaticBusinessSubParentSampleIdAndRetestCounts = new ArrayList<>();
|
||||||
|
|
||||||
List<BusinessSubParentSampleAssessmentProjectDO> businessSubParentSampleAssessmentDOList = new ArrayList<>();
|
List<BusinessSubParentSampleAssessmentProjectDO> businessSubParentSampleAssessmentDOList = new ArrayList<>();
|
||||||
|
|
||||||
//分析任务已全部上报
|
//分析任务已全部上报
|
||||||
List<BusinessAssayTaskDataDO> reportedList = businessAssayTaskDataMapper.selectIsReportedList(null, businessSubSampleId, configAssayMethodId, QmsCommonConstant.YES);
|
List<BusinessAssayTaskDataDO> reportedList = businessAssayTaskDataMapper.selectIsReportedList(null, businessSubSampleId, configAssayMethodId, retestCount, QmsCommonConstant.YES);
|
||||||
//判定结果
|
//判定结果
|
||||||
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
|
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndRetestCount(businessSubSampleId, configAssayMethodId, retestCount);
|
||||||
|
|
||||||
List<Long> businessSubSampleAssessmentIdList = businessSubSampleAssessmentList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
List<Long> businessSubSampleAssessmentIdList = businessSubSampleAssessmentList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||||
|
|
||||||
BusinessAssayTaskDataDO businessAssayTaskDataDO = reportedList.get(0);
|
BusinessAssayTaskDataDO businessAssayTaskDataDO = reportedList.get(0);
|
||||||
|
|
||||||
//查询主样
|
//查询主样
|
||||||
BusinessBaseSampleDO businessBaseSampleDO = businessBaseSampleMapper.selectById(businessAssayTaskDataDO.getBusinessBaseSampleId());
|
//BusinessBaseSampleDO businessBaseSampleDO = businessBaseSampleMapper.selectById(businessAssayTaskDataDO.getBusinessBaseSampleId());
|
||||||
|
|
||||||
//查询分样
|
//查询分样
|
||||||
BusinessSubParentSampleDO businessSubParentSampleDO = businessSubParentSampleMapper.selectById(businessAssayTaskDataDO.getBusinessSubParentSampleId());
|
BusinessSubParentSampleDO businessSubParentSampleDO = businessSubParentSampleMapper.selectById(businessAssayTaskDataDO.getBusinessSubParentSampleId());
|
||||||
@@ -967,10 +983,10 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
ConfigSubSampleParentMethodDO configSubSampleParentMethodDO = configSubSampleParentMethodMapper.selectByConfigSubSampleParentIdAndConfigAssayMethodId(businessSubParentSampleDO.getConfigSubSampleParentId(), configAssayMethodId);
|
ConfigSubSampleParentMethodDO configSubSampleParentMethodDO = configSubSampleParentMethodMapper.selectByConfigSubSampleParentIdAndConfigAssayMethodId(businessSubParentSampleDO.getConfigSubSampleParentId(), configAssayMethodId);
|
||||||
|
|
||||||
//子样判定
|
//子样判定
|
||||||
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
|
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndRetestCount(businessSubSampleId, configAssayMethodId, retestCount);
|
||||||
|
|
||||||
//分样判定
|
//分样判定
|
||||||
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(businessSubParentSampleDO.getId(), configAssayMethodId);
|
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodIdAndRetestCount(businessSubParentSampleDO.getId(), configAssayMethodId, retestCount);
|
||||||
|
|
||||||
//循环判定值
|
//循环判定值
|
||||||
BusinessSubParentSampleAssessmentProjectDO businessSubParentSampleAssessmentProjectDO = null;
|
BusinessSubParentSampleAssessmentProjectDO businessSubParentSampleAssessmentProjectDO = null;
|
||||||
@@ -1014,9 +1030,9 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
.in(BusinessSubSampleAssessmentProjectDO::getId, businessSubSampleAssessmentIdList));
|
.in(BusinessSubSampleAssessmentProjectDO::getId, businessSubSampleAssessmentIdList));
|
||||||
|
|
||||||
if (QmsCommonConstant.AUTOMATIC.equals(configSubSampleParentMethodDO.getResultTreatmentWay())) {
|
if (QmsCommonConstant.AUTOMATIC.equals(configSubSampleParentMethodDO.getResultTreatmentWay())) {
|
||||||
automaticBusinessSubParentSampleIdList.add(businessSubParentSampleDO.getId());
|
automaticBusinessSubParentSampleIdAndRetestCounts.add(new BusinessSubParentSampleIdAndRetestCount(businessSubParentSampleDO.getId(), retestCount));
|
||||||
BatchResultDataReportingReqVO batchResultDataReportingReqVO = new BatchResultDataReportingReqVO();
|
BatchResultDataReportingReqVO batchResultDataReportingReqVO = new BatchResultDataReportingReqVO();
|
||||||
batchResultDataReportingReqVO.setBusinessSubParentSampleIds(automaticBusinessSubParentSampleIdList);
|
batchResultDataReportingReqVO.setBusinessSubParentSampleIdAndRetestCounts(automaticBusinessSubParentSampleIdAndRetestCounts);
|
||||||
batchResultDataReportingReqVO.setConfigAssayMethodId(configAssayMethodId);
|
batchResultDataReportingReqVO.setConfigAssayMethodId(configAssayMethodId);
|
||||||
|
|
||||||
sampleResultReportingService.batchResultDataReporting(batchResultDataReportingReqVO);
|
sampleResultReportingService.batchResultDataReporting(batchResultDataReportingReqVO);
|
||||||
@@ -1034,7 +1050,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void createReAnalysis(Long businessSubSampleId, Long configAssayMethodId) {
|
public void createReAnalysis(Long businessSubSampleId, Long configAssayMethodId, Integer retestCount) {
|
||||||
//子样数据
|
//子样数据
|
||||||
BusinessSubSampleDO businessSubSampleDO = businessSubSampleMapper.selectById(businessSubSampleId);
|
BusinessSubSampleDO businessSubSampleDO = businessSubSampleMapper.selectById(businessSubSampleId);
|
||||||
|
|
||||||
@@ -1048,7 +1064,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
List<BusinessAssayProjectDataDO> newBusinessAssayProjectDataDOList = new ArrayList<>();
|
List<BusinessAssayProjectDataDO> newBusinessAssayProjectDataDOList = new ArrayList<>();
|
||||||
List<BusinessAssayParameterDataDO> newBusinessAssayParameterDataDOList = new ArrayList<>();
|
List<BusinessAssayParameterDataDO> newBusinessAssayParameterDataDOList = new ArrayList<>();
|
||||||
|
|
||||||
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
|
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndRetestCount(businessSubSampleId, configAssayMethodId, retestCount);
|
||||||
|
|
||||||
BusinessAssayTaskDataDO newBusinessAssayTaskDataDO = null;
|
BusinessAssayTaskDataDO newBusinessAssayTaskDataDO = null;
|
||||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectMaxRecheckCountByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectMaxRecheckCountByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
|
||||||
@@ -1112,7 +1128,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
|
|
||||||
//修改判定状态
|
//修改判定状态
|
||||||
//查询判定值
|
//查询判定值
|
||||||
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
|
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubSampleIdAndConfigAssayMethodIdAndRetestCount(businessSubSampleId, configAssayMethodId, retestCount);
|
||||||
for (BusinessSubSampleAssessmentProjectExtendRespVO businessSubSampleAssessmentProjectExtendRespVO : businessSubSampleAssessmentList) {
|
for (BusinessSubSampleAssessmentProjectExtendRespVO businessSubSampleAssessmentProjectExtendRespVO : businessSubSampleAssessmentList) {
|
||||||
businessSubSampleAssessmentProjectExtendRespVO.setAssessmentValue(null);
|
businessSubSampleAssessmentProjectExtendRespVO.setAssessmentValue(null);
|
||||||
businessSubSampleAssessmentProjectExtendRespVO.setAssessmentStatus(QmsCommonConstant.IN_PROGRESS);
|
businessSubSampleAssessmentProjectExtendRespVO.setAssessmentStatus(QmsCommonConstant.IN_PROGRESS);
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import com.zt.plat.framework.common.util.object.BeanUtils;
|
|||||||
import com.zt.plat.framework.security.core.LoginUser;
|
import com.zt.plat.framework.security.core.LoginUser;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.BatchResultDataReportingReqVO;
|
import com.zt.plat.module.qms.business.bus.controller.vo.BatchResultDataReportingReqVO;
|
||||||
|
import com.zt.plat.module.qms.business.bus.controller.vo.BatchResultDataReportingReqVO.BusinessSubParentSampleIdAndRetestCount;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubParentSampleAssessmentProjectExtendRespVO;
|
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubParentSampleAssessmentProjectExtendRespVO;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubParentSampleAssessmentGroupReqVO;
|
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubParentSampleAssessmentGroupReqVO;
|
||||||
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubParentSampleAssessmentGroupRespVO;
|
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessSubParentSampleAssessmentGroupRespVO;
|
||||||
@@ -571,6 +572,9 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
|||||||
List<BusinessAssayReportDataDO> saveBusinessAssayReportDataDOList = new ArrayList<>();
|
List<BusinessAssayReportDataDO> saveBusinessAssayReportDataDOList = new ArrayList<>();
|
||||||
List<BusinessAssayReportDataDO> updateBusinessAssayReportDataDOList = new ArrayList<>();
|
List<BusinessAssayReportDataDO> updateBusinessAssayReportDataDOList = new ArrayList<>();
|
||||||
|
|
||||||
|
List<Long> businessSubParentSampleAssessmentIdList = new ArrayList<>();
|
||||||
|
List<Long> businessSubParentSampleAssessmentProjectIdList = new ArrayList<>();
|
||||||
|
|
||||||
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentExtendList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(reqVO.getBusinessSubParentSampleIds(), reqVO.getConfigAssayMethodId());
|
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentExtendList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(reqVO.getBusinessSubParentSampleIds(), reqVO.getConfigAssayMethodId());
|
||||||
|
|
||||||
List<BusinessSubParentSampleDO> businessSubParentSampleDOList = businessSubParentSampleMapper.selectByIds(reqVO.getBusinessSubParentSampleIds());
|
List<BusinessSubParentSampleDO> businessSubParentSampleDOList = businessSubParentSampleMapper.selectByIds(reqVO.getBusinessSubParentSampleIds());
|
||||||
@@ -615,33 +619,43 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
|||||||
if (StringUtils.isNotBlank(assayData)) {
|
if (StringUtils.isNotBlank(assayData)) {
|
||||||
assayDataJson = JSON.parseObject(assayData, new TypeReference<Map<String, ReportFieldValueData>>() {});
|
assayDataJson = JSON.parseObject(assayData, new TypeReference<Map<String, ReportFieldValueData>>() {});
|
||||||
}
|
}
|
||||||
//循环判定值
|
|
||||||
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubParentSampleDO.getId()) && "normal".equals(f.getAssessmentStatus())).collect(Collectors.toList());
|
//过滤分样id,根据多个复测次数处理
|
||||||
for (BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessment : businessSubParentSampleAssessmentList) {
|
List<BusinessSubParentSampleIdAndRetestCount> businessSubParentSampleIdAndRetestCountList = reqVO.getBusinessSubParentSampleIdAndRetestCounts().stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubParentSampleDO.getId())).collect(Collectors.toList());
|
||||||
Long configAssayMethodProjectId = businessSubParentSampleAssessment.getConfigAssayMethodProjectId();
|
for (BusinessSubParentSampleIdAndRetestCount businessSubParentSampleIdAndRetestCount : businessSubParentSampleIdAndRetestCountList) {
|
||||||
List<ConfigProjectExtendRespVO> configProjectFeildList = configProjectList.stream().filter(f -> f.getConfigAssayMethodProjectId() != null && f.getConfigAssayMethodProjectId().equals(configAssayMethodProjectId)).collect(Collectors.toList());
|
|
||||||
for (ConfigProjectExtendRespVO configProjectFeild : configProjectFeildList) {
|
//循环判定值
|
||||||
//查询动态报表字段
|
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubParentSampleDO.getId()) && f.getRetestCount().equals(businessSubParentSampleIdAndRetestCount.getRetestCount()) && "normal".equals(f.getAssessmentStatus())).collect(Collectors.toList());
|
||||||
ConfigReportFieldDO configReportField = configReportFieldDynamicList.stream().filter(f -> f.getConfigReportTypeId().equals(configSampleReport.getConfigReportTypeId()) && f.getField().equals(configProjectFeild.getSaveColumn())).findFirst().orElse(null);
|
for (BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessment : businessSubParentSampleAssessmentList) {
|
||||||
|
businessSubParentSampleAssessmentProjectIdList.add(businessSubParentSampleAssessment.getId());
|
||||||
|
businessSubParentSampleAssessmentIdList.add(businessSubParentSampleAssessment.getBusinessSubParentSampleAssessmentId());
|
||||||
|
|
||||||
if (configReportField == null) {
|
Long configAssayMethodProjectId = businessSubParentSampleAssessment.getConfigAssayMethodProjectId();
|
||||||
continue;
|
List<ConfigProjectExtendRespVO> configProjectFeildList = configProjectList.stream().filter(f -> f.getConfigAssayMethodProjectId() != null && f.getConfigAssayMethodProjectId().equals(configAssayMethodProjectId)).collect(Collectors.toList());
|
||||||
}
|
for (ConfigProjectExtendRespVO configProjectFeild : configProjectFeildList) {
|
||||||
|
//查询动态报表字段
|
||||||
ReportFieldValueData reportFieldValueData = new ReportFieldValueData();
|
ConfigReportFieldDO configReportField = configReportFieldDynamicList.stream().filter(f -> f.getConfigReportTypeId().equals(configSampleReport.getConfigReportTypeId()) && f.getField().equals(configProjectFeild.getSaveColumn())).findFirst().orElse(null);
|
||||||
reportFieldValueData.setFieldName(configReportField.getFieldName());
|
|
||||||
reportFieldValueData.setFieldValue(businessSubParentSampleAssessment.getAssessmentValue());
|
if (configReportField == null) {
|
||||||
reportFieldValueData.setDataType(configReportField.getDataType());
|
continue;
|
||||||
reportFieldValueData.setDecimalPosition(configReportField.getDecimalPosition());
|
}
|
||||||
reportFieldValueData.setMathSymbol(businessSubParentSampleAssessment.getSymbol());
|
|
||||||
reportFieldValueData.setUnit(configProjectFeild.getDictionaryProjectUnit());
|
ReportFieldValueData reportFieldValueData = new ReportFieldValueData();
|
||||||
reportFieldValueData.setUsage(businessSubParentSampleAssessment.getUsage());
|
reportFieldValueData.setFieldName(configReportField.getFieldName());
|
||||||
reportFieldValueData.setMinLimitValue(businessSubParentSampleAssessment.getMinimumLimitValue());
|
reportFieldValueData.setFieldValue(businessSubParentSampleAssessment.getAssessmentValue());
|
||||||
reportFieldValueData.setMethodName(businessSubParentSampleAssessment.getConfigAssayMethodName());
|
reportFieldValueData.setDataType(configReportField.getDataType());
|
||||||
assayDataJson.put(configReportField.getField(), reportFieldValueData);
|
reportFieldValueData.setDecimalPosition(configReportField.getDecimalPosition());
|
||||||
}
|
reportFieldValueData.setMathSymbol(businessSubParentSampleAssessment.getSymbol());
|
||||||
|
reportFieldValueData.setUnit(configProjectFeild.getDictionaryProjectUnit());
|
||||||
|
reportFieldValueData.setUsage(businessSubParentSampleAssessment.getUsage());
|
||||||
|
reportFieldValueData.setMinLimitValue(businessSubParentSampleAssessment.getMinimumLimitValue());
|
||||||
|
reportFieldValueData.setMethodName(businessSubParentSampleAssessment.getConfigAssayMethodName());
|
||||||
|
assayDataJson.put(configReportField.getField(), reportFieldValueData);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//修改已上报数据来源
|
//修改已上报数据来源
|
||||||
String dataSource = businessAssayReportDataDO.getDataSource();
|
String dataSource = businessAssayReportDataDO.getDataSource();
|
||||||
Set<String> dataSources = StringUtils.isBlank(dataSource) ? new HashSet<>() : new HashSet<>(Arrays.asList(dataSource.split(",")));
|
Set<String> dataSources = StringUtils.isBlank(dataSource) ? new HashSet<>() : new HashSet<>(Arrays.asList(dataSource.split(",")));
|
||||||
@@ -726,8 +740,9 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
|||||||
//查询当前分析部门下的子样分析班组信息
|
//查询当前分析部门下的子样分析班组信息
|
||||||
List<BusinessSubSampleAnalysisGroupDO> businessSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubParentSampleIdsAndAssayDepartmentId(reqVO.getBusinessSubParentSampleIds(), configAssayMethodDO.getAssayDepartmentId());
|
List<BusinessSubSampleAnalysisGroupDO> businessSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubParentSampleIdsAndAssayDepartmentId(reqVO.getBusinessSubParentSampleIds(), configAssayMethodDO.getAssayDepartmentId());
|
||||||
for (BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO : businessSubSampleAnalysisGroupDOList) {//循环分析班组信息
|
for (BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO : businessSubSampleAnalysisGroupDOList) {//循环分析班组信息
|
||||||
//查询当前分样判定上报未上报的,并排除当前上报的方法,的数量
|
//查询当前分样判定上报未上报的,并排除当前(上报方法和复测次数),的数量
|
||||||
long count = businessSubParentSampleAssessmentDOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubSampleAnalysisGroupDO.getBusinessSubParentSampleId()) && !f.getConfigAssayMethodId().equals(reqVO.getConfigAssayMethodId()) && f.getIsReported().equals(QmsCommonConstant.NO)).count();
|
List<Integer> retestCountList = reqVO.getBusinessSubParentSampleIdAndRetestCounts().stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubSampleAnalysisGroupDO.getBusinessSubParentSampleId())).map(m -> m.getRetestCount()).collect(Collectors.toList());
|
||||||
|
long count = businessSubParentSampleAssessmentDOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(businessSubSampleAnalysisGroupDO.getBusinessSubParentSampleId()) && !( f.getConfigAssayMethodId().equals(reqVO.getConfigAssayMethodId()) && retestCountList.contains(f.getRetestCount()) ) && f.getIsReported().equals(QmsCommonConstant.NO)).count();
|
||||||
if (count > 0) {//如果还存在未上报的数据,则继续
|
if (count > 0) {//如果还存在未上报的数据,则继续
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -776,35 +791,20 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
|||||||
}
|
}
|
||||||
|
|
||||||
//查询正常上报的
|
//查询正常上报的
|
||||||
List<Long> businessSubParentSampleAssessmentIdList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> "normal".equals(f.getAssessmentStatus())).map(m -> m.getId()).collect(Collectors.toList());
|
// List<Long> businessSubParentSampleAssessmentIdList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> "normal".equals(f.getAssessmentStatus()) ).map(m -> m.getId()).collect(Collectors.toList());
|
||||||
//查询未上报的分样主id
|
|
||||||
// List<Long> noAllReportBusinessSubParentSampleIdList = businessSubParentSampleAssessmentExtendList.stream().filter(f -> "in_progress".equals(f.getAssessmentStatus())).map(m -> m.getBusinessSubParentSampleId()).distinct().collect(Collectors.toList());
|
|
||||||
//全部上报的
|
|
||||||
// List<Long> allReportBusinessSubParentSampleIdList = new ArrayList<>();
|
|
||||||
// if (noAllReportBusinessSubParentSampleIdList != null) {
|
|
||||||
// allReportBusinessSubParentSampleIdList = reqVO.getBusinessSubParentSampleIds().stream().filter(item -> !noAllReportBusinessSubParentSampleIdList.contains(item)).collect(Collectors.toList());
|
|
||||||
// }
|
|
||||||
|
|
||||||
businessSubParentSampleAssessmentProjectMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentProjectDO>()
|
businessSubParentSampleAssessmentProjectMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentProjectDO>()
|
||||||
.set(BusinessSubParentSampleAssessmentProjectDO::getIsReported, QmsCommonConstant.YES)
|
.set(BusinessSubParentSampleAssessmentProjectDO::getIsReported, QmsCommonConstant.YES)
|
||||||
.set(BusinessSubParentSampleAssessmentProjectDO::getReporter, nickName)
|
.set(BusinessSubParentSampleAssessmentProjectDO::getReporter, nickName)
|
||||||
.set(BusinessSubParentSampleAssessmentProjectDO::getReportTime, LocalDateTime.now())
|
.set(BusinessSubParentSampleAssessmentProjectDO::getReportTime, LocalDateTime.now())
|
||||||
.in(BusinessSubParentSampleAssessmentProjectDO::getId, businessSubParentSampleAssessmentIdList));
|
.in(BusinessSubParentSampleAssessmentProjectDO::getId, businessSubParentSampleAssessmentProjectIdList));
|
||||||
|
|
||||||
|
|
||||||
// if (allReportBusinessSubParentSampleIdList.size() > 0) {
|
|
||||||
// businessSubParentSampleAssessmentMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentDO>()
|
|
||||||
// .set(BusinessSubParentSampleAssessmentDO::getIsReported, QmsCommonConstant.YES)
|
|
||||||
// .set(BusinessSubParentSampleAssessmentDO::getReporter, nickName)
|
|
||||||
// .set(BusinessSubParentSampleAssessmentDO::getReportTime, LocalDateTime.now())
|
|
||||||
// .in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, allReportBusinessSubParentSampleIdList)
|
|
||||||
// .eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()));
|
|
||||||
// }
|
|
||||||
businessSubParentSampleAssessmentMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentDO>()
|
businessSubParentSampleAssessmentMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentDO>()
|
||||||
.set(BusinessSubParentSampleAssessmentDO::getIsReported, QmsCommonConstant.YES)
|
.set(BusinessSubParentSampleAssessmentDO::getIsReported, QmsCommonConstant.YES)
|
||||||
.set(BusinessSubParentSampleAssessmentDO::getReporter, nickName)
|
.set(BusinessSubParentSampleAssessmentDO::getReporter, nickName)
|
||||||
.set(BusinessSubParentSampleAssessmentDO::getReportTime, LocalDateTime.now())
|
.set(BusinessSubParentSampleAssessmentDO::getReportTime, LocalDateTime.now())
|
||||||
.in(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleIds())
|
.in(BusinessSubParentSampleAssessmentDO::getId, businessSubParentSampleAssessmentIdList));
|
||||||
.eq(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId()));
|
|
||||||
|
|
||||||
if (updatebBusinessSampleEntrustRegistrationDOList.size() > 0) {
|
if (updatebBusinessSampleEntrustRegistrationDOList.size() > 0) {
|
||||||
businessSampleEntrustRegistrationMapper.updateBatch(updatebBusinessSampleEntrustRegistrationDOList);
|
businessSampleEntrustRegistrationMapper.updateBatch(updatebBusinessSampleEntrustRegistrationDOList);
|
||||||
|
|||||||
@@ -353,7 +353,7 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService {
|
|||||||
//如果当前分析方法不等于要变更的方法
|
//如果当前分析方法不等于要变更的方法
|
||||||
if (!businessSubParentSampleAssessment.getConfigAssayMethodId().equals(changeConfigAssayMethodId)) {
|
if (!businessSubParentSampleAssessment.getConfigAssayMethodId().equals(changeConfigAssayMethodId)) {
|
||||||
//查询是否已有要变更的方法的分样判定
|
//查询是否已有要变更的方法的分样判定
|
||||||
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(businessSubParentSampleAssessment.getBusinessSubParentSampleId(), changeConfigAssayMethodId);
|
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = businessSubParentSampleAssessmentMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodIdAndRetestCount(businessSubParentSampleAssessment.getBusinessSubParentSampleId(), changeConfigAssayMethodId, businessSubParentSampleAssessment.getRetestCount());
|
||||||
if (businessSubParentSampleAssessmentDO == null) {//不存在
|
if (businessSubParentSampleAssessmentDO == null) {//不存在
|
||||||
//根据变更方法过滤出检测项目
|
//根据变更方法过滤出检测项目
|
||||||
List<Long> projectIdList = changeConfigAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(changeConfigAssayMethodId)).map(m -> m.getDictionaryProjectId()).distinct().collect(Collectors.toList());
|
List<Long> projectIdList = changeConfigAssayMethodProjectList.stream().filter(f -> f.getConfigAssayMethodId().equals(changeConfigAssayMethodId)).map(m -> m.getDictionaryProjectId()).distinct().collect(Collectors.toList());
|
||||||
|
|||||||
Reference in New Issue
Block a user