|
@@ -5,16 +5,16 @@ import com.diagbot.dto.ExportDiagnoseDTO;
|
|
import com.diagbot.entity.KlDiagnoseDetail;
|
|
import com.diagbot.entity.KlDiagnoseDetail;
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
import com.diagbot.enums.IsDeleteEnum;
|
|
import com.diagbot.service.impl.KlDiagnoseDetailServiceImpl;
|
|
import com.diagbot.service.impl.KlDiagnoseDetailServiceImpl;
|
|
-import com.diagbot.util.BeanUtil;
|
|
|
|
-import com.diagbot.util.EntityUtil;
|
|
|
|
-import com.diagbot.util.ReflectUtil;
|
|
|
|
|
|
+import com.diagbot.util.*;
|
|
import org.apache.commons.compress.utils.Lists;
|
|
import org.apache.commons.compress.utils.Lists;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.util.Iterator;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -41,6 +41,7 @@ public class KlDiagnoseDetailFacade extends KlDiagnoseDetailServiceImpl {
|
|
// TODO 获取公式,分隔编码,替换编码,组装导出数据 Map<String, List<ExportDiagnoseDTO>>
|
|
// TODO 获取公式,分隔编码,替换编码,组装导出数据 Map<String, List<ExportDiagnoseDTO>>
|
|
Map<String, List<ExportDiagnoseDTO>> diagnoseDetails = processDiagnoseDetail(diagnoseDetailMap);
|
|
Map<String, List<ExportDiagnoseDTO>> diagnoseDetails = processDiagnoseDetail(diagnoseDetailMap);
|
|
|
|
|
|
|
|
+
|
|
// TODO 导出数据
|
|
// TODO 导出数据
|
|
}
|
|
}
|
|
|
|
|
|
@@ -50,14 +51,19 @@ public class KlDiagnoseDetailFacade extends KlDiagnoseDetailServiceImpl {
|
|
for(Map.Entry<String, List<KlDiagnoseDetail>> kd : diagnoseDetailMap.entrySet()){
|
|
for(Map.Entry<String, List<KlDiagnoseDetail>> kd : diagnoseDetailMap.entrySet()){
|
|
String sheetName = kd.getKey();
|
|
String sheetName = kd.getKey();
|
|
List<KlDiagnoseDetail> datats = kd.getValue();
|
|
List<KlDiagnoseDetail> datats = kd.getValue();
|
|
|
|
+ removeKlDiagnoseDetail(datats);
|
|
List<ExportDiagnoseDTO> eds = Lists.newArrayList();
|
|
List<ExportDiagnoseDTO> eds = Lists.newArrayList();
|
|
for (KlDiagnoseDetail kdl:datats) {
|
|
for (KlDiagnoseDetail kdl:datats) {
|
|
ExportDiagnoseDTO exportDiagnoseDTO = new ExportDiagnoseDTO();
|
|
ExportDiagnoseDTO exportDiagnoseDTO = new ExportDiagnoseDTO();
|
|
BeanUtil.copyProperties(kdl, exportDiagnoseDTO);
|
|
BeanUtil.copyProperties(kdl, exportDiagnoseDTO);
|
|
ReflectUtil.setProperty(exportDiagnoseDTO, "type", kdl.getType().toString());
|
|
ReflectUtil.setProperty(exportDiagnoseDTO, "type", kdl.getType().toString());
|
|
ReflectUtil.setProperty(exportDiagnoseDTO, "orderNo", kdl.getCode());
|
|
ReflectUtil.setProperty(exportDiagnoseDTO, "orderNo", kdl.getCode());
|
|
- ReflectUtil.setProperty(exportDiagnoseDTO, "规则", kdl.getStandard());
|
|
|
|
- ReflectUtil.setProperty(exportDiagnoseDTO, "等于", kdl.getMidResult());
|
|
|
|
|
|
+ if(kdl.getCode().startsWith("3.")){
|
|
|
|
+ exportDiagnoseDTO.setRule(kdl.getRelation());
|
|
|
|
+ }else {
|
|
|
|
+ exportDiagnoseDTO.setRule(kdl.getStandard());
|
|
|
|
+ }
|
|
|
|
+ exportDiagnoseDTO.setEq(kdl.getMidResult());
|
|
eds.add(exportDiagnoseDTO);
|
|
eds.add(exportDiagnoseDTO);
|
|
}
|
|
}
|
|
data.put(sheetName,eds);
|
|
data.put(sheetName,eds);
|
|
@@ -65,4 +71,25 @@ public class KlDiagnoseDetailFacade extends KlDiagnoseDetailServiceImpl {
|
|
return data;
|
|
return data;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 移除公式编码中没有的数据
|
|
|
|
+ * @param klDiagnoseDetails
|
|
|
|
+ */
|
|
|
|
+ public void removeKlDiagnoseDetail(List<KlDiagnoseDetail> klDiagnoseDetails){
|
|
|
|
+ List<String> collect = klDiagnoseDetails.stream().filter(x -> (x.getType().equals(91)
|
|
|
|
+ || x.getType().equals(92)|| x.getType().equals(93))&& StringUtil.isNotBlank(x.getFormula()))
|
|
|
|
+ .map(y -> y.getFormula()).collect(Collectors.toList());
|
|
|
|
+ String content = collect.stream().collect(Collectors.joining(","));
|
|
|
|
+ //获取公式中的编码
|
|
|
|
+ List<String> regexData = RegexUtil.getRegexDatas(content, "([1-9]\\d*\\.?\\d*)|(0\\.\\d*[1-9])");
|
|
|
|
+ Iterator<KlDiagnoseDetail> iterator = klDiagnoseDetails.iterator();
|
|
|
|
+ while (iterator.hasNext()){
|
|
|
|
+ KlDiagnoseDetail next = iterator.next();
|
|
|
|
+ String code = next.getCode();
|
|
|
|
+ if(!regexData.contains(code)){
|
|
|
|
+ iterator.remove();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|