Bläddra i källkod

正则重复校验、病历数据块日志去重

songxinlu 3 år sedan
förälder
incheckning
80dcfdbb8a

+ 32 - 6
daqe-center/src/main/java/com/lantone/daqe/facade/BlockLossManagementFacade.java

@@ -136,14 +136,16 @@ public class BlockLossManagementFacade {
         List<String> logCodes = null;
         //没有病历数据就不用去查病案首页和文书
         if (ListUtil.isNotEmpty(behospitalCodeLogs)) {
+            //日志去重防止多次操作
+            behospitalCodeLogs = removeRepeat(behospitalCodeLogs, "behospitalCode");
             logCodes = behospitalCodeLogs.stream().map(GetOperationLogDTO::getBehospitalCode).collect(Collectors.toList());
             dataCompareVO.setBehospitalCodes(logCodes);
             //病案首页数据
             dataCompareVO.setOperationUrl("save/saveHomePages");
-            homePageLogs = getOperationLogs(dataCompareVO);
+            homePageLogs = removeRepeat(getOperationLogs(dataCompareVO), "homePageId");
             //文书数据
             dataCompareVO.setOperationUrl("save/saveRecs");
-            recLogs = getOperationLogs(dataCompareVO);
+            recLogs = removeRepeat(getOperationLogs(dataCompareVO), "recTitle");
         }
 
         //获取库中数据
@@ -263,6 +265,22 @@ public class BlockLossManagementFacade {
         return flag;
     }
 
+    /**
+     * 数据去重
+     *
+     * @param homePageLogs
+     * @param key
+     * @Return java.util.List<com.lantone.common.dto.GetOperationLogDTO>
+     */
+    private List<GetOperationLogDTO> removeRepeat(List<GetOperationLogDTO> homePageLogs, String key) {
+        Map<String, GetOperationLogDTO> tempMap = EntityUtil.makeEntityMap(homePageLogs, key);
+        List<GetOperationLogDTO> out = new ArrayList<>();
+        tempMap.keySet().stream().forEach(id -> {
+            out.add(tempMap.get(id));
+        });
+        return out;
+    }
+
     /**
      * 日志与入库数据对比
      *
@@ -290,7 +308,9 @@ public class BlockLossManagementFacade {
                             blocklossResult.setRecTitle(rec.getRecTitle());
                             blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
                             blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
+                            if (hisMedicalRecordMap.get(rec.getBehospitalCode()) != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(rec.getBehospitalCode()).getBehospitalDate());
+                            }
                             //拼装病历数据块丢失明细其他信息
                             assembleOtherBlocklossResult(blocklossResult);
                             inInserts.add(blocklossResult);
@@ -318,7 +338,9 @@ public class BlockLossManagementFacade {
                             blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
                             blocklossResult.setLossType(LossTypeEnum.REC_LOSS.getKey());
                             blocklossResult.setLossCause("文书id插入成功,文书内容没有插入");
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
+                            if (hisMedicalRecordMap.get(recMap.get(recId)) != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(recMap.get(recId).getBehospitalCode()).getBehospitalDate());
+                            }
                             //拼装病历数据块丢失明细其他信息
                             assembleOtherBlocklossResult(blocklossResult);
                             inInserts.add(blocklossResult);
@@ -339,7 +361,9 @@ public class BlockLossManagementFacade {
                             blocklossResult.setRecTitle("病案首页丢失");
                             blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
                             blocklossResult.setLossType(LossTypeEnum.HOMEPAGE_LOSS.getKey());
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
+                            if (hisMedicalRecordMap.get(homePages.getBehospitalCode()) != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(homePages.getBehospitalCode()).getBehospitalDate());
+                            }
                             //拼装病历数据块丢失明细其他信息
                             assembleOtherBlocklossResult(blocklossResult);
                             inInserts.add(blocklossResult);
@@ -357,7 +381,9 @@ public class BlockLossManagementFacade {
                             blocklossResult.setBehospitalCode(beHehospitalInfo.getBehospitalCode());
                             blocklossResult.setLossWay(LossWayEnum.IN_LOSS.getKey());
                             blocklossResult.setLossType(LossTypeEnum.CODE_LOSS.getKey());
-                            blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
+                            if (hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()) != null) {
+                                blocklossResult.setBehospitalDate(hisMedicalRecordMap.get(beHehospitalInfo.getBehospitalCode()).getBehospitalDate());
+                            }
                             //拼装病历数据块丢失明细其他信息
                             assembleOtherBlocklossResult(blocklossResult);
                             inInserts.add(blocklossResult);

+ 10 - 11
daqe-center/src/main/java/com/lantone/daqe/facade/RegularManagementFacade.java

@@ -130,21 +130,20 @@ public class RegularManagementFacade {
         regularInfo.setIsDeleted(IsDeleteEnum.Y.getKey());
         if (regularInfoFacade.updateById(regularInfo)) {
             //删除表字段的实际值与正则式关联关系
-            if (regularMappingFacade.update(new UpdateWrapper<RegularMapping>()
+            return regularMappingFacade.update(new UpdateWrapper<RegularMapping>()
                     .eq("regular_id", id)
                     .eq("is_deleted", IsDeleteEnum.N.getKey())
                     .set("modifier", SysUserUtils.getCurrentPrinciple() == null ? "0" : SysUserUtils.getCurrentPrinciple())
                     .set("gmt_modified", DateUtil.now())
-                    .set("is_deleted", IsDeleteEnum.Y.getKey()))) {
-                //删除表字段的正则式校验结果表中的正则式
-                return regularResultFacade.update(new UpdateWrapper<RegularResult>()
-                        .eq(hospitalId != null, "hospital_id", hospitalId)
-                        .eq("regular_id", id)
-                        .eq("is_deleted", IsDeleteEnum.N.getKey())
-                        .set("modifier", SysUserUtils.getCurrentPrinciple() == null ? "0" : SysUserUtils.getCurrentPrinciple())
-                        .set("gmt_modified", DateUtil.now())
-                        .set("is_deleted", IsDeleteEnum.Y.getKey()));
-            }
+                    .set("is_deleted", IsDeleteEnum.Y.getKey()));
+            //删除表字段的正则式校验结果表中的正则式
+//            return regularResultFacade.update(new UpdateWrapper<RegularResult>()
+//                    .eq(hospitalId != null, "hospital_id", hospitalId)
+//                    .eq("regular_id", id)
+//                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+//                    .set("modifier", SysUserUtils.getCurrentPrinciple() == null ? "0" : SysUserUtils.getCurrentPrinciple())
+//                    .set("gmt_modified", DateUtil.now())
+//                    .set("is_deleted", IsDeleteEnum.Y.getKey()));
 
         }
         return false;

+ 0 - 1
daqe-center/src/main/java/com/lantone/daqe/facade/base/RegularInfoFacade.java

@@ -15,7 +15,6 @@ public class RegularInfoFacade extends RegularInfoServiceImpl {
     public boolean isExist(RegularInfo regularInfo) {
         boolean flag = false;
         RegularInfo regular = this.getOne(new QueryWrapper<RegularInfo>()
-                .eq("val", regularInfo.getVal())
                 .eq("name", regularInfo.getName()));
         if (regular != null) {
             flag = true;

+ 28 - 0
daqe-center/src/main/resources/upgrade/V2__daqe_init_uptable.sql

@@ -0,0 +1,28 @@
+-- ----------------------------
+-- 1.修改`dc_blockloss_result`表-丢失原因字段长度为256
+-- ----------------------------
+ALTER TABLE `dc_blockloss_result` MODIFY COLUMN `loss_cause` varchar(256)  DEFAULT NULL COMMENT '丢失原因';
+-- ----------------------------
+-- 2.修改`dc_regular_info`表-描述字段 为选填
+-- ----------------------------
+ALTER TABLE `dc_regular_info` MODIFY COLUMN `description` varchar(512) DEFAULT NULL COMMENT '描述';
+-- ----------------------------
+-- 3.修改`dc_column_result`表-新增入院日期字段
+-- ----------------------------
+ALTER TABLE `dc_column_result`
+ADD COLUMN `behospital_date`  datetime NULL DEFAULT NULL COMMENT '入院日期' AFTER `description`;
+-- ----------------------------
+-- 4.修改 `dc_nonnull_result`表-新增入院日期字段
+-- ----------------------------
+ALTER TABLE `dc_nonnull_result`
+ADD COLUMN `behospital_date`  datetime NULL DEFAULT NULL COMMENT '入院日期' AFTER `description`;
+-- ----------------------------
+-- 5.修改`dc_standardvalue_result`表-新增入院日期字段
+-- ----------------------------
+ALTER TABLE `dc_standardvalue_result`
+ADD COLUMN `behospital_date`  datetime NULL DEFAULT NULL COMMENT '入院日期' AFTER `description`;
+-- ----------------------------
+-- 6.修改`dc_regular_result`表-新增入院日期字段
+-- ----------------------------
+ALTER TABLE `dc_regular_result`
+ADD COLUMN `behospital_date`  datetime NULL DEFAULT NULL COMMENT '入院日期' AFTER `description`;