| | |
| | | package com.ruoyi.process.listener; |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.basic.mapper.StandardMethodMapper; |
| | | import com.ruoyi.basic.mapper.StandardTreeMapper; |
| | | import com.ruoyi.basic.pojo.StandardMethod; |
| | | import com.ruoyi.basic.pojo.StandardTree; |
| | | import com.ruoyi.inspect.event.NewJuOrderPlacedEvent; |
| | | import com.ruoyi.inspect.mapper.InsOrderStandardTemplateMapper; |
| | | import com.ruoyi.inspect.mapper.InsSampleMapper; |
| | |
| | | private final InspectionOrderDetailMapper inspectionOrderDetailMapper; |
| | | private final InsSampleMapper insSampleMapper; |
| | | private final InsOrderStandardTemplateMapper insOrderStandardTemplateMapper; |
| | | private final StandardTreeMapper standardTreeMapper; |
| | | private final StandardMethodMapper standardMethodMapper; |
| | | |
| | | @EventListener |
| | | public void onNewJuOrderPlaced(NewJuOrderPlacedEvent event) { |
| | |
| | | ? order.getSampleView() : order.getSample()); |
| | | inspectionOrder.setProduction(order.getProduction()); |
| | | inspectionOrder.setQuantity(order.getTestQuantity()); |
| | | inspectionOrder.setCommissionDate(LocalDate.now()); |
| | | inspectionOrder.setCommissionDate(order.getSampleDate() != null ? order.getSampleDate() : LocalDate.now()); |
| | | inspectionOrder.setCommissionUnit(order.getCompany()); |
| | | inspectionOrder.setCommissionUser(order.getPrepareUser()); |
| | | inspectionOrder.setCommissionPhone(order.getPhone()); |
| | | inspectionOrder.setSampleStatus("完好"); |
| | | inspectionOrder.setSampleStatus(order.getSampleStatus()); |
| | | // 是否留样语义转换:ins 0否/1是 -> cnas 1是/2否 |
| | | inspectionOrder.setIsLeave(Integer.valueOf(1).equals(order.getIsLeave()) ? 1 : 2); |
| | | // 样品处置:1委托方取回/2检测方处置 -> processing 0委托单位取回/1实验室处理;未选时沿用旧字段 |
| | |
| | | detail.setSampleName(inspectionOrder.getSampleName()); |
| | | detail.setQuantity(order.getTestQuantity()); |
| | | detail.setSampleStatus(inspectionOrder.getSampleStatus()); |
| | | detail.setTestStandard(order.getSample()); |
| | | detail.setRemark(order.getRemark()); |
| | | |
| | | List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery() |
| | | .eq(InsSample::getInsOrderId, order.getId()) |
| | |
| | | if (!samples.isEmpty()) { |
| | | detail.setSampleNumber(samples.get(0).getSampleCode()); |
| | | } |
| | | String testItem = insOrderStandardTemplateMapper.selectList( |
| | | Wrappers.<InsOrderStandardTemplate>lambdaQuery() |
| | | .eq(InsOrderStandardTemplate::getInsOrderId, order.getId()) |
| | | .orderByAsc(InsOrderStandardTemplate::getSort, InsOrderStandardTemplate::getId)) |
| | | .stream() |
| | | List<InsOrderStandardTemplate> templates = insOrderStandardTemplateMapper.selectList( |
| | | Wrappers.<InsOrderStandardTemplate>lambdaQuery() |
| | | .eq(InsOrderStandardTemplate::getInsOrderId, order.getId()) |
| | | .orderByAsc(InsOrderStandardTemplate::getSort, InsOrderStandardTemplate::getId)); |
| | | detail.setTestStandard(resolveTestStandard(order, templates)); |
| | | detail.setTestItem(templates.stream() |
| | | .map(InsOrderStandardTemplate::getName) |
| | | .filter(StringUtils::isNotBlank) |
| | | .collect(Collectors.joining("、")); |
| | | detail.setTestItem(testItem); |
| | | .collect(Collectors.joining("、"))); |
| | | inspectionOrderDetailMapper.insert(detail); |
| | | } |
| | | |
| | | /** |
| | | * 检测依据显示“标准号+标准名称”,优先取标准方法,取不到时回退到模板快照编号。 |
| | | */ |
| | | private String resolveTestStandard(InsOrder order, List<InsOrderStandardTemplate> templates) { |
| | | if (order.getStandardTreeId() != null) { |
| | | StandardTree tree = standardTreeMapper.selectById(order.getStandardTreeId()); |
| | | if (tree != null && tree.getStandardMethodId() != null) { |
| | | StandardMethod method = standardMethodMapper.selectById(tree.getStandardMethodId()); |
| | | if (method != null) { |
| | | String combined = (StringUtils.trimToEmpty(method.getCode()) + " " |
| | | + StringUtils.trimToEmpty(method.getName())).trim(); |
| | | if (StringUtils.isNotBlank(combined)) { |
| | | return combined; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return templates.stream() |
| | | .map(InsOrderStandardTemplate::getNumber) |
| | | .filter(StringUtils::isNotBlank) |
| | | .distinct() |
| | | .collect(Collectors.joining("、")); |
| | | } |
| | | } |