Merge remote-tracking branch 'origin/master'

master
杨海航 2 months ago
commit df11a5b028
  1. 6
      src/main/java/digital/laboratory/platform/entrustment/constant/EntrustMarkConstants.java
  2. 3
      src/main/java/digital/laboratory/platform/entrustment/controller/EntrustMaterialCheckoutResultController.java
  3. 2
      src/main/java/digital/laboratory/platform/entrustment/controller/EntrustmentController.java
  4. 7
      src/main/java/digital/laboratory/platform/entrustment/convert/EntrustMaterialCheckoutResultConvert.java
  5. 11
      src/main/java/digital/laboratory/platform/entrustment/dto/EntrustMaterialCheckoutResultDTO.java
  6. 2
      src/main/java/digital/laboratory/platform/entrustment/entity/Entrustment.java
  7. 7
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustMaterialCheckoutResultServiceImpl.java
  8. 117
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java
  9. 2
      src/main/resources/mapper/EntrustMaterialCheckoutResultMapper.xml
  10. 2
      src/main/resources/mapper/EntrustmentMapper.xml

@ -15,4 +15,10 @@ public interface EntrustMarkConstants {
String PUBLIC_SECURITY_BUREAU = "公安局";
/***** datasource *******/
Integer LOCAL_SYSTEM = 0; // 本系统数据
Integer THIRD_PARTY_SYSTEM = 1; // 大数据平台同步过来的数据
}

@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
@ -46,7 +47,7 @@ public class EntrustMaterialCheckoutResultController {
@ApiOperation("保存检出得定性定量结果")
@PostMapping("/save")
public R save(@RequestBody EntrustMaterialCheckoutResultDTO dto) {
public R save(@RequestBody @Valid EntrustMaterialCheckoutResultDTO dto) {
boolean success = false;
try {
success = entrustMaterialCheckoutResultService.save(dto);

@ -190,7 +190,7 @@ public class EntrustmentController {
.eq(StrUtil.isNotBlank(caseId), "e.case_id", caseId)
.in((statuses != null) && (statuses.size() > 0), "e.status", statuses)
.eq(dataSources != null, "e.data_sources", dataSources)
// .inSql(checkoutQuery.equals(1), "e.id", "SELECT entrust_id FROM b_entrust_material_checkout_result") // 筛选检材检出结果记录不为0 的委托
.inSql(checkoutQuery.equals(1), "e.id", "SELECT entrust_id FROM b_entrust_material_checkout_result") // 筛选检材检出结果记录不为0 的委托
.like(StrUtil.isNotBlank(caseName), "c.case_name", caseName)
.orderByDesc(statuses != null && statuses.size() > 0 && statuses.get(0) == 9, "CAST(SUBSTRING(e.accept_no, 1,4) AS UNSIGNED)", "CAST(SUBSTRING(e.accept_no, 6) AS UNSIGNED)")
.orderByDesc(statuses != null && statuses.size() > 0 && statuses.get(0) == 7, "CAST(SUBSTRING(e.entrustment_no, 4,4) AS UNSIGNED)", "CAST(SUBSTRING(e.entrustment_no, 9) AS UNSIGNED)")

@ -1,15 +1,10 @@
package digital.laboratory.platform.entrustment.convert;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import digital.laboratory.platform.entrustment.dto.EntrustMaterialCheckoutResultDTO;
import digital.laboratory.platform.entrustment.entity.EntrustMaterialCheckoutResult;
import digital.laboratory.platform.entrustment.vo.EntrustMaterialCheckoutResultVO;
import digital.laboratory.platform.sys.entity.DrugLite;
import java.util.stream.Collectors;
/**
* 托检材--检出定性定量结果信息 转换类
@ -24,7 +19,7 @@ public class EntrustMaterialCheckoutResultConvert {
} else {
entrustMaterialCheckoutResult.setQualitativeResult(null);
}
entrustMaterialCheckoutResult.setQuantitativeResult(dto.getQuantitativeResult().stream().collect(Collectors.joining("、")));
entrustMaterialCheckoutResult.setQuantitativeResult(dto.getQuantitativeResult());
entrustMaterialCheckoutResult.setOtherResult(dto.getOtherResult());
entrustMaterialCheckoutResult.setCheckoutRemark(dto.getCheckoutRemark());
return entrustMaterialCheckoutResult;

@ -1,17 +1,11 @@
package digital.laboratory.platform.entrustment.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
import digital.laboratory.platform.sys.entity.DrugLite;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
@ -25,6 +19,7 @@ public class EntrustMaterialCheckoutResultDTO {
* 委托检材id
*/
@ApiModelProperty("委托检材id列表, 支持批量")
@NotEmpty(message = "请选择设置的委托检材!")
private List<String> ids;
/**
@ -43,7 +38,7 @@ public class EntrustMaterialCheckoutResultDTO {
* 定量结果
*/
@ApiModelProperty("定量结果")
private List<String> quantitativeResult;
private String quantitativeResult;
/**
* 其他鉴定结果

@ -712,7 +712,7 @@ public class Entrustment extends BaseEntity {
/**
* 数据来源用于区别数据来自自身系统还是外部系统
*/
@ApiModelProperty(value="数据来源")
@ApiModelProperty(value="数据来源, 0 本系统 | 1 大数据平台")
private Integer dataSources;
/**

@ -77,7 +77,7 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
}
List<EntrustMaterialCheckoutResultVO> materialCheckoutResults = checkoutResultList.stream().filter(o -> StrUtil.isNotBlank(o.getQualitativeResult())).collect(Collectors.toList());
List<EntrustMaterialCheckoutResultVO> materialNotCheckoutResults = checkoutResultList.stream().filter(o -> StrUtil.isEmpty(o.getQualitativeResult())).collect(Collectors.toList());
List<EntrustMaterialCheckoutResultVO> materialNotCheckoutResults = checkoutResultList.stream().filter(o -> StrUtil.isBlank(o.getQualitativeResult())).collect(Collectors.toList());
List<String> resultStrList = new ArrayList<>();
// 对检测结果进行分组
@ -92,11 +92,12 @@ public class EntrustMaterialCheckoutResultServiceImpl extends ServiceImpl<Entrus
.append("]");
resultStrList.add(builder.toString());
});
List<String> sortedResult = resultStrList.stream().sorted().collect(Collectors.toList());
if (CollUtil.isNotEmpty(materialNotCheckoutResults)) {
String notCheckoutStr = materialNotCheckoutResults.stream().map(result -> result.getOrderNo() + "号检材").sorted().collect(Collectors.joining("、")) + materialNotCheckoutResults.get(0).getCheckoutRemark();
return resultStrList.stream().sorted().collect(Collectors.joining("\n")) + notCheckoutStr;
sortedResult.add(notCheckoutStr);
}
return resultStrList.stream().sorted().collect(Collectors.joining("\n"));
return sortedResult.stream().collect(Collectors.joining("\n"));
}
/**

@ -79,6 +79,7 @@ import java.math.RoundingMode;
import java.security.Principal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
@ -3046,21 +3047,20 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
markersVOS.addAll(sewageMarkers);
List<Entrustment> entrustmentList1 = this.list(new LambdaQueryWrapper<Entrustment>().eq(Entrustment::getClientOrgId, orgId)
.eq(Entrustment::getStatus, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_CREATED.getStatus()));
markersVOS.add(new MarkersVO("案件委托", entrustmentList1.size(), "待提交"));
// 获取该机构的委托
List<Entrustment> entrustList = this.list(new LambdaQueryWrapper<Entrustment>().eq(Entrustment::getClientOrgId, orgId));
// 根据状态进行分组
Map<Integer, List<Entrustment>> entrustGroupByStatusMap = entrustList.stream().collect(Collectors.groupingBy(Entrustment::getStatus));
List<Entrustment> entrustmentList2 = this.list(new LambdaQueryWrapper<Entrustment>().eq(Entrustment::getClientOrgId, orgId)
.in(Entrustment::getStatus, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_DELIVER.getStatus(), EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_CONFIRM.getStatus()));
markersVOS.add(new MarkersVO("案件委托", entrustmentList2.size(), "待送检"));
markersVOS.add(new MarkersVO("案件委托", entrustGroupByStatusMap.getOrDefault(EntrustmentStatusConstants.ENTRUSTMENT_STATUS_CREATED.getStatus(), Collections.EMPTY_LIST).size(), "待提交"));
List<Entrustment> entrustmentList3 = this.list(new LambdaQueryWrapper<Entrustment>().eq(Entrustment::getClientOrgId, orgId)
.eq(Entrustment::getReturnOrNot, -1));
markersVOS.add(new MarkersVO("案件委托", entrustmentList3.size(), "已退回"));
int deliverCount = entrustGroupByStatusMap.getOrDefault(EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_DELIVER.getStatus(), Collections.EMPTY_LIST).size()
+ entrustGroupByStatusMap.getOrDefault(EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_CONFIRM.getStatus(), Collections.EMPTY_LIST).size();
markersVOS.add(new MarkersVO("案件委托", deliverCount, "待送检"));
List<Entrustment> entrustmentList4 = this.list(new LambdaQueryWrapper<Entrustment>().eq(Entrustment::getClientOrgId, orgId)
.eq(Entrustment::getStatus, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_COMPLETED.getStatus()));
markersVOS.add(new MarkersVO("案件委托", entrustmentList4.size(), "已完成"));
markersVOS.add(new MarkersVO("案件委托", entrustList.stream().filter(entrust -> entrust.getReturnOrNot() != null &&entrust.getReturnOrNot().equals(-1)).collect(Collectors.toList()).size(), "已退回"));
markersVOS.add(new MarkersVO("案件委托", entrustGroupByStatusMap.getOrDefault(EntrustmentStatusConstants.ENTRUSTMENT_STATUS_COMPLETED.getStatus(), Collections.EMPTY_LIST).size(), "已完成"));
Integer entrustAlterApplyCount = (int) entrustAlterApplyService.count(Wrappers.<EntrustAlterApply>lambdaQuery()
.eq(EntrustAlterApply::getStatus, EntrustAlterApplyStatus.APPLY_SUCCESS.getStatus())
@ -3229,29 +3229,11 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
public List<MarkersVO> getMarkersForEntrustment() {
List<MarkersVO> markersVOS = new ArrayList<>();
Map<String, List<Entrustment>> entrustListMap = this.list().stream().collect(Collectors.groupingBy(entrust -> entrust.getDataSources() + "_" + entrust.getStatus()));
List<Entrustment> entrustmentList1 = this.list(new LambdaQueryWrapper<Entrustment>()
.eq(Entrustment::getDataSources, 0)
.eq(Entrustment::getStatus, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_ACCEPT.getStatus()));
List<Entrustment> entrustmentList2 = this.list(new LambdaQueryWrapper<Entrustment>()
.eq(Entrustment::getDataSources, 1)
.eq(Entrustment::getStatus, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_ACCEPT.getStatus()));
List<Entrustment> entrustmentList3 = this.list(new LambdaQueryWrapper<Entrustment>()
.eq(Entrustment::getDataSources, 0)
.eq(Entrustment::getStatus, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_ACCEPTED.getStatus()));
List<Entrustment> entrustmentList4 = this.list(new LambdaQueryWrapper<Entrustment>()
.eq(Entrustment::getDataSources, 1)
.eq(Entrustment::getStatus, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_ACCEPTED.getStatus()));
List<Integer> integers1 = new ArrayList<>();
List<Integer> integers2 = new ArrayList<>();
integers1.add(1);
integers1.add(2);
integers2.add(3);
integers2.add(4);
// 使用常量定义状态集合,避免重复创建
final List<Integer> REVIEW_STATUS_GROUP1 = Arrays.asList(1, 2);
final List<Integer> REVIEW_STATUS_GROUP2 = Arrays.asList(3, 4);
// 创建一个污水系统的统计DTO 初始化统计数量为0
StatisticsDiffStatusJobDTO statisticsDiffStatusSewageJobDTO = new StatisticsDiffStatusJobDTO(
0, 0, 0, 0, 0);
@ -3262,29 +3244,58 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
log.error("通过查询接口调用获取污水系统统计数据失败!失败原因:{}", statisticsDiffStatusJobDTOR.getMsg());
}
ArrayList<Integer> integers = new ArrayList<>();
integers.add(2);
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, entrustmentList1.size(), String.format("待受理(%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, entrustmentList2.size(), "待受理 (大数据平台)"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, entrustmentList3.size(), String.format("已受理 (%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, entrustmentList4.size(), "已受理 (大数据平台)"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT, entrustmentList3.size(), "检测结果"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT,
entrustListMap.getOrDefault(
StrUtil.join("_", EntrustMarkConstants.LOCAL_SYSTEM, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_ACCEPT.getStatus()),
Collections.EMPTY_LIST
).size(),
String.format("待受理(%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT,
entrustListMap.getOrDefault(
StrUtil.join("_", EntrustMarkConstants.THIRD_PARTY_SYSTEM, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_ACCEPT.getStatus()),
Collections.EMPTY_LIST
).size(),
"待受理 (大数据平台)"));
List<Entrustment> entrustListMapOrDefault = entrustListMap.getOrDefault(
StrUtil.join("_", EntrustMarkConstants.LOCAL_SYSTEM, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_ACCEPTED.getStatus()), Collections.EMPTY_LIST
);
// o.getAcceptTime().isAfter(LocalDateTime.of(LocalDate.now().withDayOfYear(1), LocalTime.MIN)) 筛选出当年的数据
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT,
entrustListMapOrDefault.stream().filter(o -> o.getAcceptTime().isAfter(LocalDateTime.of(LocalDate.now().withDayOfYear(1), LocalTime.MIN))).collect(Collectors.toList()).size(),
String.format("已受理 (%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT,
entrustListMap.getOrDefault(
StrUtil.join("_", EntrustMarkConstants.THIRD_PARTY_SYSTEM, EntrustmentStatusConstants.ENTRUSTMENT_STATUS_ACCEPTED.getStatus()), Collections.EMPTY_LIST
).size(),
"已受理 (大数据平台)"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT,
this.list(Wrappers.<Entrustment>lambdaQuery().inSql(Entrustment::getId, "SELECT entrust_id FROM b_entrust_material_checkout_result"))
.stream()
.filter(o -> o.getAcceptTime().isAfter(LocalDateTime.of(LocalDate.now().withDayOfYear(1), LocalTime.MIN)))
.collect(Collectors.toList())
.size(),
"检测结果")
);
markersVOS.add(new MarkersVO(EntrustMarkConstants.REVIEW_OR_APPROVAL,
this.list(new LambdaQueryWrapper<Entrustment>()
.in(Entrustment::getStatus, integers1)
.eq(Entrustment::getDataSources, 0)).size(), String.format("委托审核(%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
REVIEW_STATUS_GROUP1.stream()
.mapToInt(status -> entrustListMap.getOrDefault(EntrustMarkConstants.LOCAL_SYSTEM + "_" + status, Collections.emptyList()).size())
.sum(),
String.format("委托审核(%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
markersVOS.add(new MarkersVO(EntrustMarkConstants.REVIEW_OR_APPROVAL,
this.list(new LambdaQueryWrapper<Entrustment>()
.in(Entrustment::getStatus, integers2)
.eq(Entrustment::getDataSources, 0)).size(), String.format("委托审批(%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
REVIEW_STATUS_GROUP2.stream()
.mapToInt(status -> entrustListMap.getOrDefault(EntrustMarkConstants.LOCAL_SYSTEM + "_" + status, Collections.emptyList()).size())
.sum(),
String.format("委托审批(%s)", EntrustMarkConstants.PUBLIC_SECURITY_BUREAU)));
markersVOS.add(new MarkersVO(EntrustMarkConstants.REVIEW_OR_APPROVAL,
this.list(new LambdaQueryWrapper<Entrustment>()
.in(Entrustment::getStatus, integers1)
.eq(Entrustment::getDataSources, 1)).size(), "委托审核(大数据平台)"));
REVIEW_STATUS_GROUP1.stream()
.mapToInt(status -> entrustListMap.getOrDefault(EntrustMarkConstants.THIRD_PARTY_SYSTEM + "_" + status, Collections.emptyList()).size())
.sum(),
"委托审核(大数据平台)"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.REVIEW_OR_APPROVAL,
this.list(new LambdaQueryWrapper<Entrustment>()
.in(Entrustment::getStatus, integers2)
.eq(Entrustment::getDataSources, 1)).size(), "委托审批(大数据平台)"));
REVIEW_STATUS_GROUP2.stream()
.mapToInt(status -> entrustListMap.getOrDefault(EntrustMarkConstants.LOCAL_SYSTEM + "_" + status, Collections.emptyList()).size())
.sum(),
"委托审批(大数据平台)"));
markersVOS.add(new MarkersVO(EntrustMarkConstants.REVIEW_OR_APPROVAL,
(int) entrustAlterApplyService.count(Wrappers.<EntrustAlterApply>lambdaQuery()
.eq(EntrustAlterApply::getStatus, EntrustAlterApplyStatus.SUBMITTED_WAIT_APPROVE.getStatus())),

@ -29,6 +29,7 @@
emr.qualitative_result,
emr.quantitative_result,
emr.other_result,
emr.checkout_remark,
emr.create_time,
emr.create_by,
emr.update_time,
@ -42,6 +43,7 @@
emr.qualitative_result,
emr.quantitative_result,
emr.other_result,
emr.checkout_remark,
em.name,
em.entrustment_id,
em.accept_no,

@ -365,7 +365,7 @@
where i.id = e.identification_id
) as identification_no,
(
SELECT COUNT(*) FROM b_entrust_material_checkout_result emr WHERE emr.entrust_id = e.id AND qualitative_result != '' AND qualitative_result IS NOT NULL
SELECT COUNT(*) FROM b_entrust_material_checkout_result emr WHERE emr.entrust_id = e.id
) AS checkout_result_count
FROM b_entrustment e

Loading…
Cancel
Save