excel 导入更新
This commit is contained in:
@@ -3296,7 +3296,9 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
|
|||||||
).size(),
|
).size(),
|
||||||
"已受理 (大数据平台)"));
|
"已受理 (大数据平台)"));
|
||||||
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT,
|
markersVOS.add(new MarkersVO(EntrustMarkConstants.CASE_ACCEPT,
|
||||||
this.list(Wrappers.<Entrustment>lambdaQuery().inSql(Entrustment::getId, "SELECT entrust_id FROM b_entrust_material_checkout_result"))
|
this.list(Wrappers.<Entrustment>lambdaQuery()
|
||||||
|
.ge(Entrustment::getStatus, EntrustStatusConstants.ENTRUST_STATUS_ACCEPTED.getStatus())
|
||||||
|
.inSql(Entrustment::getId, "SELECT entrust_id FROM b_entrust_material_checkout_result"))
|
||||||
.stream()
|
.stream()
|
||||||
.filter(o ->
|
.filter(o ->
|
||||||
o.getAcceptTime().isAfter(LocalDateTime.of(LocalDate.now().withDayOfYear(1), LocalTime.MIN))
|
o.getAcceptTime().isAfter(LocalDateTime.of(LocalDate.now().withDayOfYear(1), LocalTime.MIN))
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package digital.laboratory.platform.entrustment.service.impl;
|
package digital.laboratory.platform.entrustment.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
import digital.laboratory.platform.common.core.exception.CheckedException;
|
import digital.laboratory.platform.common.core.exception.CheckedException;
|
||||||
import digital.laboratory.platform.common.core.util.R;
|
import digital.laboratory.platform.common.core.util.R;
|
||||||
import digital.laboratory.platform.entrustment.entity.CaseEvent;
|
import digital.laboratory.platform.entrustment.entity.CaseEvent;
|
||||||
|
import digital.laboratory.platform.entrustment.entity.EntrustMaterialCheckoutResult;
|
||||||
import digital.laboratory.platform.entrustment.entity.Entrustment;
|
import digital.laboratory.platform.entrustment.entity.Entrustment;
|
||||||
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
|
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
|
||||||
import digital.laboratory.platform.entrustment.enums.AnalysisOptionEnums;
|
import digital.laboratory.platform.entrustment.enums.AnalysisOptionEnums;
|
||||||
@@ -15,7 +17,6 @@ import digital.laboratory.platform.sys.enums.entrust.EntrustBiologyType;
|
|||||||
import digital.laboratory.platform.sys.feign.RemoteCommDrugService;
|
import digital.laboratory.platform.sys.feign.RemoteCommDrugService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -49,6 +50,9 @@ public class ExcelUploadServiceImpl implements ExcelUploadService {
|
|||||||
@Resource
|
@Resource
|
||||||
private RemoteCommDrugService remoteCommDrugService;
|
private RemoteCommDrugService remoteCommDrugService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private EntrustMaterialCheckoutResultService entrustMaterialCheckoutResultService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传两社人员名单excel文件
|
* 上传两社人员名单excel文件
|
||||||
*
|
*
|
||||||
@@ -68,6 +72,7 @@ public class ExcelUploadServiceImpl implements ExcelUploadService {
|
|||||||
throw new CheckedException("当前不支持两社人员之外的委托信息进行导入!");
|
throw new CheckedException("当前不支持两社人员之外的委托信息进行导入!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 校验案件信息是否合法
|
// 校验案件信息是否合法
|
||||||
CaseEvent cj = caseEventService.validateCaseInfo(entrustment.getCaseId());
|
CaseEvent cj = caseEventService.validateCaseInfo(entrustment.getCaseId());
|
||||||
// 默认取海洛因的毒品信息
|
// 默认取海洛因的毒品信息
|
||||||
@@ -76,11 +81,17 @@ public class ExcelUploadServiceImpl implements ExcelUploadService {
|
|||||||
R<List<DrugLite>> innerGetAllR = remoteCommDrugService.innerGetAll(); // 获取所有的毒品信息
|
R<List<DrugLite>> innerGetAllR = remoteCommDrugService.innerGetAll(); // 获取所有的毒品信息
|
||||||
List<DrugLite> drugLiteList = innerGetAllR.getData();
|
List<DrugLite> drugLiteList = innerGetAllR.getData();
|
||||||
Map<String, DrugLite> drugLiteMap = drugLiteList.stream().collect(Collectors.toMap(DrugLite::getName, Function.identity()));
|
Map<String, DrugLite> drugLiteMap = drugLiteList.stream().collect(Collectors.toMap(DrugLite::getName, Function.identity()));
|
||||||
// 防止检材列表
|
// 防止检材列表d
|
||||||
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList = new ArrayList<>();
|
List<EntrustmentIdentificationMaterial> entrustmentIdentificationMaterialList = new ArrayList<>();
|
||||||
// 读取excel数据
|
// 读取excel数据
|
||||||
List<Map<String, String>> data = ExcelUtils.readExcel(file);
|
// 表头从第一行后开始读取
|
||||||
int orderNo = 1;
|
int headIndex = 1;
|
||||||
|
List<Map<String, String>> data = ExcelUtils.readExcel(file, headIndex);
|
||||||
|
int orderNo = entrustmentIdentificationMaterialService.lambdaQuery()
|
||||||
|
.eq(EntrustmentIdentificationMaterial::getEntrustmentId, entrustId)
|
||||||
|
.list()
|
||||||
|
.size() + 1;
|
||||||
|
List<EntrustMaterialCheckoutResult> results = new ArrayList<>();
|
||||||
for (Map<String, String> datum : data) {
|
for (Map<String, String> datum : data) {
|
||||||
EntrustmentIdentificationMaterial entrustmentIdentificationMaterial = new EntrustmentIdentificationMaterial();
|
EntrustmentIdentificationMaterial entrustmentIdentificationMaterial = new EntrustmentIdentificationMaterial();
|
||||||
entrustmentIdentificationMaterial.setEntrustmentId(entrustment.getId());
|
entrustmentIdentificationMaterial.setEntrustmentId(entrustment.getId());
|
||||||
@@ -91,7 +102,17 @@ public class ExcelUploadServiceImpl implements ExcelUploadService {
|
|||||||
entrustmentIdentificationMaterial.setMaterialAge(Integer.valueOf(datum.get("年龄")));
|
entrustmentIdentificationMaterial.setMaterialAge(Integer.valueOf(datum.get("年龄")));
|
||||||
entrustmentIdentificationMaterial.setRemark(datum.get("身份证号"));
|
entrustmentIdentificationMaterial.setRemark(datum.get("身份证号"));
|
||||||
entrustmentIdentificationMaterial.setDrawPlace(datum.get("采样单位"));
|
entrustmentIdentificationMaterial.setDrawPlace(datum.get("采样单位"));
|
||||||
entrustmentIdentificationMaterial.setCandidateDrugs(CollUtil.newArrayList(drugLiteMap.containsKey(datum.get("曾吸毒种类")) ? drugLiteMap.get(datum.get("曾吸毒种类")) : heroin));
|
entrustmentIdentificationMaterial.setCandidateDrugs(CollUtil.newArrayList(drugLiteMap.containsKey(datum.get("检测结果")) ? drugLiteMap.get(datum.get("检测结果")) : heroin));
|
||||||
|
entrustmentIdentificationMaterial.setId(IdWorker.get32UUID().toUpperCase());
|
||||||
|
|
||||||
|
List<DrugLite> candidateDrugs = entrustmentIdentificationMaterial.getCandidateDrugs();
|
||||||
|
if (candidateDrugs.size() > 0) {
|
||||||
|
EntrustMaterialCheckoutResult result = new EntrustMaterialCheckoutResult();
|
||||||
|
result.setId(entrustmentIdentificationMaterial.getId());
|
||||||
|
result.setQualitativeResult(JSON.toJSONString(candidateDrugs));
|
||||||
|
result.setEntrustId(entrustId);
|
||||||
|
results.add(result);
|
||||||
|
}
|
||||||
|
|
||||||
// 设置默认值
|
// 设置默认值
|
||||||
entrustmentIdentificationMaterial.setBiologyType(EntrustBiologyType.HAIR.getDesc()); // 生物样本检材类型
|
entrustmentIdentificationMaterial.setBiologyType(EntrustBiologyType.HAIR.getDesc()); // 生物样本检材类型
|
||||||
@@ -114,7 +135,6 @@ public class ExcelUploadServiceImpl implements ExcelUploadService {
|
|||||||
entrustmentIdentificationMaterial.setSample1No(sampleService.getNewSampleNo(entrustmentIdentificationMaterial.getImNo(), 1));
|
entrustmentIdentificationMaterial.setSample1No(sampleService.getNewSampleNo(entrustmentIdentificationMaterial.getImNo(), 1));
|
||||||
entrustmentIdentificationMaterialList.add(entrustmentIdentificationMaterial);
|
entrustmentIdentificationMaterialList.add(entrustmentIdentificationMaterial);
|
||||||
}
|
}
|
||||||
|
return entrustmentIdentificationMaterialService.saveBatch(entrustmentIdentificationMaterialList) && entrustMaterialCheckoutResultService.saveBatch(results);
|
||||||
return entrustmentIdentificationMaterialService.saveBatch(entrustmentIdentificationMaterialList);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ public class ExcelUtils {
|
|||||||
* @return 解析后的 Excel 数据列表
|
* @return 解析后的 Excel 数据列表
|
||||||
* @throws Exception 可能抛出的异常,如文件读取异常
|
* @throws Exception 可能抛出的异常,如文件读取异常
|
||||||
*/
|
*/
|
||||||
public static List<Map<String, String>> readExcel(MultipartFile file) throws Exception {
|
public static List<Map<String, String>> readExcel(MultipartFile file, int headIndex) throws Exception {
|
||||||
// 存储最终结果,每一行的 Excel 数据以 Map 的形式存储
|
// 存储最终结果,每一行的 Excel 数据以 Map 的形式存储
|
||||||
List<Map<String, String>> result = new ArrayList<>();
|
List<Map<String, String>> result = new ArrayList<>();
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ public class ExcelUtils {
|
|||||||
if (sheet == null) return result; // 如果没有工作表,则返回空列表
|
if (sheet == null) return result; // 如果没有工作表,则返回空列表
|
||||||
|
|
||||||
// 获取表头(第一行),表头行存储列名
|
// 获取表头(第一行),表头行存储列名
|
||||||
Row headerRow = sheet.getRow(0);
|
Row headerRow = sheet.getRow(headIndex);
|
||||||
if (headerRow == null) return result; // 如果没有表头,则返回空列表
|
if (headerRow == null) return result; // 如果没有表头,则返回空列表
|
||||||
|
|
||||||
// 存储表头列名
|
// 存储表头列名
|
||||||
@@ -47,7 +47,7 @@ public class ExcelUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 从第二行开始读取数据
|
// 从第二行开始读取数据
|
||||||
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
|
for (int i = headIndex + 1; i <= sheet.getLastRowNum(); i++) {
|
||||||
// 获取当前行
|
// 获取当前行
|
||||||
Row row = sheet.getRow(i);
|
Row row = sheet.getRow(i);
|
||||||
if (row == null) continue; // 如果当前行为空,则跳过
|
if (row == null) continue; // 如果当前行为空,则跳过
|
||||||
|
|||||||
Reference in New Issue
Block a user