Browse Source

动物样本送检-血清样本检测附件模板调整

陈长荣 1 month ago
parent
commit
5926ae7a5b

+ 47 - 0
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/sample/enums/AgeUnitEnum.java

@@ -0,0 +1,47 @@
+package com.github.jfcloud.gene.sample.enums;
+
+/**
+ * 年龄单位枚举
+ */
+public enum AgeUnitEnum {
+    DAY("d","天"),
+    MONTH("m","月"),
+    YEAR("y","年")
+    ;
+
+    private String code;
+    private String label;
+
+    AgeUnitEnum(String code, String value) {
+        this.code = code;
+        this.label = value;
+    }
+
+    public static String getLabel(String code){
+        if(code == null){
+            return null;
+        }
+        for(AgeUnitEnum whetherEnum : AgeUnitEnum.values()){
+            if(code.equals(whetherEnum.getCode())){
+                return whetherEnum.getLabel();
+            }
+        }
+        return null;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+}

+ 29 - 4
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/sample/service/biz/SampleAnimalServiceImpl.java

@@ -8,6 +8,7 @@ import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.ReflectUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.db.Entity;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -22,7 +23,9 @@ import com.github.jfcloud.gene.constants.GeneStatusEnum;
 import com.github.jfcloud.gene.file.service.FileInfoService;
 import com.github.jfcloud.gene.flow.entity.FlowAudit;
 import com.github.jfcloud.gene.flow.service.FlowAuditService;
+import com.github.jfcloud.gene.lis.config.LisDb;
 import com.github.jfcloud.gene.sample.entity.*;
+import com.github.jfcloud.gene.sample.enums.AgeUnitEnum;
 import com.github.jfcloud.gene.sample.enums.PathogenSampleTypeEnum;
 import com.github.jfcloud.gene.sample.enums.ScientificSampleTypeEnum;
 import com.github.jfcloud.gene.sample.mapper.InspectionCommissionMapper;
@@ -43,11 +46,9 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.lang.reflect.Field;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Optional;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Slf4j
 @Service
@@ -65,6 +66,7 @@ public class SampleAnimalServiceImpl extends ServiceImpl<SampleAnimalMapper, Sam
     private final UserIdNameCache userIdNameCache;
     private final FlowAuditService flowAuditService;
     private final CommonSampleEditServiceImpl commonSampleEditService;
+    private final LisDb lisDb;
 
     @Override
     public void removeBySampleId(Long sampleId) {
@@ -187,6 +189,29 @@ public class SampleAnimalServiceImpl extends ServiceImpl<SampleAnimalMapper, Sam
         SampleInfo sampleInfo = sampleInfoMapper.selectById(sampleId);
         SampleAnimalVo sampleAnimal = getDetail(sampleId);
 
+        //血清样本送检
+        if (sampleAnimal.getScientificSampleType().contains(ScientificSampleTypeEnum.serum.getDescription())) {
+            //获取检测指标
+            String sql = "select id, name from dbo.HT_DICT_ITEM where status=1 and type=0";
+            List<Entity> entities = lisDb.query(sql);
+            Map<String, String> dictItemMap = entities.stream()
+                    .collect(Collectors.toMap(e -> e.getStr("id"), e -> e.getStr("name")));
+
+            sampleAnimal.getOrder().getSerum().getItems().forEach(item -> {
+                //加急
+                item.setQuick(WhetherEnum.getLabel(item.getQuick()));
+                //年龄
+                item.setAge(item.getAge() + AgeUnitEnum.getLabel(item.getAgeUnit()));
+                //检测指标
+                if (StrUtil.isNotBlank(item.getTarget())) {
+                    String target = Stream.of(item.getTarget().split(","))
+                            .map(dictItemMap::get)
+                            .collect(Collectors.joining("、"));
+                    item.setTarget(target);
+                }
+            });
+        }
+
         //文件名称:项目名称-申请人-申请日期-随机四位.docx
         String applyDate = DateUtil.format(sampleInfo.getApplyTime(), DatePattern.CHINESE_DATE_PATTERN);
         String fileName = String.format("动物样本检测送检申请表-%s-%s-%s-%s.docx",

File diff suppressed because it is too large
+ 874 - 1188
jfcloud-gene-biz/src/main/resources/ftlTemplate/animalSampleTesting.ftl


Some files were not shown because too many files changed in this diff