添加班组送样
This commit is contained in:
@@ -122,6 +122,9 @@ public interface QmsCommonConstant {
|
||||
/** 分析收样 **/
|
||||
String FLOW_NODE_ANALYSIS_RECEIVE = "flw_analysis_receive";
|
||||
|
||||
/** 分析 **/
|
||||
String FLOW_NODE_ANALYSIS = "flw_analysis";
|
||||
|
||||
/** 分析送样 **/
|
||||
String FLOW_NODE_ANALYSIS_SEND = "flw_analysis_send";
|
||||
|
||||
|
||||
@@ -146,9 +146,9 @@ public class SampleFlowController {
|
||||
flowNodeList.add(fx);
|
||||
|
||||
bzs.setNextFlowNodeList(new ArrayList<>() {{
|
||||
add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("样品当前分析班组结果超差,需要发起复检"));
|
||||
add(BeanUtils.toBean(bzr,SampleFlowNode.class).setCondition("当前部门数据已全部判断上报"));
|
||||
add(BeanUtils.toBean(ypgk,SampleFlowNode.class).setCondition("当前样品所有分析任务已全部上报完"));
|
||||
// add(BeanUtils.toBean(fx,SampleFlowNode.class).setCondition("样品当前分析班组结果超差,需要发起复检"));
|
||||
add(BeanUtils.toBean(bzr,SampleFlowNode.class).setCondition("subSampleSelfReportedOthersPending"));//当前部门数据已全部判断上报
|
||||
add(BeanUtils.toBean(ypgk,SampleFlowNode.class).setCondition("subSampleAlldeptAnalyzed"));//当前样品所有分析任务已全部上报完
|
||||
}});
|
||||
flowNodeList.add(bzs);
|
||||
|
||||
|
||||
@@ -35,8 +35,8 @@ public class SampleResultReportingController {
|
||||
|
||||
//获取未上报的方法
|
||||
@GetMapping("/getUnReportMethodGroupList")
|
||||
public CommonResult<?> getUnReportMethodGroupList() {
|
||||
List<BusinessSubParentSampleAssessmentGroupRespVO> list = sampleResultReportingService.getUnReportMethodGroupList();
|
||||
public CommonResult<?> getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
|
||||
List<BusinessSubParentSampleAssessmentGroupRespVO> list = sampleResultReportingService.getUnReportMethodGroupList(reqVO);
|
||||
return success(list);
|
||||
}
|
||||
|
||||
|
||||
@@ -107,6 +107,9 @@ public class BusinessAssayTaskPageReqVO extends PageParam {
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
@Schema(description = "不等于当前分析人")
|
||||
private String neAssayOperator;
|
||||
|
||||
@Schema(description = "部门id")
|
||||
private Long deptId;
|
||||
}
|
||||
@@ -64,4 +64,5 @@ public class BusinessHandoverRecordSubPageReqVO extends PageParam {
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
private Long deptId;
|
||||
}
|
||||
@@ -60,4 +60,6 @@ public class BusinessSampleHandoverPageReqVO extends PageParam {
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
private Long deptId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.zt.plat.module.qms.business.bus.controller.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BusinessSubParentSampleAssessmentGroupReqVO {
|
||||
|
||||
@Schema(description = "分析方法id")
|
||||
private Long configAssayMethodId;
|
||||
|
||||
@Schema(description = "分析方法名称")
|
||||
private String configAssayMethodName;
|
||||
|
||||
@Schema(description = "分析部门ID")
|
||||
private Long assayDepartmentId;
|
||||
|
||||
@Schema(description = "分析部门名称")
|
||||
private String assayDepartmentName;
|
||||
}
|
||||
@@ -1,13 +1,22 @@
|
||||
package com.zt.plat.module.qms.business.bus.controller.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class BusinessSubParentSampleAssessmentGroupRespVO {
|
||||
|
||||
@Schema(description = "分析方法id")
|
||||
private Long configAssayMethodId;
|
||||
|
||||
@Schema(description = "分析方法名称")
|
||||
private String configAssayMethodName;
|
||||
|
||||
@Schema(description = "分析部门ID")
|
||||
private Long assayDepartmentId;
|
||||
|
||||
@Schema(description = "分析部门名称")
|
||||
private String assayDepartmentName;
|
||||
|
||||
private Integer sampleCount;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.zt.plat.module.qms.business.bus.controller.vo;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -32,6 +34,9 @@ public class BusinessSubSampleExtendRespVO extends BusinessSubSampleRespVO {
|
||||
List<String> collect = this.businessSubSampleAnalysisGroupList.stream().filter(f -> f.getSampleStatus().equals("待收样")).map(m -> m.getAssayDepartmentName()).collect(Collectors.toList());
|
||||
_sampleDestination = CollUtil.join(collect, ",");
|
||||
}
|
||||
if (StringUtils.isBlank(_sampleDestination)) {//所有分析班组已完成,去向显示为库名
|
||||
_sampleDestination = this.getWarehouseName();
|
||||
}
|
||||
return _sampleDestination;
|
||||
}
|
||||
|
||||
|
||||
@@ -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.BusinessSubSampleDO;
|
||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
|
||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||
@@ -242,6 +243,16 @@ public interface BusinessAssayTaskDataMapper extends BaseMapperX<BusinessAssayTa
|
||||
.eq(BusinessAssayTaskDataDO::getConfigAssayMethodId, configAssayMethodId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据分样主样id列表查询分析任务
|
||||
* @param businessSubParentSampleIds
|
||||
* @return
|
||||
*/
|
||||
default List<BusinessAssayTaskDataDO> selectByBusinessSubParentSampleIds(List<Long> businessSubParentSampleIds) {
|
||||
return selectList(new LambdaQueryWrapperX<BusinessAssayTaskDataDO>()
|
||||
.in(BusinessAssayTaskDataDO::getBusinessSubParentSampleId, businessSubParentSampleIds));
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据分样查询分析任务
|
||||
* @param businessSubParentSampleId 分样样id
|
||||
|
||||
@@ -60,6 +60,7 @@ public interface BusinessAssayTaskMapper extends BaseMapperX<BusinessAssayTaskDO
|
||||
.eqIfPresent(BusinessAssayTaskDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||
.betweenIfPresent(BusinessAssayTaskDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(BusinessAssayTaskDO::getRemark, reqVO.getRemark())
|
||||
.neIfPresent(BusinessAssayTaskDO::getAssayOperator, reqVO.getNeAssayOperator())
|
||||
.eqIfPresent(BusinessAssayTaskDO::getDeptId, reqVO.getDeptId())
|
||||
.orderByDesc(BusinessAssayTaskDO::getId));
|
||||
}
|
||||
@@ -101,6 +102,7 @@ public interface BusinessAssayTaskMapper extends BaseMapperX<BusinessAssayTaskDO
|
||||
.betweenIfPresent(BusinessAssayTaskDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(BusinessAssayTaskDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(BusinessAssayTaskDO::getDeptId, reqVO.getDeptId())
|
||||
.neIfPresent(BusinessAssayTaskDO::getAssayOperator, reqVO.getNeAssayOperator())
|
||||
.orderByDesc(BusinessAssayTaskDO::getId));
|
||||
}
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ public interface BusinessHandoverRecordSubMapper extends BaseMapperX<BusinessHan
|
||||
.eqIfPresent(BusinessHandoverRecordSubDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||
.betweenIfPresent(BusinessHandoverRecordSubDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(BusinessHandoverRecordSubDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(BusinessHandoverRecordSubDO::getDeptId, reqVO.getDeptId())
|
||||
.orderByDesc(BusinessHandoverRecordSubDO::getCreateTime));
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ public interface BusinessSampleHandoverMapper extends BaseMapperX<BusinessSample
|
||||
.eqIfPresent(BusinessSampleHandoverDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
|
||||
.betweenIfPresent(BusinessSampleHandoverDO::getCreateTime, reqVO.getCreateTime())
|
||||
.eqIfPresent(BusinessSampleHandoverDO::getRemark, reqVO.getRemark())
|
||||
.eqIfPresent(BusinessSampleHandoverDO::getDeptId, reqVO.getDeptId())
|
||||
.orderByDesc(BusinessSampleHandoverDO::getId));
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.apache.ibatis.annotations.Param;
|
||||
@Mapper
|
||||
public interface BusinessSubParentSampleAssessmentMapper extends BaseMapperX<BusinessSubParentSampleAssessmentDO> {
|
||||
|
||||
List<BusinessSubParentSampleAssessmentGroupRespVO> selectUnReportMethodGroupList();
|
||||
List<BusinessSubParentSampleAssessmentGroupRespVO> selectUnReportMethodGroupList(@Param("reqVO") BusinessSubParentSampleAssessmentGroupReqVO reqVO);
|
||||
|
||||
default PageResult<BusinessSubParentSampleAssessmentDO> selectPage(BusinessSubParentSampleAssessmentPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessSubParentSampleAssessmentDO>()
|
||||
|
||||
@@ -36,6 +36,21 @@ public interface BusinessSubSampleAnalysisGroupMapper extends BaseMapperX<Busine
|
||||
.orderByDesc(BusinessSubSampleAnalysisGroupDO::getId));
|
||||
}
|
||||
|
||||
default List<BusinessSubSampleAnalysisGroupDO> selectByBusinessSubParentSampleId(Long businessSubParentSampleId) {
|
||||
return selectList(new LambdaQueryWrapperX<BusinessSubSampleAnalysisGroupDO>()
|
||||
.eq(BusinessSubSampleAnalysisGroupDO::getBusinessSubParentSampleId, businessSubParentSampleId));
|
||||
}
|
||||
|
||||
default List<BusinessSubSampleAnalysisGroupDO> selectByBusinessSubParentSampleIds(List<Long> businessSubParentSampleIds) {
|
||||
return selectList(new LambdaQueryWrapperX<BusinessSubSampleAnalysisGroupDO>()
|
||||
.in(BusinessSubSampleAnalysisGroupDO::getBusinessSubParentSampleId, businessSubParentSampleIds));
|
||||
}
|
||||
|
||||
default List<BusinessSubSampleAnalysisGroupDO> selectByBusinessSubSampleId(Long businessSubSampleId) {
|
||||
return selectList(new LambdaQueryWrapperX<BusinessSubSampleAnalysisGroupDO>()
|
||||
.eq(BusinessSubSampleAnalysisGroupDO::getBusinessSubSampleId, businessSubSampleId));
|
||||
}
|
||||
|
||||
default List<BusinessSubSampleAnalysisGroupDO> selectByBusinessSubSampleIds(List<Long> businessSubSampleIds) {
|
||||
return selectList(new LambdaQueryWrapperX<BusinessSubSampleAnalysisGroupDO>()
|
||||
.in(BusinessSubSampleAnalysisGroupDO::getBusinessSubSampleId, businessSubSampleIds));
|
||||
|
||||
@@ -90,12 +90,15 @@ public interface BusinessSubSampleMapper extends BaseMapperX<BusinessSubSampleDO
|
||||
.rightJoin(BusinessSubSampleAnalysisGroupDO.class, BusinessSubSampleAnalysisGroupDO::getBusinessSubSampleId, BusinessSubSampleDO::getId)
|
||||
.leftJoin(ConfigSubSampleDO.class, ConfigSubSampleDO::getId, BusinessSubSampleDO::getConfigSubSampleId)
|
||||
.leftJoin(DictionaryBusinessDO.class, DictionaryBusinessDO::getId, BusinessSubSampleDO::getDictionaryBusinessId)
|
||||
.leftJoin(ConfigWarehouseLocationDO.class, ConfigWarehouseLocationDO::getCode, ConfigSubSampleDO::getConfigWarehouseLocationCode)
|
||||
.selectAll(BusinessSubSampleDO.class)
|
||||
.selectAs(DictionaryBusinessDO::getName, BusinessSubSampleExtendRespVO::getDictionaryBusinessName)
|
||||
.selectAs(ConfigSubSampleDO::getIsPrint, BusinessSubSampleExtendRespVO::getIsPrint)
|
||||
.selectAs(ConfigSubSampleDO::getPrintTemplate, BusinessSubSampleExtendRespVO::getPrintTemplate)
|
||||
.selectAs(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentId, BusinessSubSampleExtendRespVO::getAssayDepartmentId)
|
||||
.selectAs(BusinessSubSampleAnalysisGroupDO::getAssayDepartmentName, BusinessSubSampleExtendRespVO::getAssayDepartmentName)
|
||||
.selectAs(ConfigWarehouseLocationDO::getCode, BusinessSubSampleExtendRespVO::getWarehouseLocationCode)
|
||||
.selectAs(ConfigWarehouseLocationDO::getName, BusinessSubSampleExtendRespVO::getWarehouseName)
|
||||
.eqIfPresent(BusinessSubSampleDO::getBusinessBaseSampleId, reqVO.getBusinessBaseSampleId())
|
||||
.eqIfPresent(BusinessSubSampleDO::getBusinessSubParentSampleId, reqVO.getBusinessSubParentSampleId())
|
||||
.eqIfPresent(BusinessSubSampleDO::getConfigSubSampleId, reqVO.getConfigSubSampleId())
|
||||
@@ -217,5 +220,5 @@ public interface BusinessSubSampleMapper extends BaseMapperX<BusinessSubSampleDO
|
||||
.eqIfPresent(BusinessSubSampleDO::getIsEnabled, QmsCommonConstant.YES)
|
||||
.orderByDesc(BusinessSubSampleDO::getId));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -31,6 +31,7 @@ import com.zt.plat.module.qms.core.sampleflow.SampleFlowDefinition;
|
||||
import com.zt.plat.module.qms.core.sampleflow.SampleFlowNode;
|
||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
|
||||
@LiteflowComponent(id = "sampleSubProcessUpdateCmp", name = "子样流程节点更新")
|
||||
@@ -66,6 +67,9 @@ public class SampleSubProcessUpdateCmp extends NodeComponent {
|
||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataList = sampleFlowContext.getBusinessAssayTaskDataList();
|
||||
//查询历史交接记录
|
||||
List<BusinessHandoverRecordSubDO> businessHandoverRecordSubDOList = businessHandoverRecordSubMapper.selectByBusinessSubSampleIds(sampleIdList);
|
||||
//查询子样分析班组
|
||||
List<BusinessSubSampleAnalysisGroupDO> businessSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubSampleIds(sampleIdList);
|
||||
|
||||
for (BusinessSubSampleDO businessSubSample : busSubCsampleList) {
|
||||
ConfigSampleFlowDO configSampleFlow = configSampleFlowService.getConfigSampleFlow(businessSubSample.getConfigSampleFlowId());
|
||||
String configSampleFlowContent = configSampleFlow.getContent();
|
||||
@@ -90,6 +94,14 @@ public class SampleSubProcessUpdateCmp extends NodeComponent {
|
||||
Boolean hasSubSimpleCodeRule = configSubSample != null && StringUtils.isNotBlank(configSubSample.getSimpleCodeRule());
|
||||
Boolean hasSubSampleEncrypt = businessHandoverRecordSubDOList.stream().anyMatch(m -> QmsCommonConstant.FlOW_NODE_SAMPLE_ENCRYPT.equals(m.getSampleFlowNodeKey()));
|
||||
|
||||
if (CollUtil.isNotEmpty(businessSubSampleAnalysisGroupDOList)) {
|
||||
List<BusinessSubSampleAnalysisGroupDO> curSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSample.getId())).collect(Collectors.toList());
|
||||
Boolean hasAllDeptAnalyzed = curSubSampleAnalysisGroupDOList.stream().allMatch(m -> "已完成".equals(m.getSampleStatus()));
|
||||
Boolean hasCurDeptAnalyzed = curSubSampleAnalysisGroupDOList.stream().filter(f -> f.getAssayDepartmentId().equals(loginUser.getVisitDeptId())).allMatch(m -> "已完成".equals(m.getSampleStatus()));
|
||||
context.put("hasAllDeptAnalyzed", hasAllDeptAnalyzed);
|
||||
context.put("hasCurDeptAnalyzed", hasCurDeptAnalyzed);
|
||||
}
|
||||
|
||||
context.put("hasSubSimpleCodeRule", hasSubSimpleCodeRule);
|
||||
context.put("hasSubSampleEncrypt", hasSubSampleEncrypt);
|
||||
try {
|
||||
@@ -106,7 +118,7 @@ public class SampleSubProcessUpdateCmp extends NodeComponent {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
businessSubSample.setNextSampleFlowNode(nextFlowNode.getNextFlowNodeName());
|
||||
businessSubSample.setSampleFlowNodeKey(nextFlowNode.getNodeKey());
|
||||
businessSubSample.setSampleFlowNodeTime(currentDateTime);
|
||||
|
||||
@@ -120,13 +132,13 @@ public class SampleSubProcessUpdateCmp extends NodeComponent {
|
||||
|
||||
//如果是班组收样,需要更新分析班组表
|
||||
if (QmsCommonConstant.FLOW_NODE_TEAM_RECEIVE.equals(currentSampleFlowKey)) {
|
||||
List<BusinessSubSampleAnalysisGroupDO> businessSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubSampleIdsAndAssayDepartmentId(sampleIdList, loginUser.getVisitDeptId());
|
||||
for (BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO : businessSubSampleAnalysisGroupDOList) {
|
||||
List<BusinessSubSampleAnalysisGroupDO> curDeptSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getAssayDepartmentId().equals(loginUser.getVisitDeptId())).collect(Collectors.toList());
|
||||
for (BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO : curDeptSubSampleAnalysisGroupDOList) {
|
||||
businessSubSampleAnalysisGroupDO.setSampleReceiveTime(currentDateTime);
|
||||
businessSubSampleAnalysisGroupDO.setSampleReceiver(loginRealname);
|
||||
businessSubSampleAnalysisGroupDO.setSampleStatus("已收样");
|
||||
}
|
||||
sampleFlowContext.setBusinessSubSampleAnalysisGroupList(businessSubSampleAnalysisGroupDOList);
|
||||
sampleFlowContext.setBusinessSubSampleAnalysisGroupList(curDeptSubSampleAnalysisGroupDOList);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.zt.plat.framework.common.exception.ServiceException;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
|
||||
@@ -181,7 +182,16 @@ public class BusinessSubSampleServiceImpl implements BusinessSubSampleService {
|
||||
|
||||
@Override
|
||||
public BusinessSubSampleExtendRespVO getBySampleCodeAndFlowKey(@Valid BusinessSubSampleReqVO reqVO) {
|
||||
return businessSubSampleMapper.getBySampleCodeAndFlowKey(reqVO);
|
||||
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
|
||||
BusinessSubSampleExtendRespVO subSample = businessSubSampleMapper.getBySampleCodeAndFlowKey(reqVO);
|
||||
if (QmsCommonConstant.FLOW_NODE_TEAM_RECEIVE.equals(reqVO.getSampleFlowNodeKey())) {
|
||||
List<BusinessSubSampleAnalysisGroupDO> businessSubSampleAnalysisGroupList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubSampleId(subSample.getId());
|
||||
BusinessSubSampleAnalysisGroupDO receiveSample = businessSubSampleAnalysisGroupList.stream().filter(f -> "已收样".equals(f.getSampleStatus()) && !f.getAssayDepartmentId().equals(loginUser.getVisitDeptId())).findFirst().orElse(null);
|
||||
if (receiveSample != null) {
|
||||
throw new ServiceException(1_032_100_000, "当前样品在" + receiveSample.getAssayDepartmentName() + ",不允许收样!");
|
||||
}
|
||||
}
|
||||
return subSample;
|
||||
}
|
||||
|
||||
//样品归库
|
||||
|
||||
@@ -4,6 +4,7 @@ import java.util.List;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.BatchResultDataReportingReqVO;
|
||||
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.ModifySampleResultReportingReqVO;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.RecheckSubSampleParentCreateReqVO;
|
||||
@@ -11,7 +12,7 @@ import com.zt.plat.module.qms.business.bus.controller.vo.RecheckSubSampleParentM
|
||||
|
||||
public interface SampleResultReportingService {
|
||||
|
||||
List<BusinessSubParentSampleAssessmentGroupRespVO> getUnReportMethodGroupList();
|
||||
List<BusinessSubParentSampleAssessmentGroupRespVO> getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO);
|
||||
|
||||
JSONObject getSampleResultReportingList(Long configAssayMethodId);
|
||||
|
||||
|
||||
@@ -18,9 +18,11 @@ import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
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.BusinessSubParentSampleAssessmentExtendRespVO;
|
||||
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.BusinessSubSampleAssessmentExtendRespVO;
|
||||
import com.zt.plat.module.qms.business.bus.controller.vo.ModifySampleResultReportingReqVO;
|
||||
@@ -36,6 +38,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataD
|
||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessBaseSampleDO;
|
||||
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.dataobject.BusinessSubSampleParentRecheckDO;
|
||||
@@ -46,9 +49,12 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMappe
|
||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessBaseSampleMapper;
|
||||
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.dal.mapper.BusinessSubSampleParentRecheckMapper;
|
||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowInfo;
|
||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowParam;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodProjectExtendRespVO;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigAssayMethodRespVO;
|
||||
import com.zt.plat.module.qms.business.config.controller.vo.ConfigProjectExtendRespVO;
|
||||
@@ -97,8 +103,8 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
||||
|
||||
|
||||
@Override
|
||||
public List<BusinessSubParentSampleAssessmentGroupRespVO> getUnReportMethodGroupList() {
|
||||
List<BusinessSubParentSampleAssessmentGroupRespVO> list = businessSubParentSampleAssessmentMapper.selectUnReportMethodGroupList();
|
||||
public List<BusinessSubParentSampleAssessmentGroupRespVO> getUnReportMethodGroupList(BusinessSubParentSampleAssessmentGroupReqVO reqVO) {
|
||||
List<BusinessSubParentSampleAssessmentGroupRespVO> list = businessSubParentSampleAssessmentMapper.selectUnReportMethodGroupList(reqVO);
|
||||
return list;
|
||||
}
|
||||
|
||||
@@ -400,6 +406,12 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
||||
|
||||
@Resource
|
||||
private BusinessBaseSampleMapper businessBaseSampleMapper;
|
||||
|
||||
@Resource
|
||||
private BusinessSubSampleAnalysisGroupMapper businessSubSampleAnalysisGroupMapper;
|
||||
|
||||
@Resource
|
||||
private SampleFlowService sampleFlowService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -407,7 +419,11 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
||||
|
||||
//当前登录用户昵称
|
||||
String nickName = SecurityFrameworkUtils.getLoginUserNickname();
|
||||
|
||||
|
||||
|
||||
List<BusinessSubSampleDO> updateBusinessSubSampleDOList = new ArrayList<>();
|
||||
List<BusinessSubSampleAnalysisGroupDO> updateBusinessSubSampleAnalysisGroupDOList = new ArrayList<>();
|
||||
|
||||
List<BusinessAssayReportDataDO> saveBusinessAssayReportDataDOList = new ArrayList<>();
|
||||
List<BusinessAssayReportDataDO> updateBusinessAssayReportDataDOList = new ArrayList<>();
|
||||
|
||||
@@ -415,6 +431,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
||||
|
||||
List<BusinessSubParentSampleDO> businessSubParentSampleDOList = businessSubParentSampleMapper.selectByIds(reqVO.getBusinessSubParentSampleIds());
|
||||
|
||||
//循环分样主样数据
|
||||
for (BusinessSubParentSampleDO businessSubParentSampleDO : businessSubParentSampleDOList) {
|
||||
|
||||
BusinessBaseSampleDO businessBaseSampleDO = businessBaseSampleMapper.selectById(businessSubParentSampleDO.getBusinessBaseSampleId());
|
||||
@@ -435,7 +452,7 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
||||
//根据检测方法查询字段配置
|
||||
List<ConfigProjectExtendRespVO> configProjectList = configProjectMapper.selectByConfigAssayMethodId(reqVO.getConfigAssayMethodId());
|
||||
|
||||
|
||||
//处理报表数据
|
||||
for (ConfigSampleReportExtendRespVO configSampleReport : configSampleReportList) {
|
||||
BusinessAssayReportDataDO businessAssayReportDataDO = businessAssayReportDataDOList.stream().filter(f -> f.getConfigReportTypeId().equals(configSampleReport.getConfigReportTypeId()) && f.getConfigSampleReportId().equals(configSampleReport.getId())).findFirst().orElse(null);
|
||||
if (businessAssayReportDataDO == null) {
|
||||
@@ -505,6 +522,35 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//处理子样分析任务数据
|
||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = businessAssayTaskDataMapper.selectByBusinessSubParentSampleIds(reqVO.getBusinessSubParentSampleIds());
|
||||
List<Long> businessSubSampleIdList = businessAssayTaskDataDOList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList());
|
||||
List<BusinessSubSampleDO> businessSubSampleDOList = businessSubSampleMapper.selectByIds(businessSubSampleIdList);
|
||||
List<BusinessSubSampleAnalysisGroupDO> businessSubSampleAnalysisGroupDOList = businessSubSampleAnalysisGroupMapper.selectByBusinessSubParentSampleIds(reqVO.getBusinessSubParentSampleIds());
|
||||
//根据子样id进行分组
|
||||
Map<Long, List<BusinessAssayTaskDataDO>> businessAssayTaskDataDOMap = businessAssayTaskDataDOList.stream().collect(Collectors.groupingBy(BusinessAssayTaskDataDO::getBusinessSubSampleId));
|
||||
for (Map.Entry<Long, List<BusinessAssayTaskDataDO>> businessAssayTaskDataDOEntry : businessAssayTaskDataDOMap.entrySet()) {
|
||||
Long businessSubSampleId = businessAssayTaskDataDOEntry.getKey();
|
||||
//子样下的分析任务
|
||||
List<BusinessAssayTaskDataDO> valList = businessAssayTaskDataDOEntry.getValue();
|
||||
//查询子样
|
||||
BusinessSubSampleDO businessSubSampleDO = businessSubSampleDOList.stream().filter(f -> businessSubSampleId.equals(f.getId())).findFirst().orElse(null);
|
||||
//查询子样下的分析班组
|
||||
List<BusinessSubSampleAnalysisGroupDO> subSampleAnalysisGroupList = businessSubSampleAnalysisGroupDOList.stream().filter(f -> f.getBusinessSubSampleId().equals(businessSubSampleId)).collect(Collectors.toList());
|
||||
for (BusinessSubSampleAnalysisGroupDO subSampleAnalysisGroupDO : subSampleAnalysisGroupList) {
|
||||
long count = valList.stream().filter(f -> f.getIsReported().equals(QmsCommonConstant.NO) && f.getAssayDepartmentId().equals(subSampleAnalysisGroupDO.getAssayDepartmentId())).count();
|
||||
if (count > 0) {//如果还存在未上报的数据,则继续
|
||||
continue;
|
||||
}
|
||||
subSampleAnalysisGroupDO.setSampleStatus("已完成");//当前班组分析已完成
|
||||
updateBusinessSubSampleAnalysisGroupDOList.add(subSampleAnalysisGroupDO);
|
||||
|
||||
updateBusinessSubSampleDOList.add(businessSubSampleDO);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (saveBusinessAssayReportDataDOList.size() > 0) {
|
||||
businessAssayReportDataMapper.insertBatch(saveBusinessAssayReportDataDOList);
|
||||
@@ -513,6 +559,11 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
||||
businessAssayReportDataMapper.updateBatch(updateBusinessAssayReportDataDOList);
|
||||
}
|
||||
|
||||
//更新分析班组
|
||||
if (updateBusinessSubSampleAnalysisGroupDOList.size()> 0) {
|
||||
businessSubSampleAnalysisGroupMapper.updateBatch(updateBusinessSubSampleAnalysisGroupDOList);
|
||||
}
|
||||
|
||||
List<Long> businessSubParentSampleAssessmentIdList = businessSubParentSampleAssessmentExtendList.stream().map(m -> m.getId()).collect(Collectors.toList());
|
||||
|
||||
businessSubParentSampleAssessmentMapper.update(new LambdaUpdateWrapper<BusinessSubParentSampleAssessmentDO>()
|
||||
@@ -520,6 +571,15 @@ public class SampleResultReportingServiceImpl implements SampleResultReportingSe
|
||||
.set(BusinessSubParentSampleAssessmentDO::getReporter, nickName)
|
||||
.set(BusinessSubParentSampleAssessmentDO::getReportTime, LocalDateTime.now())
|
||||
.in(BusinessSubParentSampleAssessmentDO::getId, businessSubParentSampleAssessmentIdList));
|
||||
|
||||
if (updateBusinessSubSampleDOList.size() > 0) {
|
||||
|
||||
SampleFlowParam sampleFlowParam = new SampleFlowParam();
|
||||
sampleFlowParam.setCurrentSampleFlowKey(QmsCommonConstant.FLOW_NODE_ANALYSIS);
|
||||
sampleFlowParam.setSampleSourceType(2);
|
||||
sampleFlowParam.setSampleFlowInfoList(BeanUtils.toBean(updateBusinessSubSampleDOList, SampleFlowInfo.class));
|
||||
sampleFlowService.sampleFlow(sampleFlowParam);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<if test="reqVO.sampleFlowNodeKey != null and reqVO.sampleFlowNodeKey != ''">
|
||||
AND tbatd.SMP_FLW_NDE_KY = #{reqVO.sampleFlowNodeKey}
|
||||
</if>
|
||||
<if test="reqVO.sampleFlowNodeTime[0] != null and reqVO.sampleFlowNodeTime[0] != null">
|
||||
<if test="reqVO.sampleFlowNodeTime[0] != null and reqVO.sampleFlowNodeTime[1] != null">
|
||||
AND tbatd.SMP_FLW_NDE_TM #{reqVO.sampleFlowNodeTime[0]} and #{reqVO.sampleFlowNodeTime[1]}
|
||||
</if>
|
||||
GROUP BY
|
||||
@@ -39,20 +39,40 @@
|
||||
|
||||
<select id="selectUnAuditTaskGroupList" resultType="com.zt.plat.module.qms.business.bus.controller.vo.BusinessAssayTaskDataGroupRespVO">
|
||||
SELECT
|
||||
tbatd.CFG_ASY_MTHD_ID AS configAssayMethodId,
|
||||
tbatd.ASY_TP AS assayType,
|
||||
t.CFG_ASY_MTHD_ID AS configAssayMethodId,
|
||||
t.ASY_TP AS assayType,
|
||||
tcam.NAME AS configAssayMethodName,
|
||||
COUNT(tbatd.ID) AS sampleTaskCount
|
||||
COUNT(t.BSN_SB_SMP_ID) AS sampleTaskCount
|
||||
FROM
|
||||
T_BSN_ASY_TSK_DAT tbatd
|
||||
(
|
||||
SELECT
|
||||
tbssa.TENANT_ID ,
|
||||
tbssa.BSN_SB_PRN_SMP_ID ,
|
||||
tbssa.BSN_SB_SMP_ID ,
|
||||
tbssa.CFG_ASY_MTHD_ID,
|
||||
tbssa.ASY_TP
|
||||
FROM
|
||||
T_BSN_SB_SMP_ASMT tbssa
|
||||
WHERE
|
||||
tbssa.DELETED = 0
|
||||
AND tbssa.IS_RPOD = 0
|
||||
GROUP BY
|
||||
tbssa.TENANT_ID ,
|
||||
tbssa.BSN_SB_PRN_SMP_ID ,
|
||||
tbssa.BSN_SB_SMP_ID ,
|
||||
tbssa.CFG_ASY_MTHD_ID,
|
||||
tbssa.ASY_TP
|
||||
) t
|
||||
LEFT JOIN T_CFG_ASY_MTHD tcam ON
|
||||
tbatd.CFG_ASY_MTHD_ID = tcam.ID
|
||||
WHERE
|
||||
tbatd.SMP_FLW_NDE_KY = 'flw_analysis'
|
||||
AND tbatd.DELETED = 0
|
||||
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
|
||||
tbatd.CFG_ASY_MTHD_ID,
|
||||
tbatd.ASY_TP,
|
||||
t.CFG_ASY_MTHD_ID,
|
||||
t.ASY_TP,
|
||||
tcam.NAME
|
||||
</select>
|
||||
|
||||
@@ -83,10 +103,9 @@
|
||||
<if test="reqVO.sampleFlowNodeKey != null and reqVO.sampleFlowNodeKey != ''">
|
||||
AND tbatd.SMP_FLW_NDE_KY = #{reqVO.sampleFlowNodeKey}
|
||||
</if>
|
||||
<if test="reqVO.sampleFlowNodeTime[0] != null and reqVO.sampleFlowNodeTime[0] != null">
|
||||
<if test="reqVO.sampleFlowNodeTime[0] != null and reqVO.sampleFlowNodeTime[1] != null">
|
||||
AND tbatd.SMP_FLW_NDE_TM #{reqVO.sampleFlowNodeTime[0]} and #{reqVO.sampleFlowNodeTime[1]}
|
||||
</if>
|
||||
AND tbatd.SMP_FLW_NDE_KY = 'flw_analysis'
|
||||
GROUP BY tbss.ID ,
|
||||
tbss.SMP_NAME ,
|
||||
tbss.SMP_CD ,
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
SELECT
|
||||
tbspsa.CFG_ASY_MTHD_ID AS configAssayMethodId,
|
||||
tcam.NAME AS configAssayMethodName,
|
||||
tcam.ASY_DEPT_ID AS assayDepartmentId,
|
||||
tcam.ASY_DEPT_NAME AS assayDepartmentName,
|
||||
COUNT(DISTINCT tbspsa.BSN_SB_PRN_SMP_ID) AS sampleCount
|
||||
FROM
|
||||
T_BSN_SB_PRN_SMP_ASMT tbspsa
|
||||
@@ -21,9 +23,17 @@
|
||||
WHERE
|
||||
tbspsa.DELETED = 0
|
||||
AND tbspsa.IS_RPOD = 0
|
||||
<if test="reqVO.configAssayMethodName != null and reqVO.configAssayMethodName != ''">
|
||||
AND tcam.NAME like '%' || #{reqVO.assayDepartmentId} || '%'
|
||||
</if>
|
||||
<if test="reqVO.assayDepartmentId != null and reqVO.assayDepartmentId != ''">
|
||||
AND tcam.ASY_DEPT_ID = #{reqVO.assayDepartmentId}
|
||||
</if>
|
||||
GROUP BY
|
||||
tbspsa.CFG_ASY_MTHD_ID,
|
||||
tcam.NAME
|
||||
tcam.NAME,
|
||||
tcam.ASY_DEPT_ID ,
|
||||
tcam.ASY_DEPT_NAME
|
||||
</select>
|
||||
|
||||
<select id="selectNoReportSubParentSampleAssessment" resultType="com.zt.plat.module.qms.business.bus.controller.vo.NoReportSubParentSampleAssessmentRespVO" >
|
||||
|
||||
Reference in New Issue
Block a user