任务分配添加手动模式
This commit is contained in:
@@ -104,4 +104,24 @@ public interface QmsCommonConstant {
|
|||||||
/** 检验委托 **/
|
/** 检验委托 **/
|
||||||
String ENTRUST_INSPECTION = "entrust_inspection";
|
String ENTRUST_INSPECTION = "entrust_inspection";
|
||||||
|
|
||||||
|
/** 中心收样 **/
|
||||||
|
String FLOW_NODE_CENTER_RECEIVE = "flw_zx_receive";
|
||||||
|
|
||||||
|
/** 中心送样 **/
|
||||||
|
String FLOW_NODE_CENTER_SEND = "flw_zx_send";
|
||||||
|
|
||||||
|
/** 班组收样 **/
|
||||||
|
String FLOW_NODE_TEAM_RECEIVE = "flw_bz_receive";
|
||||||
|
|
||||||
|
/** 样品编密 **/
|
||||||
|
String FlOW_NODE_SAMPLE_ENCRYPT = "flw_ypbm";
|
||||||
|
|
||||||
|
/** 分析收样 **/
|
||||||
|
String FLOW_NODE_ANALYSIS_RECEIVE = "flw_fx_receive";
|
||||||
|
|
||||||
|
/** 分析送样 **/
|
||||||
|
String FLOW_NODE_ANALYSIS_SEND = "flw_fx_send";
|
||||||
|
|
||||||
|
/** 班组送样 **/
|
||||||
|
String FLOW_NODE_TEAM_SEND = "flw_bz_send";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import static com.zt.plat.framework.common.pojo.CommonResult.success;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||||
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignManualParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
|
||||||
import com.zt.plat.module.qms.business.bus.service.SampleTaskAssignService;
|
import com.zt.plat.module.qms.business.bus.service.SampleTaskAssignService;
|
||||||
@@ -49,6 +50,11 @@ public class SampleTaskAssignController {
|
|||||||
return success("成功");
|
return success("成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/manualAssign")
|
||||||
|
public CommonResult<?> manualAssign(@RequestBody SampleTaskAssignManualParam param) {
|
||||||
|
sampleTaskAssignService.manualAssign(param);
|
||||||
|
return success("成功");
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/sampleAssign")
|
@PostMapping("/sampleAssign")
|
||||||
public CommonResult<?> sampleAssign(@RequestBody SampleTaskAssignSampleParam param) {
|
public CommonResult<?> sampleAssign(@RequestBody SampleTaskAssignSampleParam param) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.zt.plat.module.qms.business.bus.controller.vo;
|
package com.zt.plat.module.qms.business.bus.controller.vo;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -23,7 +23,7 @@ public class ReportedDataSource implements Serializable {
|
|||||||
* 自动上报时间
|
* 自动上报时间
|
||||||
*/
|
*/
|
||||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date autoReportedTime;
|
private LocalDateTime autoReportedTime;
|
||||||
|
|
||||||
/** 已完成数据来源明细 **/
|
/** 已完成数据来源明细 **/
|
||||||
private List<DataSourceDetail> details;
|
private List<DataSourceDetail> details;
|
||||||
@@ -34,7 +34,7 @@ public class ReportedDataSource implements Serializable {
|
|||||||
* @param reportedOper 上报人
|
* @param reportedOper 上报人
|
||||||
* @param reportedTime 上报时间
|
* @param reportedTime 上报时间
|
||||||
*/
|
*/
|
||||||
public void addDataSource(String sourceCode, String reportedOper, Date reportedTime) {
|
public void addDataSource(String sourceCode, String reportedOper, LocalDateTime reportedTime) {
|
||||||
if (this.details == null) {
|
if (this.details == null) {
|
||||||
this.details = new ArrayList<>();
|
this.details = new ArrayList<>();
|
||||||
this.details.add(new DataSourceDetail(sourceCode, reportedOper, reportedTime));
|
this.details.add(new DataSourceDetail(sourceCode, reportedOper, reportedTime));
|
||||||
@@ -83,6 +83,6 @@ public class ReportedDataSource implements Serializable {
|
|||||||
* 上报时间
|
* 上报时间
|
||||||
*/
|
*/
|
||||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date reportedTime;
|
private LocalDateTime reportedTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.zt.plat.module.qms.business.bus.controller.vo.*;
|
|||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@@ -58,5 +59,20 @@ public interface BusinessAssayTaskMapper extends BaseMapperX<BusinessAssayTaskDO
|
|||||||
.eqIfPresent(BusinessAssayTaskDO::getRemark, reqVO.getRemark())
|
.eqIfPresent(BusinessAssayTaskDO::getRemark, reqVO.getRemark())
|
||||||
.orderByDesc(BusinessAssayTaskDO::getId));
|
.orderByDesc(BusinessAssayTaskDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据分析方法、 分析人和分配人 查询进行中的任务分配单。
|
||||||
|
* @param configAssayMethodId 分析方法
|
||||||
|
* @param assayUser 分析人
|
||||||
|
* @param assignUser 分配人
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
default BusinessAssayTaskDO selectAssignInProgressByAssayUserAndAssignUser(Long configAssayMethodId, String assayUser, String assignUser) {
|
||||||
|
return selectOne(new LambdaQueryWrapperX<BusinessAssayTaskDO>()
|
||||||
|
.eq(BusinessAssayTaskDO::getConfigAssayMethodId, configAssayMethodId)
|
||||||
|
.eq(BusinessAssayTaskDO::getAssayOperator, assignUser)
|
||||||
|
.eq(BusinessAssayTaskDO::getTaskAssignOperator, assignUser)
|
||||||
|
.eq(BusinessAssayTaskDO::getTaskAssignStatus, QmsCommonConstant.IN_PROGRESS));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.zt.plat.module.qms.business.bus.liteflow.param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手动分配任务
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class SampleTaskAssignManualParam {
|
||||||
|
|
||||||
|
/** 分析人员 **/
|
||||||
|
private AssignAssayUser assignAssayUser;
|
||||||
|
|
||||||
|
/** 检测任务id列表 **/
|
||||||
|
private List<Long> assayTaskDataIdList;
|
||||||
|
}
|
||||||
@@ -3,7 +3,6 @@ package com.zt.plat.module.qms.business.bus.liteflow.sample.entrust;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -36,6 +35,7 @@ import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSampleEntrustRegis
|
|||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubParentSampleMapper;
|
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.BusinessSubSampleAnalysisGroupMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
|
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;
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.BaseSampleDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
|
||||||
@@ -186,6 +186,8 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
|
|||||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = new ArrayList<>();
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataDOList = new ArrayList<>();
|
||||||
List<BusinessAssayProjectDataDO> businessAssayProjectDataDOList = new ArrayList<>();
|
List<BusinessAssayProjectDataDO> businessAssayProjectDataDOList = new ArrayList<>();
|
||||||
List<BusinessAssayParameterDataDO> businessAssayParameterDataDOList = new ArrayList<>();
|
List<BusinessAssayParameterDataDO> businessAssayParameterDataDOList = new ArrayList<>();
|
||||||
|
|
||||||
|
List<SampleFlowInfo> sampleFlowInfoList = new ArrayList<>();
|
||||||
|
|
||||||
List<BusinessSampleEntrustDetailDO> sampleEntrustDetailListSort = sampleEntrustDetailList.stream().sorted(Comparator.comparingInt(BusinessSampleEntrustDetailDO::getSort)).collect(Collectors.toList());
|
List<BusinessSampleEntrustDetailDO> sampleEntrustDetailListSort = sampleEntrustDetailList.stream().sorted(Comparator.comparingInt(BusinessSampleEntrustDetailDO::getSort)).collect(Collectors.toList());
|
||||||
BusinessBaseSampleDO businessBaseSampleDO = null;
|
BusinessBaseSampleDO businessBaseSampleDO = null;
|
||||||
@@ -307,6 +309,16 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
|
|||||||
|
|
||||||
businessSubSampleDOList.add(businessSubSampleDO);
|
businessSubSampleDOList.add(businessSubSampleDO);
|
||||||
|
|
||||||
|
//子样样品流转信息
|
||||||
|
SampleFlowInfo sampleFlowInfo = new SampleFlowInfo();
|
||||||
|
sampleFlowInfo.setId(businessSubSampleDO.getId());
|
||||||
|
sampleFlowInfo.setSampleName(businessSubSampleDO.getSampleName());
|
||||||
|
sampleFlowInfo.setSampleCode(businessSubSampleDO.getSampleCode());
|
||||||
|
sampleFlowInfo.setIsWeighing(businessSubSampleDO.getIsWeighing());
|
||||||
|
sampleFlowInfo.setSampleWeight(businessSubSampleDO.getLastSampleWeight());
|
||||||
|
|
||||||
|
sampleFlowInfoList.add(sampleFlowInfo);
|
||||||
|
|
||||||
//子样对应的分析班组
|
//子样对应的分析班组
|
||||||
BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO = null;
|
BusinessSubSampleAnalysisGroupDO businessSubSampleAnalysisGroupDO = null;
|
||||||
|
|
||||||
@@ -411,6 +423,8 @@ public class SampleEntrustGenSampleDataCmp extends NodeComponent {
|
|||||||
|
|
||||||
sampleEntrustRegistration.setRegistrationStatus(QmsCommonConstant.SUBMITTED);
|
sampleEntrustRegistration.setRegistrationStatus(QmsCommonConstant.SUBMITTED);
|
||||||
|
|
||||||
|
sampleEntrustContext.setSampleFlowInfoList(sampleFlowInfoList);
|
||||||
|
|
||||||
businessSampleEntrustRegistrationMapper.updateById(sampleEntrustRegistration);
|
businessSampleEntrustRegistrationMapper.updateById(sampleEntrustRegistration);
|
||||||
if (CollUtil.isNotEmpty(sampleEntrustDetailList)) {
|
if (CollUtil.isNotEmpty(sampleEntrustDetailList)) {
|
||||||
businessSampleEntrustDetailMapper.updateBatch(sampleEntrustDetailList);
|
businessSampleEntrustDetailMapper.updateBatch(sampleEntrustDetailList);
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.yomahub.liteflow.core.NodeComponent;
|
|||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
|
||||||
import com.zt.plat.module.qms.business.bus.service.SampleFlowService;
|
import com.zt.plat.module.qms.business.bus.service.SampleFlowService;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
@@ -16,7 +17,11 @@ public class SampleEntrustReceiveDataCmp extends NodeComponent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process() throws Exception {
|
public void process() throws Exception {
|
||||||
|
SampleEntrustContext sampleEntrustContext = this.getContextBean(SampleEntrustContext.class);
|
||||||
SampleFlowParam sampleFlowParam = new SampleFlowParam();
|
SampleFlowParam sampleFlowParam = new SampleFlowParam();
|
||||||
|
sampleFlowParam.setCurrentSampleFlowKey(QmsCommonConstant.FLOW_NODE_CENTER_RECEIVE);
|
||||||
|
sampleFlowParam.setSampleSourceType(2);
|
||||||
|
sampleFlowParam.setSampleFlowInfoList(sampleEntrustContext.getSampleFlowInfoList());
|
||||||
sampleFlowService.sampleFlow(sampleFlowParam);
|
sampleFlowService.sampleFlow(sampleFlowParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.yomahub.liteflow.core.NodeComponent;
|
|||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleEntrustContext;
|
||||||
import com.zt.plat.module.qms.business.bus.service.SampleFlowService;
|
import com.zt.plat.module.qms.business.bus.service.SampleFlowService;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
@@ -16,7 +17,11 @@ public class SampleEntrustSendDataCmp extends NodeComponent {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process() throws Exception {
|
public void process() throws Exception {
|
||||||
|
SampleEntrustContext sampleEntrustContext = this.getContextBean(SampleEntrustContext.class);
|
||||||
SampleFlowParam sampleFlowParam = new SampleFlowParam();
|
SampleFlowParam sampleFlowParam = new SampleFlowParam();
|
||||||
|
sampleFlowParam.setCurrentSampleFlowKey(QmsCommonConstant.FLOW_NODE_CENTER_SEND);
|
||||||
|
sampleFlowParam.setSampleSourceType(2);
|
||||||
|
sampleFlowParam.setSampleFlowInfoList(sampleEntrustContext.getSampleFlowInfoList());
|
||||||
sampleFlowService.sampleFlow(sampleFlowParam);
|
sampleFlowService.sampleFlow(sampleFlowParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.yomahub.liteflow.core.NodeComponent;
|
|||||||
import com.zt.plat.framework.security.core.LoginUser;
|
import com.zt.plat.framework.security.core.LoginUser;
|
||||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
import com.zt.plat.framework.tenant.core.context.TenantContextHolder;
|
import com.zt.plat.framework.tenant.core.context.TenantContextHolder;
|
||||||
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignManualParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
||||||
@@ -43,6 +44,14 @@ public class SampleTaskAssignContextInitCmp extends NodeComponent {
|
|||||||
sampleTaskAssignContext.setAssignAssayUser(sampleTaskAssignSampleParam.getAssignAssayUser());
|
sampleTaskAssignContext.setAssignAssayUser(sampleTaskAssignSampleParam.getAssignAssayUser());
|
||||||
sampleTaskAssignContext.setAssignSampleIdList(sampleTaskAssignSampleParam.getAssignSampleIdList());
|
sampleTaskAssignContext.setAssignSampleIdList(sampleTaskAssignSampleParam.getAssignSampleIdList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.getRequestData() instanceof SampleTaskAssignManualParam) {
|
||||||
|
SampleTaskAssignManualParam sampleTaskAssignManualParam = this.getRequestData();
|
||||||
|
sampleTaskAssignContext.setSampleTaskAssignType(SampleTaskAssignTypeEnum.MANUAL);
|
||||||
|
sampleTaskAssignContext.setAssignAssayUser(sampleTaskAssignManualParam.getAssignAssayUser());
|
||||||
|
sampleTaskAssignContext.setAssayTaskDataIdList(sampleTaskAssignManualParam.getAssayTaskDataIdList());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,14 +31,20 @@ public class SampleTaskAssignDataSaveOrUpdateCmp extends NodeComponent {
|
|||||||
public void process() throws Exception {
|
public void process() throws Exception {
|
||||||
SampleTaskAssignContext sampleTaskAssignContext = this.getContextBean(SampleTaskAssignContext.class);
|
SampleTaskAssignContext sampleTaskAssignContext = this.getContextBean(SampleTaskAssignContext.class);
|
||||||
|
|
||||||
List<BusinessAssayTaskDO> businessAssayTaskList = sampleTaskAssignContext.getBusinessAssayTaskList();
|
List<BusinessAssayTaskDO> savebusinessAssayTaskList = sampleTaskAssignContext.getSaveBusinessAssayTaskList();
|
||||||
|
|
||||||
|
List<BusinessAssayTaskDO> updateBusinessAssayTaskList = sampleTaskAssignContext.getUpdateBusinessAssayTaskList();
|
||||||
|
|
||||||
List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList = sampleTaskAssignContext.getBusinessAssayTaskDetailList();
|
List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList = sampleTaskAssignContext.getBusinessAssayTaskDetailList();
|
||||||
|
|
||||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataList = sampleTaskAssignContext.getBusinessAssayTaskDataList();
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataList = sampleTaskAssignContext.getBusinessAssayTaskDataList();
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(businessAssayTaskList)) {
|
if (CollUtil.isNotEmpty(savebusinessAssayTaskList)) {
|
||||||
this.businessAssayTaskMapper.insertBatch(businessAssayTaskList);
|
this.businessAssayTaskMapper.insertBatch(savebusinessAssayTaskList);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CollUtil.isNotEmpty(updateBusinessAssayTaskList)) {
|
||||||
|
this.businessAssayTaskMapper.updateBatch(updateBusinessAssayTaskList);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(businessAssayTaskDetailList)) {
|
if (CollUtil.isNotEmpty(businessAssayTaskDetailList)) {
|
||||||
|
|||||||
@@ -0,0 +1,150 @@
|
|||||||
|
package com.zt.plat.module.qms.business.bus.liteflow.sample.taskassign;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
|
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||||
|
import com.yomahub.liteflow.core.NodeComponent;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDO;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataDO;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
|
||||||
|
import com.zt.plat.module.qms.business.bus.liteflow.param.AssignAssayUser;
|
||||||
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
||||||
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignTypeEnum;
|
||||||
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigAssayMethodDO;
|
||||||
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigReportTemplateDO;
|
||||||
|
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigAssayMethodMapper;
|
||||||
|
import com.zt.plat.module.qms.business.config.dal.mapper.ConfigReportTemplateMapper;
|
||||||
|
import com.zt.plat.module.qms.core.code.SequenceUtil;
|
||||||
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
|
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
|
@LiteflowComponent(id = "sampleTaskAssignManualCmp", name = "手动分配")
|
||||||
|
public class SampleTaskAssignManualCmp extends NodeComponent {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SequenceUtil sequenceUtil;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ConfigAssayMethodMapper configAssayMethodMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ConfigReportTemplateMapper configReportTemplateMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessAssayTaskMapper businessAssayTaskMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessSubSampleMapper businessSubSampleMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void process() throws Exception {
|
||||||
|
SampleTaskAssignContext sampleTaskAssignContext = this.getContextBean(SampleTaskAssignContext.class);
|
||||||
|
String loginRealname = sampleTaskAssignContext.getLoginRealname();
|
||||||
|
LocalDateTime currentDateTime = sampleTaskAssignContext.getCurrentDateTime();
|
||||||
|
AssignAssayUser assignAssayUser = sampleTaskAssignContext.getAssignAssayUser();
|
||||||
|
List<Long> assayTaskDataIdList = sampleTaskAssignContext.getAssayTaskDataIdList();
|
||||||
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataList = businessAssayTaskDataMapper.selectByIds(assayTaskDataIdList);
|
||||||
|
List<Long> businessSubSampleIdList = businessAssayTaskDataList.stream().map(m -> m.getBusinessSubSampleId()).distinct().collect(Collectors.toList());
|
||||||
|
List<Long> configAssayMethodIdList = businessAssayTaskDataList.stream().map(m -> m.getConfigAssayMethodId()).distinct().collect(Collectors.toList());
|
||||||
|
List<ConfigAssayMethodDO> configAssayMethodList = configAssayMethodMapper.selectByIds(configAssayMethodIdList);
|
||||||
|
sampleTaskAssignContext.setConfigAssayMethodList(configAssayMethodList);
|
||||||
|
|
||||||
|
//查询子样
|
||||||
|
List<BusinessSubSampleDO> businessSubSampleList = businessSubSampleMapper.selectByIds(businessSubSampleIdList);
|
||||||
|
sampleTaskAssignContext.setBusinessSubSampleList(businessSubSampleList);
|
||||||
|
|
||||||
|
//保存任务分配单
|
||||||
|
List<BusinessAssayTaskDO> saveBusinessAssayTaskList = new ArrayList<>();
|
||||||
|
//更新任务分配单
|
||||||
|
List<BusinessAssayTaskDO> updateBusinessAssayTaskList = new ArrayList<>();
|
||||||
|
//任务分配单明细
|
||||||
|
List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList = new ArrayList<>();
|
||||||
|
|
||||||
|
//按分析方法分组
|
||||||
|
Map<Long, List<BusinessAssayTaskDataDO>> groupBusinessAssayTaskDataListMap = businessAssayTaskDataList.stream().collect(Collectors.groupingBy(BusinessAssayTaskDataDO::getConfigAssayMethodId));
|
||||||
|
for (Map.Entry<Long, List<BusinessAssayTaskDataDO>> entry : groupBusinessAssayTaskDataListMap.entrySet()) {
|
||||||
|
long key = entry.getKey();
|
||||||
|
ConfigAssayMethodDO configAssayMethod = sampleTaskAssignContext.getConfigAssayMethodById(key);
|
||||||
|
//查询报表模板
|
||||||
|
ConfigReportTemplateDO configReportTemplate = configReportTemplateMapper.selectLatestConfigReportTemplateByKey(configAssayMethod.getConfigReportTemplateKey());
|
||||||
|
|
||||||
|
//根据分配
|
||||||
|
BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectAssignInProgressByAssayUserAndAssignUser(configAssayMethod.getId(), assignAssayUser.getRealName(), loginRealname);
|
||||||
|
if (businessAssayTaskDO == null) {
|
||||||
|
String taskNo = sequenceUtil.genCode(configAssayMethod.getCodeRule());
|
||||||
|
|
||||||
|
businessAssayTaskDO = new BusinessAssayTaskDO();
|
||||||
|
businessAssayTaskDO.setId(IdWorker.getId());
|
||||||
|
businessAssayTaskDO.setTaskNo(taskNo);
|
||||||
|
businessAssayTaskDO.setTaskName(configAssayMethod.getName());
|
||||||
|
businessAssayTaskDO.setAssayOperator(assignAssayUser.getRealName());
|
||||||
|
businessAssayTaskDO.setConfigAssayMethodId(key);
|
||||||
|
businessAssayTaskDO.setTaskSourceType(QmsCommonConstant.TASK_ASSIGN);
|
||||||
|
businessAssayTaskDO.setConfigReportTemplateId(configReportTemplate.getId());
|
||||||
|
businessAssayTaskDO.setConfigReportTemplateKey(configReportTemplate.getKey());
|
||||||
|
|
||||||
|
businessAssayTaskDO.setTaskAssignOperator(loginRealname);
|
||||||
|
businessAssayTaskDO.setTaskAssignTime(currentDateTime);
|
||||||
|
businessAssayTaskDO.setTaskAssignStatus(QmsCommonConstant.IN_PROGRESS);
|
||||||
|
businessAssayTaskDO.setTaskAssayStatus(QmsCommonConstant.NOT_START);
|
||||||
|
businessAssayTaskDO.setFinishStatus(QmsCommonConstant.NOT_START);
|
||||||
|
businessAssayTaskDO.setFlowStatus(QmsCommonConstant.NOT_START);
|
||||||
|
|
||||||
|
saveBusinessAssayTaskList.add(businessAssayTaskDO);
|
||||||
|
} else {
|
||||||
|
updateBusinessAssayTaskList.add(businessAssayTaskDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
BusinessAssayTaskDetailDO businessAssayTaskDetailDO = null;
|
||||||
|
List<BusinessAssayTaskDataDO> valList = entry.getValue();
|
||||||
|
|
||||||
|
int sort = 1;
|
||||||
|
for (BusinessAssayTaskDataDO val : valList) {
|
||||||
|
val.setIsAssignTasked(QmsCommonConstant.YES);
|
||||||
|
val.setAssignTaskTime(currentDateTime);
|
||||||
|
val.setAssayOperator(assignAssayUser.getRealName());
|
||||||
|
val.setBusinessAssayTaskId(businessAssayTaskDO.getId());
|
||||||
|
|
||||||
|
BusinessSubSampleDO businessSubSampleDO = sampleTaskAssignContext.getBusinessSubSampleById(val.getBusinessSubSampleId());
|
||||||
|
|
||||||
|
businessAssayTaskDetailDO = new BusinessAssayTaskDetailDO();
|
||||||
|
businessAssayTaskDetailDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
|
||||||
|
businessAssayTaskDetailDO.setTaskNo(businessAssayTaskDO.getTaskNo());
|
||||||
|
businessAssayTaskDetailDO.setSampleId(val.getBusinessSubSampleId());
|
||||||
|
businessAssayTaskDetailDO.setSampleCode(businessSubSampleDO.getSampleAssayCode());
|
||||||
|
businessAssayTaskDetailDO.setSampleName(businessSubSampleDO.getSampleName());
|
||||||
|
businessAssayTaskDetailDO.setDataSourceType(QmsCommonConstant.NORMAL);
|
||||||
|
businessAssayTaskDetailDO.setSortNo(sort);
|
||||||
|
sort++;
|
||||||
|
|
||||||
|
|
||||||
|
businessAssayTaskDetailList.add(businessAssayTaskDetailDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
sampleTaskAssignContext.setSaveBusinessAssayTaskList(saveBusinessAssayTaskList);
|
||||||
|
sampleTaskAssignContext.setUpdateBusinessAssayTaskList(updateBusinessAssayTaskList);
|
||||||
|
sampleTaskAssignContext.setBusinessAssayTaskDataList(businessAssayTaskDataList);
|
||||||
|
sampleTaskAssignContext.setBusinessAssayTaskDetailList(businessAssayTaskDetailList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAccess() {
|
||||||
|
SampleTaskAssignContext sampleTaskAssignContext = this.getContextBean(SampleTaskAssignContext.class);
|
||||||
|
return sampleTaskAssignContext.getSampleTaskAssignType().equals(SampleTaskAssignTypeEnum.MANUAL);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,6 +16,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataD
|
|||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.AssignAssayUser;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.AssignAssayUser;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
||||||
@@ -28,18 +29,6 @@ import com.zt.plat.module.qms.core.code.SequenceUtil;
|
|||||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
/**
|
|
||||||
* <b>SampleTaskAssignMethodCmp</b>
|
|
||||||
* <p>
|
|
||||||
* 更新历史:
|
|
||||||
* <pre> 版本 更新时间 更新者 更新内容<hr/>
|
|
||||||
* V1.0 2025年9月20日 wxr Add</pre>
|
|
||||||
* <b>Copyright (C) 云南志者竟成科技有限公司</b>
|
|
||||||
* </p>
|
|
||||||
* @author 王兴荣<wxr@wangxingrong.com>
|
|
||||||
* @version V1.0
|
|
||||||
* @since 2025年9月20日
|
|
||||||
*/
|
|
||||||
@LiteflowComponent(id = "sampleTaskAssignMethodCmp", name = "按分析方法分配")
|
@LiteflowComponent(id = "sampleTaskAssignMethodCmp", name = "按分析方法分配")
|
||||||
public class SampleTaskAssignMethodCmp extends NodeComponent {
|
public class SampleTaskAssignMethodCmp extends NodeComponent {
|
||||||
|
|
||||||
@@ -55,6 +44,9 @@ public class SampleTaskAssignMethodCmp extends NodeComponent {
|
|||||||
@Resource
|
@Resource
|
||||||
private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
|
private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessAssayTaskMapper businessAssayTaskMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BusinessSubSampleMapper businessSubSampleMapper;
|
private BusinessSubSampleMapper businessSubSampleMapper;
|
||||||
|
|
||||||
@@ -82,34 +74,45 @@ public class SampleTaskAssignMethodCmp extends NodeComponent {
|
|||||||
sampleTaskAssignContext.setBusinessSubSampleList(businessSubSampleList);
|
sampleTaskAssignContext.setBusinessSubSampleList(businessSubSampleList);
|
||||||
|
|
||||||
List<BusinessAssayTaskDataDO> businessAssayTaskDataList = new ArrayList<>();
|
List<BusinessAssayTaskDataDO> businessAssayTaskDataList = new ArrayList<>();
|
||||||
|
|
||||||
//任务分配单
|
//保存任务分配单
|
||||||
List<BusinessAssayTaskDO> businessAssayTaskList = new ArrayList<>();
|
List<BusinessAssayTaskDO> saveBusinessAssayTaskList = new ArrayList<>();
|
||||||
|
//更新任务分配单
|
||||||
|
List<BusinessAssayTaskDO> updateBusinessAssayTaskList = new ArrayList<>();
|
||||||
//任务分配单明细
|
//任务分配单明细
|
||||||
List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList = new ArrayList<>();
|
List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList = new ArrayList<>();
|
||||||
|
|
||||||
//循环分析人员分配任务
|
//循环分析人员分配任务
|
||||||
for (AssignAssayUser assignAssayUser : assignAssayUserList) {
|
for (AssignAssayUser assignAssayUser : assignAssayUserList) {
|
||||||
Integer sampleNum = assignAssayUser.getSampleNum();
|
Integer sampleNum = assignAssayUser.getSampleNum();
|
||||||
|
|
||||||
String taskNo = sequenceUtil.genCode(configAssayMethod.getCodeRule());
|
|
||||||
|
|
||||||
BusinessAssayTaskDO businessAssayTaskDO = new BusinessAssayTaskDO();
|
BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectAssignInProgressByAssayUserAndAssignUser(assignConfigAssayMethodId, assignAssayUser.getRealName(), loginRealname);
|
||||||
businessAssayTaskDO.setId(IdWorker.getId());
|
|
||||||
businessAssayTaskDO.setTaskNo(taskNo);
|
if (businessAssayTaskDO == null) {
|
||||||
businessAssayTaskDO.setTaskName(configAssayMethod.getName());
|
String taskNo = sequenceUtil.genCode(configAssayMethod.getCodeRule());
|
||||||
businessAssayTaskDO.setConfigAssayMethodId(assignConfigAssayMethodId);
|
|
||||||
businessAssayTaskDO.setTaskSourceType(QmsCommonConstant.TASK_ASSIGN);
|
businessAssayTaskDO = new BusinessAssayTaskDO();
|
||||||
businessAssayTaskDO.setConfigReportTemplateId(configReportTemplate.getId());
|
businessAssayTaskDO.setId(IdWorker.getId());
|
||||||
businessAssayTaskDO.setConfigReportTemplateKey(configReportTemplate.getKey());
|
businessAssayTaskDO.setTaskNo(taskNo);
|
||||||
businessAssayTaskDO.setAssayOperator(assignAssayUser.getRealName());
|
businessAssayTaskDO.setTaskName(configAssayMethod.getName());
|
||||||
|
businessAssayTaskDO.setConfigAssayMethodId(assignConfigAssayMethodId);
|
||||||
|
businessAssayTaskDO.setTaskSourceType(QmsCommonConstant.TASK_ASSIGN);
|
||||||
|
businessAssayTaskDO.setConfigReportTemplateId(configReportTemplate.getId());
|
||||||
|
businessAssayTaskDO.setConfigReportTemplateKey(configReportTemplate.getKey());
|
||||||
|
businessAssayTaskDO.setAssayOperator(assignAssayUser.getRealName());
|
||||||
|
|
||||||
|
businessAssayTaskDO.setTaskAssignOperator(loginRealname);
|
||||||
|
businessAssayTaskDO.setTaskAssignTime(currentDateTime);
|
||||||
|
businessAssayTaskDO.setTaskAssignStatus(QmsCommonConstant.IN_PROGRESS);
|
||||||
|
businessAssayTaskDO.setTaskAssayStatus(QmsCommonConstant.NOT_START);
|
||||||
|
businessAssayTaskDO.setFinishStatus(QmsCommonConstant.NOT_START);
|
||||||
|
businessAssayTaskDO.setFlowStatus(QmsCommonConstant.NOT_START);
|
||||||
|
|
||||||
|
saveBusinessAssayTaskList.add(businessAssayTaskDO);
|
||||||
|
} else {
|
||||||
|
updateBusinessAssayTaskList.add(businessAssayTaskDO);
|
||||||
|
}
|
||||||
|
|
||||||
businessAssayTaskDO.setTaskAssignOperator(loginRealname);
|
|
||||||
businessAssayTaskDO.setTaskAssignTime(currentDateTime);
|
|
||||||
businessAssayTaskDO.setTaskAssignStatus(QmsCommonConstant.IN_PROGRESS);
|
|
||||||
businessAssayTaskDO.setTaskAssayStatus(QmsCommonConstant.NOT_START);
|
|
||||||
businessAssayTaskDO.setFinishStatus(QmsCommonConstant.NOT_START);
|
|
||||||
businessAssayTaskDO.setFlowStatus(QmsCommonConstant.NOT_START);
|
|
||||||
|
|
||||||
BusinessAssayTaskDetailDO businessAssayTaskDetailDO = null;
|
BusinessAssayTaskDetailDO businessAssayTaskDetailDO = null;
|
||||||
for (int i = 0; i < sampleNum; i++) {
|
for (int i = 0; i < sampleNum; i++) {
|
||||||
@@ -123,11 +126,11 @@ public class SampleTaskAssignMethodCmp extends NodeComponent {
|
|||||||
|
|
||||||
businessAssayTaskDetailDO = new BusinessAssayTaskDetailDO();
|
businessAssayTaskDetailDO = new BusinessAssayTaskDetailDO();
|
||||||
businessAssayTaskDetailDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
|
businessAssayTaskDetailDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
|
||||||
businessAssayTaskDetailDO.setTaskNo(taskNo);
|
businessAssayTaskDetailDO.setTaskNo(businessAssayTaskDO.getTaskNo());
|
||||||
businessAssayTaskDetailDO.setSampleId(businessAssayTaskDataDO.getBusinessSubSampleId());
|
businessAssayTaskDetailDO.setSampleId(businessAssayTaskDataDO.getBusinessSubSampleId());
|
||||||
businessAssayTaskDetailDO.setSampleCode(businessSubSampleDO.getSampleAssayCode());
|
businessAssayTaskDetailDO.setSampleCode(businessSubSampleDO.getSampleAssayCode());
|
||||||
businessAssayTaskDetailDO.setSampleName(businessSubSampleDO.getSampleName());
|
businessAssayTaskDetailDO.setSampleName(businessSubSampleDO.getSampleName());
|
||||||
businessAssayTaskDetailDO.setDataSourceType("正常");
|
businessAssayTaskDetailDO.setDataSourceType(QmsCommonConstant.NORMAL);
|
||||||
businessAssayTaskDetailDO.setSortNo(i+1);
|
businessAssayTaskDetailDO.setSortNo(i+1);
|
||||||
|
|
||||||
|
|
||||||
@@ -139,13 +142,12 @@ public class SampleTaskAssignMethodCmp extends NodeComponent {
|
|||||||
businessAssayTaskDataDOList.remove(businessAssayTaskDataDO);
|
businessAssayTaskDataDOList.remove(businessAssayTaskDataDO);
|
||||||
|
|
||||||
}
|
}
|
||||||
businessAssayTaskList.add(businessAssayTaskDO);
|
|
||||||
}
|
}
|
||||||
sampleTaskAssignContext.setBusinessAssayTaskList(businessAssayTaskList);
|
sampleTaskAssignContext.setSaveBusinessAssayTaskList(saveBusinessAssayTaskList);
|
||||||
|
sampleTaskAssignContext.setUpdateBusinessAssayTaskList(updateBusinessAssayTaskList);
|
||||||
sampleTaskAssignContext.setBusinessAssayTaskDetailList(businessAssayTaskDetailList);
|
sampleTaskAssignContext.setBusinessAssayTaskDetailList(businessAssayTaskDetailList);
|
||||||
sampleTaskAssignContext.setBusinessAssayTaskDataList(businessAssayTaskDataList);
|
sampleTaskAssignContext.setBusinessAssayTaskDataList(businessAssayTaskDataList);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataD
|
|||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDetailDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
|
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSubSampleDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
||||||
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessSubSampleMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.AssignAssayUser;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.AssignAssayUser;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
||||||
@@ -27,18 +28,6 @@ import com.zt.plat.module.qms.core.code.SequenceUtil;
|
|||||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
|
||||||
/**
|
|
||||||
* <b>SampleTaskAssignSampleCmp</b>
|
|
||||||
* <p>
|
|
||||||
* 更新历史:
|
|
||||||
* <pre> 版本 更新时间 更新者 更新内容<hr/>
|
|
||||||
* V1.0 2025年9月20日 wxr Add</pre>
|
|
||||||
* <b>Copyright (C) 云南志者竟成科技有限公司</b>
|
|
||||||
* </p>
|
|
||||||
* @author 王兴荣<wxr@wangxingrong.com>
|
|
||||||
* @version V1.0
|
|
||||||
* @since 2025年9月20日
|
|
||||||
*/
|
|
||||||
@LiteflowComponent(id = "sampleTaskAssignSampleCmp", name = "按样品分配")
|
@LiteflowComponent(id = "sampleTaskAssignSampleCmp", name = "按样品分配")
|
||||||
public class SampleTaskAssignSampleCmp extends NodeComponent {
|
public class SampleTaskAssignSampleCmp extends NodeComponent {
|
||||||
|
|
||||||
@@ -54,6 +43,9 @@ public class SampleTaskAssignSampleCmp extends NodeComponent {
|
|||||||
@Resource
|
@Resource
|
||||||
private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
|
private BusinessAssayTaskDataMapper businessAssayTaskDataMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessAssayTaskMapper businessAssayTaskMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private BusinessSubSampleMapper businessSubSampleMapper;
|
private BusinessSubSampleMapper businessSubSampleMapper;
|
||||||
|
|
||||||
@@ -74,8 +66,10 @@ public class SampleTaskAssignSampleCmp extends NodeComponent {
|
|||||||
List<BusinessSubSampleDO> businessSubSampleList = businessSubSampleMapper.selectByIds(assignSampleIdList);
|
List<BusinessSubSampleDO> businessSubSampleList = businessSubSampleMapper.selectByIds(assignSampleIdList);
|
||||||
sampleTaskAssignContext.setBusinessSubSampleList(businessSubSampleList);
|
sampleTaskAssignContext.setBusinessSubSampleList(businessSubSampleList);
|
||||||
|
|
||||||
//任务分配单
|
//保存任务分配单
|
||||||
List<BusinessAssayTaskDO> businessAssayTaskList = new ArrayList<>();
|
List<BusinessAssayTaskDO> saveBusinessAssayTaskList = new ArrayList<>();
|
||||||
|
//更新任务分配单
|
||||||
|
List<BusinessAssayTaskDO> updateBusinessAssayTaskList = new ArrayList<>();
|
||||||
//任务分配单明细
|
//任务分配单明细
|
||||||
List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList = new ArrayList<>();
|
List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList = new ArrayList<>();
|
||||||
|
|
||||||
@@ -86,25 +80,33 @@ public class SampleTaskAssignSampleCmp extends NodeComponent {
|
|||||||
ConfigAssayMethodDO configAssayMethod = sampleTaskAssignContext.getConfigAssayMethodById(key);
|
ConfigAssayMethodDO configAssayMethod = sampleTaskAssignContext.getConfigAssayMethodById(key);
|
||||||
//查询报表模板
|
//查询报表模板
|
||||||
ConfigReportTemplateDO configReportTemplate = configReportTemplateMapper.selectLatestConfigReportTemplateByKey(configAssayMethod.getConfigReportTemplateKey());
|
ConfigReportTemplateDO configReportTemplate = configReportTemplateMapper.selectLatestConfigReportTemplateByKey(configAssayMethod.getConfigReportTemplateKey());
|
||||||
|
|
||||||
String taskNo = sequenceUtil.genCode(configAssayMethod.getCodeRule());
|
|
||||||
|
|
||||||
BusinessAssayTaskDO businessAssayTaskDO = new BusinessAssayTaskDO();
|
|
||||||
businessAssayTaskDO.setId(IdWorker.getId());
|
|
||||||
businessAssayTaskDO.setTaskNo(taskNo);
|
|
||||||
businessAssayTaskDO.setTaskName(configAssayMethod.getName());
|
|
||||||
businessAssayTaskDO.setAssayOperator(assignAssayUser.getRealName());
|
|
||||||
businessAssayTaskDO.setConfigAssayMethodId(key);
|
|
||||||
businessAssayTaskDO.setTaskSourceType(QmsCommonConstant.TASK_ASSIGN);
|
|
||||||
businessAssayTaskDO.setConfigReportTemplateId(configReportTemplate.getId());
|
|
||||||
businessAssayTaskDO.setConfigReportTemplateKey(configReportTemplate.getKey());
|
|
||||||
|
|
||||||
businessAssayTaskDO.setTaskAssignOperator(loginRealname);
|
//根据分配
|
||||||
businessAssayTaskDO.setTaskAssignTime(currentDateTime);
|
BusinessAssayTaskDO businessAssayTaskDO = businessAssayTaskMapper.selectAssignInProgressByAssayUserAndAssignUser(configAssayMethod.getId(), assignAssayUser.getRealName(), loginRealname);
|
||||||
businessAssayTaskDO.setTaskAssignStatus(QmsCommonConstant.IN_PROGRESS);
|
if (businessAssayTaskDO == null) {
|
||||||
businessAssayTaskDO.setTaskAssayStatus(QmsCommonConstant.NOT_START);
|
String taskNo = sequenceUtil.genCode(configAssayMethod.getCodeRule());
|
||||||
businessAssayTaskDO.setFinishStatus(QmsCommonConstant.NOT_START);
|
|
||||||
businessAssayTaskDO.setFlowStatus(QmsCommonConstant.NOT_START);
|
businessAssayTaskDO = new BusinessAssayTaskDO();
|
||||||
|
businessAssayTaskDO.setId(IdWorker.getId());
|
||||||
|
businessAssayTaskDO.setTaskNo(taskNo);
|
||||||
|
businessAssayTaskDO.setTaskName(configAssayMethod.getName());
|
||||||
|
businessAssayTaskDO.setAssayOperator(assignAssayUser.getRealName());
|
||||||
|
businessAssayTaskDO.setConfigAssayMethodId(key);
|
||||||
|
businessAssayTaskDO.setTaskSourceType(QmsCommonConstant.TASK_ASSIGN);
|
||||||
|
businessAssayTaskDO.setConfigReportTemplateId(configReportTemplate.getId());
|
||||||
|
businessAssayTaskDO.setConfigReportTemplateKey(configReportTemplate.getKey());
|
||||||
|
|
||||||
|
businessAssayTaskDO.setTaskAssignOperator(loginRealname);
|
||||||
|
businessAssayTaskDO.setTaskAssignTime(currentDateTime);
|
||||||
|
businessAssayTaskDO.setTaskAssignStatus(QmsCommonConstant.IN_PROGRESS);
|
||||||
|
businessAssayTaskDO.setTaskAssayStatus(QmsCommonConstant.NOT_START);
|
||||||
|
businessAssayTaskDO.setFinishStatus(QmsCommonConstant.NOT_START);
|
||||||
|
businessAssayTaskDO.setFlowStatus(QmsCommonConstant.NOT_START);
|
||||||
|
|
||||||
|
saveBusinessAssayTaskList.add(businessAssayTaskDO);
|
||||||
|
} else {
|
||||||
|
updateBusinessAssayTaskList.add(businessAssayTaskDO);
|
||||||
|
}
|
||||||
|
|
||||||
BusinessAssayTaskDetailDO businessAssayTaskDetailDO = null;
|
BusinessAssayTaskDetailDO businessAssayTaskDetailDO = null;
|
||||||
List<BusinessAssayTaskDataDO> valList = entry.getValue();
|
List<BusinessAssayTaskDataDO> valList = entry.getValue();
|
||||||
@@ -120,11 +122,11 @@ public class SampleTaskAssignSampleCmp extends NodeComponent {
|
|||||||
|
|
||||||
businessAssayTaskDetailDO = new BusinessAssayTaskDetailDO();
|
businessAssayTaskDetailDO = new BusinessAssayTaskDetailDO();
|
||||||
businessAssayTaskDetailDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
|
businessAssayTaskDetailDO.setBusinessAssayTaskId(businessAssayTaskDO.getId());
|
||||||
businessAssayTaskDetailDO.setTaskNo(taskNo);
|
businessAssayTaskDetailDO.setTaskNo(businessAssayTaskDO.getTaskNo());
|
||||||
businessAssayTaskDetailDO.setSampleId(val.getBusinessSubSampleId());
|
businessAssayTaskDetailDO.setSampleId(val.getBusinessSubSampleId());
|
||||||
businessAssayTaskDetailDO.setSampleCode(businessSubSampleDO.getSampleAssayCode());
|
businessAssayTaskDetailDO.setSampleCode(businessSubSampleDO.getSampleAssayCode());
|
||||||
businessAssayTaskDetailDO.setSampleName(businessSubSampleDO.getSampleName());
|
businessAssayTaskDetailDO.setSampleName(businessSubSampleDO.getSampleName());
|
||||||
businessAssayTaskDetailDO.setDataSourceType("正常");
|
businessAssayTaskDetailDO.setDataSourceType(QmsCommonConstant.NORMAL);
|
||||||
businessAssayTaskDetailDO.setSortNo(sort);
|
businessAssayTaskDetailDO.setSortNo(sort);
|
||||||
sort++;
|
sort++;
|
||||||
|
|
||||||
@@ -132,11 +134,11 @@ public class SampleTaskAssignSampleCmp extends NodeComponent {
|
|||||||
businessAssayTaskDetailList.add(businessAssayTaskDetailDO);
|
businessAssayTaskDetailList.add(businessAssayTaskDetailDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
businessAssayTaskList.add(businessAssayTaskDO);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sampleTaskAssignContext.setSaveBusinessAssayTaskList(saveBusinessAssayTaskList);
|
||||||
|
sampleTaskAssignContext.setUpdateBusinessAssayTaskList(updateBusinessAssayTaskList);
|
||||||
sampleTaskAssignContext.setBusinessAssayTaskDataList(businessAssayTaskDataList);
|
sampleTaskAssignContext.setBusinessAssayTaskDataList(businessAssayTaskDataList);
|
||||||
sampleTaskAssignContext.setBusinessAssayTaskList(businessAssayTaskList);
|
|
||||||
sampleTaskAssignContext.setBusinessAssayTaskDetailList(businessAssayTaskDetailList);
|
sampleTaskAssignContext.setBusinessAssayTaskDetailList(businessAssayTaskDetailList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ 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.BusinessSampleEntrustDetailDO;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustProjectDO;
|
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.BusinessSampleEntrustRegistrationDO;
|
||||||
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleFlowInfo;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.ConfigEntrustSourceDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDO;
|
||||||
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO;
|
import com.zt.plat.module.qms.business.config.dal.dataobject.MaterialAssayStandardDetailDO;
|
||||||
@@ -102,4 +103,7 @@ public class SampleEntrustContext {
|
|||||||
|
|
||||||
/** 样品委托来样品位 **/
|
/** 样品委托来样品位 **/
|
||||||
private List<BusinessSampleAssayResultDO> sampleAssayResultList;
|
private List<BusinessSampleAssayResultDO> sampleAssayResultList;
|
||||||
|
|
||||||
|
/** 样品流转信息列表 **/
|
||||||
|
private List<SampleFlowInfo> sampleFlowInfoList;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,9 @@ public class SampleTaskAssignContext {
|
|||||||
/** 分析方法配置 **/
|
/** 分析方法配置 **/
|
||||||
private List<ConfigAssayMethodDO> configAssayMethodList;
|
private List<ConfigAssayMethodDO> configAssayMethodList;
|
||||||
|
|
||||||
|
/** 检测任务id列表 **/
|
||||||
|
private List<Long> assayTaskDataIdList;
|
||||||
|
|
||||||
public ConfigAssayMethodDO getConfigAssayMethodById(Long id) {
|
public ConfigAssayMethodDO getConfigAssayMethodById(Long id) {
|
||||||
ConfigAssayMethodDO configAssayMethod = null;
|
ConfigAssayMethodDO configAssayMethod = null;
|
||||||
if (CollUtil.isNotEmpty(this.configAssayMethodList)) {
|
if (CollUtil.isNotEmpty(this.configAssayMethodList)) {
|
||||||
@@ -70,8 +73,11 @@ public class SampleTaskAssignContext {
|
|||||||
/** 子样检测任务 **/
|
/** 子样检测任务 **/
|
||||||
private List<BusinessAssayTaskDataDO> businessAssayTaskDataList;
|
private List<BusinessAssayTaskDataDO> businessAssayTaskDataList;
|
||||||
|
|
||||||
/** 任务指派单列表 **/
|
/** 保存任务指派单列表 **/
|
||||||
private List<BusinessAssayTaskDO> businessAssayTaskList;
|
private List<BusinessAssayTaskDO> saveBusinessAssayTaskList;
|
||||||
|
|
||||||
|
/** 更新任务指派单列表 **/
|
||||||
|
private List<BusinessAssayTaskDO> updateBusinessAssayTaskList;
|
||||||
|
|
||||||
/** 任务指派的明细列表 **/
|
/** 任务指派的明细列表 **/
|
||||||
private List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList;
|
private List<BusinessAssayTaskDetailDO> businessAssayTaskDetailList;
|
||||||
|
|||||||
@@ -1,20 +1,12 @@
|
|||||||
package com.zt.plat.module.qms.business.bus.liteflow.slot;
|
package com.zt.plat.module.qms.business.bus.liteflow.slot;
|
||||||
|
|
||||||
/**
|
|
||||||
* <b>SampleTaskAssignTypeEnum</b>
|
|
||||||
* <p>
|
|
||||||
* 更新历史:
|
|
||||||
* <pre> 版本 更新时间 更新者 更新内容<hr/>
|
|
||||||
* V1.0 2025年9月20日 wxr Add</pre>
|
|
||||||
* <b>Copyright (C) 云南志者竟成科技有限公司</b>
|
|
||||||
* </p>
|
|
||||||
* @author 王兴荣<wxr@wangxingrong.com>
|
|
||||||
* @version V1.0
|
|
||||||
* @since 2025年9月20日
|
|
||||||
*/
|
|
||||||
public enum SampleTaskAssignTypeEnum {
|
public enum SampleTaskAssignTypeEnum {
|
||||||
|
|
||||||
|
//分析方法指派
|
||||||
ASSAY_METHOD,
|
ASSAY_METHOD,
|
||||||
SAMPLE
|
//样品指派
|
||||||
|
SAMPLE,
|
||||||
|
//手动指派
|
||||||
|
MANUAL
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,11 @@ import java.time.LocalDateTime;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -549,6 +551,28 @@ public class SampleAnalysisAuditServiceImpl implements SampleAnalysisAuditServic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
businessAssayReportDataDO.setAssayData(assayDataJson.toJSONString());
|
businessAssayReportDataDO.setAssayData(assayDataJson.toJSONString());
|
||||||
|
|
||||||
|
//修改已上报数据来源
|
||||||
|
String dataSource = businessAssayReportDataDO.getDataSource();
|
||||||
|
Set<String> dataSources = StringUtils.isBlank(dataSource) ? new HashSet<>() : new HashSet<>(Arrays.asList(dataSource.split(",")));
|
||||||
|
String reportedSource = businessAssayReportDataDO.getReportedSource();
|
||||||
|
ReportedDataSource reportedDataSource = null;
|
||||||
|
if (StringUtils.isNotBlank(reportedSource)) {
|
||||||
|
reportedDataSource = JSON.parseObject(reportedSource, ReportedDataSource.class);
|
||||||
|
} else {
|
||||||
|
reportedDataSource = new ReportedDataSource();
|
||||||
|
}
|
||||||
|
reportedDataSource.addDataSource(configAssayMethodId.toString(), nickName, LocalDateTime.now());
|
||||||
|
Set<String> busDataSources = reportedDataSource.getDetails().stream().map(m -> m.getSourceCode()).collect(Collectors.toSet());
|
||||||
|
if (busDataSources.size() == dataSources.size() && busDataSources.equals(dataSources)) {
|
||||||
|
businessAssayReportDataDO.setIsAllReported(QmsCommonConstant.YES);
|
||||||
|
}
|
||||||
|
if (busDataSources.size() > 0) {
|
||||||
|
//计算
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
businessAssayReportDataDO.setReportedSource(JSON.toJSONString(reportedDataSource));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.zt.plat.module.qms.business.bus.service;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.yomahub.liteflow.flow.LiteflowResponse;
|
import com.yomahub.liteflow.flow.LiteflowResponse;
|
||||||
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignManualParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
|
||||||
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
|
||||||
@@ -28,6 +28,13 @@ public interface SampleTaskAssignService {
|
|||||||
*/
|
*/
|
||||||
LiteflowResponse sampleAssign(SampleTaskAssignSampleParam param);
|
LiteflowResponse sampleAssign(SampleTaskAssignSampleParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手动分配任务
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
LiteflowResponse manualAssign(SampleTaskAssignManualParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提交任务单
|
* 提交任务单
|
||||||
* @param id
|
* @param id
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessAssayTaskDataD
|
|||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDataMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDetailMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskDetailMapper;
|
||||||
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
|
import com.zt.plat.module.qms.business.bus.dal.mapper.BusinessAssayTaskMapper;
|
||||||
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignManualParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignMethodParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
|
import com.zt.plat.module.qms.business.bus.liteflow.param.SampleTaskAssignSampleParam;
|
||||||
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
import com.zt.plat.module.qms.business.bus.liteflow.slot.SampleTaskAssignContext;
|
||||||
@@ -113,6 +114,24 @@ public class SampleTaskAssignServiceImpl implements SampleTaskAssignService {
|
|||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public LiteflowResponse manualAssign(SampleTaskAssignManualParam param) {
|
||||||
|
if (param.getAssignAssayUser() == null) {
|
||||||
|
throw new ServiceException(500, "无任务分配人员");
|
||||||
|
}
|
||||||
|
if (CollUtil.isEmpty(param.getAssayTaskDataIdList())) {
|
||||||
|
throw new ServiceException(500, "无分配的检测任务");
|
||||||
|
}
|
||||||
|
Long tenantId = TenantContextHolder.getRequiredTenantId();
|
||||||
|
LiteflowResponse response = flowExecutor.execute2Resp("sampleTaskAssignChain" + tenantId, param, SampleTaskAssignContext.class);
|
||||||
|
if (!response.isSuccess()){
|
||||||
|
log.error("手动分配任务失败", response.getCause());
|
||||||
|
throw new ServiceException(500, response.getCause().getMessage());
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void submitAssign(Long id) {
|
public void submitAssign(Long id) {
|
||||||
|
|||||||
Reference in New Issue
Block a user