Bläddra i källkod

Merge branch 'dev/20220228_v3.0.1通用版_渠道管理第一期' into test

rengb 3 år sedan
förälder
incheckning
16c849b76f

+ 6 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetColumnResultPageDTO.java

@@ -74,4 +74,10 @@ public class GetColumnResultPageDTO implements Serializable {
 
     @ApiModelProperty(value = "最近一次人工核查时间")
     private Date auditTime;
+
+    @ApiModelProperty(value = "记录修改时间")
+    private Date gmtModified;
+
+    @ApiModelProperty(value = "记录创建时间")
+    private Date gmtCreate;
 }

+ 6 - 0
daqe-center/src/main/java/com/lantone/daqe/dto/GetTableColumnInfoDTO.java

@@ -46,5 +46,11 @@ public class GetTableColumnInfoDTO implements Serializable {
     @ApiModelProperty(value = "模块名称")
     private String modeName;
 
+    @ApiModelProperty(value = "文书编号")
+    private String recId;
+
+    @ApiModelProperty(value = "文书标题")
+    private String recTitle;
+
 
 }

+ 105 - 154
daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.google.common.collect.Lists;
+import com.lantone.common.dto.GetOperationLogDTO;
 import com.lantone.common.enums.IsDeleteEnum;
 import com.lantone.common.util.BeanUtil;
 import com.lantone.common.util.DateUtil;
@@ -13,25 +14,23 @@ import com.lantone.common.util.ListUtil;
 import com.lantone.common.util.StringUtil;
 import com.lantone.common.util.SysUserUtils;
 import com.lantone.common.vo.BlockLossTypeGatherVO;
+import com.lantone.common.vo.DataCompareVO;
 import com.lantone.common.vo.DataRepariVO;
 import com.lantone.daqe.client.OperationLogService;
 import com.lantone.daqe.dto.BlockLossTypeGatherDTO;
 import com.lantone.daqe.dto.GetBlockLossPageDTO;
-import com.lantone.common.dto.GetOperationLogDTO;
 import com.lantone.daqe.dto.HisMedicalRecordDTO;
 import com.lantone.daqe.dto.UpBlockLossByIdVO;
 import com.lantone.daqe.entity.BehospitalInfo;
 import com.lantone.daqe.entity.BlocklossResult;
 import com.lantone.daqe.entity.HomePage;
 import com.lantone.daqe.entity.MedicalRecord;
-import com.lantone.daqe.entity.MedicalRecordContent;
 import com.lantone.daqe.enums.DataSaveUrlEnum;
 import com.lantone.daqe.enums.LossStatusEnum;
 import com.lantone.daqe.enums.LossTypeEnum;
 import com.lantone.daqe.enums.LossWayEnum;
 import com.lantone.daqe.facade.base.BehospitalInfoFacade;
 import com.lantone.daqe.facade.base.BlocklossResultFacade;
-import com.lantone.common.vo.DataCompareVO;
 import com.lantone.daqe.facade.base.HomePageFacade;
 import com.lantone.daqe.facade.base.MedicalRecordContentFacade;
 import com.lantone.daqe.facade.base.MedicalRecordFacade;
@@ -121,11 +120,18 @@ public class BlockLossManagementFacade {
                 .eq(hospitalId != null, "hospital_id", hospitalId)
                 .eq("status", LossStatusEnum.IS_LOSS.getKey())
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
-        Map<String, List<BlocklossResult>> lossResultMap = null;
+//        Map<String, List<BlocklossResult>> lossResultMap = null;
         if (ListUtil.isNotEmpty(lossResults)) {
-            lossResultMap = EntityUtil.makeEntityListMap(lossResults, "lossType");
+            Map<String, List<BlocklossResult>> lossResultMap = EntityUtil.makeEntityListMap(lossResults, "lossType");
             //更新以缺失数据的状态
             flag = upBlockLossStatus(lossResultMap, hospitalId, principleId);
+            //删除当前时间段的对比记录
+            flag = blocklossResultFacade.remove(new UpdateWrapper<BlocklossResult>()
+                    .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getStartDate())
+                    .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()), "gmt_create", dataCompareVO.getEndDate())
+                    .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
+                    .eq(hospitalId != null, "hospital_id", hospitalId)
+                    .eq("is_deleted", IsDeleteEnum.N.getKey()));
         }
 
         //====2.某时间的数据对比
@@ -156,7 +162,7 @@ public class BlockLossManagementFacade {
             homePageLogs = removeRepeat(getOperationLogs(dataCompareVO), "homePageId");
             //文书数据
             dataCompareVO.setOperationUrl(DataSaveUrlEnum.MEDICAL_RECORD.getKey());
-            recLogs = removeRepeat(getOperationLogs(dataCompareVO), "recTitle");
+            recLogs = removeRepeat(getOperationLogs(dataCompareVO), "recId");
         }
 
         //获取库中数据
@@ -188,45 +194,6 @@ public class BlockLossManagementFacade {
                     .stream().map(MedicalRecord::getRecId).collect(Collectors.toList());
         }
 
-        //==已丢失 外部|内部 病历、文书、病案首页 id集合
-        //外部
-        List<String> outLossCodes = null;
-        List<String> outLossHomepages = null;
-        List<String> outLossRecs = null;
-        //内部
-        List<String> inLossCodes = null;
-        List<String> inLossHomepages = null;
-        List<String> inLossRecs = null;
-        if (lossResultMap != null) {
-            if (ListUtil.isNotEmpty(lossResultMap.get(LossTypeEnum.REC_LOSS.getKey()))) {
-                Map<String, List<BlocklossResult>> lossWayRecMap = EntityUtil.makeEntityListMap(lossResultMap.get(LossTypeEnum.REC_LOSS.getKey()), "lossWay");
-                if (ListUtil.isNotEmpty(lossWayRecMap.get(LossWayEnum.OUT_LOSS.getKey()))) {
-                    outLossRecs = lossWayRecMap.get(LossWayEnum.OUT_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
-                }
-                if (ListUtil.isNotEmpty(lossWayRecMap.get(LossWayEnum.IN_LOSS.getKey()))) {
-                    inLossRecs = lossWayRecMap.get(LossWayEnum.IN_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
-                }
-            }
-            if (ListUtil.isNotEmpty(lossResultMap.get(LossTypeEnum.HOMEPAGE_LOSS.getKey()))) {
-                Map<String, List<BlocklossResult>> lossWayHomePageMap = EntityUtil.makeEntityListMap(lossResultMap.get(LossTypeEnum.HOMEPAGE_LOSS.getKey()), "lossWay");
-                if (ListUtil.isNotEmpty(lossWayHomePageMap.get(LossWayEnum.OUT_LOSS.getKey()))) {
-                    outLossHomepages = lossWayHomePageMap.get(LossWayEnum.OUT_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
-                }
-                if (ListUtil.isNotEmpty(lossWayHomePageMap.get(LossWayEnum.IN_LOSS.getKey()))) {
-                    inLossHomepages = lossWayHomePageMap.get(LossWayEnum.IN_LOSS.getKey()).stream().map(BlocklossResult::getRecId).collect(Collectors.toList());
-                }
-            }
-            if (ListUtil.isNotEmpty(lossResultMap.get(LossTypeEnum.CODE_LOSS.getKey()))) {
-                Map<String, List<BlocklossResult>> lossWayCodeMap = EntityUtil.makeEntityListMap(lossResultMap.get(LossTypeEnum.CODE_LOSS.getKey()), "lossWay");
-                if (ListUtil.isNotEmpty(lossWayCodeMap.get(LossWayEnum.OUT_LOSS.getKey()))) {
-                    outLossCodes = lossWayCodeMap.get(LossWayEnum.OUT_LOSS.getKey()).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList());
-                }
-                if (ListUtil.isNotEmpty(lossWayCodeMap.get(LossWayEnum.IN_LOSS.getKey()))) {
-                    inLossCodes = lossWayCodeMap.get(LossWayEnum.IN_LOSS.getKey()).stream().map(BlocklossResult::getBehospitalCode).collect(Collectors.toList());
-                }
-            }
-        }
-
         //=====2.2数据对比
         //his与log日志做对比
         if (ListUtil.isNotEmpty(hisMedicalRecords)) {
@@ -249,11 +216,11 @@ public class BlockLossManagementFacade {
             //外部丢失数据集合
             List<BlocklossResult> outInserts = new ArrayList<>();
             //文书数据对比
-            compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outInserts, outLossRecs, hisMedicalRecordMap, hospitalId, principleId);
+            compareHisWithLog(recs, recLogs, LossTypeEnum.REC_LOSS.getKey(), outInserts,  hisMedicalRecordMap, hospitalId, principleId);
             //病案首页数据对比
-            compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outInserts, outLossHomepages, hisMedicalRecordMap, hospitalId, principleId);
+            compareHisWithLog(medicalRecords, homePageLogs, LossTypeEnum.HOMEPAGE_LOSS.getKey(), outInserts, hisMedicalRecordMap, hospitalId, principleId);
             //病历数据对比
-            compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outInserts, outLossCodes, hisMedicalRecordMap, hospitalId, principleId);
+            compareHisWithLog(medicalRecords, behospitalCodeLogs, LossTypeEnum.CODE_LOSS.getKey(), outInserts, hisMedicalRecordMap, hospitalId, principleId);
 
             flag = blocklossResultServiceImpl.saveBatch(outInserts);
         }
@@ -262,13 +229,13 @@ public class BlockLossManagementFacade {
         //内部丢失数据集合
         List<BlocklossResult> inInserts = new ArrayList<>();
         if (ListUtil.isNotEmpty(recLogs)) {
-            compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inInserts, inLossRecs, hisMedicalRecordMap, hospitalId, principleId);
+            compareLogWithLocal(recLogs, dataBaseRecIds, LossTypeEnum.REC_LOSS.getKey(), inInserts,  hisMedicalRecordMap, hospitalId, principleId);
         }
         if (ListUtil.isNotEmpty(homePageLogs)) {
-            compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inInserts, inLossHomepages, hisMedicalRecordMap, hospitalId, principleId);
+            compareLogWithLocal(homePageLogs, dataBaseHomePageIds, LossTypeEnum.HOMEPAGE_LOSS.getKey(), inInserts, hisMedicalRecordMap, hospitalId, principleId);
         }
         if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
-            compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inInserts, inLossCodes, hisMedicalRecordMap, hospitalId, principleId);
+            compareLogWithLocal(behospitalCodeLogs, dataBaseBehospitalCodes, LossTypeEnum.CODE_LOSS.getKey(), inInserts, hisMedicalRecordMap, hospitalId, principleId);
         }
         if (ListUtil.isNotEmpty(inInserts)) {
             flag = blocklossResultServiceImpl.saveBatch(inInserts);
@@ -299,14 +266,13 @@ public class BlockLossManagementFacade {
      * @param dataBases           入库数据
      * @param type                对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
      * @param inInserts           内部丢失插入集合
-     * @param havingLossIds       已经插入的id集合
      * @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
      * @param hospitalId          医院id
      * @param principleId         操作人id
      * @Return void
      */
     private void compareLogWithLocal(List<GetOperationLogDTO> logs, List<String> dataBases, String type,
-                                     List<BlocklossResult> inInserts, List<String> havingLossIds,
+                                     List<BlocklossResult> inInserts,
                                      Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId) {
         switch (type) {
             case "0":
@@ -314,52 +280,48 @@ public class BlockLossManagementFacade {
                 logs.stream().forEach(rec -> {
                     //存在记录但是没有入库
                     if (!dataBases.contains(rec.getRecId())) {
-                        if (havingLossIds == null || !havingLossIds.contains(rec.getRecId())) {
-                            BlocklossResult blocklossResult = new BlocklossResult();
-                            blocklossResult.setBehospitalCode(rec.getBehospitalCode());
-                            blocklossResult.setRecId(rec.getRecId());
-                            blocklossResult.setRecTitle(rec.getRecTitle());
-                            blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
-                            blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
-                            if (hisMedicalRecordMap.get(rec.getBehospitalCode()) != null) {
-                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
-                            }
-                            //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                            inInserts.add(blocklossResult);
+                        BlocklossResult blocklossResult = new BlocklossResult();
+                        blocklossResult.setBehospitalCode(rec.getBehospitalCode());
+                        blocklossResult.setRecId(rec.getRecId());
+                        blocklossResult.setRecTitle(rec.getRecTitle());
+                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
+                        blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
+                        if (hisMedicalRecordMap.get(rec.getBehospitalCode()) != null) {
+                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
                         }
+                        //拼装病历数据块丢失明细其他信息
+                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                        inInserts.add(blocklossResult);
                     }
                 });
                 //判断只插入文书id的情况
                 //获取插入的文书
-                if (ListUtil.isNotEmpty(dataBases)) {
-                    List<String> havingRecIds = medicalRecordContentFacade.list(new QueryWrapper<MedicalRecordContent>()
-                            .select("rec_id")
-                            .in("rec_id", dataBases)).stream().map(MedicalRecordContent::getRecId).collect(Collectors.toList());
-                    List<String> tempList = new ArrayList<>(dataBases);
-                    //移除查出来有内容的文书
-                    tempList.removeAll(havingRecIds);
-                    Map<String, GetOperationLogDTO> recMap = EntityUtil.makeEntityMap(logs, "recId");
-                    //有文书id无内容文书
-                    tempList.stream().forEach(recId -> {
-                        //没有被记录过
-                        if (havingLossIds == null || !havingLossIds.contains(recId)) {
-                            BlocklossResult blocklossResult = new BlocklossResult();
-                            blocklossResult.setBehospitalCode(recMap.get(recId).getBehospitalCode());
-                            blocklossResult.setRecId(recId);
-                            blocklossResult.setRecTitle(recMap.get(recId).getRecTitle());
-                            blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
-                            blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
-                            blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
-                            if (hisMedicalRecordMap.get(recMap.get(recId)) != null) {
-                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
-                            }
-                            //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                            inInserts.add(blocklossResult);
-                        }
-                    });
-                }
+//                if (ListUtil.isNotEmpty(dataBases)) {
+//                    List<String> havingRecIds = medicalRecordContentFacade.list(new QueryWrapper<MedicalRecordContent>()
+//                            .select("rec_id")
+//                            .in("rec_id", dataBases)).stream().map(MedicalRecordContent::getRecId).collect(Collectors.toList());
+//                    List<String> tempList = new ArrayList<>(dataBases);
+//                    //移除查出来有内容的文书
+//                    tempList.removeAll(havingRecIds);
+//                    Map<String, GetOperationLogDTO> recMap = EntityUtil.makeEntityMap(logs, "recId");
+//                    //有文书id无内容文书
+//                    tempList.stream().forEach(recId -> {
+//                        //没有被记录过
+//                        BlocklossResult blocklossResult = new BlocklossResult();
+//                        blocklossResult.setBehospitalCode(recMap.get(recId).getBehospitalCode());
+//                        blocklossResult.setRecId(recId);
+//                        blocklossResult.setRecTitle(recMap.get(recId).getRecTitle());
+//                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
+//                        blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
+//                        blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
+//                        if (hisMedicalRecordMap.get(recMap.get(recId)) != null) {
+//                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
+//                        }
+//                        //拼装病历数据块丢失明细其他信息
+//                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+//                        inInserts.add(blocklossResult);
+//                    });
+//                }
 
                 break;
             case "1":
@@ -367,20 +329,18 @@ public class BlockLossManagementFacade {
                 logs.stream().forEach(homePages -> {
                     //存在记录但是没有入库
                     if (!dataBases.contains(homePages.getRecId())) {
-                        if (havingLossIds == null || !havingLossIds.contains(homePages.getHomePageId())) {
-                            BlocklossResult blocklossResult = new BlocklossResult();
-                            blocklossResult.setBehospitalCode(homePages.getBehospitalCode());
-                            blocklossResult.setRecId(homePages.getHomePageId());
-                            blocklossResult.setRecTitle("病案首页丢失");
-                            blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
-                            blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
-                            if (hisMedicalRecordMap.get(homePages.getBehospitalCode()) != null) {
-                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
-                            }
-                            //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                            inInserts.add(blocklossResult);
+                        BlocklossResult blocklossResult = new BlocklossResult();
+                        blocklossResult.setBehospitalCode(homePages.getBehospitalCode());
+                        blocklossResult.setRecId(homePages.getHomePageId());
+                        blocklossResult.setRecTitle("病案首页丢失");
+                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
+                        blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
+                        if (hisMedicalRecordMap.get(homePages.getBehospitalCode()) != null) {
+                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
                         }
+                        //拼装病历数据块丢失明细其他信息
+                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                        inInserts.add(blocklossResult);
                     }
                 });
                 break;
@@ -389,18 +349,16 @@ public class BlockLossManagementFacade {
                 logs.stream().forEach(beHehospitalInfo -> {
                     //存在记录但是没有入库
                     if (!dataBases.contains(beHehospitalInfo.getBehospitalCode())) {
-                        if (havingLossIds == null || !havingLossIds.contains(beHehospitalInfo.getBehospitalCode())) {
-                            BlocklossResult blocklossResult = new BlocklossResult();
-                            blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
-                            blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
-                            blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
-                            if (hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()) != null) {
-                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
-                            }
-                            //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                            inInserts.add(blocklossResult);
+                        BlocklossResult blocklossResult = new BlocklossResult();
+                        blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
+                        blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
+                        blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
+                        if (hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()) != null) {
+                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
                         }
+                        //拼装病历数据块丢失明细其他信息
+                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                        inInserts.add(blocklossResult);
                     }
                 });
                 break;
@@ -499,14 +457,13 @@ public class BlockLossManagementFacade {
      * @param logs                日志数据
      * @param type                对比类型:0:文书丢失 1:病案首页丢失 2:患者信息丢失
      * @param outInserts          外部丢失插入集合
-     * @param havingLossIds       已经插入的id集合
      * @param hisMedicalRecordMap his病历数据map(key-住院序号:value-人的his数据)
      * @param hospitalId          医院id
      * @param principleId         操作人id
      * @Return void
      */
     private void compareHisWithLog(List<GetOperationLogDTO> medicalRecords, List<GetOperationLogDTO> logs,
-                                   String type, List<BlocklossResult> outInserts, List<String> havingLossIds,
+                                   String type, List<BlocklossResult> outInserts,
                                    Map<String, HisMedicalRecordDTO> hisMedicalRecordMap, Long hospitalId, Long principleId) {
         //his数据为空直接返回
         if (ListUtil.isEmpty(medicalRecords)) {
@@ -520,18 +477,16 @@ public class BlockLossManagementFacade {
                     if (StringUtil.isNotEmpty(medicalRecord.getRecId())) {
                         if (!recLogs.contains(medicalRecord.getRecId())) {
                             //该记录没有插入
-                            if (havingLossIds == null || ListUtil.isNotEmpty(havingLossIds) && !havingLossIds.contains(medicalRecord.getRecId())) {
-                                BlocklossResult blocklossResult = new BlocklossResult();
-                                blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
-                                blocklossResult.setRecId(medicalRecord.getRecId());
-                                blocklossResult.setRecTitle(medicalRecord.getRecTitle());
-                                blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
-                                blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
-                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
-                                //拼装病历数据块丢失明细其他信息
-                                assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                                outInserts.add(blocklossResult);
-                            }
+                            BlocklossResult blocklossResult = new BlocklossResult();
+                            blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
+                            blocklossResult.setRecId(medicalRecord.getRecId());
+                            blocklossResult.setRecTitle(medicalRecord.getRecTitle());
+                            blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
+                            blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
+                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
+                            //拼装病历数据块丢失明细其他信息
+                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                            outInserts.add(blocklossResult);
                         }
                     }
                 });
@@ -541,18 +496,16 @@ public class BlockLossManagementFacade {
                 medicalRecords.stream().forEach(medicalRecord -> {
                     //病案首页不存在操作记录
                     if (StringUtil.isNotEmpty(medicalRecord.getHomePageId()) && !homepageLogs.contains(medicalRecord.getHomePageId())) {
-                        if (havingLossIds == null || ListUtil.isNotEmpty(havingLossIds) && !havingLossIds.contains(medicalRecord.getHomePageId())) {
-                            BlocklossResult blocklossResult = new BlocklossResult();
-                            blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
-                            blocklossResult.setRecId(medicalRecord.getHomePageId());
-                            blocklossResult.setRecTitle("病案首页丢失");
-                            blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
-                            blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
-                            //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                            outInserts.add(blocklossResult);
-                        }
+                        BlocklossResult blocklossResult = new BlocklossResult();
+                        blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
+                        blocklossResult.setRecId(medicalRecord.getHomePageId());
+                        blocklossResult.setRecTitle("病案首页丢失");
+                        blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
+                        blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
+                        blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
+                        //拼装病历数据块丢失明细其他信息
+                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                        outInserts.add(blocklossResult);
                     }
                 });
                 break;
@@ -561,16 +514,14 @@ public class BlockLossManagementFacade {
                 medicalRecords.stream().forEach(medicalRecord -> {
                     //病历数据不存在操作记录
                     if (!behospitalCodeLogs.contains(medicalRecord.getBehospitalCode())) {
-                        if (havingLossIds == null || ListUtil.isNotEmpty(havingLossIds) && !havingLossIds.contains(medicalRecord.getBehospitalCode())) {
-                            BlocklossResult blocklossResult = new BlocklossResult();
-                            blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
-                            blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
-                            blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
-                            //拼装病历数据块丢失明细其他信息
-                            assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
-                            outInserts.add(blocklossResult);
-                        }
+                        BlocklossResult blocklossResult = new BlocklossResult();
+                        blocklossResult.setBehospitalCode(medicalRecord.getBehospitalCode());
+                        blocklossResult.setLossWay(LossWayEnum.OUT_LOSS.getKey());
+                        blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
+                        blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(medicalRecord.getBehospitalCode()).getBehospitalDate());
+                        //拼装病历数据块丢失明细其他信息
+                        assembleOtherBlocklossResult(blocklossResult, hospitalId, principleId);
+                        outInserts.add(blocklossResult);
                     }
                 });
                 break;

+ 69 - 24
daqe-center/src/main/java/com/lantone/daqe/facade/ColumnResultManagementFacade.java

@@ -262,6 +262,8 @@ public class ColumnResultManagementFacade {
             hospitalId=SysUserUtils.getCurrentHospitalId();
             principleId=SysUserUtils.getCurrentPrincipleId();
         }
+        //获取所有包含rec_id的表名
+        List<String> recColumnTable = getRecColumnTable();
         dataCheckVO.setHospitalId(hospitalId);
         String behospitalCode = dataCheckVO.getBehospitalCode();
         //传入BehospitalCode 只针对单个病历进行校验
@@ -276,7 +278,7 @@ public class ColumnResultManagementFacade {
             }
             behospitalCodeList.add(behospitalCode);
             //对于集合病历所有校验规则校验其表信息字段
-            checkTableColumnVal(behospitalCodeList,hospitalId,principleId);
+            checkTableColumnVal(behospitalCodeList,hospitalId,principleId,recColumnTable);
         }
         //对于只传时间不传病历的情况
         //创建一个病历集合
@@ -290,7 +292,7 @@ public class ColumnResultManagementFacade {
                 behospitalCodeList.add(behospitalInfo.getBehospitalCode());
             }
             //对于集合病历所有校验规则校验其表信息字段
-            checkTableColumnVal(behospitalCodeList,hospitalId,principleId);
+            checkTableColumnVal(behospitalCodeList,hospitalId,principleId,recColumnTable);
         }
         return true;
     }
@@ -302,23 +304,23 @@ public class ColumnResultManagementFacade {
      * @param behospitalCodeList
      * @return: 具体数据
      */
-    public void checkTableColumnVal(List<String> behospitalCodeList,Long hospitalId,Long principleId) {
+    public void checkTableColumnVal(List<String> behospitalCodeList,Long hospitalId,Long principleId,List<String> recColumnTable) {
         //先获取非空的所有字段校验规则
         List<NonnullInfo> nonnullInfos = getNonnullInfo();
         if (ListUtil.isNotEmpty(nonnullInfos)) {
             //调用校验非空规则方法
-            checkNonnull(nonnullInfos, behospitalCodeList, hospitalId,principleId);
+            checkNonnull(nonnullInfos, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
         //获取正则所有字段校验规则
         List<GetRegular> regularMappings = getRegularMapping();
         if (ListUtil.isNotEmpty(regularMappings)) {
             //调用校验正则规则
-            checkRegular(regularMappings, behospitalCodeList, hospitalId,principleId);
+            checkRegular(regularMappings, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
         //获取字段校验的标准值规则
         List<GetStandardvalueInfoDTO> standardvalueInfo = getStandardvalueInfo();
         if (ListUtil.isNotEmpty(standardvalueInfo)) {
-            checkStandardvalue(standardvalueInfo, behospitalCodeList, hospitalId,principleId);
+            checkStandardvalue(standardvalueInfo, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
     }
 
@@ -389,22 +391,44 @@ public class ColumnResultManagementFacade {
                 }
             }
         }
+        //获取所有包含rec_id的表名
+        List<String> recColumnTable = getRecColumnTable();
         //非空校验规则今天有修改
         if (ListUtil.isNotEmpty(nonnullInfoList) && ListUtil.isNotEmpty(behospitalCodeList)) {
             //调用校验非空规则方法
-            checkNonnull(nonnullInfos, behospitalCodeList, hospitalId,principleId);
+            checkNonnull(nonnullInfos, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
         //正则校验规则今天有修改
         if (ListUtil.isNotEmpty(regularList) && ListUtil.isNotEmpty(behospitalCodeList)) {
             //调用校验正则规则
-            checkRegular(regularMappings, behospitalCodeList, hospitalId,principleId);
+            checkRegular(regularMappings, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
         //标准值校验规则今天有修改
         if (ListUtil.isNotEmpty(standardvalueList) && ListUtil.isNotEmpty(behospitalCodeList)) {
             //调用校验正则规则
-            checkStandardvalue(standardvalueInfo, behospitalCodeList, hospitalId,principleId);
+            checkStandardvalue(standardvalueInfo, behospitalCodeList, hospitalId,principleId,recColumnTable);
         }
     }
+    /**
+     *
+     *获取所有包含rec_id的表名
+     * @param
+     * @return:
+     */
+    public List<String> getRecColumnTable(){
+        //获取所有包含rec_id的表名
+        List<ColumnInfo> columnInfoList = columnInfoFacade.getBaseMapper().selectList(new QueryWrapper<ColumnInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("column_ename", "rec_id")
+        );
+        List<String> recColumnTable = new ArrayList<>();
+        if(ListUtil.isNotEmpty(columnInfoList)) {
+            for (ColumnInfo columnInfo : columnInfoList) {
+                recColumnTable.add(columnInfo.getTableEname());
+            }
+        }
+        return recColumnTable;
+    }
 
     /**
      * 获取时间段内所有病历
@@ -464,7 +488,7 @@ public class ColumnResultManagementFacade {
      * @param hospitalId
      * @return:
      */
-    public void checkNonnull(List<NonnullInfo> nonnullInfos, List<String> behospitalCodeList, Long hospitalId,Long principleId) {
+    public void checkNonnull(List<NonnullInfo> nonnullInfos, List<String> behospitalCodeList, Long hospitalId,Long principleId,List<String> recColumnTable) {
         for (NonnullInfo nonnullInfo : nonnullInfos) {
             Long columnId = nonnullInfo.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -478,7 +502,7 @@ public class ColumnResultManagementFacade {
             getTableColumnInfoVO.setHospitalId(hospitalId);
             String columnNumber = getColumnNumber(columnInfo.getTableCname());
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
-            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
+            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO,recColumnTable);
             //枚举获取模块信息
             String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
             String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
@@ -504,8 +528,12 @@ public class ColumnResultManagementFacade {
                     nonnullResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
                     nonnullResult.setModeId(getTableColumnInfoDTO.getModeId());
                     nonnullResult.setModeName(getTableColumnInfoDTO.getModeName());
-                    nonnullResult.setHosptialDatatmpCode(modeId);
-                    nonnullResult.setHosptialDatatmpName(modeName);
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                        nonnullResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                    }
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                        nonnullResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                    }
                     nonnullResult.setColumnId(nonnullInfo.getColumnId());
                     nonnullResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
                     nonnullResult.setTableCname(columnInfo.getTableCname());
@@ -540,7 +568,7 @@ public class ColumnResultManagementFacade {
      * @param hospitalId
      * @return:
      */
-    public void checkRegular(List<GetRegular> regularMappings, List<String> behospitalCodeList, Long hospitalId,Long principleId) {
+    public void checkRegular(List<GetRegular> regularMappings, List<String> behospitalCodeList, Long hospitalId,Long principleId,List<String> recColumnTable) {
         for (GetRegular getRegular : regularMappings) {
             Long columnId = getRegular.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -553,7 +581,7 @@ public class ColumnResultManagementFacade {
             getTableColumnInfoVO.setHospitalId(hospitalId);
             String columnNumber = getColumnNumber(columnInfo.getTableCname());
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
-            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
+            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO,recColumnTable);
             String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
             String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
             String regular = getRegular.getVal();
@@ -582,8 +610,12 @@ public class ColumnResultManagementFacade {
                     regularResult.setTableEname(columnInfo.getTableEname());
                     regularResult.setColumnCname(columnInfo.getColumnCname());
                     regularResult.setColumnEname(columnInfo.getColumnEname());
-                    regularResult.setHosptialDatatmpCode(modeId);
-                    regularResult.setHosptialDatatmpName(modeName);
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                        regularResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                    }
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                        regularResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                    }
                     regularResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
                     regularResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
                     regularResult.setRegularId(getRegular.getId());
@@ -617,7 +649,7 @@ public class ColumnResultManagementFacade {
      * @param hospitalId
      * @return:
      */
-    public void checkStandardvalue(List<GetStandardvalueInfoDTO> standardvalueInfos, List<String> behospitalCodeList, Long hospitalId,Long principleId) {
+    public void checkStandardvalue(List<GetStandardvalueInfoDTO> standardvalueInfos, List<String> behospitalCodeList, Long hospitalId,Long principleId,List<String> recColumnTable) {
         for (GetStandardvalueInfoDTO standardvalueInfo : standardvalueInfos) {
             Long columnId = standardvalueInfo.getColumnId();
             ColumnInfo columnInfo = columnInfoFacade.getBaseMapper().selectById(columnId);
@@ -630,7 +662,7 @@ public class ColumnResultManagementFacade {
             getTableColumnInfoVO.setHospitalId(hospitalId);
             String columnNumber = getColumnNumber(columnInfo.getTableCname());
             getTableColumnInfoVO.setNumberColumnCname(columnNumber);
-            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO);
+            List<GetTableColumnInfoDTO> tableColumnVal = getTableColumnVal(getTableColumnInfoVO,recColumnTable);
             String standardvalue = standardvalueInfo.getStandardvalue();
             String modeId = ModeEnum.valueOf(columnInfo.getTableEname()).getKey();
             String modeName = ModeEnum.valueOf(columnInfo.getTableEname()).getName();
@@ -658,9 +690,13 @@ public class ColumnResultManagementFacade {
                     standardvalueResult.setModeName(getTableColumnInfoDTO.getModeName());
                     standardvalueResult.setColumnId(columnId);
                     standardvalueResult.setMappings(standardvalueMapping);
-                    standardvalueResult.setHosptialDatatmpCode(modeId);
                     standardvalueResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
-                    standardvalueResult.setHosptialDatatmpName(modeName);
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+                        standardvalueResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+                    }
+                    if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+                        standardvalueResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+                    }
                     standardvalueResult.setTableCname(columnInfo.getTableCname());
                     standardvalueResult.setBehospitalDate(getTableColumnInfoDTO.getBehospitalDate());
                     standardvalueResult.setTableEname(columnInfo.getTableEname());
@@ -691,7 +727,12 @@ public class ColumnResultManagementFacade {
      * @param getTableColumnInfoVO
      * @return: 具体数据
      */
-    public List<GetTableColumnInfoDTO> getTableColumnVal(GetTableColumnInfoVO getTableColumnInfoVO) {
+    public List<GetTableColumnInfoDTO> getTableColumnVal(GetTableColumnInfoVO getTableColumnInfoVO,List<String> recColumnTable) {
+        //判断此规则是否包含rec_id
+        if(ListUtil.isNotEmpty(recColumnTable) && recColumnTable.contains(getTableColumnInfoVO.getColumnEname())){
+            List<GetTableColumnInfoDTO> tableColumnVal = columnResultFacade.getBaseMapper().getRecSpecialTableColumnVal(getTableColumnInfoVO);
+            return tableColumnVal;
+        }
         List<GetTableColumnInfoDTO> tableColumnVal = columnResultFacade.getBaseMapper().getSpecialTableColumnVal(getTableColumnInfoVO);
         return tableColumnVal;
     }
@@ -818,8 +859,12 @@ public class ColumnResultManagementFacade {
         columnResult.setBehospitalCode(getTableColumnInfoDTO.getBehospitalCode());
         columnResult.setModeId(getTableColumnInfoDTO.getModeId());
         columnResult.setModeName(getTableColumnInfoDTO.getModeName());
-        columnResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getModeId().toString());
-        columnResult.setHosptialDatatmpName(getTableColumnInfoDTO.getModeName());
+        if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecId())) {
+            columnResult.setHosptialDatatmpCode(getTableColumnInfoDTO.getRecId());
+        }
+        if(StringUtil.isNotEmpty(getTableColumnInfoDTO.getRecTitle())) {
+            columnResult.setHosptialDatatmpName(getTableColumnInfoDTO.getRecTitle());
+        }
         columnResult.setHospitalDataCode(getTableColumnInfoDTO.getNumberId());
         columnResult.setColumnId(columnId);
         if(principleId!=null) {

+ 2 - 0
daqe-center/src/main/java/com/lantone/daqe/mapper/ColumnResultMapper.java

@@ -20,4 +20,6 @@ public interface ColumnResultMapper extends BaseMapper<ColumnResult> {
 
 
     List<GetTableColumnInfoDTO> getSpecialTableColumnVal(@Param("getTableColumnInfoVO") GetTableColumnInfoVO getTableColumnInfoVO);
+
+    List<GetTableColumnInfoDTO> getRecSpecialTableColumnVal(@Param("getTableColumnInfoVO") GetTableColumnInfoVO getTableColumnInfoVO);
 }

+ 41 - 0
daqe-center/src/main/resources/mapper/ColumnResultMapper.xml

@@ -60,4 +60,45 @@
         AND sdd.is_deleted = 'N'
         AND a.hospital_id = sdd.hospital_id
     </select>
+
+
+    <select id="getRecSpecialTableColumnVal" resultType="com.lantone.daqe.dto.GetTableColumnInfoDTO">
+        SELECT
+        a.behospital_code,
+        a.hospital_id,
+        sdd.id tableId,
+        a.behospital_date,
+        mmr.rec_id,
+        mmr.rec_title,
+        sdd.${getTableColumnInfoVO.columnEname} val,
+        sdd.${getTableColumnInfoVO.numberColumnCname} numberId
+        FROM
+        (
+        SELECT
+        behospital_code,
+        hospital_id,
+        behospital_date
+        FROM
+        med_behospital_info
+        WHERE
+        is_deleted = 'N'
+        <if test="getTableColumnInfoVO.hospitalId != null and getTableColumnInfoVO.hospitalId != ''">
+            AND hospital_id = #{getTableColumnInfoVO.hospitalId}
+        </if>
+        AND behospital_code in
+        <foreach collection="getTableColumnInfoVO.behospitalCodeList" item="behospitalCode" open="(" separator=","
+                 close=")">
+            #{behospitalCode}
+        </foreach>
+        ) a,
+        med_medical_record mmr ,
+        ${getTableColumnInfoVO.tableEname} sdd
+        where
+        a.behospital_code = mmr.behospital_code
+        and sdd.behospital_code = a.behospital_code
+        and sdd.rec_id=mmr.rec_id
+        AND sdd.is_deleted = 'N'
+        AND mmr.is_deleted = 'N'
+        AND a.hospital_id = sdd.hospital_id
+    </select>
 </mapper>

+ 7 - 1
daqe-center/src/main/resources/upgrade/V3__daqe_init_addtable.sql

@@ -107,4 +107,10 @@ CREATE TABLE `str_leave_hospital` (
 -- 3.修改`dc_regular_info`表-正则式值和描述大小
 -- ----------------------------
 ALTER TABLE `dc_regular_info` MODIFY COLUMN `description` varchar(256) DEFAULT NULL COMMENT '描述';
-ALTER TABLE `dc_regular_info` MODIFY COLUMN `val` varchar(512) DEFAULT NULL COMMENT '正则式值';
+ALTER TABLE `dc_regular_info` MODIFY COLUMN `val` varchar(512) DEFAULT NULL COMMENT '正则式值';
+
+-- ----------------------------
+-- 4.修改`dc_blockloss_result`表-rec_id默认值为null
+-- ----------------------------
+ALTER TABLE `dc_blockloss_result` MODIFY COLUMN `rec_id` varchar(50) DEFAULT NULL COMMENT '文书编号/病案首页编号';
+

+ 12 - 10
mdsp-service/src/main/java/com/lantone/facade/cdss/MappingConfigFacade.java

@@ -102,7 +102,9 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
     private MappingConfigService mappingConfigService;
     @Autowired
     private DictionaryFacade dictionaryFacade;
-
+    @Autowired
+    private SysUserUtils sysUserUtils;
+    
     /**
      * 分页查询
      *
@@ -112,7 +114,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
     @Override
     public IPage<MappingConfigWrapper> getPage(MappingConfigPageVO mappingConfigPageVO) {
         if (mappingConfigPageVO.getHospitalId() == null) {
-            mappingConfigPageVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+            mappingConfigPageVO.setHospitalId(Long.valueOf(sysUserUtils.getCurrentHospitalID()));
         }
 
         FilterVO filterVO = new FilterVO();
@@ -436,7 +438,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      */
     public void exportExcel(HttpServletResponse response, MappingConfigPageVO mappingConfigPageVO) {
         if (mappingConfigPageVO.getHospitalId() == null) {
-            mappingConfigPageVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+            mappingConfigPageVO.setHospitalId(Long.valueOf(sysUserUtils.getCurrentHospitalID()));
         }
         mappingConfigPageVO.setHisName("");
         mappingConfigPageVO.setHisDetailName("");
@@ -456,7 +458,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      */
     public List<MappingConfigWrapper> exportExcel_remote(MappingConfigPageVO mappingConfigPageVO) {
         if (mappingConfigPageVO.getHospitalId() == null) {
-            mappingConfigPageVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+            mappingConfigPageVO.setHospitalId(Long.valueOf(sysUserUtils.getCurrentHospitalID()));
         }
         mappingConfigPageVO.setHisName("");
         mappingConfigPageVO.setHisDetailName("");
@@ -1298,7 +1300,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      */
     public void importExcel(HttpServletResponse response, MultipartFile file, Long hospitalId, Integer type, String userId) {
         if (hospitalId == null) {
-            hospitalId = Long.valueOf(SysUserUtils.getCurrentHospitalID());
+            hospitalId = Long.valueOf(sysUserUtils.getCurrentHospitalID());
         }
         if (StringUtil.isBlank(userId)) {
             userId = SysUserUtils.getCurrentPrincipleID();
@@ -1325,7 +1327,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      */
     public List<MappingConfigWrapper> importExcel_remote(HttpServletResponse response, MultipartFile file, Long hospitalId, Integer type, String userId) {
         if (hospitalId == null) {
-            hospitalId = Long.valueOf(SysUserUtils.getCurrentHospitalID());
+            hospitalId = Long.valueOf(sysUserUtils.getCurrentHospitalID());
         }
         if (StringUtil.isBlank(userId)) {
             userId = SysUserUtils.getCurrentPrincipleID();
@@ -1350,7 +1352,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
      */
     public Boolean importExcelDataVerify(MultipartFile file, Long hospitalId, Integer type, String userId) {
         if (hospitalId == null) {
-            hospitalId = Long.valueOf(SysUserUtils.getCurrentHospitalID());
+            hospitalId = Long.valueOf(sysUserUtils.getCurrentHospitalID());
         }
         if (StringUtil.isBlank(userId)) {
             userId = SysUserUtils.getCurrentPrincipleID();
@@ -1947,7 +1949,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
     public List<MappingConfigWrapper> getRelatedMapping(MappingConfigVO mappingConfigVO) {
         List<MappingConfigWrapper> retList = Lists.newLinkedList();
         if (mappingConfigVO.getHospitalId() == null) {
-            mappingConfigVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+            mappingConfigVO.setHospitalId(Long.valueOf(sysUserUtils.getCurrentHospitalID()));
         }
         QueryWrapper<MappingConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -1986,7 +1988,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "请输入请输入术语类型:1-化验、3-辅检、4-诊断、5-药品、6-手术和操作、7-科室、8-输血、10-量表、11-护理、12-中医诊断、13-中医证候、14-麻醉、16-给药途径");
         }
         if (mappingConfig.getHospitalId() == null) {
-            mappingConfig.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+            mappingConfig.setHospitalId(Long.valueOf(sysUserUtils.getCurrentHospitalID()));
         }
         QueryWrapper<MappingConfig> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -2045,7 +2047,7 @@ public class MappingConfigFacade extends MappingConfigServiceImpl {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "标准术语不允许为空,请输入标准术语id");
         }
         if (mappingConfig.getHospitalId() == null) {
-            mappingConfig.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+            mappingConfig.setHospitalId(Long.valueOf(sysUserUtils.getCurrentHospitalID()));
         }
         String userId = "";
         if (StringUtil.isBlank(mappingConfig.getModifier())) {

+ 14 - 2
mdsp-service/src/main/java/com/lantone/util/SysUserUtils.java

@@ -1,12 +1,23 @@
 package com.lantone.util;
 
+import com.lantone.common.constant.AuthConstant;
+import com.lantone.common.service.RedisService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
 /**
  * @Description: 用户工具类
  * @author: gaodm
  * @time: 2018/8/3 17:46
  */
+@Component
 public class SysUserUtils {
 
+    @Autowired
+    private RedisService redisService;
+
     /**
      * 获取当前请求的用户ID
      *
@@ -21,8 +32,9 @@ public class SysUserUtils {
      *
      * @return
      */
-    public static String getCurrentHospitalID() {
-        return "3";
+    public String getCurrentHospitalID() {
+        Map<String, Map<String, Map<String, String>>> dicMap = redisService.get(AuthConstant.DIC_MAP_KEY);
+        return dicMap.get("0").get("53").get(com.lantone.common.util.SysUserUtils.getCurrentHospitalIdStr());
     }
 
 }

+ 12 - 7
security-center/src/main/java/com/lantone/security/facade/HospitalManagementFacade.java

@@ -234,6 +234,7 @@ public class HospitalManagementFacade {
         }
         return false;
     }
+
     /**
      * @param hospitalId
      * @Description删除组织
@@ -316,12 +317,12 @@ public class HospitalManagementFacade {
         roleIds.stream().forEach(roleId -> {
             deleteFlag.set(roleManagementFacade.delete(roleId));
         });
-//        if (deleteFlag.get()) {
-//            //3.删除用户
-//            return userManagementFacade.deleteUser(userIds.get(0));
-//        } else {
-//            Asserts.fail("管理角色删除失败");
-//        }
+        //        if (deleteFlag.get()) {
+        //            //3.删除用户
+        //            return userManagementFacade.deleteUser(userIds.get(0));
+        //        } else {
+        //            Asserts.fail("管理角色删除失败");
+        //        }
 
         return deleteFlag.get();
     }
@@ -513,13 +514,17 @@ public class HospitalManagementFacade {
      */
     public Map<String, Object> getManagerBoxInfo() {
         Map<String, Object> outMap = new HashMap<>();
-        String boxId = dictionaryInfoFacade.getOneDicMap(ReturnTypeEnum.INTERFACE.getKey(),DictionaryEnum.MANAGE_HIDE_MENU.getKey()+"").get("box");
+        String boxId = dictionaryInfoFacade.getOneDicMap(ReturnTypeEnum.INTERFACE.getKey(), DictionaryEnum.MANAGE_HIDE_MENU.getKey() + "").get("box");
         Map<String, List<GetDictionaryInfoByTypeDTO>> dicMapObj = dictionaryInfoFacade.getDicMapObj(ReturnTypeEnum.INTERFACE.getKey(),
                 Lists.newArrayList(boxId.split(",")));
         outMap.putAll(dicMapObj);
         outMap.remove(DictionaryEnum.HOSPITAL_TYPE.getKey() + "");
         //1.获取当前用户的组织类型
         int hospitalType = -1;
+        Long hospitalId = SysUserUtils.getCurrentHospitalId();
+        if (hospitalId == null) {
+            Asserts.fail("请求头医院id为空");
+        }
         Hospital hospital = hospitalFacade.getById(SysUserUtils.getCurrentHospitalId());
         if (hospital != null) {
             hospitalType = Integer.parseInt(hospital.getType());

+ 1 - 1
security-center/src/main/java/com/lantone/security/facade/LogManagementFacade.java

@@ -142,7 +142,7 @@ public class LogManagementFacade {
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
                 .ge(dataCompareVO.getStartDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()) && ListUtil.isEmpty(dataCompareVO.getBehospitalCodes()), "gmt_create", dataCompareVO.getStartDate())
                 .le(dataCompareVO.getEndDate() != null && StringUtil.isBlank(dataCompareVO.getBehospitalCode()) && ListUtil.isEmpty(dataCompareVO.getBehospitalCodes()), "gmt_create", dataCompareVO.getEndDate())
-                .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "behospital_code", dataCompareVO.getBehospitalCode())
+                .eq(StringUtil.isNotBlank(dataCompareVO.getBehospitalCode()), "remark", dataCompareVO.getBehospitalCode())
                 .in(ListUtil.isNotEmpty(dataCompareVO.getBehospitalCodes()), "remark", dataCompareVO.getBehospitalCodes())
                 .eq("operation_url", dataCompareVO.getOperationUrl()))
                 .stream().map(OperationLog::getOperationParam).collect(Collectors.toList());