master
杨海航 6 months ago
parent e70c1c0b3c
commit ecac6a4958
  1. 39
      src/main/java/digital/laboratory/platform/entrustment/service/impl/ExcelOperationServiceImpl.java

@ -2,6 +2,7 @@ package digital.laboratory.platform.entrustment.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import digital.laboratory.platform.common.core.constant.CommonConstants;
import digital.laboratory.platform.common.core.exception.CheckedException;
@ -35,10 +36,12 @@ import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
@ -149,11 +152,12 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
/**
* 处理Excel数据构建检材对象并设置相关属性
* @param data Excel数据列表
* @param entrustment 委托信息对象
* @param drugLiteMap 毒品名称映射表
* @param orderNo 检材序号起始值
* @param cj 案件信息对象
*
* @param data Excel数据列表
* @param entrustment 委托信息对象
* @param drugLiteMap 毒品名称映射表
* @param orderNo 检材序号起始值
* @param cj 案件信息对象
* @param entrustmentIdentificationMaterialList 检材列表对象集合
*/
private void processExcelDataToMaterialEntity(List<Map<String, String>> data, Entrustment entrustment, Map<String, DrugLite> drugLiteMap, int orderNo, CaseEvent cj, List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList) {
@ -172,12 +176,17 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
material.setMaterialAge(Integer.valueOf(this.getAgeByIdNum(idNum)));
}
material.setDrawPlace(datum.get("采样单位"));
if (StringUtils.isBlank(datum.get("提取地点"))) {
material.setDrawPlace("贵阳市");
} else {
material.setDrawPlace(datum.get("提取地点"));
}
material.setId(IdWorker.get32UUID().toUpperCase());
// 检测结果解析
ArrayList<DrugLite> matchedDrugs = new ArrayList<>();
String[] drugs = datum.get("检测结果").split("、");
String[] drugs = datum.get("曾吸毒种类").split("、");
if (drugs.length == 0 || (drugs.length == 1 && drugs[0].trim().isEmpty())) {
matchedDrugs.add(drugLiteMap.get("海洛因"));
} else {
@ -214,7 +223,13 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
orderNo++;
material.setPackComplete(true);
material.setRtSampleQuantity(0);
material.setDrawTime(LocalDateTime.now());
// 定义格式化器(注意 M 和 d 不要补0)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
LocalDateTime drawTime = LocalDateTime.parse(datum.get("提取时间"), formatter.withZone(ZoneId.systemDefault()));
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
System.out.println("提取时间为" + drawTime);
// 转 LocalDate
material.setDrawTime(drawTime);
material.setAnalysisOption(AnalysisOptionEnums.QUALITATIVE.getCode());
entrustmentIdentificationMaterialService.setMaterialIdentificationNo(material, cj);
@ -227,7 +242,7 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
/**
* 根据当前用户的机构id查询属于这个机构的委托信息
*
* @param year 年份用于筛选特定年份的委托信息
* @param year 年份用于筛选特定年份的委托信息
* @param response
*/
@Override
@ -238,7 +253,7 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
Wrappers.<Entrustment>query()
.eq("e.client_org_id", user.getOrgId())
.eq("e.status", EntrustStatusConstants.ENTRUST_STATUS_ACCEPTED.getStatus())
.likeRight(year != null , "e.accept_time", year)
.likeRight(year != null, "e.accept_time", year)
.orderByDesc("e.accept_time")
);
@ -258,7 +273,6 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
Map<String, List<EntrustmentIdentificationMaterial>> materialGroupMap = identificationMaterials.stream().collect(Collectors.groupingBy(EntrustmentIdentificationMaterial::getEntrustmentId));
// 获取嫌疑人信息并根据委托id分组
Map<String, String> suspectGroupMap = buildSuspectInfoGroupByEntrustId(entrustmentVOList);
@ -344,7 +358,7 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
// ====== 输出到浏览器
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
String filename = user.getOrgName() + "已受理委托信息统计" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ".xlsx";
String filename = user.getOrgName() + "已受理委托信息统计" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ".xlsx";
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, StandardCharsets.UTF_8.name()));
workbook.write(response.getOutputStream());
workbook.close();
@ -352,6 +366,7 @@ public class ExcelOperationServiceImpl implements ExcelOperationService {
/**
* 根据委托id分组拼接嫌疑人姓名和身份证
*
* @param entrustmentVOList
* @return
*/

Loading…
Cancel
Save