结果判定修改

This commit is contained in:
2025-11-24 10:26:51 +08:00
parent 87fbd54692
commit 92ec9454ba
35 changed files with 936 additions and 102 deletions

View File

@@ -0,0 +1,106 @@
package com.zt.plat.module.qms.business.bus.controller.admin;
import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import com.zt.plat.framework.business.interceptor.BusinessControllerMarker;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.constraints.*;
import jakarta.validation.*;
import jakarta.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.zt.plat.framework.common.pojo.vo.BatchDeleteReqVO;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.CommonResult;
import com.zt.plat.framework.common.util.object.BeanUtils;
import static com.zt.plat.framework.common.pojo.CommonResult.success;
import com.zt.plat.framework.excel.core.util.ExcelUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO;
import com.zt.plat.module.qms.business.bus.service.BusinessSubParentSampleAssessmentService;
import com.zt.plat.framework.apilog.core.annotation.ApiAccessLog;
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
@Tag(name = "管理后台 - 班组判定数据业务")
@RestController
@RequestMapping("/qms/business-sub-parent-sample-assessment")
@Validated
public class BusinessSubParentSampleAssessmentController implements BusinessControllerMarker {
@Resource
private BusinessSubParentSampleAssessmentService businessSubParentSampleAssessmentService;
@PostMapping("/create")
@Operation(summary = "创建班组判定数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:create')")
public CommonResult<BusinessSubParentSampleAssessmentRespVO> createBusinessSubParentSampleAssessment(@Valid @RequestBody BusinessSubParentSampleAssessmentSaveReqVO createReqVO) {
return success(businessSubParentSampleAssessmentService.createBusinessSubParentSampleAssessment(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新班组判定数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:update')")
public CommonResult<Boolean> updateBusinessSubParentSampleAssessment(@Valid @RequestBody BusinessSubParentSampleAssessmentSaveReqVO updateReqVO) {
businessSubParentSampleAssessmentService.updateBusinessSubParentSampleAssessment(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除班组判定数据业务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubParentSampleAssessment(@RequestParam("id") Long id) {
businessSubParentSampleAssessmentService.deleteBusinessSubParentSampleAssessment(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除班组判定数据业务")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:delete')")
public CommonResult<Boolean> deleteBusinessSubParentSampleAssessmentList(@RequestBody BatchDeleteReqVO req) {
businessSubParentSampleAssessmentService.deleteBusinessSubParentSampleAssessmentListByIds(req.getIds());
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得班组判定数据业务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:query')")
public CommonResult<BusinessSubParentSampleAssessmentRespVO> getBusinessSubParentSampleAssessment(@RequestParam("id") Long id) {
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessment = businessSubParentSampleAssessmentService.getBusinessSubParentSampleAssessment(id);
return success(BeanUtils.toBean(businessSubParentSampleAssessment, BusinessSubParentSampleAssessmentRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得班组判定数据业务分页")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:query')")
public CommonResult<PageResult<BusinessSubParentSampleAssessmentRespVO>> getBusinessSubParentSampleAssessmentPage(@Valid BusinessSubParentSampleAssessmentPageReqVO pageReqVO) {
PageResult<BusinessSubParentSampleAssessmentDO> pageResult = businessSubParentSampleAssessmentService.getBusinessSubParentSampleAssessmentPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, BusinessSubParentSampleAssessmentRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出班组判定数据业务 Excel")
@PreAuthorize("@ss.hasPermission('qms:business-sub-parent-sample-assessment:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportBusinessSubParentSampleAssessmentExcel(@Valid BusinessSubParentSampleAssessmentPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<BusinessSubParentSampleAssessmentDO> list = businessSubParentSampleAssessmentService.getBusinessSubParentSampleAssessmentPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "班组判定数据业务.xls", "数据", BusinessSubParentSampleAssessmentRespVO.class,
BeanUtils.toBean(list, BusinessSubParentSampleAssessmentRespVO.class));
}
}

View File

@@ -47,10 +47,8 @@ public class SampleAnalysisAuditController {
}
@GetMapping("/getSampleResultAssessmentList")
public CommonResult<JSONObject> getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus) {
JSONObject result = sampleAnalysisAuditService.getSampleResultAssessmentList(configAssayMethodId, assessmentStatus);
public CommonResult<JSONObject> getSampleResultAssessmentList(Long configAssayMethodId, String asmtReportedStatus) {
JSONObject result = sampleAnalysisAuditService.getSampleResultAssessmentList(configAssayMethodId, asmtReportedStatus);
return success(result);
}

View File

@@ -29,4 +29,10 @@ public class BusinessAssayTaskDataExtendRespVO extends BusinessAssayTaskDataResp
@Schema(description = "任务单模板key")
private String configReportTemplateKey;
private Integer asmtIsReported;
private Integer asmtIsRecheck;
private String asmtReportedStatus;
}

View File

@@ -13,4 +13,18 @@ public class BusinessAssayTaskDataGroupRespVO {
private Integer sampleTaskCount;
/** 判定未完 **/
private Integer asmtInitialCount;
/** 判定待上报 **/
private Integer asmtPendingReportCount;
/** 判定待判定 **/
private Integer asmtPendingAssessmentCount;
/** 判定复测 **/
private Integer asmtReInspectedCount;
/** 判定已上报 **/
private Integer asmtReportedCount;
}

View File

@@ -22,6 +22,9 @@ public class BusinessAssayTaskDataPageReqVO extends PageParam {
@Schema(description = "分样子样ID", example = "20464")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测方法配置ID", example = "9130")
private Long configAssayMethodId;

View File

@@ -22,6 +22,9 @@ public class BusinessAssayTaskDataReqVO {
@Schema(description = "分样子样ID", example = "20464")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测方法配置ID", example = "9130")
private Long configAssayMethodId;
@@ -88,5 +91,10 @@ public class BusinessAssayTaskDataReqVO {
@Schema(description = "备注")
private String remark;
//=== 扩展字段,判定上报状态
@Schema(description = "判定上报状态")
private String asmtReportedStatus;
}

View File

@@ -28,6 +28,9 @@ public class BusinessAssayTaskDataRespVO {
@ExcelProperty("分样子样ID")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9130")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;

View File

@@ -26,6 +26,9 @@ public class BusinessAssayTaskDataSaveReqVO {
@NotNull(message = "分样子样ID不能为空")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "9130")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;

View File

@@ -0,0 +1,57 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 班组判定数据业务分页 Request VO")
@Data
public class BusinessSubParentSampleAssessmentPageReqVO extends PageParam {
@Schema(description = "样品分样ID", example = "25701")
private Long businessSubParentSampleId;
@Schema(description = "检测方法配置ID", example = "13131")
private Long configAssayMethodId;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", example = "1")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", example = "1")
private String assayType;
@Schema(description = "判定状态,in_progress-进行中 normal-正常", example = "1")
private String assessmentStatus;
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "乐观锁", example = "13008")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,71 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 班组判定数据业务 Response VO")
@Data
@ExcelIgnoreUnannotated
public class BusinessSubParentSampleAssessmentRespVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29068")
@ExcelProperty("ID")
private Long id;
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25701")
@ExcelProperty("样品分样ID")
private Long businessSubParentSampleId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13131")
@ExcelProperty("检测方法配置ID")
private Long configAssayMethodId;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("任务类型,【字典】【jy_sample_task_type】常规、抽查...")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...")
private String assayType;
@Schema(description = "判定状态,in_progress-进行中 normal-正常", example = "1")
@ExcelProperty("判定状态,in_progress-进行中 normal-正常")
private String assessmentStatus;
@Schema(description = "是否已上报")
@ExcelProperty("是否已上报")
private Integer isReported;
@Schema(description = "上报人")
@ExcelProperty("上报人")
private String reporter;
@Schema(description = "上报时间")
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
@ExcelProperty("结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "13008")
@ExcelProperty("乐观锁")
private Integer updateCount;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
}

View File

@@ -0,0 +1,58 @@
package com.zt.plat.module.qms.business.bus.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 班组判定数据业务新增/修改 Request VO")
@Data
public class BusinessSubParentSampleAssessmentSaveReqVO {
@Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29068")
private Long id;
@Schema(description = "样品分样ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25701")
@NotNull(message = "样品分样ID不能为空")
private Long businessSubParentSampleId;
@Schema(description = "检测方法配置ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13131")
@NotNull(message = "检测方法配置ID不能为空")
private Long configAssayMethodId;
@Schema(description = "任务类型,【字典】【jy_sample_task_type】常规、抽查...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "任务类型,【字典】【jy_sample_task_type】常规、抽查...不能为空")
private String taskType;
@Schema(description = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...不能为空")
private String assayType;
@Schema(description = "判定状态,in_progress-进行中 normal-正常", example = "1")
private String assessmentStatus;
@Schema(description = "是否已上报")
private Integer isReported;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间")
private LocalDateTime reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "乐观锁", requiredMode = Schema.RequiredMode.REQUIRED, example = "13008")
@NotNull(message = "乐观锁不能为空")
private Integer updateCount;
@Schema(description = "备注")
private String remark;
}

View File

@@ -37,6 +37,9 @@ public class BusinessSubSampleAssessmentPageReqVO extends PageParam {
@Schema(description = "是否已上报,1-是0-否")
private Integer isReported;
@Schema(description = "上报状态,初始状态-initial、待上报-pending_report、待判定-pending_assessment、已复检-re_inspected、已上报-reported", example = "1")
private String reportedStatus;
@Schema(description = "上报人")
private String reporter;
@@ -44,6 +47,9 @@ public class BusinessSubSampleAssessmentPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
private String systemDepartmentCode;

View File

@@ -19,6 +19,9 @@ public class BusinessSubSampleAssessmentProjectPageReqVO extends PageParam {
@Schema(description = "分样子样ID", example = "7025")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", example = "21744")
private Long dictionaryProjectId;

View File

@@ -23,6 +23,10 @@ public class BusinessSubSampleAssessmentProjectRespVO {
@ExcelProperty("分样子样ID")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
@ExcelProperty("分样子样判定ID")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "21744")
@ExcelProperty("检测项目ID,字典表【T_DIC_PRJ】")
private Long dictionaryProjectId;

View File

@@ -21,6 +21,9 @@ public class BusinessSubSampleAssessmentProjectSaveReqVO {
@NotNull(message = "分样子样ID不能为空")
private Long businessSubSampleId;
@Schema(description = "分样子样判定ID", example = "14560")
private Long businessSubSampleAssessmentId;
@Schema(description = "检测项目ID,字典表【T_DIC_PRJ】", requiredMode = Schema.RequiredMode.REQUIRED, example = "21744")
@NotNull(message = "检测项目ID,字典表【T_DIC_PRJ】不能为空")
private Long dictionaryProjectId;

View File

@@ -48,6 +48,9 @@ public class BusinessSubSampleAssessmentRespVO {
@ExcelProperty("是否已上报,1-是0-否")
private Integer isReported;
@Schema(description = "上报状态,初始状态-initial、待上报-pending_report、待判定-pending_assessment、已复检-re_inspected、已上报-reported", example = "1")
private String reportedStatus;
@Schema(description = "上报人")
@ExcelProperty("上报人")
private String reporter;
@@ -56,6 +59,9 @@ public class BusinessSubSampleAssessmentRespVO {
@ExcelProperty("上报时间")
private LocalDateTime reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;

View File

@@ -41,12 +41,18 @@ public class BusinessSubSampleAssessmentSaveReqVO {
@Schema(description = "是否已上报,1-是0-否")
private Integer isReported;
@Schema(description = "上报状态,初始状态-initial、待上报-pending_report、待判定-pending_assessment、已复检-re_inspected、已上报-reported", example = "1")
private String reportedStatus;
@Schema(description = "上报人")
private String reporter;
@Schema(description = "上报时间")
private LocalDateTime reportTime;
@Schema(description = "结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改")
private String resultTreatmentWay;
@Schema(description = "所属部门")
private String systemDepartmentCode;

View File

@@ -2,11 +2,7 @@ package com.zt.plat.module.qms.business.bus.dal.dataobject;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
/**
@@ -50,6 +46,11 @@ public class BusinessAssayTaskDataDO extends BusinessBaseDO {
@TableField("BSN_SB_SMP_ID")
private Long businessSubSampleId;
/**
* 分样子样判定ID
*/
@TableField("BSN_SB_SMP_ASMT_ID")
private Long businessSubSampleAssessmentId;
/**
* 检测方法配置ID
*/
@TableField("CFG_ASY_MTHD_ID")

View File

@@ -0,0 +1,96 @@
package com.zt.plat.module.qms.business.bus.dal.dataobject;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.zt.plat.framework.mybatis.core.dataobject.BusinessBaseDO;
/**
* 班组判定数据业务 DO
*
* @author 后台管理
*/
@TableName("t_bsn_sb_prn_smp_asmt")
@KeySequence("t_bsn_sb_prn_smp_asmt_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
* 支持业务基类继承isBusiness=true 时继承 BusinessBaseDO否则继承 BaseDO
*/
public class BusinessSubParentSampleAssessmentDO extends BusinessBaseDO {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 样品分样ID
*/
@TableField("BSN_SB_PRN_SMP_ID")
private Long businessSubParentSampleId;
/**
* 检测方法配置ID
*/
@TableField("CFG_ASY_MTHD_ID")
private Long configAssayMethodId;
/**
* 任务类型,【字典】【jy_sample_task_type】常规、抽查...
*/
@TableField("TSK_TP")
private String taskType;
/**
* 分析类型,【字典】【jy_sample_assay_type】单杯-single_cup、双杯-double_cup、平行-single_parallel...
*/
@TableField("ASY_TP")
private String assayType;
/**
* 判定状态,in_progress-进行中 normal-正常
*/
@TableField("ASMT_STS")
private String assessmentStatus;
/**
* 是否已上报
*/
@TableField("IS_RPOD")
private Integer isReported;
/**
* 上报人
*/
@TableField("RPTR")
private String reporter;
/**
* 上报时间
*/
@TableField("RPT_TM")
private LocalDateTime reportTime;
/**
* 结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改
*/
@TableField("RSLT_TMT_WY")
private String resultTreatmentWay;
/**
* 所属部门
*/
@TableField("SYS_DEPT_CD")
private String systemDepartmentCode;
/**
* 乐观锁
*/
@TableField("UPD_CNT")
private Integer updateCount;
/**
* 备注
*/
@TableField("RMK")
private String remark;
}

View File

@@ -31,6 +31,11 @@ public class BusinessSubSampleAssessmentDO extends BusinessBaseDO {
@TableId(type = IdType.ASSIGN_ID)
private Long id;
/**
* 样品主样ID
*/
@TableField("BSN_BSE_SMP_ID")
private Long businessBaseSampleId;
/**
* 样品分样ID
*/
@TableField("BSN_SB_PRN_SMP_ID")
@@ -41,6 +46,11 @@ public class BusinessSubSampleAssessmentDO extends BusinessBaseDO {
@TableField("BSN_SB_SMP_ID")
private Long businessSubSampleId;
/**
* 班组判定数据业务ID
*/
@TableField("BSN_SB_PRN_SMP_ASMT_ID")
private Long businessSubParentSampleAssessmentId;
/**
* 检测方法配置ID
*/
@TableField("CFG_ASY_MTHD_ID")
@@ -71,6 +81,11 @@ public class BusinessSubSampleAssessmentDO extends BusinessBaseDO {
@TableField("IS_RPOD")
private Integer isReported;
/**
* 上报状态,初始状态-initial、待上报-pending_report、待判定-pending_assessment、已复检-re_inspected、已上报-reported
*/
@TableField("RPOD_STS")
private String reportedStatus;
/**
* 上报人
*/
@TableField("RPTR")
@@ -81,6 +96,11 @@ public class BusinessSubSampleAssessmentDO extends BusinessBaseDO {
@TableField("RPT_TM")
private LocalDateTime reportTime;
/**
* 结果处理方式,automatic-自动报出(不超差)manual-手动报出modify-允许修改
*/
@TableField("RSLT_TMT_WY")
private String resultTreatmentWay;
/**
* 所属部门
*/
@TableField("SYS_DEPT_CD")

View File

@@ -43,6 +43,11 @@ public class BusinessSubSampleAssessmentProjectDO extends BusinessBaseDO {
@TableField("BSN_SB_SMP_ID")
private Long businessSubSampleId;
/**
* 分样子样判定ID
*/
@TableField("BSN_SB_SMP_ASMT_ID")
private Long businessSubSampleAssessmentId;
/**
* 检测项目ID,字典表【T_DIC_PRJ】
*/
@TableField("DIC_PRJ_ID")

View File

@@ -15,6 +15,7 @@ import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataPa
import com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataReqVO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAnalysisGroupDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentProjectDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
@@ -49,6 +50,7 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
.eqIfPresent(BusinessAssayTaskDataDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId())
.eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId())
.eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId())
.eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubSampleAssessmentId, reqVO.getBusinessSubSampleAssessmentId())
.eqIfPresent(BusinessAssayTaskDataDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
.eqIfPresent(BusinessAssayTaskDataDO::getBusinessAssayTaskId, reqVO.getBusinessAssayTaskId())
.eqIfPresent(BusinessAssayTaskDataDO::getTaskType, reqVO.getTaskType())
@@ -87,6 +89,7 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
.eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId())
.eqIfPresent(BusinessAssayTaskDataDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
.eqIfPresent(BusinessAssayTaskDataDO::getBusinessAssayTaskId, reqVO.getBusinessAssayTaskId())
.eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubSampleAssessmentId, reqVO.getBusinessSubSampleAssessmentId())
.eqIfPresent(BusinessAssayTaskDataDO::getTaskType, reqVO.getTaskType())
.eqIfPresent(BusinessAssayTaskDataDO::getAssayType, reqVO.getAssayType())
.eqIfPresent(BusinessAssayTaskDataDO::getAssayProject, reqVO.getAssayProject())
@@ -135,6 +138,7 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
MPJLambdaWrapper<BusinessAssayTaskDataDO> mpjLambdaWrapper = new MPJLambdaWrapper<BusinessAssayTaskDataDO>()
.leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDataDO::getConfigAssayMethodId)
.leftJoin(BusinessSubSampleDO.class, BusinessSubSampleDO::getId, BusinessAssayTaskDataDO::getBusinessSubSampleId)
.leftJoin(BusinessSubSampleAssessmentDO.class, BusinessSubSampleAssessmentDO::getId, BusinessAssayTaskDataDO::getBusinessSubSampleAssessmentId)
.leftJoin(BusinessSubSampleAnalysisGroupDO.class, on -> on
.eq(BusinessSubSampleAnalysisGroupDO::getBusinessSubSampleId, BusinessAssayTaskDataDO::getBusinessSubSampleId)
.eq(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentId, BusinessAssayTaskDataDO::getAssayDepartmentId))
@@ -144,6 +148,9 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
.selectAs(BusinessSubSampleDO::getSampleName, BusinessAssayTaskDataExtendRespVO::getSampleName)
.selectAs(BusinessSubSampleDO::getSampleCode, BusinessAssayTaskDataExtendRespVO::getSampleCode)
.selectAs(BusinessSubSampleDO::getSampleAssayCode, BusinessAssayTaskDataExtendRespVO::getSampleAssayCode)
.selectAs(BusinessSubSampleAssessmentDO::getIsRecheck, BusinessAssayTaskDataExtendRespVO::getAsmtIsRecheck)
.selectAs(BusinessSubSampleAssessmentDO::getIsReported, BusinessAssayTaskDataExtendRespVO::getAsmtIsReported)
.selectAs(BusinessSubSampleAssessmentDO::getReportedStatus, BusinessAssayTaskDataExtendRespVO::getAsmtReportedStatus)
.selectAs(BusinessSubSampleAnalysisGroupDO::getSampleReceiver, BusinessAssayTaskDataExtendRespVO::getSampleReceiver)
.selectAs(BusinessSubSampleAnalysisGroupDO::getSampleReceiveTime, BusinessAssayTaskDataExtendRespVO::getSampleReceiveTime);
if (ObjectUtil.isNotEmpty(reqVO.getBusinessBaseSampleId())) {
@@ -155,46 +162,20 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
if (ObjectUtil.isNotEmpty(reqVO.getConfigAssayMethodId())) {
mpjLambdaWrapper.eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId());
}
mpjLambdaWrapper.ne(BusinessSubSampleAnalysisGroupDO::getSampleStatus, "已收样");
if (ObjectUtil.isNotEmpty(reqVO.getAsmtReportedStatus())) {
mpjLambdaWrapper.eq(BusinessSubSampleAssessmentDO::getReportedStatus, reqVO.getAsmtReportedStatus());
switch(reqVO.getAsmtReportedStatus()) {
case QmsCommonConstant.ASMT_INITIAL:
case QmsCommonConstant.ASMT_PENDING_REPORT:
case QmsCommonConstant.ASMT_PENDING_ASSESSMENT:
mpjLambdaWrapper.eq(BusinessAssayTaskDataDO::getIsAssignTasked, QmsCommonConstant.YES);//已任务指派
break;
}
}
mpjLambdaWrapper.eq(BusinessSubSampleAnalysisGroupDO::getSampleStatus, "已收样");//已收样
mpjLambdaWrapper.orderByAsc(BusinessAssayTaskDataDO::getBusinessSubSampleId).orderByAsc(BusinessAssayTaskDataDO::getReportTime);
return selectJoinList(BusinessAssayTaskDataExtendRespVO.class, mpjLambdaWrapper);
// return selectJoinList(BusinessAssayTaskDataExtendRespVO.class, new MPJLambdaWrapperX<BusinessAssayTaskDataDO>()
// .leftJoin(ConfigAssayMethodDO.class, ConfigAssayMethodDO::getId, BusinessAssayTaskDataDO::getConfigAssayMethodId)
// .leftJoin(BusinessSubSampleDO.class, BusinessSubSampleDO::getId, BusinessAssayTaskDataDO::getBusinessSubSampleId)
// .selectAll(BusinessAssayTaskDataDO.class)
// .selectAs(ConfigAssayMethodDO::getName, BusinessAssayTaskDataExtendRespVO::getConfigAssayMethodName)
// .selectAs(BusinessSubSampleDO::getSampleName, BusinessAssayTaskDataExtendRespVO::getSampleName)
// .selectAs(BusinessSubSampleDO::getSampleCode, BusinessAssayTaskDataExtendRespVO::getSampleCode)
// .selectAs(BusinessSubSampleDO::getSampleAssayCode, BusinessAssayTaskDataExtendRespVO::getSampleAssayCode)
// .eqIfPresent(BusinessAssayTaskDataDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId())
// .eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId())
// .eqIfPresent(BusinessAssayTaskDataDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId())
// .eqIfPresent(BusinessAssayTaskDataDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
// .eqIfPresent(BusinessAssayTaskDataDO::getBusinessAssayTaskId, reqVO.getBusinessAssayTaskId())
// .eqIfPresent(BusinessAssayTaskDataDO::getTaskType, reqVO.getTaskType())
// .eqIfPresent(BusinessAssayTaskDataDO::getAssayType, reqVO.getAssayType())
// .eqIfPresent(BusinessAssayTaskDataDO::getAssayProject, reqVO.getAssayProject())
// .eqIfPresent(BusinessAssayTaskDataDO::getAssayDepartmentId, reqVO.getAssayDepartmentId())
// .likeIfPresent(BusinessAssayTaskDataDO::getAssayDepartmentName, reqVO.getAssayDepartmentName())
// .eqIfPresent(BusinessAssayTaskDataDO::getAssayOperator, reqVO.getAssayOperator())
// .betweenIfPresent(BusinessAssayTaskDataDO::getAssignTaskTime, reqVO.getAssignTaskTime())
// .eqIfPresent(BusinessAssayTaskDataDO::getIsAssignTasked, reqVO.getIsAssignTasked())
// .eqIfPresent(BusinessAssayTaskDataDO::getIsReported, reqVO.getIsReported())
// .eqIfPresent(BusinessAssayTaskDataDO::getReporter, reqVO.getReporter())
// .betweenIfPresent(BusinessAssayTaskDataDO::getReportTime, reqVO.getReportTime())
// .eqIfPresent(BusinessAssayTaskDataDO::getConfigSampleFlowId, reqVO.getConfigSampleFlowId())
// .eqIfPresent(BusinessAssayTaskDataDO::getSampleFlowNodeKey, reqVO.getSampleFlowNodeKey())
// .betweenIfPresent(BusinessAssayTaskDataDO::getSampleFlowNodeTime, reqVO.getSampleFlowNodeTime())
// .eqIfPresent(BusinessAssayTaskDataDO::getAnalysisCount, reqVO.getAnalysisCount())
// .eqIfPresent(BusinessAssayTaskDataDO::getUpdateCount, reqVO.getUpdateCount())
// .eqIfPresent(BusinessAssayTaskDataDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
// .betweenIfPresent(BusinessAssayTaskDataDO::getCreateTime, reqVO.getCreateTime())
// .eqIfPresent(BusinessAssayTaskDataDO::getRemark, reqVO.getRemark())
// .orderByAsc(BusinessAssayTaskDataDO::getBusinessSubSampleId)
// .orderByAsc(BusinessAssayTaskDataDO::getReportTime));
}
/**

View File

@@ -0,0 +1,38 @@
package com.zt.plat.module.qms.business.bus.dal.mapper;
import java.util.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import org.apache.ibatis.annotations.Mapper;
/**
* 班组判定数据业务 Mapper
*
* @author 后台管理
*/
@Mapper
public interface BusinessSubParentSampleAssessmentMapper extends BaseMapperX<BusinessSubParentSampleAssessmentDO> {
default PageResult<BusinessSubParentSampleAssessmentDO> selectPage(BusinessSubParentSampleAssessmentPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessSubParentSampleAssessmentDO>()
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getTaskType, reqVO.getTaskType())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getAssayType, reqVO.getAssayType())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getAssessmentStatus, reqVO.getAssessmentStatus())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getIsReported, reqVO.getIsReported())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getReporter, reqVO.getReporter())
.betweenIfPresent(BusinessSubParentSampleAssessmentDO::getReportTime, reqVO.getReportTime())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getResultTreatmentWay, reqVO.getResultTreatmentWay())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.betweenIfPresent(BusinessSubParentSampleAssessmentDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getUpdateCount, reqVO.getUpdateCount())
.eqIfPresent(BusinessSubParentSampleAssessmentDO::getRemark, reqVO.getRemark())
.orderByDesc(BusinessSubParentSampleAssessmentDO::getId));
}
}

View File

@@ -27,6 +27,7 @@ public interface BusinessSubSampleAssessmentMapper extends BaseMapperX<BusinessS
.eqIfPresent(BusinessSubSampleAssessmentDO::getAssessmentStatus, reqVO.getAssessmentStatus())
.eqIfPresent(BusinessSubSampleAssessmentDO::getIsRecheck, reqVO.getIsRecheck())
.eqIfPresent(BusinessSubSampleAssessmentDO::getIsReported, reqVO.getIsReported())
.eqIfPresent(BusinessSubSampleAssessmentDO::getReportedStatus, reqVO.getReportedStatus())
.eqIfPresent(BusinessSubSampleAssessmentDO::getReporter, reqVO.getReporter())
.betweenIfPresent(BusinessSubSampleAssessmentDO::getReportTime, reqVO.getReportTime())
.eqIfPresent(BusinessSubSampleAssessmentDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
@@ -35,5 +36,17 @@ public interface BusinessSubSampleAssessmentMapper extends BaseMapperX<BusinessS
.eqIfPresent(BusinessSubSampleAssessmentDO::getRemark, reqVO.getRemark())
.orderByDesc(BusinessSubSampleAssessmentDO::getId));
}
default BusinessSubSampleAssessmentDO selectByBusinessSubSampleIdsAndConfigAssayMethodId(Long businessSubSampleId, Long configAssayMethodId) {
return selectOne(new LambdaQueryWrapperX<BusinessSubSampleAssessmentDO>()
.eq(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleId)
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId));
}
default List<BusinessSubSampleAssessmentDO> selectByBusinessSubSampleIdsAndConfigAssayMethodId(List<Long> businessSubSampleIds, Long configAssayMethodId) {
return selectList(new LambdaQueryWrapperX<BusinessSubSampleAssessmentDO>()
.in(BusinessSubSampleAssessmentDO::getBusinessSubSampleId, businessSubSampleIds)
.eq(BusinessSubSampleAssessmentDO::getConfigAssayMethodId, configAssayMethodId));
}
}

View File

@@ -4,18 +4,15 @@ import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentProjectDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentProjectDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodProjectDO;
import com.zt.plat.module.qms.business.dic.dal.dataobject.DictionaryProjectDO;
import com.zt.plat.module.qms.enums.QmsCommonConstant;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 子样判定检测项目数据业务 Mapper
@@ -29,6 +26,7 @@ public interface BusinessSubSampleAssessmentProjectMapper extends BaseMapperX<Bu
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessSubSampleAssessmentProjectDO>()
.eqIfPresent(BusinessSubSampleAssessmentProjectDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId())
.eqIfPresent(BusinessSubSampleAssessmentProjectDO::getBusinessSubSampleId, reqVO.getBusinessSubSampleId())
.eqIfPresent(BusinessSubSampleAssessmentProjectDO::getBusinessSubSampleAssessmentId, reqVO.getBusinessSubSampleAssessmentId())
.eqIfPresent(BusinessSubSampleAssessmentProjectDO::getDictionaryProjectId, reqVO.getDictionaryProjectId())
.eqIfPresent(BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodProjectId, reqVO.getConfigAssayMethodProjectId())
.eqIfPresent(BusinessSubSampleAssessmentProjectDO::getConfigAssayMethodId, reqVO.getConfigAssayMethodId())

View File

@@ -23,8 +23,10 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleAssayRes
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustDetailDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustProjectDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustRegistrationDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAnalysisGroupDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayParameterDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayProjectDataMapper;
@@ -35,8 +37,10 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleAssayResultM
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustDetailMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustProjectMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegistrationMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAnalysisGroupMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAssessmentMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowInfo;
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
@@ -105,6 +109,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
@Resource
private BusinessSubParentSampleMapper businessSubParentSampleMapper;
@Resource
private BusinessSubParentSampleAssessmentMapper businessSubParentSampleAssessmentMapper;
@Resource
private ConfigSubSampleMapper configSubSampleMapper;
@@ -129,6 +136,9 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
@Resource
private BusinessAssayProjectDataMapper businessAssayProjectDataMapper;
@Resource
private BusinessSubSampleAssessmentMapper businessSubSampleAssessmentMapper;
@Resource
private ConfigAssayMethodProjectParameterMapper configAssayMethodProjectParameterMapper;
@@ -222,10 +232,14 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
List<BusinessBaseSampleDO> businessBaseSampleDOList = new ArrayList<>();
//分样
List<BusinessSubParentSampleDO> businessSubParentSampleDOList = new ArrayList<>();
//分样判定数据
List<BusinessSubParentSampleAssessmentDO> businessSubParentSampleAssessmentDOList = new ArrayList<>();
//分样子样
List<BusinessSubSampleDO> businessSubSampleDOList = new ArrayList<>();
//分样子样分析班组
List<BusinessSubSampleAnalysisGroupDO> businessSubSampleAnalysisGroupDOList = new ArrayList<>();
//分样子样判定数据
List<BusinessSubSampleAssessmentDO> businessSubSampleAssessmentDOList = new ArrayList<>();
//子样检测任务
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = new ArrayList<>();
//检测任务的分析项目
@@ -439,13 +453,34 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessSubSampleAnalysisGroupDOList.add(businessSubSampleAnalysisGroupDO);
}
//根据检测方法循环
BusinessAssayTaskDataDO businessAssayTaskDataDO = null;
//根据任务数判断是平行还是
String assayType = configSubSampleMethodDO.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP;
//分样判定数据
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessmentDO = new BusinessSubParentSampleAssessmentDO();
businessSubParentSampleAssessmentDO.setId(IdWorker.getId());
businessSubParentSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
businessSubParentSampleAssessmentDO.setConfigAssayMethodId(configAssayMethodId);
businessSubParentSampleAssessmentDO.setAssayType(assayType);
businessSubParentSampleAssessmentDO.setTaskType("常规");
businessSubParentSampleAssessmentDOList.add(businessSubParentSampleAssessmentDO);
//子样判定数据
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO();
businessSubSampleAssessmentDO.setId(IdWorker.getId());
businessSubSampleAssessmentDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId());
businessSubSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleDO.getId());
businessSubSampleAssessmentDO.setBusinessSubParentSampleAssessmentId(businessSubParentSampleAssessmentDO.getId());
businessSubSampleAssessmentDO.setConfigAssayMethodId(configAssayMethodId);
businessSubSampleAssessmentDO.setAssayType(assayType);
businessSubSampleAssessmentDO.setTaskType("常规");
businessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
//根据检测方法循环
BusinessAssayTaskDataDO businessAssayTaskDataDO = null;
//根据任务数循环
for (int i = 0; i < configSubSampleMethodDO.getTaskCount(); i++) {
//子样检测任务
@@ -454,6 +489,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId());
businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId());
businessAssayTaskDataDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());
businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodId);
businessAssayTaskDataDO.setAssayType(assayType);
businessAssayTaskDataDO.setTaskType("常规");
@@ -520,6 +556,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
}
//判定是商检 分析金银 需要创建综合样样品为第1个
if (isSjEntrust && isAssayAuAg && sort == 0 && isCreateZhy && configAssayMethodZhy != null) {
Long configAssayMethodIdZhy = configAssayMethodZhy.getId();
Long assayDepartmentIdZhy = configAssayMethodZhy.getAssayDepartmentId();
@@ -540,13 +577,23 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessSubSampleAnalysisGroupDOList.add(businessSubSampleAnalysisGroupDO);
}
//根据检测方法循环
BusinessAssayTaskDataDO businessAssayTaskDataDO = null;
//根据任务数判断是平行还是
String assayType = configSubSampleMethodDO.getTaskCount() > 1 ? QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL : QmsCommonConstant.ASSAY_TYPE_SINGLE_CUP;
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = new BusinessSubSampleAssessmentDO();
businessSubSampleAssessmentDO.setId(IdWorker.getId());
businessSubSampleAssessmentDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId());
businessSubSampleAssessmentDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
businessSubSampleAssessmentDO.setBusinessSubSampleId(businessSubSampleDO.getId());
businessSubSampleAssessmentDO.setConfigAssayMethodId(configAssayMethodZhy.getId());
businessSubSampleAssessmentDO.setAssayType(assayType);
businessSubSampleAssessmentDO.setTaskType("常规");
businessSubSampleAssessmentDOList.add(businessSubSampleAssessmentDO);
//根据检测方法循环
BusinessAssayTaskDataDO businessAssayTaskDataDO = null;
//根据任务数循环
for (int i = 0; i < configSubSampleMethodDO.getTaskCount(); i++) {
//子样检测任务
@@ -555,6 +602,7 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
businessAssayTaskDataDO.setBusinessBaseSampleId(businessSubSampleDO.getBusinessBaseSampleId());
businessAssayTaskDataDO.setBusinessSubParentSampleId(businessSubSampleDO.getBusinessSubParentSampleId());
businessAssayTaskDataDO.setBusinessSubSampleId(businessSubSampleDO.getId());
businessAssayTaskDataDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());//子样判定id
businessAssayTaskDataDO.setConfigAssayMethodId(configAssayMethodZhy.getId());
businessAssayTaskDataDO.setAssayType(assayType);
businessAssayTaskDataDO.setTaskType("常规");
@@ -627,7 +675,11 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
if (CollUtil.isNotEmpty(businessSubParentSampleDOList)) {
log.info("插入 businessSubParentSampleDOList 前 tenant_id = {}", TenantContextHolder.getTenantId());
businessSubParentSampleMapper.insertBatch(businessSubParentSampleDOList);
}
}
if (CollUtil.isNotEmpty(businessSubParentSampleAssessmentDOList)) {
log.info("插入 businessSubParentSampleAssessmentDOList 前 tenant_id = {}", TenantContextHolder.getTenantId());
businessSubParentSampleAssessmentMapper.insertBatch(businessSubParentSampleAssessmentDOList);
}
if (CollUtil.isNotEmpty(businessSubSampleDOList)) {
log.info("插入 businessSubSampleDOList 前 tenant_id = {}", TenantContextHolder.getTenantId());
businessSubSampleMapper.insertBatch(businessSubSampleDOList);
@@ -636,6 +688,10 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
log.info("插入 businessSubSampleAnalysisGroupDOList 前 tenant_id = {}", TenantContextHolder.getTenantId());
businessSubSampleAnalysisGroupMapper.insertBatch(businessSubSampleAnalysisGroupDOList);
}
if (CollUtil.isNotEmpty(businessSubSampleAssessmentDOList)) {
log.info("插入 businessSubSampleAssessmentDOList 前 tenant_id = {}", TenantContextHolder.getTenantId());
businessSubSampleAssessmentMapper.insertBatch(businessSubSampleAssessmentDOList);
}
if (CollUtil.isNotEmpty(businessAssayTaskDataDOList)) {
log.info("插入 businessAssayTaskDataDOList 前 tenant_id = {}", TenantContextHolder.getTenantId());
businessAssayTaskDataMapper.insertBatch(businessAssayTaskDataDOList);

View File

@@ -63,13 +63,13 @@ public class BusinessSubParentSampleAssessmentProjectServiceImpl implements Busi
private void validateBusinessSubParentSampleAssessmentExists(List<Long> ids) {
List<BusinessSubParentSampleAssessmentProjectDO> list = businessSubParentSampleAssessmentProjectMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(BUSINESS_SUB_PARENT_SAMPLE_ASSESSMENT_NOT_EXISTS);
throw exception(BUSINESS_SUB_PARENT_SAMPLE_ASSESSMENT_PROJECT_NOT_EXISTS);
}
}
private void validateBusinessSubParentSampleAssessmentExists(Long id) {
if (businessSubParentSampleAssessmentProjectMapper.selectById(id) == null) {
throw exception(BUSINESS_SUB_PARENT_SAMPLE_ASSESSMENT_NOT_EXISTS);
throw exception(BUSINESS_SUB_PARENT_SAMPLE_ASSESSMENT_PROJECT_NOT_EXISTS);
}
}

View File

@@ -0,0 +1,62 @@
package com.zt.plat.module.qms.business.bus.service;
import java.util.*;
import jakarta.validation.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO;
import com.zt.plat.framework.common.pojo.PageParam;
/**
* 班组判定数据业务 Service 接口
*
* @author 后台管理
*/
public interface BusinessSubParentSampleAssessmentService {
/**
* 创建班组判定数据业务
*
* @param createReqVO 创建信息
* @return 编号
*/
BusinessSubParentSampleAssessmentRespVO createBusinessSubParentSampleAssessment(@Valid BusinessSubParentSampleAssessmentSaveReqVO createReqVO);
/**
* 更新班组判定数据业务
*
* @param updateReqVO 更新信息
*/
void updateBusinessSubParentSampleAssessment(@Valid BusinessSubParentSampleAssessmentSaveReqVO updateReqVO);
/**
* 删除班组判定数据业务
*
* @param id 编号
*/
void deleteBusinessSubParentSampleAssessment(Long id);
/**
* 批量删除班组判定数据业务
*
* @param ids 编号
*/
void deleteBusinessSubParentSampleAssessmentListByIds(List<Long> ids);
/**
* 获得班组判定数据业务
*
* @param id 编号
* @return 班组判定数据业务
*/
BusinessSubParentSampleAssessmentDO getBusinessSubParentSampleAssessment(Long id);
/**
* 获得班组判定数据业务分页
*
* @param pageReqVO 分页查询
* @return 班组判定数据业务分页
*/
PageResult<BusinessSubParentSampleAssessmentDO> getBusinessSubParentSampleAssessmentPage(BusinessSubParentSampleAssessmentPageReqVO pageReqVO);
}

View File

@@ -0,0 +1,91 @@
package com.zt.plat.module.qms.business.bus.service;
import cn.hutool.core.collection.CollUtil;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.pojo.PageParam;
import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentDO;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentMapper;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
import static com.zt.plat.module.qms.enums.ErrorCodeConstants.*;
/**
* 班组判定数据业务 Service 实现类
*
* @author 后台管理
*/
@Service
@Validated
public class BusinessSubParentSampleAssessmentServiceImpl implements BusinessSubParentSampleAssessmentService {
@Resource
private BusinessSubParentSampleAssessmentMapper businessSubParentSampleAssessmentMapper;
@Override
public BusinessSubParentSampleAssessmentRespVO createBusinessSubParentSampleAssessment(BusinessSubParentSampleAssessmentSaveReqVO createReqVO) {
// 插入
BusinessSubParentSampleAssessmentDO businessSubParentSampleAssessment = BeanUtils.toBean(createReqVO, BusinessSubParentSampleAssessmentDO.class);
businessSubParentSampleAssessmentMapper.insert(businessSubParentSampleAssessment);
// 返回
return BeanUtils.toBean(businessSubParentSampleAssessment, BusinessSubParentSampleAssessmentRespVO.class);
}
@Override
public void updateBusinessSubParentSampleAssessment(BusinessSubParentSampleAssessmentSaveReqVO updateReqVO) {
// 校验存在
validateBusinessSubParentSampleAssessmentExists(updateReqVO.getId());
// 更新
BusinessSubParentSampleAssessmentDO updateObj = BeanUtils.toBean(updateReqVO, BusinessSubParentSampleAssessmentDO.class);
businessSubParentSampleAssessmentMapper.updateById(updateObj);
}
@Override
public void deleteBusinessSubParentSampleAssessment(Long id) {
// 校验存在
validateBusinessSubParentSampleAssessmentExists(id);
// 删除
businessSubParentSampleAssessmentMapper.deleteById(id);
}
@Override
public void deleteBusinessSubParentSampleAssessmentListByIds(List<Long> ids) {
// 校验存在
validateBusinessSubParentSampleAssessmentExists(ids);
// 删除
businessSubParentSampleAssessmentMapper.deleteByIds(ids);
}
private void validateBusinessSubParentSampleAssessmentExists(List<Long> ids) {
List<BusinessSubParentSampleAssessmentDO> list = businessSubParentSampleAssessmentMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
throw exception(BUSINESS_SUB_PARENT_SAMPLE_ASSESSMENT_NOT_EXISTS);
}
}
private void validateBusinessSubParentSampleAssessmentExists(Long id) {
if (businessSubParentSampleAssessmentMapper.selectById(id) == null) {
throw exception(BUSINESS_SUB_PARENT_SAMPLE_ASSESSMENT_NOT_EXISTS);
}
}
@Override
public BusinessSubParentSampleAssessmentDO getBusinessSubParentSampleAssessment(Long id) {
return businessSubParentSampleAssessmentMapper.selectById(id);
}
@Override
public PageResult<BusinessSubParentSampleAssessmentDO> getBusinessSubParentSampleAssessmentPage(BusinessSubParentSampleAssessmentPageReqVO pageReqVO) {
return businessSubParentSampleAssessmentMapper.selectPage(pageReqVO);
}
}

View File

@@ -22,7 +22,7 @@ public interface SampleAnalysisAuditService {
void crossAuditByByTaskId(Long businessAssayTaskId, String auditStatus);
JSONObject getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus);
JSONObject getSampleResultAssessmentList(Long configAssayMethodId, String asmtReportedStatus);
JSONObject getParallelResultAssessment(Long businessSubSampleId, Long configAssayMethodId);

View File

@@ -43,6 +43,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCCoefficientD
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessQCManagementDataDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleAssessmentProjectDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubParentSampleDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleAssessmentProjectDO;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayParameterDataMapper;
@@ -59,6 +60,7 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementParame
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessQCManagementProjectDataMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentProjectMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAssessmentMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleAssessmentProjectMapper;
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
import com.zt.plat.module.qms.business.config.controller.vo.*;
@@ -135,8 +137,8 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
@Resource
private ConfigAssayMethodProjectAssessmentMapper configAssayMethodProjectAssessmentMapper;
// @Resource
// private BusinessTeamAssessmentMapper businessTeamAssessmentMapper;
@Resource
private BusinessSubSampleAssessmentMapper businessSubSampleAssessmentMapper;
@Resource
private BusinessSubSampleAssessmentProjectMapper businessSubSampleAssessmentProjectMapper;
@@ -148,7 +150,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
private ConfigSubSampleMethodMapper configSubSampleMethodMapper;
@Override
public JSONObject getSampleResultAssessmentList(Long configAssayMethodId, String assessmentStatus) {
public JSONObject getSampleResultAssessmentList(Long configAssayMethodId, String asmtReportedStatus) {
List<ConfigAssayMethodProjectExtendRespVO> configAssayMethodProjectDOList = configAssayMethodProjectMapper.selectByConfigAssayMethodId(configAssayMethodId);
List<Map<String, Object>> columnList = new ArrayList<>();
@@ -168,6 +170,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
List<Map<String, Object>> dataList = new ArrayList<>();
BusinessAssayTaskDataReqVO search = new BusinessAssayTaskDataReqVO();
search.setConfigAssayMethodId(configAssayMethodId);
search.setAsmtReportedStatus(asmtReportedStatus);
List<BusinessAssayTaskDataExtendRespVO> resultAssessmentList = businessAssayTaskDataMapper.selectResultAssessmentList(search);
for (BusinessAssayTaskDataExtendRespVO businessAssayTaskDataExtendRespVO : resultAssessmentList) {
@@ -214,11 +217,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
dataList.add(businessAssayTaskDataMap);
}
if (StringUtils.isNotBlank(assessmentStatus)) {
dataList = dataList.stream().filter(f -> assessmentStatus.equals(f.get("assessmentStatus"))).collect(Collectors.toList());
}
JSONObject json = new JSONObject();
json.put("columns", columnList);
@@ -416,14 +415,19 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
}
@Override
@Transactional(rollbackFor = Exception.class)
public void crossAuditByByTaskId(Long businessAssayTaskId, String auditStatus) {
//当前登录用户昵称
String nickName = SecurityFrameworkUtils.getLoginUserNickname();
//自动上报的子样
List<Long> automaticBusinessSubSampleIdList = new ArrayList<>();
//判定记录
List<BusinessSubSampleAssessmentProjectDO> saveBusinessSubSampleAssessmentDOList = new ArrayList<>();
List<BusinessSubSampleAssessmentProjectDO> updateBusinessSubSampleAssessmentDOList = new ArrayList<>();
List<BusinessSubSampleAssessmentDO> updateBusinessSubSampleAssessmentDOList = new ArrayList<>();
List<BusinessSubSampleAssessmentProjectDO> saveBusinessSubSampleAssessmentProjectDOList = new ArrayList<>();
List<BusinessSubSampleAssessmentProjectDO> updateBusinessSubSampleAssessmentProjectDOList = new ArrayList<>();
BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectById(businessAssayTaskId);
if (QmsCommonConstant.APPROVE.equals(auditStatus)) {
@@ -434,6 +438,8 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
//查询分析任务明细
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessAssayTaskId(businessAssayTaskId);
List<Long> businessSubSampleIdList = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList());
List<BusinessSubSampleAssessmentDO> businessSubSampleAssessmentDOList = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdsAndConfigAssayMethodId(businessSubSampleIdList, businessAssayTaskDO.getConfigAssayMethodId());
//根据子样分组
Map<Long, List<BusinessAssayTaskDataDO>> businessAssayTaskDataDOMap = businessAssayTaskDataDOList.stream().collect(Collectors.groupingBy(BusinessAssayTaskDataDO::getBusinessSubSampleId));
//循环分组
@@ -443,6 +449,10 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
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);
//获取子样分析方法配置
ConfigSubSampleMethodDO configSubSampleMethodDO = configSubSampleMethodMapper.selectByConfigSubSampleIdAndConfigAssayMethodId(businessSubSampleDO.getConfigSubSampleId(), businessAssayTaskDataDO.getConfigAssayMethodId());
if (QmsCommonConstant.ASSAY_TYPE_SINGLE_PARALLEL.equals(businessAssayTaskDataDO.getAssayType())) {
//根据子样id及分析方法id查询未上报的分析任务
@@ -457,6 +467,14 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
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));
@@ -471,9 +489,9 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
if (businessSubSampleAssessmentProjectDO == null) {
businessSubSampleAssessmentProjectDO = new BusinessSubSampleAssessmentProjectDO();
saveBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentProjectDO);
saveBusinessSubSampleAssessmentProjectDOList.add(businessSubSampleAssessmentProjectDO);
} else {
updateBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentProjectDO);
updateBusinessSubSampleAssessmentProjectDOList.add(businessSubSampleAssessmentProjectDO);
}
businessSubSampleAssessmentProjectDO.setBusinessSubParentSampleId(businessAssayTaskDataDO.getBusinessSubParentSampleId());
businessSubSampleAssessmentProjectDO.setBusinessSubSampleId(businessAssayTaskDataDO.getBusinessSubSampleId());
@@ -524,13 +542,18 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
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())) {
automaticBusinessSubSampleIdList.add(businessSubSampleId);
}
}
@@ -539,6 +562,17 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
} 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));
@@ -549,9 +583,9 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
if (businessSubSampleAssessmentProjectDO == null) {
businessSubSampleAssessmentProjectDO = new BusinessSubSampleAssessmentProjectDO();
saveBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentProjectDO);
saveBusinessSubSampleAssessmentProjectDOList.add(businessSubSampleAssessmentProjectDO);
} else {
updateBusinessSubSampleAssessmentDOList.add(businessSubSampleAssessmentProjectDO);
updateBusinessSubSampleAssessmentProjectDOList.add(businessSubSampleAssessmentProjectDO);
}
businessSubSampleAssessmentProjectDO.setBusinessSubParentSampleId(businessAssayTaskDataDO.getBusinessSubParentSampleId());
businessSubSampleAssessmentProjectDO.setBusinessSubSampleId(businessAssayTaskDataDO.getBusinessSubSampleId());
@@ -568,6 +602,13 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
businessSubSampleAssessmentProjectDO.setAssessmentStatus(QmsCommonConstant.NORMAL);
businessSubSampleAssessmentProjectDO.setAssessmentValue(businessAssayProjectDataDO.getValue());
}
//如果为自动上报
if (QmsCommonConstant.AUTOMATIC.equals(configSubSampleMethodDO.getResultTreatmentWay())) {
automaticBusinessSubSampleIdList.add(businessSubSampleId);
}
}
@@ -598,18 +639,23 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
}
businessAssayTaskMapper.updateById(businessAssayTaskDO);
//插入平行判定记录
if (saveBusinessSubSampleAssessmentDOList.size() > 0) {
businessSubSampleAssessmentProjectMapper.insertBatch(saveBusinessSubSampleAssessmentDOList);
}
if (updateBusinessSubSampleAssessmentDOList.size() > 0) {
businessSubSampleAssessmentProjectMapper.updateBatch(updateBusinessSubSampleAssessmentDOList);
businessSubSampleAssessmentMapper.updateBatch(updateBusinessSubSampleAssessmentDOList);
}
if (saveBusinessSubSampleAssessmentProjectDOList.size() > 0) {
businessSubSampleAssessmentProjectMapper.insertBatch(saveBusinessSubSampleAssessmentProjectDOList);
}
if (updateBusinessSubSampleAssessmentProjectDOList.size() > 0) {
businessSubSampleAssessmentProjectMapper.updateBatch(updateBusinessSubSampleAssessmentProjectDOList);
}
//执行自动上报
if (automaticBusinessSubSampleIdList.size() > 0) {
for (Long automaticBusinessSubSampleId : automaticBusinessSubSampleIdList) {
this.assessmentDataReporting(automaticBusinessSubSampleId, businessAssayTaskDO.getConfigAssayMethodId());
}
}
//插入双杯判定记录
// if (businessTeamAssessmentDOList.size() > 0) {
// businessTeamAssessmentMapper.insertBatch(businessTeamAssessmentDOList);
// }
}
// 查找匹配的允差区间
@@ -681,6 +727,9 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
@Resource
private BusinessSubParentSampleAssessmentProjectMapper businessSubParentSampleAssessmentProjectMapper;
@Resource
private SampleResultReportingService sampleResultReportingService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -691,6 +740,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
if (unReportedList.size() > 0) {
throw new ServiceException(1_032_100_000, "存在未上报的数据");
}
List<Long> automaticBusinessSubParentSampleIdList = new ArrayList<>();
// List<BusinessAssayReportDataDO> saveBusinessAssayReportDataDOList = new ArrayList<>();
// List<BusinessAssayReportDataDO> updateBusinessAssayReportDataDOList = new ArrayList<>();
@@ -837,6 +887,15 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
.set(BusinessSubSampleAssessmentProjectDO::getReporter, nickName)
.set(BusinessSubSampleAssessmentProjectDO::getReportTime, LocalDateTime.now())
.in(BusinessSubSampleAssessmentProjectDO::getId, businessSubSampleAssessmentIdList));
if (QmsCommonConstant.AUTOMATIC.equals(configSubSampleParentMethodDO.getResultTreatmentWay())) {
automaticBusinessSubParentSampleIdList.add(businessSubParentSampleDO.getId());
BatchResultDataReportingReqVO batchResultDataReportingReqVO = new BatchResultDataReportingReqVO();
batchResultDataReportingReqVO.setBusinessSubParentSampleIds(automaticBusinessSubParentSampleIdList);
batchResultDataReportingReqVO.setConfigAssayMethodId(configAssayMethodId);
sampleResultReportingService.batchResultDataReporting(null);
}
}
@Resource
@@ -863,6 +922,8 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
List<BusinessAssayTaskDataDO> newBusinessAssayTaskDataDOList = new ArrayList<>();
List<BusinessAssayProjectDataDO> newBusinessAssayProjectDataDOList = new ArrayList<>();
List<BusinessAssayParameterDataDO> newBusinessAssayParameterDataDOList = new ArrayList<>();
BusinessSubSampleAssessmentDO businessSubSampleAssessmentDO = businessSubSampleAssessmentMapper.selectByBusinessSubSampleIdsAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
BusinessAssayTaskDataDO newBusinessAssayTaskDataDO = null;
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectMaxAnalysisCountByBusinessSubSampleIdAndConfigAssayMethodId(businessSubSampleId, configAssayMethodId);
@@ -879,6 +940,7 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
newBusinessAssayTaskDataDO.setBusinessSubParentSampleId(businessAssayTaskDataDO.getBusinessSubParentSampleId());
newBusinessAssayTaskDataDO.setBusinessSubSampleId(businessAssayTaskDataDO.getBusinessSubSampleId());
newBusinessAssayTaskDataDO.setConfigAssayMethodId(businessAssayTaskDataDO.getConfigAssayMethodId());
newBusinessAssayTaskDataDO.setBusinessSubSampleAssessmentId(businessSubSampleAssessmentDO.getId());
newBusinessAssayTaskDataDO.setAssayType(businessAssayTaskDataDO.getAssayType());
newBusinessAssayTaskDataDO.setTaskType(businessAssayTaskDataDO.getTaskType());
newBusinessAssayTaskDataDO.setConfigSampleFlowId(businessAssayTaskDataDO.getConfigSampleFlowId());
@@ -929,6 +991,10 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
businessSubSampleAssessmentProjectExtendRespVO.setAssessmentValue(null);
businessSubSampleAssessmentProjectExtendRespVO.setAssessmentStatus(QmsCommonConstant.IN_PROGRESS);
}
//修改上报状态为复测中
businessSubSampleAssessmentDO.setReportedStatus(QmsCommonConstant.ASMT_RE_INSPECTED);
businessSubSampleAssessmentMapper.updateById(businessSubSampleAssessmentDO);
if (newBusinessAssayTaskDataDOList.size() > 0) {
businessAssayTaskDataMapper.insertBatch(newBusinessAssayTaskDataDOList);

View File

@@ -42,34 +42,52 @@
t.CFG_ASY_MTHD_ID AS configAssayMethodId,
t.ASY_TP AS assayType,
tcam.NAME AS configAssayMethodName,
COUNT(t.BSN_SB_SMP_ID) AS sampleTaskCount
count(CASE WHEN t.RPOD_STS = 'initial' THEN 1 END) AS asmt_initial_count,
count(CASE WHEN t.RPOD_STS = 'pending_report' THEN 1 END) AS asmt_pending_report_count,
count(CASE WHEN t.RPOD_STS = 'pending_assessment' THEN 1 END) AS asmt_pending_assessment_count,
count(CASE WHEN t.RPOD_STS = 're_inspected' THEN 1 END) AS asmt_re_inspected_count,
count(CASE WHEN t.RPOD_STS = 'reported' THEN 1 END) AS asmt_reported_count
FROM
(
SELECT
tbssa.TENANT_ID ,
tbssa.BSN_SB_PRN_SMP_ID ,
tbssa.BSN_SB_SMP_ID ,
tbssa.CFG_ASY_MTHD_ID,
tbssa.ASY_TP
tbatd.TENANT_ID ,
tbatd.BSN_SB_PRN_SMP_ID ,
tbatd.BSN_SB_SMP_ID ,
tbatd.CFG_ASY_MTHD_ID,
tbatd.ASY_TP,
tbssag.ASY_DEPT_ID ,
tbssag.ASY_DEPT_NAME ,
tbssa.RPOD_STS
FROM
T_BSN_SB_SMP_ASMT tbssa
T_BSN_ASY_TSK_DAT tbatd
LEFT JOIN T_BSN_SB_SMP_ANL_GRP tbssag ON
tbatd.BSN_SB_SMP_ID = tbssag.BSN_SB_SMP_ID
AND tbatd.ASY_DEPT_ID = tbssag.ASY_DEPT_ID
AND tbatd.TENANT_ID = tbssag.TENANT_ID
LEFT JOIN T_BSN_SB_SMP_ASMT tbssa ON
tbatd.BSN_SB_SMP_ASMT_ID = tbssa.ID
AND tbatd.TENANT_ID = tbssa.TENANT_ID
WHERE
tbssa.DELETED = 0
AND tbssa.IS_RPOD = 0
tbatd.DELETED = 0
AND tbatd.TENANT_ID = 1
AND tbatd.IS_ASN_TSKD = 1
AND tbssag.SMP_STS = '已收样'
<if test="reqVO.assayDepartmentId != null and reqVO.assayDepartmentId != ''">
AND tbssag.ASY_DEPT_ID = #{reqVO.assayDepartmentId}
</if>
GROUP BY
tbssa.TENANT_ID ,
tbssa.BSN_SB_PRN_SMP_ID ,
tbssa.BSN_SB_SMP_ID ,
tbssa.CFG_ASY_MTHD_ID,
tbssa.ASY_TP
tbatd.TENANT_ID ,
tbatd.BSN_SB_PRN_SMP_ID ,
tbatd.BSN_SB_SMP_ID ,
tbatd.CFG_ASY_MTHD_ID,
tbatd.ASY_TP,
tbssag.ASY_DEPT_ID ,
tbssag.ASY_DEPT_NAME ,
tbssa.RPOD_STS
) t
LEFT JOIN T_CFG_ASY_MTHD tcam ON
t.CFG_ASY_MTHD_ID = tcam.ID
AND t.TENANT_ID = tcam.TENANT_ID
WHERE tcam.DELETED = 0
<if test="reqVO.assayDepartmentId != null and reqVO.assayDepartmentId != ''">
AND tcam.ASY_DEPT_ID = #{reqVO.assayDepartmentId}
</if>
GROUP BY
t.CFG_ASY_MTHD_ID,
t.ASY_TP,

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleAssessmentMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
</mapper>