fix:物料验收检化验获取当前节点和下一个节点信息。
This commit is contained in:
@@ -66,4 +66,11 @@ public interface MaterialAssayStandardDetailService {
|
||||
*/
|
||||
PageResult<MaterialAssayStandardDetailDO> getMaterialAssayStandardDetailPage(MaterialAssayStandardDetailPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得物料检测标准检测项目
|
||||
*
|
||||
* @param ids 编号数组
|
||||
* @return 列表
|
||||
*/
|
||||
List<MaterialAssayStandardDetailRespVO> getListWithExtendByIds(List<Long> ids);
|
||||
}
|
||||
@@ -110,4 +110,9 @@ public class MaterialAssayStandardDetailServiceImpl implements MaterialAssayStan
|
||||
return materialAssayStandardDetailMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MaterialAssayStandardDetailRespVO> getListWithExtendByIds(List<Long> ids) {
|
||||
return materialAssayStandardDetailMapper.selectExtendByIds(ids);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.zt.plat.module.qms.core.aspect.annotation.Dict;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -42,6 +43,9 @@ public class MaterialCorrelationAssayRespVO {
|
||||
@ExcelProperty("样品大类id,检化验业务样品大类")
|
||||
private Long sampleId;
|
||||
|
||||
@Schema(description = "样品编号")
|
||||
private String sampleCode;
|
||||
|
||||
@Schema(description = "样品标签模板")
|
||||
private String sampleLabelTemplate;
|
||||
|
||||
@@ -61,8 +65,13 @@ public class MaterialCorrelationAssayRespVO {
|
||||
@ExcelProperty("检测项列表")
|
||||
private List<Long> items;
|
||||
|
||||
@Schema(description = "检测项显示名称")
|
||||
@ExcelProperty("检测项显示名称")
|
||||
private String itemsShowName;
|
||||
|
||||
@Schema(description = "状态,未开始、进行中、已完成", example = "2")
|
||||
@ExcelProperty("状态,未开始、进行中、已完成")
|
||||
@Dict(dicCode = "material_assay_status")
|
||||
private String assayStatus;
|
||||
|
||||
@Schema(description = "结果,检化验结果")
|
||||
|
||||
@@ -95,6 +95,9 @@ public class MaterialLifecycleRespVO {
|
||||
@Schema(description = "自定义json配置")
|
||||
private String customConfig;
|
||||
|
||||
@Schema(description = "是否可进行检验结果判定,1-是,0-否")
|
||||
private Integer assayResultAssessment;
|
||||
|
||||
@Schema(description = "所属部门")
|
||||
@ExcelProperty("所属部门")
|
||||
private String systemDepartmentCode;
|
||||
|
||||
@@ -30,6 +30,9 @@ public class MaterialUseRecordRespVO {
|
||||
@ExcelProperty("物料实例名称")
|
||||
private String infomationName;
|
||||
|
||||
@Schema(description = "规格")
|
||||
private String specification;
|
||||
|
||||
@Schema(description = "型号")
|
||||
@ExcelProperty("型号")
|
||||
private String modelNo;
|
||||
|
||||
@@ -111,6 +111,11 @@ public class MaterialLifecycleDO extends BusinessBaseDO {
|
||||
*/
|
||||
@TableField("CST_CFG")
|
||||
private String customConfig;
|
||||
/**
|
||||
* 是否可进行检验结果判定,1-是,0-否
|
||||
*/
|
||||
@TableField("ASY_RSLT_ASMT")
|
||||
private Integer assayResultAssessment;
|
||||
/**
|
||||
* 事由/说明
|
||||
*/
|
||||
|
||||
@@ -69,6 +69,7 @@ public interface MaterialUseRecordMapper extends BaseMapperX<MaterialUseRecordDO
|
||||
.selectAll(MaterialUseRecordDO.class)
|
||||
.selectAs(MaterialInfomationDO::getCode, MaterialUseRecordRespVO::getInfomationCode)
|
||||
.selectAs(MaterialProductDO::getName, MaterialUseRecordRespVO::getInfomationName)
|
||||
.selectAs(MaterialProductDO::getSpecification, MaterialUseRecordRespVO::getSpecification)
|
||||
.selectAs(MaterialProductDO::getModelNo, MaterialUseRecordRespVO::getModelNo)
|
||||
.leftJoin(MaterialInfomationDO.class, MaterialInfomationDO::getId, MaterialUseRecordDO::getInfomationId)
|
||||
.leftJoin(MaterialProductDO.class, MaterialProductDO::getId, MaterialInfomationDO::getProductId)
|
||||
|
||||
@@ -8,9 +8,7 @@ import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.zt.plat.framework.web.core.util.WebFrameworkUtils;
|
||||
import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
|
||||
import com.zt.plat.module.bpm.api.task.BpmTaskApi;
|
||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskApproveReqDTO;
|
||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskPageReqDTO;
|
||||
import com.zt.plat.module.bpm.api.task.dto.BpmTaskRespDTO;
|
||||
import com.zt.plat.module.bpm.api.task.dto.*;
|
||||
import com.zt.plat.module.qms.enums.QmsCommonConstant;
|
||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialCorrelationAssayDO;
|
||||
import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialLifecycleDO;
|
||||
@@ -103,6 +101,19 @@ public class MaterialAssayResultListener implements RocketMQListener<Object> {
|
||||
LoginUser loginUser = new LoginUser().setId(assigneeUserId)
|
||||
.setExpiresTime(LocalDateTime.now().plusMinutes(10));
|
||||
SecurityFrameworkUtils.setLoginUser(loginUser, request);
|
||||
// 获取这个流程
|
||||
CommonResult<BpmProcessInstanceRespDTO> processInstanceRes = bpmProcessInstanceApi.getProcessInstance(flowId);
|
||||
BpmProcessInstanceRespDTO instance = processInstanceRes.getData();
|
||||
log.info("流程实例:{}", instance);
|
||||
// 获取下一个流程节点 2008359763063820290L 2038786007172124673L
|
||||
CommonResult<List<BpmApprovalDetailRespDTO.ActivityNode>> nextApprovalNodes =
|
||||
bpmProcessInstanceApi.getNextApprovalNodes(curTask.getAssignee(),
|
||||
new BpmApprovalDetailReqDTO().setProcessDefinitionId(instance.getProcessDefinitionId())
|
||||
.setProcessInstanceId(instance.getId())
|
||||
.setTaskId(curTask.getId()));
|
||||
log.info("下一个流程节点:{}", nextApprovalNodes.getData());
|
||||
if (true) return;
|
||||
List<BpmApprovalDetailRespDTO.ActivityNode> nextNodes = nextApprovalNodes.getData();
|
||||
BpmTaskApproveReqDTO reqDTO = new BpmTaskApproveReqDTO().setId(curTask.getId()).setReason("已全部出检化验结果");
|
||||
CommonResult<Boolean> result = bpmProcessInstanceApi.approveTask(reqDTO);
|
||||
if (!result.isSuccess()) {
|
||||
|
||||
@@ -7,6 +7,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
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.config.controller.vo.MaterialAssayStandardDetailRespVO;
|
||||
import com.zt.plat.module.qms.business.config.service.MaterialAssayStandardDetailService;
|
||||
import com.zt.plat.module.qms.business.dic.dal.dataobject.DictionaryProjectDO;
|
||||
import com.zt.plat.module.qms.business.dic.service.DictionaryProjectService;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialCorrelationAssayRespVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecycleDetailPageReqVO;
|
||||
import com.zt.plat.module.qms.resource.material.controller.vo.MaterialLifecycleDetailRespVO;
|
||||
@@ -15,6 +19,7 @@ import com.zt.plat.module.qms.resource.material.dal.dataobject.*;
|
||||
import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialLifecycleDetailMapper;
|
||||
import com.zt.plat.module.qms.resource.material.enums.MaterialFlowType;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -34,6 +39,7 @@ import static com.zt.plat.module.qms.enums.ErrorCodeConstants.MATERIAL_LIFECYCLE
|
||||
*
|
||||
* @author 后台管理
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@Validated
|
||||
public class MaterialLifecycleDetailServiceImpl implements MaterialLifecycleDetailService {
|
||||
@@ -46,6 +52,8 @@ public class MaterialLifecycleDetailServiceImpl implements MaterialLifecycleDeta
|
||||
private MaterialProductService materialProductService;
|
||||
@Autowired
|
||||
private MaterialCorrelationAssayService materialCorrelationAssayService;
|
||||
@Autowired
|
||||
private MaterialAssayStandardDetailService materialAssayStandardDetailService;
|
||||
|
||||
@Override
|
||||
public MaterialLifecycleDetailRespVO createMaterialLifecycleDetail(MaterialLifecycleDetailSaveReqVO createReqVO) {
|
||||
@@ -146,6 +154,21 @@ public class MaterialLifecycleDetailServiceImpl implements MaterialLifecycleDeta
|
||||
List<Long> asyIds = assayDetails.stream().map(MaterialLifecycleDetailRespVO::getAssayId).toList();
|
||||
List<MaterialCorrelationAssayRespVO> assayRespVOS = materialCorrelationAssayService.getRespListByIds(asyIds);
|
||||
if (CollUtil.isEmpty(assayRespVOS)) return details;
|
||||
// 获取检测项显示名称
|
||||
List<Long> allItemIds = assayRespVOS.stream().map(MaterialCorrelationAssayRespVO::getItems)
|
||||
.flatMap(Collection::stream).toList();
|
||||
if (CollUtil.isEmpty(allItemIds)) return details;
|
||||
List<MaterialAssayStandardDetailRespVO> allItems = materialAssayStandardDetailService.getListWithExtendByIds(allItemIds);
|
||||
assert CollUtil.isNotEmpty(allItems);
|
||||
Map<Long, MaterialAssayStandardDetailRespVO> itemMapById = allItems.stream().collect(Collectors.toMap(MaterialAssayStandardDetailRespVO::getId, Function.identity()));
|
||||
assayRespVOS.forEach(asy -> {
|
||||
List<String> showNames = asy.getItems().stream()
|
||||
.map(itemMapById::get)
|
||||
.filter(Objects::nonNull)
|
||||
.map(MaterialAssayStandardDetailRespVO::getDictionaryProjectShowName)
|
||||
.toList();
|
||||
asy.setItemsShowName(String.join(",", showNames));
|
||||
});
|
||||
Map<Long, MaterialCorrelationAssayRespVO> assayRespVOMapById = assayRespVOS.stream().collect(Collectors.toMap(MaterialCorrelationAssayRespVO::getId, Function.identity()));
|
||||
details.forEach(detail -> {
|
||||
MaterialCorrelationAssayRespVO assayRespVO = assayRespVOMapById.get(detail.getAssayId());
|
||||
|
||||
@@ -354,7 +354,9 @@ public class MaterialLifecycleServiceImpl implements MaterialLifecycleService ,
|
||||
.setBatchId(detail.getBatchId())
|
||||
.setGongduanId(detail.getBatchGongduanId())
|
||||
// 样品大类
|
||||
.setSampleId(assayInfo != null ? assayInfo.getSampleId() : null)
|
||||
.setSampleId(assayInfo != null && assayInfo.getSampleId() != null
|
||||
? assayInfo.getSampleId()
|
||||
: Long.parseLong(StrUtil.isNotBlank(product.getSampleIds()) ? product.getSampleIds() : "0"))
|
||||
.setSampleName(product.getName())
|
||||
.setSampleCode(sequenceUtil.genCode(MaterialConstants.SEQUENCE_ASSAY_ACCEPT_SAMPLE_KEY))
|
||||
// 检测项
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user