Browse Source

动物样本血清送检lis同步

陈长荣 1 week ago
parent
commit
e3b81b7c84

+ 2 - 3
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/lis/config/LisDb.java

@@ -3,7 +3,6 @@ package com.github.jfcloud.gene.lis.config;
 import cn.hutool.db.Db;
 import cn.hutool.db.Entity;
 import cn.hutool.db.ds.simple.SimpleDataSource;
-import cn.hutool.db.sql.SqlFormatter;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
@@ -45,7 +44,7 @@ public class LisDb {
     @SneakyThrows
     public List<Entity> query(String sql) {
         try {
-            log.info("【LIS查询列表】:\n{}", SqlFormatter.format(sql));
+            log.info("【LIS查询列表】:\n{}", sql);
             return getDb().query(sql);
         } catch (Exception e) {
             log.error(e.getMessage(), e);
@@ -61,7 +60,7 @@ public class LisDb {
      */
     @SneakyThrows
     public Entity queryOne(String sql) {
-        log.info("【LIS查询单条】:\n{}", SqlFormatter.format(sql));
+        log.info("【LIS查询单条】:\n{}", sql);
         return getDb().queryOne(sql);
     }
 

+ 14 - 6
jfcloud-gene-biz/src/main/java/com/github/jfcloud/gene/lis/service/LisSyncService.java

@@ -13,9 +13,11 @@ import com.github.jfcloud.gene.lis.config.LisDb;
 import com.github.jfcloud.gene.lis.entity.HtScienceApply;
 import com.github.jfcloud.gene.lis.entity.HtScienceApplyItem;
 import com.github.jfcloud.gene.sample.entity.SampleCheckOrder;
+import com.github.jfcloud.gene.sample.entity.SampleInfo;
 import com.github.jfcloud.gene.sample.enums.ScientificSampleTypeEnum;
 import com.github.jfcloud.gene.sample.mapper.SampleCheckOrderMapper;
 import com.github.jfcloud.gene.sample.service.SampleAnimalService;
+import com.github.jfcloud.gene.sample.service.SampleInfoService;
 import com.github.jfcloud.gene.sample.vo.CheckItemSerumVo;
 import com.github.jfcloud.gene.sample.vo.SampleAnimalVo;
 import com.github.jfcloud.gene.sample.vo.SampleCheckSerumVo;
@@ -38,11 +40,13 @@ public class LisSyncService {
     private final LisDb lisDb;
     private final SampleCheckOrderMapper checkOrderMapper;
     private final SampleAnimalService sampleAnimalService;
+    private final SampleInfoService sampleInfoService;
 
     /**
      * 同步LIS
      */
     public void sync(Long sampleId) {
+        SampleInfo sampleInfo = sampleInfoService.getById(sampleId);
         SampleAnimalVo animalDetail = sampleAnimalService.getDetail(sampleId);
         Assert.notNull(animalDetail, "同步LIS失败,动物样本检测不存在");
         Assert.isTrue(StrUtil.isNotBlank(animalDetail.getScientificSampleType()) &&
@@ -63,8 +67,8 @@ public class LisSyncService {
         Map<Long, Entity> depMap = depEntities.stream().collect(Collectors.toMap(e -> e.getLong("id"), Function.identity()));
 
         //根据昵称查询用户id
-        Entity applyUser = lisDb.queryOne("select top 1 user_id from dbo.HT_INFO_USER_EXTEND where name = N'" + serum.getApplyUserName() + "' order by user_id desc");
-        Assert.notNull(applyUser, "同步LIS失败,申请人姓名[{}]不存在LIS系统", serum.getApplyUserName());
+        Entity applyUser = lisDb.queryOne("select top 1 user_id from dbo.HT_INFO_USER_EXTEND where name = N'" + sampleInfo.getApplicantName() + "' order by user_id desc");
+        Assert.notNull(applyUser, "同步LIS失败,申请人姓名[{}]不存在LIS系统", sampleInfo.getApplicantName());
 
         //记录HtScienceApply的id
         Map<String, Long> applyIdMap = new HashMap<>();
@@ -100,12 +104,16 @@ public class LisSyncService {
             scienceApply.setAgeDisplay(ageObj.toJSONString());
             scienceApply.setSampleId(item.getLisSampleTypeId().toString());
             scienceApply.setFastFlag(Integer.parseInt(item.getQuick()));
-            scienceApply.setApplyDep(serum.getSendOrgId().toString());
-            scienceApply.setApplyDocId(serum.getSendUserId().toString());
+            if (serum.getSendOrgId() != null) {
+                scienceApply.setApplyDep(serum.getSendOrgId().toString());
+            }
+            if (serum.getSendUserId() != null) {
+                scienceApply.setApplyDocId(serum.getSendUserId().toString());
+                scienceApply.setDeliverOperId(serum.getSendUserId().toString());
+            }
             scienceApply.setApplyDoc(serum.getSendUserName());
-            scienceApply.setApplyTime(new DateTime(item.getApplyDate()));
             scienceApply.setDeliverOper(serum.getSendUserName());
-            scienceApply.setDeliverOperId(serum.getSendUserId().toString());
+            scienceApply.setApplyTime(new DateTime(item.getApplyDate()));
             scienceApply.setDeliverTime(new DateTime(item.getSendDate()));
             scienceApply.setSampleCount(Integer.parseInt(item.getNum()));
             Assert.isTrue(scienceApply.getSampleCount() > 0, "同步LIS失败,样本数量不能为0");