Преглед на файлове

Merge branch 'develop' into dev/20200601lltkg_v1.5.0

gaodm преди 5 години
родител
ревизия
56f5f66db2
променени са 27 файла, в които са добавени 628 реда и са изтрити 38 реда
  1. 23 0
      docs/036.20200526终末质控1.3.0/init_qc.sql
  2. 2 0
      mrman-service/src/main/java/com/diagbot/dto/GetModuleInfoOneDTO.java
  3. 31 0
      mrman-service/src/main/java/com/diagbot/dto/MedRecordAnalyzeDTO.java
  4. 73 0
      mrman-service/src/main/java/com/diagbot/entity/MedModuleMapping.java
  5. 95 0
      mrman-service/src/main/java/com/diagbot/entity/MedRecordAnalyze.java
  6. 14 0
      mrman-service/src/main/java/com/diagbot/facade/MedModuleMappingFacade.java
  7. 25 0
      mrman-service/src/main/java/com/diagbot/facade/MedRecordAnalyzeFacade.java
  8. 37 11
      mrman-service/src/main/java/com/diagbot/facade/QcModuleDetailFacade.java
  9. 59 15
      mrman-service/src/main/java/com/diagbot/facade/QcModuleInfoFacade.java
  10. 1 1
      mrman-service/src/main/java/com/diagbot/facade/QcTypeFacade.java
  11. 16 0
      mrman-service/src/main/java/com/diagbot/mapper/MedModuleMappingMapper.java
  12. 23 0
      mrman-service/src/main/java/com/diagbot/mapper/MedRecordAnalyzeMapper.java
  13. 16 0
      mrman-service/src/main/java/com/diagbot/service/MedModuleMappingService.java
  14. 23 0
      mrman-service/src/main/java/com/diagbot/service/MedRecordAnalyzeService.java
  15. 0 1
      mrman-service/src/main/java/com/diagbot/service/QcModuleInfoService.java
  16. 20 0
      mrman-service/src/main/java/com/diagbot/service/impl/MedModuleMappingServiceImpl.java
  17. 33 0
      mrman-service/src/main/java/com/diagbot/service/impl/MedRecordAnalyzeServiceImpl.java
  18. 1 1
      mrman-service/src/main/java/com/diagbot/vo/AddModuleInfoVO.java
  19. 1 0
      mrman-service/src/main/java/com/diagbot/vo/GetModuleInfoVO.java
  20. 20 0
      mrman-service/src/main/java/com/diagbot/vo/ModuleIndexVO.java
  21. 2 2
      mrman-service/src/main/java/com/diagbot/vo/UpdateModuleInfoVO.java
  22. 23 5
      mrman-service/src/main/java/com/diagbot/web/QcModuleInfoController.java
  23. 18 0
      mrman-service/src/main/resources/mapper/MedModuleMappingMapper.xml
  24. 68 0
      mrman-service/src/main/resources/mapper/MedRecordAnalyzeMapper.xml
  25. 0 1
      mrman-service/src/main/resources/mapper/QcCasesEntryMapper.xml
  26. 3 0
      mrman-service/src/main/resources/mapper/QcModuleInfoMapper.xml
  27. 1 1
      mrman-service/src/test/java/com/diagbot/CodeGeneration.java

+ 23 - 0
docs/036.20200526终末质控1.3.0/init_qc.sql

@@ -0,0 +1,23 @@
+use `qc`;
+
+alter table qc_module_info MODIFY COLUMN `record_module_id` bigint(20) NOT NULL DEFAULT '0' COMMENT 'med_record_module的id';
+
+-- ----------------------------
+-- Table structure for med_module_mapping
+-- ----------------------------
+DROP TABLE IF EXISTS `med_module_mapping`;
+CREATE TABLE `med_module_mapping` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `module_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '模板id',
+  `record_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '文书id(med_record_analyze中的id)',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `remark` varchar(128) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`id`),
+  KEY `module_id` (`module_id`),
+  KEY `record_id` (`record_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='模板与文书映射关系表';

+ 2 - 0
mrman-service/src/main/java/com/diagbot/dto/GetModuleInfoOneDTO.java

@@ -24,6 +24,8 @@ public class GetModuleInfoOneDTO {
     private Long modeId;
     //模板明细
     private Map<Integer, List<QcModuleDetailDTO>> moduleDetail;
+    // 已选择的文书
+    private List<MedRecordAnalyzeDTO> recordAnalyzeList;
     //备注
     private String remark;
 }

+ 31 - 0
mrman-service/src/main/java/com/diagbot/dto/MedRecordAnalyzeDTO.java

@@ -0,0 +1,31 @@
+package com.diagbot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+@Data
+public class MedRecordAnalyzeDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    /**
+     * 医院病历文书类型细分类名称
+     */
+    private String name;
+
+    /**
+     * 病历号示例
+     */
+    private String behospitalCodes;
+}

+ 73 - 0
mrman-service/src/main/java/com/diagbot/entity/MedModuleMapping.java

@@ -0,0 +1,73 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 模板与文书映射关系表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+@Data
+public class MedModuleMapping implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 模板id
+     */
+    private Long moduleId;
+
+    /**
+     * 文书id
+     */
+    private Long recordId;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 95 - 0
mrman-service/src/main/java/com/diagbot/entity/MedRecordAnalyze.java

@@ -0,0 +1,95 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+@Data
+public class MedRecordAnalyze implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 医院病历文书类型细分类名称
+     */
+    private String name;
+
+    /**
+     * 数据模块ID
+     */
+    private Long modeId;
+
+    /**
+     * 数据模块名称
+     */
+    private String modeName;
+
+    /**
+     * 医院病历文书类型
+     */
+    private String recType;
+
+    /**
+     * 病历号示例
+     */
+    private String behospitalCodes;
+
+    /**
+     * 医院病历文书类型细分类
+     */
+    private String mapType;
+
+    /**
+     * key集合,用英文逗号隔开
+     */
+    private String mapKeys;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 14 - 0
mrman-service/src/main/java/com/diagbot/facade/MedModuleMappingFacade.java

@@ -0,0 +1,14 @@
+package com.diagbot.facade;
+
+import com.diagbot.service.impl.MedModuleMappingServiceImpl;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhoutg
+ * @Description:
+ * @date 2020-04-26 17:24
+ */
+@Component
+public class MedModuleMappingFacade extends MedModuleMappingServiceImpl {
+
+}

+ 25 - 0
mrman-service/src/main/java/com/diagbot/facade/MedRecordAnalyzeFacade.java

@@ -0,0 +1,25 @@
+package com.diagbot.facade;
+
+import com.diagbot.dto.MedRecordAnalyzeDTO;
+import com.diagbot.service.impl.MedRecordAnalyzeServiceImpl;
+import com.diagbot.vo.ModuleIndexVO;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author zhoutg
+ * @Description:
+ * @date 2020-04-26 17:24
+ */
+@Component
+public class MedRecordAnalyzeFacade extends MedRecordAnalyzeServiceImpl {
+
+    public List<MedRecordAnalyzeDTO> getByModuleIdFac(Long id) {
+        return this.getByModuleId(id);
+    }
+
+    public List<MedRecordAnalyzeDTO> indexFac(ModuleIndexVO moduleIndexVO) {
+        return this.index(moduleIndexVO);
+    }
+}

+ 37 - 11
mrman-service/src/main/java/com/diagbot/facade/QcModuleDetailFacade.java

@@ -1,12 +1,15 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.entity.MedModuleMapping;
 import com.diagbot.entity.QcModuleDetail;
-import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.MedModuleMappingService;
 import com.diagbot.service.QcModuleDetailService;
 import com.diagbot.service.impl.QcModuleDetailServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddModuleDetailVO;
 import com.diagbot.vo.AddModuleInfoVO;
@@ -28,10 +31,13 @@ import java.util.Map;
 public class QcModuleDetailFacade extends QcModuleDetailServiceImpl {
 
     @Autowired
-    private QcModuleInfoFacade moduleInfoFacade;
+    QcModuleInfoFacade moduleInfoFacade;
     @Autowired
     @Qualifier("qcModuleDetailServiceImpl")
-    private QcModuleDetailService qcModuleDetailService;
+    QcModuleDetailService qcModuleDetailService;
+    @Autowired
+    @Qualifier("medModuleMappingServiceImpl")
+    MedModuleMappingService medModuleMappingService;
 
     /**
      * 根据questionId删除明细
@@ -63,14 +69,12 @@ public class QcModuleDetailFacade extends QcModuleDetailServiceImpl {
     public Boolean saveOrUpdateInfos(AddModuleInfoVO addModuleInfoVO, Long moduleId) {
         String userId = UserUtils.getCurrentPrincipleID();
         Date now = DateUtil.now();
-      //如果该模板添加过明细,先删除
-        UpdateWrapper<QcModuleDetail> moduleDetailUpdateWrapper = new UpdateWrapper<>();
-        moduleDetailUpdateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("module_id", moduleId)
-                .set("is_deleted", IsDeleteEnum.Y.getKey())
-                .set("modifier", userId)
-                .set("gmt_modified", now);
-        this.update(new QcModuleDetail(), moduleDetailUpdateWrapper);
+       //如果该模板添加过明细,先删除
+        if (moduleId != null) {
+            this.remove(new QueryWrapper<QcModuleDetail>()
+                    .eq("module_id", moduleId)
+            );
+        }
 
         List<QcModuleDetail> moduleDetailList = new ArrayList<>();
         int i = 1;
@@ -87,6 +91,28 @@ public class QcModuleDetailFacade extends QcModuleDetailServiceImpl {
         }
         //添加模板明细
         qcModuleDetailService.saveBatch(moduleDetailList);
+
+        // 删除模板与文书的映射关系
+        medModuleMappingService.remove(new UpdateWrapper<MedModuleMapping>()
+                .eq("module_id", moduleId)
+        );
+
+        // 添加模板与文书的映射关系
+        if (ListUtil.isNotEmpty(addModuleInfoVO.getRecordIdList())) {
+            List<MedModuleMapping> medModuleMappingList = new ArrayList<>();
+            for (Long recordId : addModuleInfoVO.getRecordIdList()) {
+                MedModuleMapping medModuleMapping = new MedModuleMapping();
+                medModuleMapping.setModuleId(moduleId);
+                medModuleMapping.setRecordId(recordId);
+                medModuleMapping.setHospitalId(addModuleInfoVO.getHospitalId());
+                medModuleMapping.setGmtCreate(now);
+                medModuleMapping.setGmtModified(now);
+                medModuleMapping.setCreator(userId);
+                medModuleMapping.setModifier(userId);
+                medModuleMappingList.add(medModuleMapping);
+            }
+            medModuleMappingService.saveBatch(medModuleMappingList);
+        }
         return true;
     }
 }

+ 59 - 15
mrman-service/src/main/java/com/diagbot/facade/QcModuleInfoFacade.java

@@ -5,9 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.GetModuleInfoOneDTO;
+import com.diagbot.dto.MedRecordAnalyzeDTO;
 import com.diagbot.dto.ModuleInfoListDTO;
 import com.diagbot.dto.QcModuleDetailDTO;
 import com.diagbot.dto.QuestionDTO;
+import com.diagbot.entity.MedModuleMapping;
 import com.diagbot.entity.QcModuleDetail;
 import com.diagbot.entity.QcModuleInfo;
 import com.diagbot.enums.IsDeleteEnum;
@@ -17,10 +19,12 @@ import com.diagbot.service.impl.QcModuleInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddModuleInfoVO;
 import com.diagbot.vo.GetModuleInfoOneVO;
 import com.diagbot.vo.GetModuleInfoVO;
+import com.diagbot.vo.ModuleIndexVO;
 import com.diagbot.vo.QuestionIdsVO;
 import com.diagbot.vo.UpdateModuleInfoVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +54,10 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
     @Autowired
     QcQuestionFacade qcQuestionFacade;
     @Autowired
+    MedModuleMappingFacade medModuleMappingFacade;
+    @Autowired
+    MedRecordAnalyzeFacade medRecordAnalyzeFacade;
+    @Autowired
     CacheFacade cacheFacade;
 
     /**
@@ -62,14 +70,25 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
         String userId = UserUtils.getCurrentPrincipleID();
         Date date = DateUtil.now();
         Map paramMap = new HashMap<>();
+        List<String> idList = Arrays.asList(ids.split(","));
         paramMap.put("delete", IsDeleteEnum.Y.getKey());
-        paramMap.put("ids", Arrays.asList(ids.split(",")));
+        paramMap.put("ids", idList);
         paramMap.put("gmtModified", date);
         paramMap.put("modifier", userId);
-        //删除模板
+        // 删除模板
         this.deleteByIds(paramMap);
-        //删除明细表
-        qcModuleDetailFacade.deleteByModuleIdFac(paramMap);
+        // 删除明细表
+        if (ListUtil.isNotEmpty(idList)) {
+            qcModuleDetailFacade.remove(new QueryWrapper<QcModuleDetail>()
+                    .in("module_id", idList)
+            );
+        }
+        // 删除模板与文书的映射关系
+        if (ListUtil.isNotEmpty(idList)) {
+            medModuleMappingFacade.remove(new QueryWrapper<MedModuleMapping>()
+                    .in("module_id", idList)
+            );
+        }
         // 清除缓存
         cacheFacade.clear();
         return true;
@@ -94,15 +113,25 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
         }
 
         // 同一文书类型下只有一份
-         QcModuleInfo existBean = this.getOne(new QueryWrapper<QcModuleInfo>()
+        //  QcModuleInfo existBean = this.getOne(new QueryWrapper<QcModuleInfo>()
+        //         .eq("is_deleted", IsDeleteEnum.N.getKey())
+        //         .eq("mode_id", addModulInfoVO.getModeId())
+        //         .eq("hospital_id", addModulInfoVO.getHospitalId())
+        //         .eq("record_module_id", addModulInfoVO.getRecordModuleId())
+        //         .ne("id", addModulInfoVO.getId() == null ? -1 : addModulInfoVO.getId()));
+        // if (existBean != null) {
+        //     throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+        //             "相同【医院】【模块】下,模块类型已存在,模板名称【" + existBean.getName() + "】" );
+        // }
+
+        // 校验当前文书是否已添加,多人同时操作
+        int countRecord = medModuleMappingFacade.count(new QueryWrapper<MedModuleMapping>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("mode_id", addModulInfoVO.getModeId())
-                .eq("hospital_id", addModulInfoVO.getHospitalId())
-                .eq("record_module_id", addModulInfoVO.getRecordModuleId())
-                .ne("id", addModulInfoVO.getId() == null ? -1 : addModulInfoVO.getId()));
-        if (existBean != null) {
-            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
-                    "相同【医院】【模块】下,模块类型已存在,模板名称【" + existBean.getName() + "】" );
+                .ne("module_id", addModulInfoVO.getId() == null ? -1 : addModulInfoVO.getId())
+                .in("record_id", addModulInfoVO.getRecordIdList())
+        );
+        if (countRecord > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "模块类型已添加,请刷新后重新选择");
         }
 
         Long moduleId = null;
@@ -142,7 +171,7 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
                 .eq("id", updateModuleInfoVO.getId())
                 .set("name", updateModuleInfoVO.getName())
                 .set("mode_id", updateModuleInfoVO.getModeId())
-                .set("record_module_id", updateModuleInfoVO.getRecordModuleId())
+                // .set("record_module_id", updateModuleInfoVO.getRecordModuleId())
                 .set("modifier", userId)
                 .set("gmt_modified", DateUtil.now())
                 .set("remark", updateModuleInfoVO.getRemark());
@@ -172,15 +201,16 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
      * @return
      */
     public GetModuleInfoOneDTO getById(GetModuleInfoOneVO getModuleInfoOneVO) {
+        Long moduleId = getModuleInfoOneVO.getModuleId();
         GetModuleInfoOneDTO getModuleInfoOneDTO = new GetModuleInfoOneDTO();
         //获取模板信息
         QueryWrapper<QcModuleInfo> moduleInfoQueryWrapper = new QueryWrapper<>();
         moduleInfoQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("id", getModuleInfoOneVO.getModuleId());
+                .eq("id", moduleId);
         QcModuleInfo moduleInfo = this.getOne(moduleInfoQueryWrapper, false);
         if (null == moduleInfo) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
-                    "模板已删除【" + getModuleInfoOneVO.getModuleId() + "】");
+                    "模板已删除【" + moduleId + "】");
         }
         BeanUtil.copyProperties(moduleInfo, getModuleInfoOneDTO);
         List<QcModuleDetail> qcModuleDetailList = qcModuleDetailFacade.list(new QueryWrapper<QcModuleDetail>()
@@ -203,6 +233,10 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
         }
         Map<Integer, List<QcModuleDetailDTO>> map = EntityUtil.makeEntityListMap(qcModuleDetailDTOList, "groupId");
         getModuleInfoOneDTO.setModuleDetail(map);
+
+        // 返回模板和文书的映射关系
+        List<MedRecordAnalyzeDTO> recordAnalyzeList = medRecordAnalyzeFacade.getByModuleId(moduleId);
+        getModuleInfoOneDTO.setRecordAnalyzeList(recordAnalyzeList);
         return getModuleInfoOneDTO;
     }
 
@@ -216,4 +250,14 @@ public class QcModuleInfoFacade extends QcModuleInfoServiceImpl {
     public List<QcModuleInfo> getModuleNameByQuestionIdFac(Map map) {
         return this.getModuleNameByQuestionId(map);
     }
+
+    /**
+     * 根据医院和模块获取文书信息
+     *
+     * @param moduleIndexVO
+     * @return
+     */
+    public List<MedRecordAnalyzeDTO> indexFac(ModuleIndexVO moduleIndexVO) {
+        return medRecordAnalyzeFacade.indexFac(moduleIndexVO);
+    }
 }

+ 1 - 1
mrman-service/src/main/java/com/diagbot/facade/QcTypeFacade.java

@@ -133,6 +133,7 @@ public class QcTypeFacade extends QcTypeServiceImpl {
             if (qcType == null) { //校验
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "当前质控类型不存在【id=" + id + "】");
             }
+            param.setInsertOrUpdate(InsertOrUpdateEnum.Update.getKey());
         }
         BeanUtil.copyProperties(qcTypeSaveVO, qcType);
         List<QcType> qcTypeList = this.list(new QueryWrapper<QcType>()
@@ -240,7 +241,6 @@ public class QcTypeFacade extends QcTypeServiceImpl {
         );
 
         // 删除明细表
-        qcTypeCasesEntryService.removeByIds(deleteQcTypeVO.getIds());
         if (ListUtil.isNotEmpty(deleteQcTypeVO.getIds())) {
             qcTypeCasesEntryService.remove(new QueryWrapper<QcTypeCasesEntry>()
                     .in("type_id", deleteQcTypeVO.getIds())

+ 16 - 0
mrman-service/src/main/java/com/diagbot/mapper/MedModuleMappingMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.MedModuleMapping;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 模板与文书映射关系表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+public interface MedModuleMappingMapper extends BaseMapper<MedModuleMapping> {
+
+}

+ 23 - 0
mrman-service/src/main/java/com/diagbot/mapper/MedRecordAnalyzeMapper.java

@@ -0,0 +1,23 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.dto.MedRecordAnalyzeDTO;
+import com.diagbot.entity.MedRecordAnalyze;
+import com.diagbot.vo.ModuleIndexVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表 Mapper 接口
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+public interface MedRecordAnalyzeMapper extends BaseMapper<MedRecordAnalyze> {
+
+    public List<MedRecordAnalyzeDTO> getByModuleId(Long moduleId);
+
+    public List<MedRecordAnalyzeDTO> index(ModuleIndexVO moduleIndexVO);
+}

+ 16 - 0
mrman-service/src/main/java/com/diagbot/service/MedModuleMappingService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.MedModuleMapping;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 模板与文书映射关系表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+public interface MedModuleMappingService extends IService<MedModuleMapping> {
+
+}

+ 23 - 0
mrman-service/src/main/java/com/diagbot/service/MedRecordAnalyzeService.java

@@ -0,0 +1,23 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.MedRecordAnalyzeDTO;
+import com.diagbot.entity.MedRecordAnalyze;
+import com.diagbot.vo.ModuleIndexVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表 服务类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+public interface MedRecordAnalyzeService extends IService<MedRecordAnalyze> {
+
+    public List<MedRecordAnalyzeDTO> getByModuleId(Long moduleId);
+
+    public List<MedRecordAnalyzeDTO> index(ModuleIndexVO moduleIndexVO);
+}

+ 0 - 1
mrman-service/src/main/java/com/diagbot/service/QcModuleInfoService.java

@@ -35,6 +35,5 @@ public interface QcModuleInfoService extends IService<QcModuleInfo> {
      */
     public IPage<ModuleInfoListDTO> getModuleInfoListByType(GetModuleInfoVO getModuleInfoVO);
 
-
     public List<QcModuleInfo> getModuleNameByQuestionId(Map map);
 }

+ 20 - 0
mrman-service/src/main/java/com/diagbot/service/impl/MedModuleMappingServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.MedModuleMapping;
+import com.diagbot.mapper.MedModuleMappingMapper;
+import com.diagbot.service.MedModuleMappingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 模板与文书映射关系表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+@Service
+public class MedModuleMappingServiceImpl extends ServiceImpl<MedModuleMappingMapper, MedModuleMapping> implements MedModuleMappingService {
+
+}

+ 33 - 0
mrman-service/src/main/java/com/diagbot/service/impl/MedRecordAnalyzeServiceImpl.java

@@ -0,0 +1,33 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.MedRecordAnalyzeDTO;
+import com.diagbot.entity.MedRecordAnalyze;
+import com.diagbot.mapper.MedRecordAnalyzeMapper;
+import com.diagbot.service.MedRecordAnalyzeService;
+import com.diagbot.vo.ModuleIndexVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 医院病历文书类型细分类主表 服务实现类
+ * </p>
+ *
+ * @author zhoutg
+ * @since 2020-05-26
+ */
+@Service
+public class MedRecordAnalyzeServiceImpl extends ServiceImpl<MedRecordAnalyzeMapper, MedRecordAnalyze> implements MedRecordAnalyzeService {
+
+    @Override
+    public List<MedRecordAnalyzeDTO> getByModuleId(Long moduleId) {
+        return baseMapper.getByModuleId(moduleId);
+    }
+
+    @Override
+    public List<MedRecordAnalyzeDTO> index(ModuleIndexVO moduleIndexVO) {
+        return baseMapper.index(moduleIndexVO);
+    }
+}

+ 1 - 1
mrman-service/src/main/java/com/diagbot/vo/AddModuleInfoVO.java

@@ -18,7 +18,7 @@ public class AddModuleInfoVO {
     private String name;//模板名称
     private Long hospitalId; //医院ID
     private Long modeId; //数据模块ID
-    private Long recordModuleId ; //med_record_module的id
+    private List<Long> recordIdList ; //med_record_analyze的id列表
     private List<AddModuleDetailVO> moduleDetail; //标签列表
     private String remark;
 }

+ 1 - 0
mrman-service/src/main/java/com/diagbot/vo/GetModuleInfoVO.java

@@ -15,4 +15,5 @@ public class GetModuleInfoVO extends Page {
     private String name; // 模板名称
     private Long hospitalId; //医院ID
     private Long modeId; //数据模块ID
+    private Long id; //模板ID
 }

+ 20 - 0
mrman-service/src/main/java/com/diagbot/vo/ModuleIndexVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2018/12/26 15:27
+ */
+@Data
+public class ModuleIndexVO {
+    // 医院ID
+    private Long hospitalId;
+    // 数据模块ID
+    private Long modeId;
+    // 过滤的id列表
+    private List<Long> notIdList;
+}

+ 2 - 2
mrman-service/src/main/java/com/diagbot/vo/UpdateModuleInfoVO.java

@@ -20,8 +20,8 @@ public class UpdateModuleInfoVO {
     private String name;
     private Long hospitalId; //医院ID
     private Long modeId; //数据模块ID
-    private Long recordModuleId ; //med_record_module的id
-    @NotNull(message="标签id不能为空")
+    private List<Long> recordIdList ; //med_record_analyze的id列表
+    @NotNull(message="明细不能为空")
     private List<AddModuleDetailVO> moduleDetail;
     private String remark;
 }

+ 23 - 5
mrman-service/src/main/java/com/diagbot/web/QcModuleInfoController.java

@@ -3,6 +3,7 @@ package com.diagbot.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.GetModuleInfoOneDTO;
+import com.diagbot.dto.MedRecordAnalyzeDTO;
 import com.diagbot.dto.ModuleInfoListDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.QcModuleInfoFacade;
@@ -10,6 +11,7 @@ import com.diagbot.vo.AddModuleInfoVO;
 import com.diagbot.vo.DeleteModuleVO;
 import com.diagbot.vo.GetModuleInfoOneVO;
 import com.diagbot.vo.GetModuleInfoVO;
+import com.diagbot.vo.ModuleIndexVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * <p>
@@ -42,7 +45,7 @@ public class QcModuleInfoController {
             notes = "id,修改时传,新增不用传<br>" +
                     "name: 模板名称,必填<br>" +
                     "modeId: 数据模块ID,必填<br>" +
-                    "recordModuleId: med_record_module的id<br>" +
+                    "recordIdList: med_record_analyze的id列表<br>" +
                     "hospitalId: 医院ID,必填<br>" +
                     "moduleDetail: 标签列表<br>" +
                     "remark:备注")
@@ -67,12 +70,13 @@ public class QcModuleInfoController {
     @ApiOperation(value = "模板分页列表[by:zhoutg]",
             notes = "name: 模板名称<br>" +
                     "modeId: 数据模块ID<br>" +
+                    "id: 模板ID<br>" +
                     "hospitalId: 医院ID<br>")
     @PostMapping("/page")
     @SysLogger("page")
     public RespDTO<IPage<ModuleInfoListDTO>> getModuleInfoList(@RequestBody GetModuleInfoVO getModuleInfoVO) {
-        IPage<ModuleInfoListDTO> date = qcModuleInfoFacade.getModuleInfoList(getModuleInfoVO);
-        return RespDTO.onSuc(date);
+        IPage<ModuleInfoListDTO> data = qcModuleInfoFacade.getModuleInfoList(getModuleInfoVO);
+        return RespDTO.onSuc(data);
     }
 
     @ApiOperation(value = "根据id获取模板信息[by:zhoutg]",
@@ -80,7 +84,21 @@ public class QcModuleInfoController {
     @PostMapping("/getById")
     @SysLogger("getById")
     public RespDTO<GetModuleInfoOneDTO> getById(@RequestBody GetModuleInfoOneVO getModuleInfoVO) {
-        GetModuleInfoOneDTO date = qcModuleInfoFacade.getById(getModuleInfoVO);
-        return RespDTO.onSuc(date);
+        GetModuleInfoOneDTO data = qcModuleInfoFacade.getById(getModuleInfoVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "根据医院和模块获取文书信息[by:zhoutg]",
+            notes = "// 医院ID\n" +
+                    " Long hospitalId;\n" +
+                    "// 数据模块ID\n" +
+                    " Long modeId;\n" +
+                    "// 过滤的id列表\n" +
+                    " List<Long> notIdList;")
+    @PostMapping("/index")
+    @SysLogger("index")
+    public RespDTO<List<MedRecordAnalyzeDTO>> index(@RequestBody ModuleIndexVO moduleIndexVO) {
+        List<MedRecordAnalyzeDTO> data = qcModuleInfoFacade.indexFac(moduleIndexVO);
+        return RespDTO.onSuc(data);
     }
 }

+ 18 - 0
mrman-service/src/main/resources/mapper/MedModuleMappingMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.MedModuleMappingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.MedModuleMapping">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="module_id" property="moduleId" />
+        <result column="record_id" property="recordId" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 68 - 0
mrman-service/src/main/resources/mapper/MedRecordAnalyzeMapper.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.MedRecordAnalyzeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.MedRecordAnalyze">
+        <id column="id" property="id" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="name" property="name" />
+        <result column="mode_id" property="modeId" />
+        <result column="mode_name" property="modeName" />
+        <result column="rec_type" property="recType" />
+        <result column="behospital_codes" property="behospitalCodes" />
+        <result column="map_type" property="mapType" />
+        <result column="map_keys" property="mapKeys" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <select id="getByModuleId" resultType="com.diagbot.dto.MedRecordAnalyzeDTO">
+        SELECT
+            t2.id,
+            t2.`name`,
+            t2.behospital_codes
+        FROM
+            `med_module_mapping` t1,
+            med_record_analyze t2
+        WHERE
+            t1.is_deleted = 'N'
+        AND t2.is_deleted = 'N'
+        AND t1.record_id = t2.id
+        AND t1.module_id = #{moduleId}
+        ORDER BY t1.id
+    </select>
+
+    <select id="index" resultType="com.diagbot.dto.MedRecordAnalyzeDTO">
+        SELECT
+            t1.id,
+            t1.`name`,
+            t1.behospital_codes
+        FROM
+            med_record_analyze t1
+        WHERE
+            t1.is_deleted = 'N'
+        AND t1.hospital_id = #{hospitalId}
+        AND t1.mode_id = #{modeId}
+        AND t1.id NOT IN (
+            SELECT
+                t2.record_id
+            FROM
+                med_module_mapping t2
+            WHERE
+                t2.is_deleted = 'N'
+        )
+        <if test="notIdList != null and notIdList.size() > 0">
+            AND t1.id not in
+            <foreach  collection="notIdList" item="item" open="("  separator=","  close=")">
+                #{item}
+            </foreach>
+        </if>
+        order by t1.id
+    </select>
+
+</mapper>

+ 0 - 1
mrman-service/src/main/resources/mapper/QcCasesEntryMapper.xml

@@ -140,7 +140,6 @@
         AND t2.is_deleted = 'N'
         AND t3.is_deleted = 'N'
         AND t1.id = t2.cases_entry_id
-        AND t2.is_used = 1
         AND t1.mode_id = t3.id
         AND t2.hospital_id = #{hospitalId}
         ORDER BY t3.order_no,t1.order_no

+ 3 - 0
mrman-service/src/main/resources/mapper/QcModuleInfoMapper.xml

@@ -37,6 +37,9 @@
         <if test="modeId != null">
             AND mode_id = #{modeId}
         </if>
+        <if test="id != null">
+            AND id = #{id}
+        </if>
         order by gmt_modified desc
     </select>
 

+ 1 - 1
mrman-service/src/test/java/com/diagbot/CodeGeneration.java

@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
 //        strategy.setTablePrefix(new String[] { "icss_" });// 此处可以修改为您的表前缀
          strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "qc_type", "qc_type_cases_entry" }); // 需要生成的表
+        strategy.setInclude(new String[] { "med_module_mapping", "med_record_analyze"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);