结果报送条件查询等

This commit is contained in:
2025-12-04 11:02:50 +08:00
parent d41f69cc51
commit 61d91d29b0
7 changed files with 49 additions and 15 deletions

View File

@@ -43,8 +43,8 @@ public class SampleResultReportingController implements BusinessControllerMarker
//获取方法对应的样品 //获取方法对应的样品
@GetMapping("/getSampleResultReportingList") @GetMapping("/getSampleResultReportingList")
public CommonResult<?> getSampleResultReportingList(Long configAssayMethodId) { public CommonResult<?> getSampleResultReportingList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
JSONObject result = sampleResultReportingService.getSampleResultReportingList(configAssayMethodId); JSONObject result = sampleResultReportingService.getSampleResultReportingList(reqVO);
return success(result); return success(result);
} }

View File

@@ -1,5 +1,11 @@
package com.zt.plat.module.qms.business.bus.controller.vo; package com.zt.plat.module.qms.business.bus.controller.vo;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@@ -17,4 +23,8 @@ public class BusinessSubParentSampleAssessmentGroupReqVO {
@Schema(description = "分析部门名称") @Schema(description = "分析部门名称")
private String assayDepartmentName; private String assayDepartmentName;
@Schema(description = "收样时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] sampleReceiveTime;
} }

View File

@@ -1,5 +1,7 @@
package com.zt.plat.module.qms.business.bus.controller.vo; package com.zt.plat.module.qms.business.bus.controller.vo;
import java.time.LocalDateTime;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -22,4 +24,7 @@ public class NoReportSubParentSampleAssessmentRespVO {
private String taskType; private String taskType;
private String assayType; private String assayType;
private LocalDateTime sampleReceiveTime;
} }

View File

@@ -69,7 +69,7 @@ public interface BusinessSubParentSampleAssessmentProjectMapper extends BaseMapp
.eq(BusinessSubParentSampleAssessmentProjectDO::getConfigAssayMethodId, configAssayMethodId)); .eq(BusinessSubParentSampleAssessmentProjectDO::getConfigAssayMethodId, configAssayMethodId));
} }
List<NoReportSubParentSampleAssessmentRespVO> selectNoReportSubParentSampleAssessment(@Param("configAssayMethodId") Long configAssayMethodId); List<NoReportSubParentSampleAssessmentRespVO> selectNoReportSubParentSampleAssessment(@Param("reqVO") BusinessSubParentSampleAssessmentGroupReqVO reqVO);
List<RecheckSubSampleParentMethodRespVO> getRecheckAssayMethodList(@Param("baseSampleId") Long baseSampleId, @Param("businessSubParentSampleId") Long businessSubParentSampleId, @Param("configAssayMethodId") Long configAssayMethodId); List<RecheckSubSampleParentMethodRespVO> getRecheckAssayMethodList(@Param("baseSampleId") Long baseSampleId, @Param("businessSubParentSampleId") Long businessSubParentSampleId, @Param("configAssayMethodId") Long configAssayMethodId);

View File

@@ -14,7 +14,7 @@ public interface SampleResultReportingService {
List<BusinessSubParentSampleAssessmentGroupRespVO> getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO); List<BusinessSubParentSampleAssessmentGroupRespVO> getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO);
JSONObject getSampleResultReportingList(Long configAssayMethodId); JSONObject getSampleResultReportingList(BusinessSubParentSampleAssessmentGroupReqVO reqVO);
List<RecheckSubSampleParentMethodRespVO> getRecheckAssayMethodList(Long baseSampleId, Long businessSubParentSampleId, Long configAssayMethodId); List<RecheckSubSampleParentMethodRespVO> getRecheckAssayMethodList(Long baseSampleId, Long businessSubParentSampleId, Long configAssayMethodId);

View File

@@ -115,8 +115,8 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
} }
@Override @Override
public JSONObject getSampleResultReportingList(Long configAssayMethodId) { public JSONObject getSampleResultReportingList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
List<ConfigAssayMethodProjectExtendRespVO> configAssayMethodProjectDOList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(configAssayMethodId); List<ConfigAssayMethodProjectExtendRespVO> configAssayMethodProjectDOList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(reqVO.getConfigAssayMethodId());
List<Map<String, Object>> columnList = new ArrayList<>(); List<Map<String, Object>> columnList = new ArrayList<>();
//动态字段 //动态字段
@@ -136,7 +136,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
List<Map<String, Object>> dataList = new ArrayList<>(); List<Map<String, Object>> dataList = new ArrayList<>();
//查询结果报送未上报的样品 //查询结果报送未上报的样品
List<NoReportSubParentSampleAssessmentRespVO> noReportSubParentSampleAssessmentRespList = businessSubParentSampleAssessmentProjectMapper.selectNoReportSubParentSampleAssessment(configAssayMethodId); List<NoReportSubParentSampleAssessmentRespVO> noReportSubParentSampleAssessmentRespList = businessSubParentSampleAssessmentProjectMapper.selectNoReportSubParentSampleAssessment(reqVO);
if (CollUtil.isEmpty(noReportSubParentSampleAssessmentRespList)) {//没有查询到未上报的数据 if (CollUtil.isEmpty(noReportSubParentSampleAssessmentRespList)) {//没有查询到未上报的数据
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
@@ -148,18 +148,18 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
//分样id列表 //分样id列表
List<Long> businessSubParentSampleIds = noReportSubParentSampleAssessmentRespList.stream().map(m -> m.getBusinessSubParentSampleId()).collect(Collectors.toList()); List<Long> businessSubParentSampleIds = noReportSubParentSampleAssessmentRespList.stream().map(m -> m.getBusinessSubParentSampleId()).collect(Collectors.toList());
//报送的检测项目数据 //报送的检测项目数据
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentDOList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIds, configAssayMethodId); List<BusinessSubParentSampleAssessmentProjectExtendRespVO> businessSubParentSampleAssessmentDOList = businessSubParentSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIds, reqVO.getConfigAssayMethodId());
//获取分析任务数 //获取分析任务数
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIds, configAssayMethodId); List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIds, reqVO.getConfigAssayMethodId());
List<Long> businessSubSampleIds = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList()); List<Long> businessSubSampleIds = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList());
//获取子样数据 //获取子样数据
List<BusinessSubSampleDO> businessSubSampleDOList = businessSubSampleMapper.selectByIds(businessSubSampleIds); List<BusinessSubSampleDO> businessSubSampleDOList = businessSubSampleMapper.selectByIds(businessSubSampleIds);
//获取结果判定数据 //获取结果判定数据
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentExtendRespVOList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIds, configAssayMethodId); List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentExtendRespVOList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdsAndConfigAssayMethodId(businessSubParentSampleIds, reqVO.getConfigAssayMethodId());
//获取复测业务数据 //获取复测业务数据
List<BusinessSubSampleParentRecheckDO> businessSubSampleParentRecheckDOList = businessSubSampleParentRecheckMapper.selectByRecheckBusinessSubParentSampleIdsAndRecheckConfigAssayMethodId(businessSubParentSampleIds, configAssayMethodId); List<BusinessSubSampleParentRecheckDO> businessSubSampleParentRecheckDOList = businessSubSampleParentRecheckMapper.selectByRecheckBusinessSubParentSampleIdsAndRecheckConfigAssayMethodId(businessSubParentSampleIds, reqVO.getConfigAssayMethodId());
//循环未上报的样品 //循环未上报的样品
for (NoReportSubParentSampleAssessmentRespVO noReportSubParentSampleAssessmentRespVO : noReportSubParentSampleAssessmentRespList) { for (NoReportSubParentSampleAssessmentRespVO noReportSubParentSampleAssessmentRespVO : noReportSubParentSampleAssessmentRespList) {
@@ -170,6 +170,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
Map<String, Object> subSampleAssessmentBeforeMap = BeanUtil.copyProperties(noReportSubParentSampleAssessmentMap, Map.class); Map<String, Object> subSampleAssessmentBeforeMap = BeanUtil.copyProperties(noReportSubParentSampleAssessmentMap, Map.class);
Map<String, Object> subSampleAssessmentMap = BeanUtil.copyProperties(noReportSubParentSampleAssessmentMap, Map.class); Map<String, Object> subSampleAssessmentMap = BeanUtil.copyProperties(noReportSubParentSampleAssessmentMap, Map.class);
List<BusinessSubParentSampleAssessmentProjectExtendRespVO> curBusinessSubParentSampleAssessmentDOList = businessSubParentSampleAssessmentDOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(noReportSubParentSampleAssessmentRespVO.getBusinessSubParentSampleId())).collect(Collectors.toList()); List<BusinessSubParentSampleAssessmentProjectExtendRespVO> curBusinessSubParentSampleAssessmentDOList = businessSubParentSampleAssessmentDOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(noReportSubParentSampleAssessmentRespVO.getBusinessSubParentSampleId())).collect(Collectors.toList());
noReportSubParentSampleAssessmentMap.put("sampleReceiveTime", noReportSubParentSampleAssessmentRespVO.getSampleReceiveTime());
noReportSubParentSampleAssessmentMap.put("configAssayMethodName", "报出结果"); noReportSubParentSampleAssessmentMap.put("configAssayMethodName", "报出结果");
StringBuilder businessSubParentSampleAssessmentIds = new StringBuilder(); StringBuilder businessSubParentSampleAssessmentIds = new StringBuilder();
for (BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentDO : curBusinessSubParentSampleAssessmentDOList) { for (BusinessSubParentSampleAssessmentProjectExtendRespVO businessSubParentSampleAssessmentDO : curBusinessSubParentSampleAssessmentDOList) {
@@ -187,6 +188,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentExtendBeforeList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(businessSubSampleParentRecheckDO.getBusinessSubParentSampleId(), businessSubSampleParentRecheckDO.getConfigAssayMethodId()); List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentExtendBeforeList = businessSubSampleAssessmentProjectMapper.selectByBusinessSubParentSampleIdAndConfigAssayMethodId(businessSubSampleParentRecheckDO.getBusinessSubParentSampleId(), businessSubSampleParentRecheckDO.getConfigAssayMethodId());
StringBuilder businessSubSampleAssessmentIdsBefore = new StringBuilder(); StringBuilder businessSubSampleAssessmentIdsBefore = new StringBuilder();
for (BusinessSubSampleAssessmentProjectExtendRespVO businessSubSampleAssessmentProjectExtendRespVO : businessSubSampleAssessmentExtendBeforeList) { for (BusinessSubSampleAssessmentProjectExtendRespVO businessSubSampleAssessmentProjectExtendRespVO : businessSubSampleAssessmentExtendBeforeList) {
subSampleAssessmentBeforeMap.put("sampleReceiveTime", noReportSubParentSampleAssessmentRespVO.getSampleReceiveTime());
subSampleAssessmentBeforeMap.put("configAssayMethodName", businessSubSampleAssessmentProjectExtendRespVO.getConfigAssayMethodName()); subSampleAssessmentBeforeMap.put("configAssayMethodName", businessSubSampleAssessmentProjectExtendRespVO.getConfigAssayMethodName());
subSampleAssessmentBeforeMap.put(businessSubSampleAssessmentProjectExtendRespVO.getSimpleName(), businessSubSampleAssessmentProjectExtendRespVO.getAssessmentValue()); subSampleAssessmentBeforeMap.put(businessSubSampleAssessmentProjectExtendRespVO.getSimpleName(), businessSubSampleAssessmentProjectExtendRespVO.getAssessmentValue());
businessSubSampleAssessmentIdsBefore.append(businessSubSampleAssessmentProjectExtendRespVO.getId()).append(","); businessSubSampleAssessmentIdsBefore.append(businessSubSampleAssessmentProjectExtendRespVO.getId()).append(",");
@@ -202,6 +204,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentExtendRespVOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(noReportSubParentSampleAssessmentRespVO.getBusinessSubParentSampleId())).collect(Collectors.toList()); List<BusinessSubSampleAssessmentProjectExtendRespVO> businessSubSampleAssessmentList = businessSubSampleAssessmentExtendRespVOList.stream().filter(f -> f.getBusinessSubParentSampleId().equals(noReportSubParentSampleAssessmentRespVO.getBusinessSubParentSampleId())).collect(Collectors.toList());
StringBuilder businessSubSampleAssessmentIds = new StringBuilder(); StringBuilder businessSubSampleAssessmentIds = new StringBuilder();
for (BusinessSubSampleAssessmentProjectExtendRespVO businessSubSampleAssessmentProjectExtendRespVO : businessSubSampleAssessmentList) { for (BusinessSubSampleAssessmentProjectExtendRespVO businessSubSampleAssessmentProjectExtendRespVO : businessSubSampleAssessmentList) {
subSampleAssessmentMap.put("sampleReceiveTime", noReportSubParentSampleAssessmentRespVO.getSampleReceiveTime());
subSampleAssessmentMap.put("configAssayMethodName", businessSubSampleAssessmentProjectExtendRespVO.getConfigAssayMethodName()); subSampleAssessmentMap.put("configAssayMethodName", businessSubSampleAssessmentProjectExtendRespVO.getConfigAssayMethodName());
subSampleAssessmentMap.put(businessSubSampleAssessmentProjectExtendRespVO.getSimpleName(), businessSubSampleAssessmentProjectExtendRespVO.getAssessmentValue()); subSampleAssessmentMap.put(businessSubSampleAssessmentProjectExtendRespVO.getSimpleName(), businessSubSampleAssessmentProjectExtendRespVO.getAssessmentValue());
businessSubSampleAssessmentIds.append(businessSubSampleAssessmentProjectExtendRespVO.getId()).append(","); businessSubSampleAssessmentIds.append(businessSubSampleAssessmentProjectExtendRespVO.getId()).append(",");

View File

@@ -31,6 +31,9 @@
tbssa.BSN_SB_PRN_SMP_ASMT_ID = tbspsa.ID tbssa.BSN_SB_PRN_SMP_ASMT_ID = tbspsa.ID
LEFT JOIN T_CFG_ASY_MTHD tcam ON LEFT JOIN T_CFG_ASY_MTHD tcam ON
tbssa.CFG_ASY_MTHD_ID = tcam.ID tbssa.CFG_ASY_MTHD_ID = tcam.ID
LEFT JOIN T_BSN_SB_SMP_ANL_GRP tbssag ON
tbssa.BSN_SB_SMP_ID = tbssag.BSN_SB_SMP_ID
AND tcam.ASY_DEPT_ID = tbssag.ASY_DEPT_ID
WHERE WHERE
tbssa.DELETED = 0 tbssa.DELETED = 0
AND tbssa.RPOD_STS = 'reported' AND tbssa.RPOD_STS = 'reported'
@@ -40,6 +43,9 @@
</if> </if>
<if test="reqVO.assayDepartmentId != null and reqVO.assayDepartmentId != ''"> <if test="reqVO.assayDepartmentId != null and reqVO.assayDepartmentId != ''">
AND tcam.ASY_DEPT_ID = #{reqVO.assayDepartmentId} AND tcam.ASY_DEPT_ID = #{reqVO.assayDepartmentId}
</if>
<if test="reqVO.sampleReceiveTime != null and reqVO.sampleReceiveTime.length == 2">
AND tbssag.SMP_RCV_TM BETWEEN #{reqVO.sampleReceiveTime[0]} AND #{reqVO.sampleReceiveTime[1]}
</if> </if>
GROUP BY GROUP BY
tbspsa.TENANT_ID , tbspsa.TENANT_ID ,
@@ -66,7 +72,8 @@
tbssa.ASY_TP AS assayType, tbssa.ASY_TP AS assayType,
tbsps.CFG_SB_SMP_PRN_ID AS configSubSampleParentId, tbsps.CFG_SB_SMP_PRN_ID AS configSubSampleParentId,
tbsps.SMP_NAME AS sampleName, tbsps.SMP_NAME AS sampleName,
tbs.NAME AS baseSampleName tbs.NAME AS baseSampleName,
tbssag.SMP_RCV_TM AS sampleReceiveTime
FROM FROM
T_BSN_SB_SMP_ASMT tbssa T_BSN_SB_SMP_ASMT tbssa
LEFT JOIN T_BSN_SB_PRN_SMP tbsps ON LEFT JOIN T_BSN_SB_PRN_SMP tbsps ON
@@ -75,6 +82,11 @@
tbsps.CFG_SB_SMP_PRN_ID = tcssp.ID tbsps.CFG_SB_SMP_PRN_ID = tcssp.ID
LEFT JOIN T_BSE_SMP tbs ON LEFT JOIN T_BSE_SMP tbs ON
tcssp.BSE_SMP_ID = tbs.ID tcssp.BSE_SMP_ID = tbs.ID
LEFT JOIN T_CFG_ASY_MTHD tcam ON
tbssa.CFG_ASY_MTHD_ID = tcam.ID
LEFT JOIN T_BSN_SB_SMP_ANL_GRP tbssag ON
tbssa.BSN_SB_SMP_ID = tbssag.BSN_SB_SMP_ID
AND tcam.ASY_DEPT_ID = tbssag.ASY_DEPT_ID
LEFT JOIN ( LEFT JOIN (
SELECT SELECT
tbspsa.BSN_SB_PRN_SMP_ID , tbspsa.BSN_SB_PRN_SMP_ID ,
@@ -84,7 +96,7 @@
T_BSN_SB_PRN_SMP_ASMT tbspsa T_BSN_SB_PRN_SMP_ASMT tbspsa
WHERE WHERE
tbspsa.IS_RPOD = 0 tbspsa.IS_RPOD = 0
AND tbspsa.CFG_ASY_MTHD_ID = #{configAssayMethodId} AND tbspsa.CFG_ASY_MTHD_ID = #{reqVO.configAssayMethodId}
GROUP BY GROUP BY
tbspsa.BSN_SB_PRN_SMP_ID , tbspsa.BSN_SB_PRN_SMP_ID ,
tbspsa.CFG_ASY_MTHD_ID , tbspsa.CFG_ASY_MTHD_ID ,
@@ -94,7 +106,10 @@
WHERE WHERE
tbssa.IS_RPOD = 1 tbssa.IS_RPOD = 1
AND t.IS_RPOD = 0 AND t.IS_RPOD = 0
AND tbssa.CFG_ASY_MTHD_ID = #{configAssayMethodId} AND tbssa.CFG_ASY_MTHD_ID = #{reqVO.configAssayMethodId}
<if test="reqVO.sampleReceiveTime != null and reqVO.sampleReceiveTime.length == 2">
AND tbssag.SMP_RCV_TM BETWEEN #{reqVO.sampleReceiveTime[0]} AND #{reqVO.sampleReceiveTime[1]}
</if>
GROUP BY GROUP BY
tcssp.BSE_SMP_ID , tcssp.BSE_SMP_ID ,
tbsps.BSN_BSE_SMP_ID , tbsps.BSN_BSE_SMP_ID ,
@@ -104,7 +119,8 @@
tbssa.ASY_TP , tbssa.ASY_TP ,
tbsps.CFG_SB_SMP_PRN_ID, tbsps.CFG_SB_SMP_PRN_ID,
tbsps.SMP_NAME , tbsps.SMP_NAME ,
tbs.NAME tbs.NAME,
tbssag.SMP_RCV_TM
</select> </select>
<select id="getRecheckAssayMethodList" resultType="com.zt.plat.module.qms.business.bus.controller.vo.RecheckSubSampleParentMethodRespVO"> <select id="getRecheckAssayMethodList" resultType="com.zt.plat.module.qms.business.bus.controller.vo.RecheckSubSampleParentMethodRespVO">