Browse Source

Merge remote-tracking branch 'origin/dev/20200513end_1.2.0' into debug

zhaops 5 năm trước cách đây
mục cha
commit
bee0e6d352

+ 31 - 31
src/main/java/com/diagbot/aggregate/ResultStatisticsAggregate.java

@@ -71,6 +71,7 @@ public class ResultStatisticsAggregate {
      */
     @DataProvider("entryCountGroupByCase")
     public List<NumDTO> entryCountGroupByCase(@InvokeParameter("filterVO") FilterVO filterVO) {
+        DecimalFormat df = new DecimalFormat("#0.00");
         Integer limitCount = filterVO.getLimitCount();
         QcresultFilterVO qcresultFilterVO = new QcresultFilterVO();
         BeanUtil.copyProperties(filterVO, qcresultFilterVO);
@@ -78,40 +79,39 @@ public class ResultStatisticsAggregate {
         List<NumDTO> qcEntryNumList = qcresultInfoFacade.entryCountGroupByCase(filterVO);
         List<NumDTO> standardEntryNumList = qcCasesFacade.entryGroupByCase();
         if (ListUtil.isEmpty(qcEntryNumList)) {
-            standardEntryNumList.forEach(entryNum -> {
-                Integer totleNum = entryNum.getNum() * mrNum;
+            return qcEntryNumList;
+        }
+        if (ListUtil.isEmpty(standardEntryNumList)
+                && ListUtil.isNotEmpty(qcEntryNumList)) {
+            qcEntryNumList.forEach(entryNum -> {
                 entryNum.setNum(0);
                 entryNum.setPercent(0d);
                 entryNum.setPercentStr("0%");
-                entryNum.setTotleNum(totleNum);
+                entryNum.setTotleNum(0);
+            });
+        }
+        if (ListUtil.isNotEmpty(qcEntryNumList)) {
+            Map<String, Integer> standardMap
+                    = EntityUtil.makeMapWithKeyValue(standardEntryNumList, "name", "num");
+            qcEntryNumList.forEach(item -> {
+                if (!standardMap.containsKey(item.getName())) {
+                    item.setTotleNum(0);
+                    item.setPercent(0d);
+                    item.setPercentStr("0%");
+                } else {
+                    Integer totleNum = standardMap.get(item.getName()) * mrNum;
+                    Double percent = BigDecimal.valueOf(item.getNum())
+                            .divide(BigDecimal.valueOf(totleNum), 4, RoundingMode.HALF_UP)
+                            .doubleValue();
+                    String percentStr
+                            = df.format(BigDecimal.valueOf(percent).multiply(BigDecimal.valueOf(100))) + "%";
+                    item.setTotleNum(totleNum);
+                    item.setPercent(percent);
+                    item.setPercentStr(percentStr);
+                }
             });
-        } else {
-            Map<Long, Integer> qcEntryNumMap
-                    = EntityUtil.makeMapWithKeyValue(qcEntryNumList, "id", "num");
-            if (ListUtil.isNotEmpty(standardEntryNumList)) {
-                standardEntryNumList.forEach(entryNum -> {
-                    Integer totleNum = entryNum.getNum() * mrNum;
-                    if (qcEntryNumMap.containsKey(entryNum.getId())) {
-                        entryNum.setNum(qcEntryNumMap.get(entryNum.getId()));
-                        Double percent = BigDecimal.valueOf(entryNum.getNum())
-                                .divide(BigDecimal.valueOf(totleNum), 4, RoundingMode.HALF_UP)
-                                .doubleValue();
-                        DecimalFormat df = new DecimalFormat("#0.00");
-                        String percentStr
-                                = df.format(BigDecimal.valueOf(percent).multiply(BigDecimal.valueOf(100))) + "%";
-                        entryNum.setTotleNum(totleNum);
-                        entryNum.setPercent(percent);
-                        entryNum.setPercentStr(percentStr);
-                    } else {
-                        entryNum.setNum(0);
-                        entryNum.setPercent(0d);
-                        entryNum.setPercentStr("0%");
-                        entryNum.setTotleNum(totleNum);
-                    }
-                });
-            }
             //降序排序
-            Collections.sort(standardEntryNumList, new Comparator<NumDTO>() {
+            Collections.sort(qcEntryNumList, new Comparator<NumDTO>() {
                 @Override
                 public int compare(NumDTO o1, NumDTO o2) {
                     return o2.getPercent().compareTo(o1.getPercent());
@@ -120,12 +120,12 @@ public class ResultStatisticsAggregate {
         }
 
         //取top10
-        standardEntryNumList = standardEntryNumList
+        qcEntryNumList = qcEntryNumList
                 .stream()
                 .limit(limitCount)
                 .collect(Collectors.toList());
 
-        return standardEntryNumList;
+        return qcEntryNumList;
     }
 
     /**

+ 1 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -59,6 +59,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/bas/dept/getListUser").permitAll()
                 .antMatchers("/qc/behospitalInfo/page_dept").permitAll()
                 .antMatchers("/qc/behospitalInfo/page_person").permitAll()
+                .antMatchers("/consoleByDept/getDept").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
     }

+ 1 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -102,6 +102,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/bas/dept/getListUser", request)
                 || matchers("/qc/behospitalInfo/page_dept", request)
                 || matchers("/qc/behospitalInfo/page_person", request)
+                || matchers("/consoleByDept/getDept", request)
                 || matchers("/", request)) {
             return true;
         }

+ 50 - 0
src/main/java/com/diagbot/dto/ModelHospitalAllDTO.java

@@ -0,0 +1,50 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-05-15 14:45
+ */
+@Setter
+@Getter
+public class ModelHospitalAllDTO {
+
+    private Long id;
+
+    private Long hospitalId;
+
+    private String hospitalModelName;
+
+    private Long standModelId;
+
+    private String standModelName;
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 25 - 0
src/main/java/com/diagbot/dto/QcModeAllDTO.java

@@ -0,0 +1,25 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-05-18 9:29
+ */
+@Setter
+@Getter
+public class QcModeAllDTO {
+    private Long id;
+
+    /**
+     * 模块名称
+     */
+    private String name;
+
+    /**
+     * 上级模块
+     */
+    private Long parentId;
+}

+ 158 - 0
src/main/java/com/diagbot/entity/ModelHospital.java

@@ -0,0 +1,158 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-05-15
+ */
+@TableName("qc_model_hospital")
+public class ModelHospital implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private Long hospitalId;
+
+    private String hospitalModelName;
+
+    private Long standModelId;
+
+    private String standModelName;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getHospitalModelName() {
+        return hospitalModelName;
+    }
+
+    public void setHospitalModelName(String hospitalModelName) {
+        this.hospitalModelName = hospitalModelName;
+    }
+    public Long getStandModelId() {
+        return standModelId;
+    }
+
+    public void setStandModelId(Long standModelId) {
+        this.standModelId = standModelId;
+    }
+    public String getStandModelName() {
+        return standModelName;
+    }
+
+    public void setStandModelName(String standModelName) {
+        this.standModelName = standModelName;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public Date getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(Date gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public Date getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(Date gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "ModelHospital{" +
+            "id=" + id +
+            ", hospitalId=" + hospitalId +
+            ", hospitalModelName=" + hospitalModelName +
+            ", standModelId=" + standModelId +
+            ", standModelName=" + standModelName +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 10 - 67
src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java

@@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.DeptBaseDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.NumDTO;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
@@ -500,73 +498,14 @@ public class ConsoleByDeptFacade {
      */
     public IPage<DeptNumDTO> entryCountGroupByCaseAndDeptPage(FilterPageByDeptVO filterPageByDeptVO) {
         if (StringUtil.isBlank(filterPageByDeptVO.getDeptName())) {
-            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "请输入科室");
+            List<DeptBaseDTO> deptList = this.getDept();
+            //默认取第一个科室
+            if (ListUtil.isNotEmpty(deptList)) {
+                filterPageByDeptVO.setDeptName(deptList.get(0).getDeptName());
+            }
         }
-        DecimalFormat df = new DecimalFormat("#0.00");
         filterPageByDeptVOSet(filterPageByDeptVO);
-        long current = filterPageByDeptVO.getCurrent();
-        long size = filterPageByDeptVO.getSize();
-        filterPageByDeptVO.setCurrent(0);
-        filterPageByDeptVO.setSize(filterPageByDeptVO.getTotal());
         IPage<DeptNumDTO> page = qcresultInfoFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
-        //各科室模块-质控结果
-        List<DeptNumDTO> records = page.getRecords();
-        Map<String, List<DeptNumDTO>> recordMap = ListUtil.isEmpty(records)
-                ? new HashMap<>()
-                : EntityUtil.makeEntityListMap(records, "deptName");
-        //获取每个科室的病历数
-        QcresultFilterByDeptVO qcresultFilterByDeptVO = new QcresultFilterByDeptVO();
-        BeanUtil.copyProperties(filterPageByDeptVO, qcresultFilterByDeptVO);
-        List<NumDTO> mrNumList = qcresultInfoFacade.resultCountByDept(qcresultFilterByDeptVO);
-        Map<String, NumDTO> mrMap = ListUtil.isEmpty(mrNumList)
-                ? new HashMap<>()
-                : EntityUtil.makeEntityMap(mrNumList, "name");
-        //各模块缺陷数
-        List<NumDTO> standardCaseList = qcCasesFacade.entryGroupByCase();
-        if (ListUtil.isEmpty(standardCaseList)) {
-            return null;
-        }
-        Map<String, NumDTO> standardCaseMap
-                = EntityUtil.makeEntityMap(standardCaseList, "name");
-        if (ListUtil.isNotEmpty(records)) {
-            Integer mrNum = mrMap.containsKey(filterPageByDeptVO.getDeptName())
-                    ? mrMap.get(filterPageByDeptVO.getDeptName()).getNum()
-                    : 0;
-            records.forEach(item -> {
-                if (!standardCaseMap.containsKey(item.getName())) {
-                    item.setTotleNum(0);
-                    item.setPercent(0d);
-                    item.setPercentStr("0%");
-                } else {
-                    Integer totleNum = standardCaseMap.get(item.getName()).getNum() * mrNum;
-                    item.setTotleNum(totleNum);
-                    Double percent = BigDecimal.valueOf(item.getNum())
-                            .divide(BigDecimal.valueOf(totleNum), 4, RoundingMode.HALF_UP)
-                            .doubleValue();
-                    String percentStr
-                            = df.format(BigDecimal.valueOf(percent).multiply(BigDecimal.valueOf(100))) + "%";
-                    item.setPercent(percent);
-                    item.setPercentStr(percentStr);
-                }
-            });
-            //降序排序
-            Collections.sort(records, new Comparator<NumDTO>() {
-                @Override
-                public int compare(NumDTO o1, NumDTO o2) {
-                    return o2.getPercent().compareTo(o1.getPercent());
-                }
-            });
-        }
-
-        List<DeptNumDTO> retList = Lists.newLinkedList();
-        if (current * size + size > records.size()) {
-            retList = records.subList(Long.valueOf(current * size).intValue(), records.size());
-        } else {
-            retList = records.subList(Long.valueOf(current * size).intValue(), Long.valueOf(current * size + size).intValue());
-        }
-        page.setCurrent(current);
-        page.setSize(size);
-        page.setRecords(retList);
         return page;
     }
 
@@ -578,7 +517,11 @@ public class ConsoleByDeptFacade {
      */
     public IPage<DeptNumDTO> entryCountGroupByEntryAndDeptPage(FilterPageByDeptVO filterPageByDeptVO) {
         if (StringUtil.isBlank(filterPageByDeptVO.getDeptName())) {
-            throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "请输入科室");
+            List<DeptBaseDTO> deptList = this.getDept();
+            //默认取第一个科室
+            if (ListUtil.isNotEmpty(deptList)) {
+                filterPageByDeptVO.setDeptName(deptList.get(0).getDeptName());
+            }
         }
         DecimalFormat df = new DecimalFormat("#0.00");
         filterPageByDeptVOSet(filterPageByDeptVO);

+ 0 - 56
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -9,15 +9,11 @@ import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultPercentDTO;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
-import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
-import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.QcresultFilterVO;
-import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -25,8 +21,6 @@ import org.springframework.stereotype.Component;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -345,58 +339,8 @@ public class ConsoleFacade {
      * @return
      */
     public IPage<NumDTO> entryCountGroupByCasePage(FilterPageVO filterPageVO) {
-        DecimalFormat df = new DecimalFormat("#0.00");
         filterPageVOSet(filterPageVO);
-        long current = filterPageVO.getCurrent();
-        long size = filterPageVO.getSize();
-        filterPageVO.setCurrent(0);
-        filterPageVO.setSize(filterPageVO.getTotal());
         IPage<NumDTO> page = qcresultInfoFacade.entryCountGroupByCasePage(filterPageVO);
-        List<NumDTO> caseList = page.getRecords();
-        QcresultFilterVO qcresultFilterVO = new QcresultFilterVO();
-        BeanUtil.copyProperties(filterPageVO, qcresultFilterVO);
-        int mrNum = qcresultInfoFacade.resultCount(qcresultFilterVO);
-        List<NumDTO> standardCaseList = qcCasesFacade.entryGroupByCase();
-        if (ListUtil.isEmpty(standardCaseList)) {
-            return null;
-        }
-        Map<String, NumDTO> standardCaseMap
-                = EntityUtil.makeEntityMap(standardCaseList, "name");
-        if (ListUtil.isNotEmpty(caseList)) {
-            caseList.forEach(item -> {
-                if (!standardCaseMap.containsKey(item.getName())) {
-                    item.setTotleNum(0);
-                    item.setPercent(0d);
-                    item.setPercentStr("0%");
-                } else {
-                    Integer totleNum = standardCaseMap.get(item.getName()).getNum() * mrNum;
-                    item.setTotleNum(totleNum);
-                    Double percent = BigDecimal.valueOf(item.getNum())
-                            .divide(BigDecimal.valueOf(totleNum), 4, RoundingMode.HALF_UP)
-                            .doubleValue();
-                    String percentStr
-                            = df.format(BigDecimal.valueOf(percent).multiply(BigDecimal.valueOf(100))) + "%";
-                    item.setPercent(percent);
-                    item.setPercentStr(percentStr);
-                }
-            });
-            //降序排序
-            Collections.sort(caseList, new Comparator<NumDTO>() {
-                @Override
-                public int compare(NumDTO o1, NumDTO o2) {
-                    return o2.getPercent().compareTo(o1.getPercent());
-                }
-            });
-        }
-        List<NumDTO> retList = Lists.newLinkedList();
-        if (current * size + size > caseList.size()) {
-            retList = caseList.subList(Long.valueOf(current * size).intValue(), caseList.size());
-        } else {
-            retList = caseList.subList(Long.valueOf(current * size).intValue(), Long.valueOf(current * size + size).intValue());
-        }
-        page.setCurrent(current);
-        page.setSize(size);
-        page.setRecords(retList);
         return page;
     }
 

+ 131 - 0
src/main/java/com/diagbot/facade/ModelHospitalFacade.java

@@ -0,0 +1,131 @@
+package com.diagbot.facade;
+
+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.diagbot.dto.ModelHospitalAllDTO;
+import com.diagbot.entity.MedicalRecord;
+import com.diagbot.entity.ModelHospital;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.ModelHospitalService;
+import com.diagbot.service.impl.ModelHospitalServiceImpl;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.vo.ModelHospitalAllVO;
+import com.diagbot.vo.ModelHospitalUpdataVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-05-15 14:42
+ */
+@Component
+public class ModelHospitalFacade extends ModelHospitalServiceImpl {
+
+    @Autowired
+    ModelHospitalService modelHospitalService;
+    @Autowired
+    MedicalRecordFacade medicalRecordFacade;
+
+    /**
+     *
+     * @param modelHospitalAllVO
+     * @return
+     */
+    public IPage<List<ModelHospitalAllDTO>> getModelHospitalAlls(ModelHospitalAllVO modelHospitalAllVO) {
+        IPage<List<ModelHospitalAllDTO>> data =  modelHospitalService.getModelHospitalAll(modelHospitalAllVO);
+        return data;
+    }
+
+    /**
+     *
+     * @param modeId
+     * @return
+     */
+    public ModelHospitalAllDTO getModelHospitalById(Long modeId) {
+        QueryWrapper<ModelHospital> queryModelHospital = new QueryWrapper<>();
+        queryModelHospital.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id",modeId);
+        ModelHospital modelHospital = modelHospitalService.getOne(queryModelHospital);
+        if(modelHospital == null){
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该数据不存在!");
+        }
+        ModelHospitalAllDTO modelHospitalData =  new ModelHospitalAllDTO();
+        BeanUtil.copyProperties(modelHospital,modelHospitalData);
+        return  modelHospitalData;
+    }
+
+    public Boolean updataModelHospitals(ModelHospitalUpdataVO modelHospitalUpdataVO) {
+        QueryWrapper<ModelHospital> queryModelHospital = new QueryWrapper<>();
+        queryModelHospital.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .ne("id",modelHospitalUpdataVO.getId()==null? -1:modelHospitalUpdataVO.getId())
+                .eq("hospital_model_name",modelHospitalUpdataVO.getHospitalModelName());
+        int sum = modelHospitalService.count(queryModelHospital);
+        if(sum != 0){
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "该名称已存在");
+        }
+        boolean res= false;
+        QueryWrapper<ModelHospital> modelHospitalQuery = new QueryWrapper<>();
+        modelHospitalQuery.eq("id",modelHospitalUpdataVO.getId())
+                .eq("is_deleted", IsDeleteEnum.N.getKey());
+        ModelHospital data = modelHospitalService.getOne(modelHospitalQuery);
+        Date date = DateUtil.now();
+        if(data!=null){
+            ModelHospital modelHospitals  = new ModelHospital();
+            BeanUtil.copyProperties(modelHospitalUpdataVO,modelHospitals);
+            modelHospitals.setGmtModified(date);
+            res = modelHospitalService.updateById(modelHospitals);
+            if(res) {
+                UpdateWrapper<MedicalRecord> medicalRecordData = new UpdateWrapper<>();
+                medicalRecordData.eq("rec_title", modelHospitalUpdataVO.getHospitalModelName())
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("hospital_id", modelHospitalUpdataVO.getHospitalId())
+                        .set("mode_id", modelHospitals.getId())
+                        .set("gmt_create",date);
+                medicalRecordFacade.update(medicalRecordData);
+            }
+        }else {
+            ModelHospital modelHospitalDatas = new ModelHospital();
+            BeanUtil.copyProperties(modelHospitalUpdataVO,modelHospitalDatas);
+            modelHospitalDatas.setGmtCreate(date);
+            modelHospitalDatas.setGmtModified(date);
+            res= modelHospitalService.save(modelHospitalDatas);
+            if(res) {
+                UpdateWrapper<MedicalRecord> medicalRecordData = new UpdateWrapper<>();
+                medicalRecordData.eq("rec_title", modelHospitalUpdataVO.getHospitalModelName())
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq("hospital_id", modelHospitalUpdataVO.getHospitalId())
+                        .set("mode_id", modelHospitalDatas.getId())
+                        .set("gmt_create",date);
+                medicalRecordFacade.update(medicalRecordData);
+            }
+        }
+
+        return res;
+    }
+
+    public Boolean clearModelHospital(Long modeId) {
+        boolean res= false;
+        Date date = DateUtil.now();
+        UpdateWrapper<ModelHospital> modelHospitalData = new UpdateWrapper<>();
+        modelHospitalData.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("id", modeId)
+                .set("is_deleted", IsDeleteEnum.Y.getKey())
+                .set("gmt_create",date);
+        res = modelHospitalService.update(modelHospitalData);
+        UpdateWrapper<MedicalRecord> medicalRecordData = new UpdateWrapper<>();
+        medicalRecordData.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("mode_id", modeId)
+                .set("mode_id", 0)
+                .set("gmt_create",date);
+        medicalRecordFacade.update(medicalRecordData);
+        return  res ;
+    }
+}

+ 16 - 0
src/main/java/com/diagbot/facade/QcModeFacade.java

@@ -1,15 +1,19 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.dto.QcModeAllDTO;
 import com.diagbot.dto.QcModeDTO;
 import com.diagbot.entity.QcMode;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.service.QcModeService;
 import com.diagbot.service.impl.QcModeServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ListUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -21,6 +25,9 @@ import java.util.Map;
 @Component
 public class QcModeFacade extends QcModeServiceImpl {
 
+    @Autowired
+    QcModeService qcModeService;
+
     public List<QcModeDTO> getMenu(Map<String, Object> pageData) {
         List<QcMode> qcModeList = this.list(new QueryWrapper<QcMode>()
                 .eq("is_deleted", IsDeleteEnum.N.getKey())
@@ -51,4 +58,13 @@ public class QcModeFacade extends QcModeServiceImpl {
         }
         return res;
     }
+
+
+    public List<QcModeAllDTO> getModeAll() {
+        List<QcMode> data = qcModeService.list();
+        List<QcModeAllDTO> dataNew = new ArrayList<QcModeAllDTO>();
+        dataNew = BeanUtil.listCopyTo(data, QcModeAllDTO.class);
+        return dataNew;
+
+    }
 }

+ 22 - 0
src/main/java/com/diagbot/mapper/ModelHospitalMapper.java

@@ -0,0 +1,22 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.ModelHospitalAllDTO;
+import com.diagbot.entity.ModelHospital;
+import com.diagbot.vo.ModelHospitalAllVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-05-15
+ */
+public interface ModelHospitalMapper extends BaseMapper<ModelHospital> {
+
+    IPage<List<ModelHospitalAllDTO>> getModelHospitalAll(ModelHospitalAllVO modelHospitalAllVO);
+}

+ 22 - 0
src/main/java/com/diagbot/service/ModelHospitalService.java

@@ -0,0 +1,22 @@
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.ModelHospitalAllDTO;
+import com.diagbot.entity.ModelHospital;
+import com.diagbot.vo.ModelHospitalAllVO;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-05-15
+ */
+public interface ModelHospitalService extends IService<ModelHospital> {
+
+    IPage<List<ModelHospitalAllDTO>> getModelHospitalAll(ModelHospitalAllVO modelHospitalAllVO);
+}

+ 29 - 0
src/main/java/com/diagbot/service/impl/ModelHospitalServiceImpl.java

@@ -0,0 +1,29 @@
+package com.diagbot.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.ModelHospitalAllDTO;
+import com.diagbot.entity.ModelHospital;
+import com.diagbot.mapper.ModelHospitalMapper;
+import com.diagbot.service.ModelHospitalService;
+import com.diagbot.vo.ModelHospitalAllVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-05-15
+ */
+@Service
+public class ModelHospitalServiceImpl extends ServiceImpl<ModelHospitalMapper, ModelHospital> implements ModelHospitalService {
+
+    @Override
+    public IPage<List<ModelHospitalAllDTO>> getModelHospitalAll(ModelHospitalAllVO modelHospitalAllVO) {
+        return baseMapper.getModelHospitalAll(modelHospitalAllVO);
+    }
+}

+ 23 - 0
src/main/java/com/diagbot/vo/ModelHospitalAllVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-05-15 14:52
+ */
+@Setter
+@Getter
+public class ModelHospitalAllVO extends Page {
+
+    private Long hospitalId;
+
+    private String hospitalModelName;
+
+    private Long standModelId;
+
+    private String standModelName;
+}

+ 18 - 0
src/main/java/com/diagbot/vo/ModelHospitalIdVO.java

@@ -0,0 +1,18 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-05-15 15:19
+ */
+@Setter
+@Getter
+public class ModelHospitalIdVO {
+    @NotNull(message = "请输入模块id")
+      private Long  ModeId;
+}

+ 29 - 0
src/main/java/com/diagbot/vo/ModelHospitalUpdataVO.java

@@ -0,0 +1,29 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-05-15 15:37
+ */
+@Setter
+@Getter
+public class ModelHospitalUpdataVO {
+
+
+    private Long id;
+
+    private Long hospitalId;
+
+    private String hospitalModelName;
+
+    private Long standModelId;
+
+    private String standModelName;
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 74 - 0
src/main/java/com/diagbot/web/ModelHospitalController.java

@@ -0,0 +1,74 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.ModelHospitalAllDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.ModelHospitalFacade;
+import com.diagbot.vo.ModelHospitalAllVO;
+import com.diagbot.vo.ModelHospitalIdVO;
+import com.diagbot.vo.ModelHospitalUpdataVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wangfeng
+ * @since 2020-05-15
+ */
+@RestController
+@RequestMapping("/modelHospital")
+@Api(value = "医院数据模块相关接口API", tags = { "医院数据模块相关接口API" })
+public class ModelHospitalController {
+
+    @Autowired
+    ModelHospitalFacade modelHospitalFacade;
+
+    @ApiOperation(value = "获取全部条目[by:wangfeng]",
+            notes = "获取全部条目")
+    @PostMapping("/getModelHospitalAll")
+    @SysLogger("getModelHospitalAll")
+    public RespDTO<IPage<List<ModelHospitalAllDTO>>> getModelHospitalAll(@RequestBody ModelHospitalAllVO modelHospitalAllVO) {
+        IPage<List<ModelHospitalAllDTO>> data = modelHospitalFacade.getModelHospitalAlls(modelHospitalAllVO);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "根据id获取医院数据[by:wangfeng]",
+            notes = "根据id获取医院数据")
+    @PostMapping("/getModelHospitalById")
+    @SysLogger("getModelHospitalById")
+    public RespDTO<ModelHospitalAllDTO> getModelHospitalById(@RequestBody ModelHospitalIdVO modelHospitalIdVO) {
+        ModelHospitalAllDTO data = modelHospitalFacade.getModelHospitalById(modelHospitalIdVO.getModeId());
+        return RespDTO.onSuc(data);
+    }
+    @ApiOperation(value = "添加和修改医院数据模块[by:wangfeng]",
+            notes = "添加和修改医院数据模块")
+    @PostMapping("/saveAndupdataModel")
+    @SysLogger("saveAndupdataModel")
+    public RespDTO<Boolean> updataModelHospital(@RequestBody ModelHospitalUpdataVO modelHospitalUpdataVO) {
+        Boolean res = modelHospitalFacade.updataModelHospitals(modelHospitalUpdataVO);
+        return RespDTO.onSuc(res);
+    }
+
+    @ApiOperation(value = "删除医院数据模块[by:wangfeng]",
+            notes = "删除医院数据模块")
+    @PostMapping("/clearModelHospital")
+    @SysLogger("clearModelHospital")
+    public RespDTO<Boolean> clearModelHospital(@RequestBody ModelHospitalIdVO modelHospitalIdVO) {
+        Boolean res = modelHospitalFacade.clearModelHospital(modelHospitalIdVO.getModeId());
+        return RespDTO.onSuc(res);
+    }
+
+
+}

+ 30 - 13
src/main/java/com/diagbot/web/QcModeController.java

@@ -1,10 +1,19 @@
 package com.diagbot.web;
 
 
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.QcModeAllDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.QcModeFacade;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  * 菜单 前端控制器
@@ -15,20 +24,28 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/qc/mode")
-@Api(value = "菜单相关API", tags = { "菜单相关API" })
+@Api(value = "医院模块菜单相关API", tags = { "医院模块菜单相关API" })
 @SuppressWarnings("unchecked")
-@Deprecated
 public class QcModeController {
 
-//    @Autowired
-//    QcModeFacade qcModeFacade;
-//
-//    @ApiOperation(value = "获取菜单信息[by:zhoutg]",
-//            notes = "")
-//    @PostMapping("/getMenu")
-//    @SysLogger("getMenu")
-//    public RespDTO<List<QcModeDTO> > getMenu() {
-//        List<QcModeDTO> data = qcModeFacade.getMenu();
-//        return RespDTO.onSuc(data);
-//    }
+        @Autowired
+        QcModeFacade qcModeFacade;
+    //
+    //    @ApiOperation(value = "获取菜单信息[by:zhoutg]",
+    //            notes = "")
+    //    @PostMapping("/getMenu")
+    //    @SysLogger("getMenu")
+    //    public RespDTO<List<QcModeDTO> > getMenu() {
+    //        List<QcModeDTO> data = qcModeFacade.getMenu();
+    //        return RespDTO.onSuc(data);
+    //    }
+    @ApiOperation(value = "获取医院全部模块[by:wangfeng]",
+            notes = "获取医院全部模块")
+    @PostMapping("/getModes")
+    @SysLogger("getModes")
+    public RespDTO<List<QcModeAllDTO>> getModeAlls() {
+
+        return RespDTO.onSuc(qcModeFacade.getModeAll());
+    }
+
 }

+ 77 - 40
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -130,20 +130,24 @@
         (
         (
         SELECT
-        c.msg,
+        d.msg,
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -155,7 +159,7 @@
             <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
         </if>
         GROUP BY
-        c.msg
+        d.msg
         ORDER BY
         count(*) DESC
         ) t1,
@@ -164,16 +168,20 @@
         count(*) AS totle
         FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -206,16 +214,20 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -237,16 +249,20 @@
         count(*) AS totle
         FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -264,20 +280,25 @@
     <!-- 缺陷排行列表 -->
     <select id="resultStatistics2"  parameterType="com.diagbot.vo.FilterVO" resultType="com.diagbot.dto.NumDTO">
         SELECT
-        c.msg as name,
+        d.msg as name,
         count(*) AS num
         FROM
+        FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -289,7 +310,7 @@
             <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
         </if>
         GROUP BY
-        c.msg
+        d.msg
         ORDER BY
         count(*) DESC
         <if test="limitCount != null and limitCount != ''">
@@ -305,16 +326,20 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -338,16 +363,20 @@
         count(*) AS totle
         FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -669,16 +698,20 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
@@ -703,16 +736,20 @@
         count(*) AS totle
         FROM
         med_behospital_info a,
-        med_qcresult_info b,
-        med_qcresult_detail c
+        med_home_page b,
+        med_qcresult_info c,
+        med_qcresult_detail d
         WHERE
         a.behospital_code = b.behospital_code
         AND a.hospital_id = b.hospital_id
-        AND b.behospital_code = c.behospital_code
-        AND b.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = d.behospital_code
+        AND a.hospital_id = d.hospital_id
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}

+ 46 - 0
src/main/resources/mapper/ModelHospitalMapper.xml

@@ -0,0 +1,46 @@
+<?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.ModelHospitalMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.ModelHospital">
+        <id column="id" property="id"/>
+        <result column="hospital_id" property="hospitalId"/>
+        <result column="hospital_model_name" property="hospitalModelName"/>
+        <result column="stand_model_id" property="standModelId"/>
+        <result column="stand_model_name" property="standModelName"/>
+        <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="getModelHospitalAll" parameterType="com.diagbot.vo.ModelHospitalAllVO"
+            resultType="com.diagbot.dto.ModelHospitalAllDTO">
+        select id as id ,
+        hospital_id as hospitalId,
+        hospital_model_name as hospitalModelName,
+        stand_model_id as standModelId,
+        stand_model_name as standModelName,
+        gmt_create as gmtCreate ,
+        gmt_modified as gmtModified,
+        creator as creator,
+        modifier as modifier,
+        remark as remark
+        from qc_model_hospital where is_deleted = "N"
+        <if test="hospitalId != null and hospitalId != ''">
+            AND hospital_id = #{hospitalId}
+        </if>
+        <if test="hospitalModelName != null and hospitalModelName != ''">
+            AND UPPER(hospital_model_name) LIKE CONCAT('%', UPPER(trim(#{hospitalModelName})), '%')
+        </if>
+        <if test="standModelId != null and standModelId != ''">
+            AND stand_model_id = #{standModelId}
+        </if>
+        <if test="standModelName != null and standModelName != ''">
+            AND UPPER(stand_model_name) LIKE CONCAT('%', UPPER(trim(#{standModelName})), '%')
+        </if>
+    </select>
+
+</mapper>

+ 169 - 7
src/main/resources/mapper/QcresultInfoMapper.xml

@@ -24,12 +24,16 @@
         count(1)
         FROM
         med_behospital_info a,
-        med_qcresult_info b
+        med_home_page b,
+        med_qcresult_info c
         WHERE
         a.hospital_id = b.hospital_id
         AND a.behospital_code = b.behospital_code
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = c.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -41,10 +45,10 @@
             <![CDATA[AND a.leave_hospital_date < DATE(#{endDate})]]>
         </if>
         <if test="gradeType != null and gradeType != ''">
-            AND b.grade_type = #{gradeType}
+            AND c.grade_type = #{gradeType}
         </if>
         <if test="level != null and level != ''">
-            AND b.level = #{level}
+            AND c.level = #{level}
         </if>
     </select>
 
@@ -389,8 +393,28 @@
     <!-- 按模块统计质控缺陷数(分页) -->
     <select id="entryCountGroupByCasePage"  resultType="com.diagbot.dto.NumDTO">
         SELECT
-        d.cases_id AS id,
-        e.NAME AS name,
+        t.id,
+        t.`NAME`,
+        t.num,
+        t.totleNum,
+        t.percent,
+        t.percentStr
+        FROM
+        (
+        SELECT
+        t1.caseId AS id,
+        t1.caseName AS NAME,
+        t1.num AS num,
+        t2.mrNum,
+        t3.originalNum,
+        t2.mrNum * t3.originalNum AS totleNum,
+        ROUND( t1.num /( t2.mrNum * t3.originalNum ), 4 ) AS percent,
+        CONCAT( ROUND( t1.num /( t2.mrNum * t3.originalNum )* 100, 2 ), '%' ) AS percentStr
+        FROM
+        (
+        SELECT
+        d.cases_id AS caseId,
+        e.NAME AS caseName,
         count(*) AS num
         FROM
         med_behospital_info a,
@@ -431,6 +455,58 @@
         GROUP BY
         d.cases_id,
         e.`name`
+        ) t1,
+        (
+        SELECT
+        COUNT(*) AS mrNum
+        FROM
+        med_behospital_info a,
+        med_home_page b,
+        med_qcresult_info c
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        <![CDATA[AND a.qc_type_id <>0 ]]>
+        <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
+            AND a.hospital_id = #{filterPageVO.hospitalId}
+        </if>
+        <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
+            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageVO.startDate})]]>
+        </if>
+        <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
+        </if>
+        ) t2,
+        (
+        SELECT
+        a.id AS caseId,
+        a.NAME AS caseName,
+        count(*) AS originalNum
+        FROM
+        qc_cases a,
+        qc_cases_entry b
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND a.id = b.cases_id
+        <if test="filterPageVO.name != null and filterPageVO.name != ''">
+            AND a.name like CONCAT('%', #{filterPageVO.name},'%')
+        </if>
+        GROUP BY
+        a.id,
+        a.`name`
+        ) t3
+        WHERE
+        t1.caseId = t3.caseId
+        AND t1.caseName = t3.caseName
+        ORDER BY
+        ROUND( t1.num /( t2.mrNum * t3.originalNum ), 4 ) DESC
+        ) t
     </select>
 
     <!-- 条目缺陷分组统计(分页) -->
@@ -607,8 +683,28 @@
     <!-- 按模块统计质控缺陷数-科室(分页) -->
     <select id="entryCountGroupByCaseAndDeptPage" resultType="com.diagbot.dto.DeptNumDTO">
         SELECT
-        d.cases_id AS id,
-        e.NAME AS NAME,
+        t.id,
+        t.`NAME`,
+        t.num,
+        t.totleNum,
+        t.percent,
+        t.percentStr
+        FROM
+        (
+        SELECT
+        t1.caseId AS id,
+        t1.caseName AS NAME,
+        t1.num AS num,
+        t2.mrNum,
+        t3.originalNum,
+        t2.mrNum * t3.originalNum AS totleNum,
+        ROUND( t1.num /( t2.mrNum * t3.originalNum ), 4 ) AS percent,
+        CONCAT( ROUND( t1.num /( t2.mrNum * t3.originalNum )* 100, 2 ), '%' ) AS percentStr
+        FROM
+        (
+        SELECT
+        d.cases_id AS caseId,
+        e.NAME AS caseName,
         a.beh_dept_id AS deptId,
         a.beh_dept_name AS deptName,
         count(*) AS num
@@ -663,6 +759,72 @@
         e.`name`,
         a.beh_dept_id,
         a.beh_dept_name
+        ) t1,
+        (
+        SELECT
+        a.beh_dept_id AS deptId,
+        a.beh_dept_name AS deptName,
+        COUNT(*) AS mrNum
+        FROM
+        med_behospital_info a,
+        med_home_page b,
+        med_qcresult_info c,
+        sys_user_dept d
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND c.is_deleted = 'N'
+        AND d.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = c.hospital_id
+        AND a.hospital_id = d.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = c.behospital_code
+        AND a.beh_dept_id = d.dept_id
+        <![CDATA[AND a.qc_type_id <>0 ]]>
+        <if test="filterPageByDeptVO.userId!=null">
+            AND d.user_id = #{filterPageByDeptVO.userId}
+        </if>
+        <if test="filterPageByDeptVO.hospitalId != null and filterPageByDeptVO.hospitalId != ''">
+            AND a.hospital_id = #{filterPageByDeptVO.hospitalId}
+        </if>
+        <if test="filterPageByDeptVO.startDate != null and filterPageByDeptVO.startDate != ''">
+            <![CDATA[ and a.leave_hospital_date >= DATE(#{filterPageByDeptVO.startDate})]]>
+        </if>
+        <if test="filterPageByDeptVO.endDate != null and filterPageByDeptVO.endDate != ''">
+            <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageByDeptVO.endDate})]]>
+        </if>
+        <if test="filterPageByDeptVO.deptName != null and filterPageByDeptVO.deptName != ''">
+            AND a.beh_dept_name = #{filterPageByDeptVO.deptName}
+        </if>
+        GROUP BY
+        a.beh_dept_id,
+        a.beh_dept_name
+        ) t2,
+        (
+        SELECT
+        a.id AS caseId,
+        a.NAME AS caseName,
+        count(*) AS originalNum
+        FROM
+        qc_cases a,
+        qc_cases_entry b
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND a.id = b.cases_id
+        GROUP BY
+        a.id,
+        a.`name`
+        ) t3
+        WHERE
+        t1.caseId = t3.caseId
+        AND t1.caseName = t3.caseName
+        AND t1.deptId = t2.deptId
+        AND t1.deptName = t2.deptName
+        ORDER BY
+        ROUND( t1.num /( t2.mrNum * t3.originalNum ), 4 ) DESC
+        ) t
     </select>
 
     <!-- 条目缺陷分组统计-科室(分页) -->