Procházet zdrojové kódy

Merge branch 'dev/zzcx20200202_init' into develop_znwz_zzcx_xlcs

gaodm před 5 roky
rodič
revize
bec368b6dc
25 změnil soubory, kde provedl 747 přidání a 73 odebrání
  1. 10 0
      common/src/main/java/com/diagbot/util/IdCard.java
  2. 2 1
      docs/031.20200229自诊程序配置/init_zzcx.sql
  3. 20 0
      docs/031.20200229自诊程序配置/zzcx20200220.sql
  4. 80 0
      zzcx-service/src/main/java/com/diagbot/dto/InquiryDTO.java
  5. 43 0
      zzcx-service/src/main/java/com/diagbot/dto/InquiryPatDTO.java
  6. 33 0
      zzcx-service/src/main/java/com/diagbot/dto/SysSetProHosResDTO.java
  7. 31 0
      zzcx-service/src/main/java/com/diagbot/entity/InquiryInfo.java
  8. 20 17
      zzcx-service/src/main/java/com/diagbot/entity/SysSet.java
  9. 50 0
      zzcx-service/src/main/java/com/diagbot/enums/IdTypeEnum.java
  10. 79 8
      zzcx-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java
  11. 16 0
      zzcx-service/src/main/java/com/diagbot/facade/OptInfoFacade.java
  12. 25 0
      zzcx-service/src/main/java/com/diagbot/facade/SysSetFacade.java
  13. 10 0
      zzcx-service/src/main/java/com/diagbot/mapper/InquiryInfoMapper.java
  14. 9 0
      zzcx-service/src/main/java/com/diagbot/service/InquiryInfoService.java
  15. 16 0
      zzcx-service/src/main/java/com/diagbot/service/impl/InquiryInfoServiceImpl.java
  16. 19 0
      zzcx-service/src/main/java/com/diagbot/vo/InquiryDetailVO.java
  17. 41 0
      zzcx-service/src/main/java/com/diagbot/vo/InquiryPatInquiryVO.java
  18. 41 0
      zzcx-service/src/main/java/com/diagbot/vo/InquiryPatVO.java
  19. 3 0
      zzcx-service/src/main/java/com/diagbot/vo/OptHospPageVO.java
  20. 18 12
      zzcx-service/src/main/java/com/diagbot/vo/SaveInquiryVO.java
  21. 45 0
      zzcx-service/src/main/java/com/diagbot/web/InquiryInfoController.java
  22. 10 1
      zzcx-service/src/main/java/com/diagbot/web/OptInfoController.java
  23. 8 0
      zzcx-service/src/main/java/com/diagbot/web/SysSetController.java
  24. 45 0
      zzcx-service/src/main/resources/mapper/InquiryInfoMapper.xml
  25. 73 34
      zzcx-service/src/main/resources/mapper/OptInfoMapper.xml

+ 10 - 0
common/src/main/java/com/diagbot/util/IdCard.java

@@ -33,6 +33,16 @@ public class IdCard {
         return iAge;
     }
 
+    /**
+     * 根据身份编号获取年龄加1
+     *
+     * @param idCard 身份编号
+     * @return 年龄
+     */
+    public static int getAgeByIdCardAddOne(String idCard) {
+        return getAgeByIdCard(idCard) + 1;
+    }
+
     /**
      * 根据身份编号获取生日
      *

+ 2 - 1
docs/031.20200229自诊程序配置/init_zzcx.sql

@@ -38,6 +38,7 @@ INSERT INTO `sys-zzcx`.`zzcx_sys_set` (`id`, `is_deleted`, `gmt_create`, `gmt_mo
 INSERT INTO `sys-zzcx`.`zzcx_sys_set` (`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `hospital_code`, `name`, `code`, `value`, `remark`) VALUES ('20', 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', NULL, NULL, '飞图影像', 'logo图片参数', 'imgUrl', 'ftyx.png', 'logo图片参数');
 
 
-
+ALTER TABLE `zzcx_sys_set`
+ADD COLUMN `province` varchar(50) NOT NULL DEFAULT '' COMMENT '省份' after `value`;
 
 

+ 20 - 0
docs/031.20200229自诊程序配置/zzcx20200220.sql

@@ -0,0 +1,20 @@
+ALTER TABLE `zzcx_inquiry_info`
+ADD COLUMN `pat_name` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名' after `ip`;
+
+ALTER TABLE `zzcx_inquiry_info`
+ADD COLUMN `pat_age` int(8) NOT NULL DEFAULT '0' COMMENT '年龄' after `pat_name`;
+
+ALTER TABLE `zzcx_inquiry_info`
+ADD COLUMN `pat_sex` tinyint(4)  NOT NULL DEFAULT '0' COMMENT '性别' after `pat_age`;
+
+ALTER TABLE `zzcx_inquiry_info`
+ADD COLUMN `id_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '证件类型(1:身份证,2:护照)' after `pat_sex`;
+
+ALTER TABLE `zzcx_inquiry_info`
+ADD COLUMN `id_num` varchar(100) NOT NULL DEFAULT '' COMMENT '证件号' after `id_type`;
+
+ALTER TABLE `zzcx_inquiry_info`
+ADD COLUMN `degree` tinyint(4) NOT NULL DEFAULT '0' COMMENT '诊断程度(1:高,2:中,3:低)' after `id_num`;
+
+
+

+ 80 - 0
zzcx-service/src/main/java/com/diagbot/dto/InquiryDTO.java

@@ -0,0 +1,80 @@
+package com.diagbot.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/2/3 9:50
+ */
+@Getter
+@Setter
+public class InquiryDTO {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 记录创建时间
+     */
+    private Date gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private Date gmtModified;
+
+    /**
+     * 诊断
+     */
+    private String diagnosis;
+
+    /**
+     * 医院名称
+     */
+    private String hospitalCode;
+
+    /**
+     * 访问者的IP
+     */
+    private String ip;
+
+    /**
+     * 姓名
+     */
+    private String patName;
+
+    /**
+     * 年龄
+     */
+    private Integer patAge;
+
+    /**
+     * 性别
+     */
+    private Integer patSex;
+
+    /**
+     * 证件类型(1:身份证,2:护照)
+     */
+    private Integer idType;
+
+    /**
+     * 证件号
+     */
+    private String idNum;
+
+    /**
+     * 诊断程度(1:高,2:中,3:低)
+     */
+    private Integer degree;
+}

+ 43 - 0
zzcx-service/src/main/java/com/diagbot/dto/InquiryPatDTO.java

@@ -0,0 +1,43 @@
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/2/3 9:50
+ */
+@Getter
+@Setter
+public class InquiryPatDTO {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 姓名
+     */
+    private String patName;
+
+    /**
+     * 年龄
+     */
+    private Integer patAge;
+
+    /**
+     * 性别
+     */
+    private Integer patSex;
+
+    /**
+     * 证件类型(1:身份证,2:护照)
+     */
+    private Integer idType;
+
+    /**
+     * 证件号
+     */
+    private String idNum;
+}

+ 33 - 0
zzcx-service/src/main/java/com/diagbot/dto/SysSetProHosResDTO.java

@@ -0,0 +1,33 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @date: 2020/2/9 12:06
+ * @version: V1.0
+ */
+@Getter
+@Setter
+public class SysSetProHosResDTO {
+
+    /**
+     * 医院列表
+     */
+    private List<String> hospitalCodeList;
+
+    /**
+     * 省份
+     */
+    private String province;
+
+    /**
+     * 医院数量
+     */
+    private int size = 0;
+
+}

+ 31 - 0
zzcx-service/src/main/java/com/diagbot/entity/InquiryInfo.java

@@ -3,6 +3,7 @@ package com.diagbot.entity;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -70,6 +71,36 @@ public class InquiryInfo implements Serializable {
      */
     private String ip;
 
+    /**
+     * 姓名
+     */
+    private String patName;
+
+    /**
+     * 年龄
+     */
+    private Integer patAge;
+
+    /**
+     * 性别
+     */
+    private Integer patSex;
+
+    /**
+     * 证件类型(1:身份证,2:护照)
+     */
+    private Integer idType;
+
+    /**
+     * 证件号
+     */
+    private String idNum;
+
+    /**
+     * 诊断程度(1:高,2:中,3:低)
+     */
+    private Integer degree;
+
     /**
      * 备注
      */

+ 20 - 17
zzcx-service/src/main/java/com/diagbot/entity/SysSet.java

@@ -67,6 +67,8 @@ public class SysSet implements Serializable {
 
     private String value;
 
+    private String province;
+
     /**
      * 备注
      */
@@ -79,6 +81,7 @@ public class SysSet implements Serializable {
     public void setId(Long id) {
         this.id = id;
     }
+
     public String getIsDeleted() {
         return isDeleted;
     }
@@ -86,6 +89,7 @@ public class SysSet implements Serializable {
     public void setIsDeleted(String isDeleted) {
         this.isDeleted = isDeleted;
     }
+
     public LocalDateTime getGmtCreate() {
         return gmtCreate;
     }
@@ -93,6 +97,7 @@ public class SysSet implements Serializable {
     public void setGmtCreate(LocalDateTime gmtCreate) {
         this.gmtCreate = gmtCreate;
     }
+
     public LocalDateTime getGmtModified() {
         return gmtModified;
     }
@@ -100,6 +105,7 @@ public class SysSet implements Serializable {
     public void setGmtModified(LocalDateTime gmtModified) {
         this.gmtModified = gmtModified;
     }
+
     public String getCreator() {
         return creator;
     }
@@ -107,6 +113,7 @@ public class SysSet implements Serializable {
     public void setCreator(String creator) {
         this.creator = creator;
     }
+
     public String getModifier() {
         return modifier;
     }
@@ -114,6 +121,7 @@ public class SysSet implements Serializable {
     public void setModifier(String modifier) {
         this.modifier = modifier;
     }
+
     public String getHospitalCode() {
         return hospitalCode;
     }
@@ -121,6 +129,7 @@ public class SysSet implements Serializable {
     public void setHospitalCode(String hospitalCode) {
         this.hospitalCode = hospitalCode;
     }
+
     public String getName() {
         return name;
     }
@@ -128,6 +137,7 @@ public class SysSet implements Serializable {
     public void setName(String name) {
         this.name = name;
     }
+
     public String getCode() {
         return code;
     }
@@ -135,6 +145,7 @@ public class SysSet implements Serializable {
     public void setCode(String code) {
         this.code = code;
     }
+
     public String getValue() {
         return value;
     }
@@ -142,6 +153,15 @@ public class SysSet implements Serializable {
     public void setValue(String value) {
         this.value = value;
     }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
     public String getRemark() {
         return remark;
     }
@@ -149,21 +169,4 @@ public class SysSet implements Serializable {
     public void setRemark(String remark) {
         this.remark = remark;
     }
-
-    @Override
-    public String toString() {
-        return "SysSet{" +
-            "id=" + id +
-            ", isDeleted=" + isDeleted +
-            ", gmtCreate=" + gmtCreate +
-            ", gmtModified=" + gmtModified +
-            ", creator=" + creator +
-            ", modifier=" + modifier +
-            ", hospitalCode=" + hospitalCode +
-            ", name=" + name +
-            ", code=" + code +
-            ", value=" + value +
-            ", remark=" + remark +
-        "}";
-    }
 }

+ 50 - 0
zzcx-service/src/main/java/com/diagbot/enums/IdTypeEnum.java

@@ -0,0 +1,50 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @author zhoutg
+ * @Description: 证件类型
+ * @date 2018年11月21日 下午2:31:42
+ */
+public enum IdTypeEnum implements KeyedNamed {
+    IdentityCard (1, "身份证"),
+    Passport(2, "护照");
+
+    @Setter
+    private int key;
+
+    @Setter
+    private String name;
+
+    IdTypeEnum(int key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static IdTypeEnum getEnum(int key) {
+        for (IdTypeEnum item : IdTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(int key) {
+        IdTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}
+

+ 79 - 8
zzcx-service/src/main/java/com/diagbot/facade/InquiryInfoFacade.java

@@ -1,14 +1,27 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.InquiryDTO;
+import com.diagbot.dto.InquiryPatDTO;
 import com.diagbot.entity.InquiryDetail;
 import com.diagbot.entity.InquiryInfo;
+import com.diagbot.enums.IdTypeEnum;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.InquiryDetailServiceImpl;
 import com.diagbot.service.impl.InquiryInfoServiceImpl;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.HttpUtils;
+import com.diagbot.util.IdCard;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.HospitalVO;
+import com.diagbot.vo.InquiryDetailVO;
+import com.diagbot.vo.InquiryPatInquiryVO;
+import com.diagbot.vo.InquiryPatVO;
 import com.diagbot.vo.SaveInquiryVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
@@ -28,6 +41,8 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
 
     @Autowired
     OptInfoFacade optInfoFacade;
+    @Autowired
+    InquiryDetailFacade inquiryDetailFacade;
 
     @Autowired
     @Qualifier("inquiryDetailServiceImpl")
@@ -38,17 +53,54 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
             saveInquiryVO.setHospitalCode("朗通通用");
         }
         Date now = DateUtil.now();
+        // 如果是身份证,获取性别和年龄
+        if (IdTypeEnum.IdentityCard.getKey() == saveInquiryVO.getIdType()) {
+            String idNum = saveInquiryVO.getIdNum();
+            if (StringUtil.isNotBlank(idNum)) {
+                saveInquiryVO.setPatAge(IdCard.getAgeByIdCardAddOne(idNum));
+                saveInquiryVO.setPatSex(IdCard.getGenderByIdCard(idNum));
+            }
+        }
 
-        InquiryInfo inquiryInfo = new InquiryInfo();
-        BeanUtil.copyProperties(saveInquiryVO, inquiryInfo);
-        inquiryInfo.setGmtCreate(now);
-        inquiryInfo.setGmtModified(now);
-        inquiryInfo.setIp(HttpUtils.getIpAddress());
-        save(inquiryInfo);
-
+        String dateStr = DateUtil.formatDate(now);
+        InquiryInfo inquiryInfo = this.getOne(new QueryWrapper<InquiryInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_code", saveInquiryVO.getHospitalCode())
+                .eq("pat_name", saveInquiryVO.getPatName())
+                .eq("id_type", saveInquiryVO.getIdType())
+                .eq("id_num", saveInquiryVO.getIdNum())
+                .apply("date_format(gmt_modified, '%Y-%m-%d')={0}", dateStr), false
+        );
+        if (inquiryInfo == null) {
+            inquiryInfo = new InquiryInfo();
+            BeanUtil.copyProperties(saveInquiryVO, inquiryInfo);
+            inquiryInfo.setGmtCreate(now);
+            inquiryInfo.setGmtModified(now);
+            inquiryInfo.setIp(HttpUtils.getIpAddress());
+            save(inquiryInfo);
+        } else {
+            inquiryInfo.setGmtModified(now);
+            inquiryInfo.setIp(HttpUtils.getIpAddress());
+            inquiryInfo.setDiagnosis(saveInquiryVO.getDiagnosis());
+            inquiryInfo.setDegree(saveInquiryVO.getDegree());
+            this.update(new UpdateWrapper<InquiryInfo>()
+                    .set("ip", HttpUtils.getIpAddress())
+                    .set("gmt_modified", now)
+                    .set("diagnosis", saveInquiryVO.getDiagnosis())
+                    .set("degree", saveInquiryVO.getDegree())
+                    .eq("id", inquiryInfo.getId())
+            );
+            // 删除原明细
+            inquiryDetailFacade.update(new UpdateWrapper<InquiryDetail>()
+                   .set("gmt_modified", now)
+                   .set("is_deleted", IsDeleteEnum.Y.getKey())
+                   .eq("inquiry_id", inquiryInfo.getId())
+            );
+        }
+        Long id = inquiryInfo.getId();
         List<InquiryDetail> inquiryDetailList = BeanUtil.listCopyTo(saveInquiryVO.getDetailList(), InquiryDetail.class);
         inquiryDetailList.forEach(i -> {
-            i.setInquiryId(inquiryInfo.getId());
+            i.setInquiryId(id);
             i.setGmtCreate(now);
             i.setGmtModified(now);
         });
@@ -60,4 +112,23 @@ public class InquiryInfoFacade extends InquiryInfoServiceImpl {
         optInfoFacade.saveOptOnfo(hospitalVO, "2");
     }
 
+
+    public List<InquiryPatDTO> getPatListFac(InquiryPatVO inquiryPatVO) {
+        return this.getPatList(inquiryPatVO);
+    }
+
+    public List<InquiryDTO> getPatInquiryFac(InquiryPatInquiryVO inquiryPatInquiryVO) {
+        return this.getPatInquiryList(inquiryPatInquiryVO);
+    }
+
+    public List<InquiryDetail> getDetail(InquiryDetailVO inquiryDetailVO) {
+        List<InquiryDetail> list = inquiryDetailFacade.list(new QueryWrapper<InquiryDetail>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("inquiry_id", inquiryDetailVO.getId())
+                .orderByAsc("id")
+        );
+        return list;
+    }
+
+
 }

+ 16 - 0
zzcx-service/src/main/java/com/diagbot/facade/OptInfoFacade.java

@@ -21,10 +21,12 @@ import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -196,4 +198,18 @@ public class OptInfoFacade extends OptInfoServiceImpl {
         }
         return hospNameDTO;
     }
+
+
+    public HospNameDTO getAllHospitalNameWithLtFrist(){
+        HospNameDTO hospNameDTO = new HospNameDTO();
+        List<String> hospitalList = optInfoFacade.getAllHospital();
+        if(ListUtil.isNotEmpty(hospitalList)){
+            List<String> hospitalListNew = new ArrayList<>();
+            List<String> hospitalListFilter = hospitalList.stream().filter(r -> !"朗通通用".equals(r)).collect(Collectors.toList());
+            hospitalListNew.add("朗通通用");
+            hospitalListNew.addAll(hospitalListFilter);
+            hospNameDTO.setHospitalCode(hospitalListNew);
+        }
+        return hospNameDTO;
+    }
 }

+ 25 - 0
zzcx-service/src/main/java/com/diagbot/facade/SysSetFacade.java

@@ -2,17 +2,22 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.SysSetDTO;
+import com.diagbot.dto.SysSetProHosResDTO;
 import com.diagbot.entity.SysSet;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.SysSetServiceImpl;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.SysSetVO;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -33,4 +38,24 @@ public class SysSetFacade extends SysSetServiceImpl {
         List<SysSetDTO> res = BeanUtil.listCopyTo(sysSetList, SysSetDTO.class);
         return res;
     }
+
+
+    public List<SysSetProHosResDTO> getPositon(){
+        List<SysSetProHosResDTO> res = new ArrayList<>();
+        QueryWrapper<SysSet> sysSetQueryWrapper = new QueryWrapper<>();
+        sysSetQueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("code","imgUrl")
+                .ne("province","")
+                .orderByAsc("province");
+        List<SysSet> sysSetList = this.list(sysSetQueryWrapper);
+        Map<String, List<SysSet>> map = EntityUtil.makeEntityListMap(sysSetList, "province");
+        for (String key : map.keySet()) {
+            SysSetProHosResDTO bean = new SysSetProHosResDTO();
+            bean.setProvince(key);
+            bean.setHospitalCodeList(map.get(key).stream().map(r -> r.getHospitalCode()).collect(Collectors.toList()));
+            bean.setSize(bean.getHospitalCodeList().size());
+            res.add(bean);
+        }
+        return res;
+    }
 }

+ 10 - 0
zzcx-service/src/main/java/com/diagbot/mapper/InquiryInfoMapper.java

@@ -1,7 +1,13 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.InquiryDTO;
+import com.diagbot.dto.InquiryPatDTO;
 import com.diagbot.entity.InquiryInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.InquiryPatInquiryVO;
+import com.diagbot.vo.InquiryPatVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface InquiryInfoMapper extends BaseMapper<InquiryInfo> {
 
+    public List<InquiryPatDTO> getPatList(InquiryPatVO inquiryPatVO);
+
+    public List<InquiryDTO> getPatInquiryList(InquiryPatInquiryVO inquiryPatInquiryVO);
+
 }

+ 9 - 0
zzcx-service/src/main/java/com/diagbot/service/InquiryInfoService.java

@@ -1,7 +1,13 @@
 package com.diagbot.service;
 
+import com.diagbot.dto.InquiryDTO;
+import com.diagbot.dto.InquiryPatDTO;
 import com.diagbot.entity.InquiryInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.InquiryPatInquiryVO;
+import com.diagbot.vo.InquiryPatVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +19,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface InquiryInfoService extends IService<InquiryInfo> {
 
+    public List<InquiryPatDTO> getPatList(InquiryPatVO inquiryPatVO);
+
+    public List<InquiryDTO> getPatInquiryList(InquiryPatInquiryVO inquiryPatInquiryVO);
 }

+ 16 - 0
zzcx-service/src/main/java/com/diagbot/service/impl/InquiryInfoServiceImpl.java

@@ -1,11 +1,17 @@
 package com.diagbot.service.impl;
 
+import com.diagbot.dto.InquiryDTO;
+import com.diagbot.dto.InquiryPatDTO;
 import com.diagbot.entity.InquiryInfo;
 import com.diagbot.mapper.InquiryInfoMapper;
 import com.diagbot.service.InquiryInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.InquiryPatInquiryVO;
+import com.diagbot.vo.InquiryPatVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 问诊记录-主表 服务实现类
@@ -17,4 +23,14 @@ import org.springframework.stereotype.Service;
 @Service
 public class InquiryInfoServiceImpl extends ServiceImpl<InquiryInfoMapper, InquiryInfo> implements InquiryInfoService {
 
+    @Override
+    public List<InquiryPatDTO> getPatList(InquiryPatVO inquiryPatVO) {
+        return baseMapper.getPatList(inquiryPatVO);
+    }
+
+    @Override
+    public List<InquiryDTO> getPatInquiryList(InquiryPatInquiryVO inquiryPatInquiryVO) {
+        return baseMapper.getPatInquiryList(inquiryPatInquiryVO);
+    }
+
 }

+ 19 - 0
zzcx-service/src/main/java/com/diagbot/vo/InquiryDetailVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/2/3 9:50
+ */
+@Getter
+@Setter
+public class InquiryDetailVO {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 病历id
+     */
+    private Long id;
+}

+ 41 - 0
zzcx-service/src/main/java/com/diagbot/vo/InquiryPatInquiryVO.java

@@ -0,0 +1,41 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/2/3 9:50
+ */
+@Getter
+@Setter
+public class InquiryPatInquiryVO {
+    private static final long serialVersionUID = 1L;
+
+    private String hospitalCode;
+    /**
+     * 姓名
+     */
+    private String patName;
+
+    /**
+     * 性别
+     */
+    private Integer patSex;
+
+    /**
+     * 证件类型(1:身份证,2:护照)
+     */
+    private Integer idType;
+
+    /**
+     * 证件号
+     */
+    private String idNum;
+
+}

+ 41 - 0
zzcx-service/src/main/java/com/diagbot/vo/InquiryPatVO.java

@@ -0,0 +1,41 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhoutg
+ * @time: 2020/2/3 9:50
+ */
+@Getter
+@Setter
+public class InquiryPatVO {
+    private static final long serialVersionUID = 1L;
+
+    private String hospitalCode;
+    /**
+     * 姓名
+     */
+    private String patName;
+
+    /**
+     * 性别
+     */
+    private Integer patSex;
+
+    /**
+     * 证件类型(1:身份证,2:护照)
+     */
+    private Integer idType;
+
+    /**
+     * 证件号
+     */
+    private String idNum;
+
+    /**
+     * 诊断程度(1:高,2:中,3:低)
+     */
+    private Integer degree;
+}

+ 3 - 0
zzcx-service/src/main/java/com/diagbot/vo/OptHospPageVO.java

@@ -29,4 +29,7 @@ public class OptHospPageVO extends Page {
 
     //医院名称列表
     private List<String> hospitalCodeList;
+
+    // 类型数组,默认都会返回访问量,有uvSum:再返回用户量,有zzSum:再返回提交量
+    private List<String> typeList;
 }

+ 18 - 12
zzcx-service/src/main/java/com/diagbot/vo/SaveInquiryVO.java

@@ -18,28 +18,34 @@ import java.util.List;
 @Setter
 public class SaveInquiryVO {
 
-    //医院名称
-//    @NotBlank(message = "请输入医院信息")
+    @ApiModelProperty(value = "医院名称")
     private String hospitalCode;
 
-    /**
-     * 访问者的IP
-     */
     @ApiModelProperty(value = "访问者的IP", hidden = true)
     private String ip;
 
-    /**
-     * 诊断
-     */
     @ApiModelProperty(value = "诊断", required = true)
     private String diagnosis;
 
-
-    /**
-     * 问诊明细
-     */
     @Valid
     @ApiModelProperty(value = "问诊明细", required = true)
     private List<SaveInquiryDetailVO> detailList;
 
+    @ApiModelProperty(value = "姓名")
+    private String patName;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer patAge;
+
+    @ApiModelProperty(value = "性别")
+    private Integer patSex;
+
+    @ApiModelProperty(value = "证件类型(1:身份证,2:护照)")
+    private Integer idType;
+
+    @ApiModelProperty(value = "证件号")
+    private String idNum;
+
+    @ApiModelProperty(value = "诊断程度(1:高,2:中,3:低)")
+    private Integer degree;
 }

+ 45 - 0
zzcx-service/src/main/java/com/diagbot/web/InquiryInfoController.java

@@ -1,11 +1,18 @@
 package com.diagbot.web;
 
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.InquiryDTO;
+import com.diagbot.dto.InquiryPatDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SaveInquiryDTO;
+import com.diagbot.entity.InquiryDetail;
 import com.diagbot.facade.InquiryInfoFacade;
+import com.diagbot.vo.InquiryDetailVO;
+import com.diagbot.vo.InquiryPatInquiryVO;
+import com.diagbot.vo.InquiryPatVO;
 import com.diagbot.vo.SaveInquiryVO;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -15,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;
 
 /**
  * @author zhoutg
@@ -39,4 +47,41 @@ public class InquiryInfoController {
     }
 
 
+    @ApiOperation(value = "获取机构下病人列表[by:zhoutg]",
+            notes = "hospitalCode:医院名称<br>" +
+                    "patName:姓名<br>" +
+                    "patSex:性别<br>" +
+                    "idType:证件类型(1:身份证,2:护照)<br>" +
+                    "idNum:证件号<br>" +
+                    "degree:诊断程度(1:高,2:中,3:低)<br>")
+    @PostMapping("/getPatList")
+    @SysLogger("getPatList")
+    public RespDTO<List<InquiryPatDTO>> getPatList(@RequestBody InquiryPatVO inquiryPatVO) {
+        List<InquiryPatDTO> data = inquiryInfoFacade.getPatListFac(inquiryPatVO);
+        return RespDTO.onSuc(data);
+    }
+
+
+    @ApiOperation(value = "获取机构下病人病历[by:zhoutg]",
+            notes = "hospitalCode:医院名称<br>" +
+                    "patName:姓名<br>" +
+                    "patSex:性别<br>" +
+                    "idNum:证件号<br>" +
+                    "idType:证件类型(1:身份证,2:护照)<br>")
+    @PostMapping("/getPatInquiry")
+    @SysLogger("getPatInquiry")
+    public RespDTO<List<InquiryDTO>> getPatInquiry(@RequestBody InquiryPatInquiryVO inquiryPatInquiryVO) {
+        List<InquiryDTO> data = inquiryInfoFacade.getPatInquiryFac(inquiryPatInquiryVO);
+        return RespDTO.onSuc(data);
+    }
+
+
+    @ApiOperation(value = "获取病历详情[by:zhoutg]",
+            notes = "id:病历id<br>")
+    @PostMapping("/getDetailById")
+    @SysLogger("getDetailById")
+    public RespDTO<List<InquiryDetail>> getDetail(@RequestBody InquiryDetailVO inquiryDetailVO) {
+        List<InquiryDetail> data = inquiryInfoFacade.getDetail(inquiryDetailVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 10 - 1
zzcx-service/src/main/java/com/diagbot/web/OptInfoController.java

@@ -76,6 +76,14 @@ public class OptInfoController {
         return RespDTO.onSuc(optInfoFacade.getAllHospitalName());
     }
 
+    @ApiOperation(value = "获取所有医院名称,朗通通用排第一[by:zhoutg]",
+            notes = "")
+    @PostMapping("/getAllHospitalNameWithLtFrist")
+    @SysLogger("getAllHospitalNameWithLtFrist")
+    public RespDTO<HospNameDTO> getAllHospitalNameWithLtFrist() {
+        return RespDTO.onSuc(optInfoFacade.getAllHospitalNameWithLtFrist());
+    }
+
 
     @ApiOperation(value = "获取合计数据不带医院名称,只统计总数据,不统计每天数据[by:zhoutg]",
             notes = "hospitalCode: 医院名称,String<br>" +
@@ -108,7 +116,8 @@ public class OptInfoController {
                     "endDate: 结束时间,Date<br>" +
                     "desc:排序指标,[pvSum|uvSum|zzSum]<br>" +
                     "page;第几页<br>" +
-                    "size:条数<br>")
+                    "size:条数<br>" +
+                    "typeList:类型数组,默认都会返回访问量,有uvSum:再返回用户量,有zzSum:再返回提交量")
     @PostMapping("/getOptSumHospNoDaysPage")
     @SysLogger("getOptSumHospNoDaysPage")
     public RespDTO<IPage<HospItemDTO>> getOptSumHospNoDaysPage(@RequestBody OptHospPageVO optHospPageVO) {

+ 8 - 0
zzcx-service/src/main/java/com/diagbot/web/SysSetController.java

@@ -4,6 +4,7 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.SysSetDTO;
+import com.diagbot.dto.SysSetProHosResDTO;
 import com.diagbot.facade.SysSetFacade;
 import com.diagbot.vo.SysSetVO;
 import io.swagger.annotations.Api;
@@ -38,4 +39,11 @@ public class SysSetController {
     public RespDTO<List<SysSetDTO>> getSysSet(@RequestBody SysSetVO sysSetVO) {
         return RespDTO.onSuc(sysSetFacade.getSysSet(sysSetVO));
     }
+
+    @ApiOperation(value = "获取省份统计信息[by:zhoutg]")
+    @PostMapping("/getPosition")
+    @SysLogger("getPosition")
+    public RespDTO<List<SysSetProHosResDTO>> getPosition() {
+        return RespDTO.onSuc(sysSetFacade.getPositon());
+    }
 }

+ 45 - 0
zzcx-service/src/main/resources/mapper/InquiryInfoMapper.xml

@@ -16,4 +16,49 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <select id="getPatList" resultType="com.diagbot.dto.InquiryPatDTO">
+        select distinct pat_name, id_type, id_num, pat_sex, pat_age from zzcx_inquiry_info
+        where is_deleted = 'N' and pat_name != ''
+        <if test="hospitalCode != null and hospitalCode != '' ">
+            and hospital_code = #{hospitalCode}
+        </if>
+        <if test="patName != null and patName != '' ">
+            and pat_name like concat('%', #{patName}, '%')
+        </if>
+        <if test="patSex != null and patSex != '' ">
+            and pat_sex = #{patSex}
+        </if>
+        <if test="idType != null and idType != '' ">
+            and id_type = #{idType}
+        </if>
+        <if test="idNum != null and idNum != '' ">
+            and id_num like concat('%', #{idNum}, '%')
+        </if>
+        <if test="degree != null and degree != '' ">
+            and degree = #{degree}
+        </if>
+        order by pat_name
+    </select>
+
+
+    <select id="getPatInquiryList" resultType="com.diagbot.dto.InquiryDTO">
+        select * from zzcx_inquiry_info where is_deleted = 'N'
+        <if test="hospitalCode != null and hospitalCode != '' ">
+            and hospital_code = #{hospitalCode}
+        </if>
+        <if test="patName != null and patName != '' ">
+            and pat_name like concat('%', #{patName}, '%')
+        </if>
+        <if test="patSex != null and patSex != '' ">
+            and pat_sex = #{patSex}
+        </if>
+        <if test="idType != null and idType != '' ">
+            and id_type = #{idType}
+        </if>
+        <if test="idNum != null and idNum != '' ">
+            and id_num like concat('%', #{idNum}, '%')
+        </if>
+        order by gmt_modified desc
+    </select>
+
 </mapper>

+ 73 - 34
zzcx-service/src/main/resources/mapper/OptInfoMapper.xml

@@ -366,6 +366,12 @@
                     zzcx_opt_info
                     WHERE
                     opt_type = 1
+                    <if test="startDate!=null">
+                        AND gmt_create &gt;= #{startDate}
+                    </if>
+                    <if test="endDate!=null">
+                        AND gmt_create &lt;= #{endDate}
+                    </if>
             --         AND hospital_code !='朗通通用'
                     ) t1 where t1.hospitalCode = a.hospitalCode
                     GROUP BY
@@ -385,6 +391,12 @@
                     zzcx_opt_info
                     WHERE
                     opt_type = 2
+                    <if test="startDate!=null">
+                        AND gmt_create &gt;= #{startDate}
+                    </if>
+                    <if test="endDate!=null">
+                        AND gmt_create &lt;= #{endDate}
+                    </if>
                     ) t2 where t2.hospitalCode = a.hospitalCode
                     GROUP BY
                     hospitalCode
@@ -423,42 +435,69 @@
     <select id="getPageHospitalPUZ" resultType="com.diagbot.dto.HospItemDTO">
         select tt.hospitalCode, IFNULL(tt.pvSum, 0) pvSum , iFNULL(tt.uvSum, 0) uvSum,  iFNULL(tt.zzSum, 0) zzSum from (
         select a.*,
-            (SELECT
-            count(ip)
-            FROM
-            (
-            SELECT DISTINCT
-            hospital_code AS hospitalCode,
-            DATE_FORMAT(gmt_create, '%Y-%m-%d') AS days,
-            ip
-            FROM
-            zzcx_opt_info
-            WHERE
-            opt_type = 1
-            --         AND hospital_code !='朗通通用'
-            ) t1 where t1.hospitalCode = a.hospitalCode
-            GROUP BY
-            hospitalCode
-            )  AS uvSum,
+            <choose>
+                <when test='typeList != null and typeList.contains("uvSum")'>
+                    (SELECT
+                    count(ip)
+                    FROM
+                    (
+                    SELECT DISTINCT
+                    hospital_code AS hospitalCode,
+                    DATE_FORMAT(gmt_create, '%Y-%m-%d') AS days,
+                    ip
+                    FROM
+                    zzcx_opt_info
+                    WHERE
+                    opt_type = 1
+                    <if test="startDate!=null">
+                        AND gmt_create &gt;= #{startDate}
+                    </if>
+                    <if test="endDate!=null">
+                        AND gmt_create &lt;= #{endDate}
+                    </if>
+                    --         AND hospital_code !='朗通通用'
+                    ) t1 where t1.hospitalCode = a.hospitalCode
 
-            (
-            SELECT
-            count(ip)
-            FROM
-            (
-            SELECT DISTINCT
-            hospital_code AS hospitalCode,
-            DATE_FORMAT(gmt_create, '%Y-%m-%d') AS days,
-            ip
-            FROM
-            zzcx_opt_info
-            WHERE
-            opt_type = 2
-            ) t2 where t2.hospitalCode = a.hospitalCode
-            GROUP BY
-            hospitalCode
-            )  AS zzSum
+                    GROUP BY
+                    hospitalCode
+                    )  AS uvSum
+                </when>
+                <otherwise>
+                    0 AS uvSum
+                </otherwise>
+            </choose>
+            ,
 
+            <choose>
+              <when test='typeList != null and typeList.contains("zzSum")'>
+                (
+                SELECT
+                count(ip)
+                FROM
+                (
+                SELECT DISTINCT
+                hospital_code AS hospitalCode,
+                DATE_FORMAT(gmt_create, '%Y-%m-%d') AS days,
+                ip
+                FROM
+                zzcx_opt_info
+                WHERE
+                opt_type = 2
+                <if test="startDate!=null">
+                    AND gmt_create &gt;= #{startDate}
+                </if>
+                <if test="endDate!=null">
+                    AND gmt_create &lt;= #{endDate}
+                </if>
+                ) t2 where t2.hospitalCode = a.hospitalCode
+                GROUP BY
+                hospitalCode
+                )  AS zzSum
+            </when>
+                <otherwise>
+                    0 AS zzSum
+                </otherwise>
+            </choose>
         from
         (
         SELECT