Pārlūkot izejas kodu

居民新增医保卡,电子健康卡等关联表

LiTaohong 6 gadi atpakaļ
vecāks
revīzija
98697543fd
22 mainītis faili ar 506 papildinājumiem un 57 dzēšanām
  1. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/base/org/BaseOrgDO.java
  2. 79 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/PatientMedicareCardDO.java
  3. 19 7
      common/common-entity/src/main/java/com/yihu/jw/entity/base/team/BaseTeamDO.java
  4. 1 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java
  5. 21 7
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/team/BaseTeamVO.java
  6. 15 2
      sql/init.sql
  7. 3 3
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/doctor/BaseDoctorDao.java
  8. 9 3
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/org/OrgTreeDao.java
  9. 15 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/patient/PatientMedicareCardDao.java
  10. 6 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/team/BaseTeamDao.java
  11. 5 5
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/doctor/BaseDoctorEndpoint.java
  12. 8 4
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/patient/BasePatientEndpoint.java
  13. 8 4
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/team/BaseTeamEndpoint.java
  14. 8 8
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java
  15. 24 6
      svr/svr-base/src/main/java/com/yihu/jw/base/service/org/BaseOrgService.java
  16. 22 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/org/OrgTree.java
  17. 126 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/org/OrgTreeService.java
  18. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/org/tree/SimpleTreeNode.java
  19. 39 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/patient/BasePatientService.java
  20. 39 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/patient/PatientMedicardCardService.java
  21. 3 2
      svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasBusinessCardService.java
  22. 54 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/team/BaseTeamService.java

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/org/BaseOrgDO.java

@ -142,7 +142,7 @@ public class BaseOrgDO extends UuidIdentityEntityWithOperator {
	 */
	private String del;
	public BaseOrgDO(){}
	public BaseOrgDO(String provinceCode,String provinceName,String cityCode,String cityName,String townCode,String townName,String code,String name ){
	    this.provinceCode = provinceCode;
	    this.provinceName = provinceName;

+ 79 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/patient/PatientMedicareCardDO.java

@ -0,0 +1,79 @@
package com.yihu.jw.entity.base.patient;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IntegerIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
* 居民信息(居民就是患者)实体
*
* @author Administrator on  2018年09月05日
*
*/
@Entity
@Table(name = "patient_medicare_card")
public class PatientMedicareCardDO extends IntegerIdentityEntity {
    public enum Type{
        medicareCard(0),
        healthCard(1);
        private int value;
        Type(int value){
            this.value = value;
        }
        public int getValue() {
            return value;
        }
    }
    /**
	 * 卡标识
	 */
	private String code;
    /**
	 * 卡类型,1-医保卡,2-电子健康卡
	 */
	private String type;
    /**
	 * 居民标识
	 */
	private String patientCode;
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Column(name = "patient_code")
    public String getPatientCode() {
        return patientCode;
    }
    public void setPatientCode(String patientCode) {
        this.patientCode = patientCode;
    }
}

+ 19 - 7
common/common-entity/src/main/java/com/yihu/jw/entity/base/team/BaseTeamDO.java

@ -18,9 +18,14 @@ import java.util.Date;
public class BaseTeamDO extends UuidIdentityEntityWithOperator {
    /**
     * 机构id
     * 机构代码
     */
    private String orgId;
    private String orgCode;
    /**
     * 机构名称
     */
    private String orgName;
    /**
     * 团队名称
@ -47,14 +52,21 @@ public class BaseTeamDO extends UuidIdentityEntityWithOperator {
     */
    private String del;
    public String getOrgCode() {
        return orgCode;
    }
    @Column(name = "org_id")
    public String getOrgId() {
        return orgId;
    @Column(name = "org_code")
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    @Column(name = "org_name")
    public String getOrgName() {
        return orgName;
    }
    public void setOrgId(String orgId) {
        this.orgId = orgId;
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    @Column(name = "name")

+ 1 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -352,6 +352,7 @@ public class BaseRequestMapping {
    public static class BaseDoctor extends Basic {
        public static final String PREFIX  = "/baseDoctor";
        public static final String DOCINFO  = "/docInfo";
        public static final String docFullInfo  = "/docFullInfo";
        public static final String docOrgTreeInfo  = "/docOrgTreeInfo";
    }

+ 21 - 7
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/team/BaseTeamVO.java

@ -22,10 +22,16 @@ import java.util.Date;
public class BaseTeamVO extends UuidIdentityVOWithOperator {
    /**
	 * 机构id
	 * 机构代码
	 */
	@ApiModelProperty(value = "机构id", example = "")
    private String orgId;
	@ApiModelProperty(value = "机构代码", example = "")
    private String orgCode;
    /**
     * 机构名称
     */
    @ApiModelProperty(value = "机构名称", example = "")
    private String orgName;
    /**
	 * 团队名称
@ -57,12 +63,20 @@ public class BaseTeamVO extends UuidIdentityVOWithOperator {
	@ApiModelProperty(value = "作废标识,1正常,0作废", example = "1")
    private String del;
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public String getOrgId() {
        return orgId;
    public String getOrgName() {
        return orgName;
    }
    public void setOrgId(String orgId) {
        this.orgId = orgId;
    public void setOrgName(String orgName) {
        this.orgName = orgName;
    }
    public String getName() {

+ 15 - 2
sql/init.sql

@ -183,7 +183,8 @@ CREATE TABLE `base_patient` (
drop table IF EXISTS `base_team`;
CREATE TABLE `base_team` (
  `id` varchar(50) NOT NULL   COMMENT '主键,团队uuid标识',
  `org_id` varchar(50) DEFAULT NULL COMMENT '机构id',
  `org_code` varchar(50) DEFAULT NULL COMMENT '机构代码',
  `org_name` varchar(30) DEFAULT NULL COMMENT '机构名称',
  `name` varchar(50) DEFAULT NULL COMMENT '团队名称',
  `leader_id` varchar(50) NOT NULL COMMENT '领导医生标识',
  `team_num` varchar(50) NOT NULL COMMENT '团队人数',
@ -763,4 +764,16 @@ create table `org_tree`
  `level` varchar(50) not null COMMENT '节点所在层级(即有几个父亲)',
  primary key (id)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='机构区域树形结构';
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='机构区域树形结构';
-- 居民医保卡电子卡等信息
drop table IF EXISTS `patient_medicare_card`;
create table `patient_medicare_card`
(
  `id` int(11) NOT NULL AUTO_INCREMENT  COMMENT '表id,自增长',
  `code` varchar(50) not null COMMENT '卡标识',
  `type` varchar(1) DEFAULT NULL COMMENT '卡类型,1-医保卡,2-电子健康卡',
  `patient_code` varchar(50) not null COMMENT '居民标识',
  primary key (id)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='居民医保关联卡';

+ 3 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/dao/doctor/BaseDoctorDao.java

@ -1,12 +1,12 @@
package com.yihu.jw.base.dao.doctor;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import java.awt.print.Pageable;
import java.util.List;
import java.util.Map;
@ -24,7 +24,7 @@ import java.util.Map;
 */
public interface BaseDoctorDao extends PagingAndSortingRepository<BaseDoctorDO, String>, JpaSpecificationExecutor<BaseDoctorDO>  {
    @Query("select doc.id,doc.name,doc.idcard,case doc.sex when 1 then '男' when 2 then '女' else '未知' end as sex,doc.del as status,hos.hospName,hos.deptName,hos.roleName,hos.jobTitleName from BaseDoctorDO doc,BaseDoctorHospitalDO hos where doc.id = hos.doctorCode and hos.del = 1 and name like ?1")
    /*@Query("select doc.id,doc.name,doc.idcard,case doc.sex when 1 then '男' when 2 then '女' else '未知' end as sex,doc.del as status,hos.hospName,hos.deptName,hos.roleName,hos.jobTitleName from BaseDoctorDO doc,BaseDoctorHospitalDO hos where doc.id = hos.doctorCode and hos.del = 1 and name like ?1")
    List<Map<String,Object>> queryDoctorFullInfoByName(String name, Pageable pageable);
    @Query("select doc.id,doc.name,doc.idcard,case doc.sex when 1 then '男' when 2 then '女' else '未知' end as sex,doc.del as status,hos.hospName,hos.deptName,hos.roleName,hos.jobTitleName from BaseDoctorDO doc,BaseDoctorHospitalDO hos where doc.id = hos.doctorCode and hos.del = 1 and name like ?1")
@ -40,7 +40,7 @@ public interface BaseDoctorDao extends PagingAndSortingRepository<BaseDoctorDO,
    List<Map<String,Object>> queryDoctorFullInfoByIdcard(String idcard, Pageable pageable);
    @Query("select doc.id,doc.name,doc.idcard,case doc.sex when 1 then '男' when 2 then '女' else '未知' end as sex,doc.del as status,hos.hospName,hos.deptName,hos.roleName,hos.jobTitleName from BaseDoctorDO doc,BaseDoctorHospitalDO hos where doc.id = hos.doctorCode and hos.del = 1 and idcard like ?1 and orgCode = ?2")
    List<Map<String,Object>> queryDoctorFullInfoByIdcardAndOrgCode(String idcard,String orgCode,Pageable pageable);
    List<Map<String,Object>> queryDoctorFullInfoByIdcardAndOrgCode(String idcard,String orgCode,Pageable pageable);*/
}

+ 9 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/dao/org/OrgTreeDao.java

@ -25,9 +25,15 @@ import java.util.Map;
 */
public interface OrgTreeDao extends PagingAndSortingRepository<OrgTree, Integer>, JpaSpecificationExecutor<OrgTree>  {
    @Query("select id as id,code as code,name as name,case del when 1 then '有效' else '失效' end as status,concat(provinceName,cityName,townName,streetName) as address from BaseOrgDO where code like ?1")
    List<Map<String,Object>> findByCode(String code, Pageable pageable);
    List<OrgTree> findByLevel(Integer level);
    List<OrgTree> findByLevelLessThanEqual(Integer level);
    List<OrgTree> findByLevel(Integer level);
    OrgTree findByCodeAndLevel(String code,Integer level);
    OrgTree findByCodeAndParentCode(String code,String parentCode);
    OrgTree findByCode(String code);
    boolean existsByCode(String code);
}

+ 15 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/patient/PatientMedicareCardDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.base.dao.patient;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Trick on 2018/8/31.
 */
public interface PatientMedicareCardDao extends PagingAndSortingRepository<PatientMedicareCardDO, String>, JpaSpecificationExecutor<PatientMedicareCardDO> {
    List<PatientMedicareCardDO> findByPatientCode(String patientCode);
}

+ 6 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/team/BaseTeamDao.java

@ -1,10 +1,14 @@
package com.yihu.jw.base.dao.team;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import java.util.List;
import java.util.Map;
/**
 * 
 * 团队信息 数据库访问层
@ -18,4 +22,6 @@ import com.yihu.jw.entity.base.team.BaseTeamDO;
 * @since 1.
 */
public interface BaseTeamDao extends PagingAndSortingRepository<BaseTeamDO, String>, JpaSpecificationExecutor<BaseTeamDO>  {
    /*@Query("select orgCode as code,OrgName as name from BaseTeamDO")
    List<Map<String,Object>> getTeamOrgList();*/
}

+ 5 - 5
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/doctor/BaseDoctorEndpoint.java

@ -109,7 +109,7 @@ public class BaseDoctorEndpoint extends EnvelopRestEndpoint {
     * @throws Exception
     */
    @PostMapping(value = BaseRequestMapping.BaseDoctor.DOCINFO)
    @ApiOperation(value = "获取单个医生执业信息列表")
    @ApiOperation(value = "获取单个医生及其执业信息")
    public Envelop doctorHosplist(
            @ApiParam(name = "orgId", value = "医院id")
            @RequestParam(value = "orgId", required = true) String orgId,
@ -128,7 +128,7 @@ public class BaseDoctorEndpoint extends EnvelopRestEndpoint {
     * @return
     * @throws Exception
     */
    @PostMapping(value = BaseRequestMapping.BaseDoctor.DOCINFO)
  /*  @PostMapping(value = BaseRequestMapping.BaseDoctor.docFullInfo)
    @ApiOperation(value = "获取列表")
    public Envelop getDoctorFullInfolist(
            @ApiParam(name = "name", value = "医生姓名")
@ -150,17 +150,17 @@ public class BaseDoctorEndpoint extends EnvelopRestEndpoint {
    }
    /**
    *//**
     * 获取医生 所属机构/部门/职称/职务 树形结构数据
     * @return
     * @throws Exception
     */
     *//*
    @PostMapping(value = BaseRequestMapping.BaseDoctor.docOrgTreeInfo)
    @ApiOperation(value = "获取医生所属机构树形结构数据")
    public Envelop getDoctorOrgTree() throws Exception {
        String data = baseDoctorService.getOrgTree();
        return success(data);
    }
    }*/
}

+ 8 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/patient/BasePatientEndpoint.java

@ -1,6 +1,7 @@
package com.yihu.jw.base.endpoint.patient;
import com.yihu.jw.base.service.patient.BasePatientService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.restmodel.base.patient.BasePatientVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
@ -11,6 +12,7 @@ import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@ -40,12 +42,14 @@ public class BasePatientEndpoint extends EnvelopRestEndpoint {
    @PostMapping(value = BaseRequestMapping.BasePatient.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建")
    public ObjEnvelop<BasePatientVO> create(
    public Envelop create(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        BasePatientDO basePatient = toEntity(jsonData, BasePatientDO.class);
        basePatient = basePatientService.save(basePatient);
        return success(basePatient, BasePatientVO.class);
       String msg = basePatientService.createPatient(jsonData);
       if(!StringUtils.equalsIgnoreCase(ConstantUtils.SUCCESS,msg)){
           return success(msg);
       }
        return failed(msg);
    }
    @PostMapping(value = BaseRequestMapping.BasePatient.DELETE)

+ 8 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/team/BaseTeamEndpoint.java

@ -1,6 +1,7 @@
package com.yihu.jw.base.endpoint.team;
import com.yihu.jw.base.service.team.BaseTeamService;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import com.yihu.jw.restmodel.base.team.BaseTeamVO;
import com.yihu.jw.restmodel.web.Envelop;
@ -12,6 +13,7 @@ import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
@ -40,12 +42,14 @@ private BaseTeamService baseTeamService;
@PostMapping(value = BaseRequestMapping.BaseTeam.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ApiOperation(value = "创建")
public ObjEnvelop<BaseTeamVO> create (
public Envelop create (
    @ApiParam(name = "json_data", value = "Json数据", required = true)
    @RequestBody String jsonData) throws Exception {
    BaseTeamDO baseTeam = toEntity(jsonData, BaseTeamDO.class);
    baseTeam = baseTeamService.save(baseTeam);
    return success(baseTeam, BaseTeamVO.class);
    String msg = baseTeamService.createTeam(jsonData);
    if(StringUtils.equalsIgnoreCase(ConstantUtils.SUCCESS,msg)){
        return success(msg);
    }
    return failed(msg);
    }
    @PostMapping(value = BaseRequestMapping.BaseTeam.DELETE)

+ 8 - 8
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.doctor.BaseDoctorDao;
import com.yihu.jw.base.dao.org.OrgTreeDao;
//import com.yihu.jw.base.dao.org.OrgTreeDao;
import com.yihu.jw.base.service.org.tree.SimpleTree;
import com.yihu.jw.base.service.org.tree.SimpleTreeNode;
import com.yihu.jw.base.service.org.tree.TreeNode;
@ -47,8 +47,8 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private OrgTreeDao orgTreeDao;
/*    @Autowired
    private OrgTreeDao orgTreeDao;*/
    /**
@ -91,7 +91,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
     * @param docStatus
     * @return
     */
    public List<Map<String,Object>> getDoctorFullInfo(String name,String idcard,String orgCode,String docStatus){
    /*public List<Map<String,Object>> getDoctorFullInfo(String name,String idcard,String orgCode,String docStatus){
        List<Map<String,Object>> result = new ArrayList<>();
        StringBuilder sql = new StringBuilder();
        sql.append("select doc.id,doc.name,doc.idcard,case doc.sex when 1 then '男' when 2 then '女' else '未知' end as sex,doc.del as status,hos.hosp_name,hos.dept_name,hos.role_name,hos.job_title_name from base_doctor doc,base_doctor_hospital hos where doc.id = hos.doctor_code and hos.del = 1");
@ -123,14 +123,14 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
    }
    /**
    *//**
     * 构建机构区域树形结构
     * @return
     */
     *//*
    public String getOrgTree(){
        List<TreeNode> treeNodes = new ArrayList<>();
        treeNodes.addAll(orgTreeDao.findByLevel(5));
//        treeNodes.addAll(orgTreeDao.findByLevel(5));
        SimpleTree tree = new SimpleTree(treeNodes);
        List<SimpleTreeNode> treeNode = tree.getRoot();
        SimplePropertyPreFilter filter = new SimplePropertyPreFilter();
@ -138,5 +138,5 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        filter.getExcludes().add("allChildren");
        return JSONObject.toJSONString(treeNode, filter);
    }
    }*/
}

+ 24 - 6
svr/svr-base/src/main/java/com/yihu/jw/base/service/org/BaseOrgService.java

@ -3,7 +3,7 @@ package com.yihu.jw.base.service.org;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
import com.yihu.jw.base.dao.org.BaseOrgDao;
import com.yihu.jw.base.dao.org.OrgTreeDao;
//import com.yihu.jw.base.dao.org.OrgTreeDao;
import com.yihu.jw.base.service.org.tree.SimpleTree;
import com.yihu.jw.base.service.org.tree.SimpleTreeNode;
import com.yihu.jw.base.service.org.tree.TreeNode;
@ -39,7 +39,7 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
    private BaseOrgDao baseOrgDao;
    @Autowired
    private OrgTreeDao orgTreeDao;
    private OrgTreeService orgTreeService;
    @Autowired
    private UserService userService;
@ -57,6 +57,7 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
     * @return
     */
    public List<Map<String,Object>> queryOrgBaseInfoList(String orgCode,String orgName,String orgStatus,int page,int size,String sorts){
        getOrgAreaTree();
        List<Map<String,Object>> result = new ArrayList<>();
        if(StringUtils.endsWithIgnoreCase("1",orgStatus)){
            if(!StringUtils.isEmpty(orgCode) ){
@ -94,6 +95,9 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
        if(StringUtils.isEmpty(baseOrgDO.getId())){
            baseOrgDao.save(baseOrgDO);
            //添加机构和区域的树形结构关系
//            orgTreeService.addOrgTreeNode(baseOrgDO);
            //新增用户(管理员)
            userDO = new UserDO();
            userDO.setUsername(adminName);
@ -106,12 +110,25 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
            userRoleDO.setUserId("");
            userRoleService.save(userRoleDO);
        }else{
            String id = orgAdminJson.getString("id");
            if(StringUtils.isEmpty(id)){
            String adminId = orgAdminJson.getString("adminId");
            if(StringUtils.isEmpty(adminId)){
                return "paramter id for admin is null when update";
            }
            BaseOrgDO oldBaseOrgDO = baseOrgDao.findOne(baseOrgDO.getId());
            if(null == oldBaseOrgDO){
                return "no exist this org";
            }
            baseOrgDao.save(baseOrgDO);
            userDO = userService.findById(id);
          /*  if(!baseOrgDO.getTownCode().equalsIgnoreCase(oldBaseOrgDO.getTownCode())){
                orgTreeService.updateOrgTreeNode(oldBaseOrgDO,baseOrgDO,OrgTree.Level.town.getLevelValue());
            }
            if(!baseOrgDO.getCityCode().equalsIgnoreCase(oldBaseOrgDO.getCityCode())){
                orgTreeService.updateOrgTreeNode(oldBaseOrgDO,baseOrgDO,OrgTree.Level.city.getLevelValue());
            }
            if(!baseOrgDO.getProvinceCode().equalsIgnoreCase(oldBaseOrgDO.getProvinceCode())){
                orgTreeService.updateOrgTreeNode(oldBaseOrgDO,baseOrgDO,OrgTree.Level.province.getLevelValue());
            }*/
            userDO = userService.findById(adminId);
            //没有修改就不保存
            if(StringUtils.endsWithIgnoreCase(adminName,userDO.getUsername()) && StringUtils.endsWithIgnoreCase(mobile,userDO.getMobile())){
                return ConstantUtils.SUCCESS;
@ -143,7 +160,7 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
    public String getOrgAreaTree(){
        List<TreeNode> treeNodes = new ArrayList<>();
        treeNodes.addAll(orgTreeDao.findByLevel(4));
        treeNodes.addAll(orgTreeService.findListByLevel(OrgTree.Level.org.getLevelValue()));
        SimpleTree tree = new SimpleTree(treeNodes);
        List<SimpleTreeNode> treeNode = tree.getRoot();
        SimplePropertyPreFilter filter = new SimplePropertyPreFilter();
@ -153,4 +170,5 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> {
        return JSONObject.toJSONString(treeNode, filter);
    }
}

+ 22 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/org/OrgTree.java

@ -16,13 +16,32 @@ public class OrgTree extends IntegerIdentityEntity implements TreeNode {
    //当前树节点所在层级,例如省在第一级,用0表示
    private Integer level;
    public enum Level{
        province(0),
        city(1),
        town(2),
        org(3),
        dept(4);
        private int levelValue;
         Level(int levelValue){
            this.levelValue = levelValue;
        }
        public int getLevelValue() {
            return levelValue;
        }
    }
    public OrgTree(){}
    public OrgTree(String code, String parentCode, String name){
    public OrgTree(String code, String parentCode, String name,Integer level){
        this.code = code;
        this.parentCode = parentCode;
        this.name = name;
        this.level = level;
    }
    @Override
    public String extractNodeId() {
        return this.code;
@ -70,7 +89,7 @@ public class OrgTree extends IntegerIdentityEntity implements TreeNode {
        this.name = name;
    }
    @Column(name = "name", nullable = false)
 @Column(name = "level",nullable = false)
    public Integer getLevel() {
        return level;
    }
@ -78,4 +97,5 @@ public class OrgTree extends IntegerIdentityEntity implements TreeNode {
    public void setLevel(Integer level) {
        this.level = level;
    }
}

+ 126 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/org/OrgTreeService.java

@ -1,11 +1,20 @@
package com.yihu.jw.base.service.org;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
import com.yihu.jw.base.dao.org.OrgTreeDao;
import com.yihu.jw.base.service.org.tree.SimpleTree;
import com.yihu.jw.base.service.org.tree.SimpleTreeNode;
import com.yihu.jw.base.service.org.tree.TreeNode;
import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
 * 
 * 机构信息服务service
@ -24,8 +33,124 @@ public class OrgTreeService extends BaseJpaService<OrgTree, OrgTreeDao> {
    @Autowired
    private OrgTreeDao orgTreeDao;
    /**
     * 添加机构和区域的关系
     * @param baseOrgDO
     */
    public void addOrgTreeNode(BaseOrgDO baseOrgDO){
//        if(){}
        List<OrgTree> treeNodes = new ArrayList<>();
        if(!orgTreeDao.existsByCode(baseOrgDO.getCode())){
            OrgTree orgNode = new OrgTree(baseOrgDO.getCode(),baseOrgDO.getTownCode(),baseOrgDO.getName(), OrgTree.Level.org.getLevelValue());
            treeNodes.add(orgNode);
        }
        if(!orgTreeDao.existsByCode(baseOrgDO.getTownCode())){
            OrgTree townTree = new OrgTree(baseOrgDO.getTownCode(),baseOrgDO.getCityCode(),baseOrgDO.getTownName(), OrgTree.Level.town.getLevelValue());
            treeNodes.add(townTree);
        }
        if(!orgTreeDao.existsByCode(baseOrgDO.getCityCode())){
            OrgTree cityTree = new OrgTree(baseOrgDO.getCityCode(),baseOrgDO.getProvinceCode(),baseOrgDO.getCityName(), OrgTree.Level.city.getLevelValue());
            treeNodes.add(cityTree);
        }
        if(!orgTreeDao.existsByCode(baseOrgDO.getProvinceCode())){
            OrgTree provinceTree = new OrgTree(baseOrgDO.getProvinceCode(),"",baseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
            treeNodes.add(provinceTree);
        }
        /*if(orgTreeDao.existsByCode(baseOrgDO.getTownCode())){
            OrgTree orgNode = new OrgTree(baseOrgDO.getCode(),baseOrgDO.getTownCode(),baseOrgDO.getName(), OrgTree.Level.org.getLevelValue());
            treeNodes.add(orgNode);
        }
        else if(orgTreeDao.existsByCode(baseOrgDO.getCityCode())){
            OrgTree townNode = new OrgTree(baseOrgDO.getTownCode(),baseOrgDO.getCityCode(),baseOrgDO.getTownName(), OrgTree.Level.town.getLevelValue());
            treeNodes.add(townNode);
        }
        else if(orgTreeDao.existsByCode(baseOrgDO.getProvinceCode())){
            OrgTree cityNode = new OrgTree(baseOrgDO.getCityCode(),baseOrgDO.getProvinceCode(),baseOrgDO.getCityName(), OrgTree.Level.city.getLevelValue());
            treeNodes.add(cityNode);
        }
        else{
            OrgTree provinceNode = new OrgTree(baseOrgDO.getProvinceCode(),"",baseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
            treeNodes.add(provinceNode);
        }*/
        this.batchInsert(treeNodes);
    }
    /**
     * 修改机构和区域的关系
     * @param oldBaseOrgDO
     * @param newBaseOrgDO
     */
    public void updateOrgTreeNode(BaseOrgDO oldBaseOrgDO,BaseOrgDO newBaseOrgDO,int level){
        if( level == OrgTree.Level.town.getLevelValue() ){
            OrgTree orgTree = orgTreeDao.findByCodeAndParentCode(oldBaseOrgDO.getCode(),oldBaseOrgDO.getTownCode());
            if(null == orgTree){
                return;
            }
            orgTree.setParentCode(newBaseOrgDO.getTownCode());
            this.save(orgTree);
           /* List<OrgTree> treeNodes = new ArrayList<>();
            //新修改的区代码不存在,表示未添加过,应把相应的父类关联关系存储起来(城市,省份等)
            if(!orgTreeDao.existsByCode(newBaseOrgDO.getTownCode())){
                OrgTree townTree = new OrgTree(newBaseOrgDO.getTownCode(),newBaseOrgDO.getCityCode(),newBaseOrgDO.getTownName(), OrgTree.Level.town.getLevelValue());
                treeNodes.add(townTree);
            }
            if(!orgTreeDao.existsByCode(newBaseOrgDO.getCityCode())){
                OrgTree cityTree = new OrgTree(newBaseOrgDO.getCityCode(),newBaseOrgDO.getProvinceCode(),newBaseOrgDO.getCityName(), OrgTree.Level.city.getLevelValue());
                treeNodes.add(cityTree);
            }
            if(!orgTreeDao.existsByCode(newBaseOrgDO.getProvinceCode())){
                OrgTree provinceTree = new OrgTree(newBaseOrgDO.getProvinceCode(),"",newBaseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
                treeNodes.add(provinceTree);
            }
            this.batchInsert(treeNodes);*/
            addOrgTreeNode(newBaseOrgDO);
        }
       else if( level == OrgTree.Level.city.getLevelValue() ){
            OrgTree orgTree = orgTreeDao.findByCodeAndParentCode(oldBaseOrgDO.getTownCode(),oldBaseOrgDO.getCityCode());
            if(null == orgTree){
                return;
            }
            orgTree.setParentCode(newBaseOrgDO.getCityCode());
            this.save(orgTree);
            addOrgTreeNode(newBaseOrgDO);
            /*List<OrgTree> treeNodes = new ArrayList<>();
            if(!orgTreeDao.existsByCode(newBaseOrgDO.getCityCode())){
                OrgTree cityTree = new OrgTree(newBaseOrgDO.getCityCode(),newBaseOrgDO.getProvinceCode(),newBaseOrgDO.getCityName(), OrgTree.Level.city.getLevelValue());
                treeNodes.add(cityTree);
            }
            if(!orgTreeDao.existsByCode(newBaseOrgDO.getProvinceCode())){
                OrgTree provinceTree = new OrgTree(newBaseOrgDO.getProvinceCode(),"",newBaseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
                treeNodes.add(provinceTree);
            }
            this.batchInsert(treeNodes);*/
        }
        else if( level == OrgTree.Level.province.getLevelValue() ){
            OrgTree orgTree = orgTreeDao.findByCodeAndParentCode(oldBaseOrgDO.getCityCode(),oldBaseOrgDO.getProvinceCode());
            if(null == orgTree){
                return;
            }
            orgTree.setParentCode(newBaseOrgDO.getProvinceCode());
            this.save(orgTree);
            addOrgTreeNode(newBaseOrgDO);
            /*List<OrgTree> treeNodes = new ArrayList<>();
            if(!orgTreeDao.existsByCode(newBaseOrgDO.getProvinceCode())){
                OrgTree provinceTree = new OrgTree(newBaseOrgDO.getProvinceCode(),"",newBaseOrgDO.getProvinceName(), OrgTree.Level.province.getLevelValue());
                treeNodes.add(provinceTree);
            }
            this.batchInsert(treeNodes);*/
        }
    }
    /**
     * 根据树的节点层级查询
     * @param level
     * @return
     */
    List<OrgTree> findListByLevel(Integer level){
        List<OrgTree> result = new ArrayList<>();
        if(null == level){
            return result;
        }
        return orgTreeDao.findByLevel(level);
//        return orgTreeDao.findByLevelLessThanEqual(level);
    }
}

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/org/tree/SimpleTreeNode.java

@ -32,7 +32,7 @@ public class SimpleTreeNode {
        this.nodeId = obj.extractNodeId();
        this.nodeName = obj.extractNodeName();
        this.parentNodeId = obj.extractNodeParentId();
        this.orderNum = obj.extractOrderNum();
//        this.level = obj.extractOrderNum();
    }
    public void addChild(SimpleTreeNode treeNode){
        this.children.add(treeNode);

+ 39 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/patient/BasePatientService.java

@ -1,7 +1,12 @@
package com.yihu.jw.base.service.patient;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.patient.BasePatientDao;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.base.util.JavaBeanUtils;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -10,6 +15,7 @@ import org.springframework.stereotype.Service;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.util.*;
/**
@ -30,6 +36,12 @@ public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatien
    @Autowired
    private BasePatientDao basePatientDao;
    @Autowired
    private ObjectMapper objectMapper;
    @Autowired
    private PatientMedicardCardService patientMedicardCardService;
    /**
     * 居民id
     * @param patientId
@ -64,10 +76,36 @@ public class BasePatientService extends BaseJpaService<BasePatientDO, BasePatien
            return result;
        }
        if(!StringUtils.isEmpty(name)){
            result = basePatientDao.findByName(idcard,createPage(page,size,sorts));
            result = basePatientDao.findByName("%"+name+"%",createPage(page,size,sorts));
            return result;
        }
        result = basePatientDao.findBaseInfo(createPage(page,size,sorts));
        return result;
    }
    /**
     * 新增居民
     * @param jsonData
     * @return
     */
    public String createPatient(String jsonData) throws Exception {
        JSONObject jsonObject = JSONObject.parseObject(jsonData);
        JSONObject patient = jsonObject.getJSONObject("patient");
        JSONArray patientMedicareCards = jsonObject.getJSONArray("medicareCard");
        if(null == patient || CollectionUtils.isEmpty(patientMedicareCards)){
            return ConstantUtils.FAIL;
        }
        BasePatientDO basePatientDO = objectMapper.readValue(patient.toJSONString(),BasePatientDO.class);
        List<PatientMedicareCardDO> list = new ArrayList<>();
        patientMedicareCards.forEach((card)->{
            try {
                list.add(objectMapper.readValue(card.toString(),PatientMedicareCardDO.class));
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
        this.save(basePatientDO);
        patientMedicardCardService.batchInsert(list);
        return ConstantUtils.SUCCESS;
    }
}

+ 39 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/patient/PatientMedicardCardService.java

@ -0,0 +1,39 @@
package com.yihu.jw.base.service.patient;
import com.yihu.jw.base.dao.patient.PatientMedicareCardDao;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
 * 
 * 居民信息服务service
 * 
 * @version 
 * <pre>
 * Author	Version		Date		Changes
 * litaohong    1.0  2018年08月31日 Created
 *
 * </pre>
 * @since 1.
 */
@Service
public class PatientMedicardCardService extends BaseJpaService<PatientMedicareCardDO, PatientMedicareCardDao> {
    @Autowired
    private PatientMedicareCardDao patientMedicareCardDao;
    public List<PatientMedicareCardDO> findPatientCardByCode(String patientCode){
        List<PatientMedicareCardDO> result = new ArrayList<>();
        if(StringUtils.isEmpty(patientCode)){
            return result;
        }
        return patientMedicareCardDao.findByPatientCode(patientCode);
    }
}

+ 3 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasBusinessCardService.java

@ -37,7 +37,7 @@ public class SaasBusinessCardService extends BaseJpaService<SaasBusinessCardDO,
     */
    public Map<String, Object> generateBusinessCard(SaasBusinessCardDO.Type type, String saasId, String sourceId, String orgId) throws Exception {
        List<SaasBusinessCardDO> saasBusinessCardDO = search("type=" + type  + ";saasId=" + saasId);
        Map<String, Object> card = new HashMap<>();
        /*Map<String, Object> card = new HashMap<>();
        if (type == SaasBusinessCardDO.Type.doctor) {
            //模拟加载医生数据
            Map<String, Object> source = doctorService.getDoctorInfo(orgId, sourceId);
@ -49,7 +49,8 @@ public class SaasBusinessCardService extends BaseJpaService<SaasBusinessCardDO,
            saasBusinessCardDO.forEach(item -> card.put(item.getField(), source.get(item.getField())));
            return card;
        }
        return card;
        return card;*/
        return null;
    }
}

+ 54 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/team/BaseTeamService.java

@ -1,9 +1,21 @@
package com.yihu.jw.base.service.team;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.base.dao.team.BaseTeamDao;
import com.yihu.jw.base.util.ConstantUtils;
import com.yihu.jw.entity.base.team.BaseTeamMemberDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yihu.jw.entity.base.team.BaseTeamDO;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * 
@ -19,4 +31,46 @@ import com.yihu.jw.entity.base.team.BaseTeamDO;
 */
@Service
public class BaseTeamService extends BaseJpaService<BaseTeamDO, BaseTeamDao> {
    @Autowired
    private BaseTeamMemberService baseTeamMemberService;
    @Autowired
    private BaseTeamDao baseTeamDao;
    @Autowired
    private ObjectMapper objectMapper;
    public String createTeam(String jsonData) throws Exception {
        JSONObject jsonObject = JSONObject.parseObject(jsonData);
        JSONObject teamJSONObject = jsonObject.getJSONObject("team");
        JSONArray teamMemberArray = jsonObject.getJSONArray("teamMember");
        if(null == teamJSONObject || CollectionUtils.isEmpty(teamMemberArray) ){
            return ConstantUtils.FAIL;
        }
        BaseTeamDO baseTeamDO = objectMapper.readValue(teamJSONObject.toJSONString(),BaseTeamDO.class);
        List<BaseTeamMemberDO> memberList = new ArrayList<>();
        teamMemberArray.forEach((teamMember)->{
            try {
                BaseTeamMemberDO baseTeamMemberDO = objectMapper.readValue(teamMember.toString(),BaseTeamMemberDO.class);
                memberList.add(baseTeamMemberDO);
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
        this.save(baseTeamDO);
        baseTeamMemberService.batchInsert(memberList);
        return ConstantUtils.SUCCESS;
    }
 /*   *//**
     *
     * @return
     *//*
    public List<Map<String,Object>> getTeamOrgList(){
        List<Map<String,Object>> result = new ArrayList<>();
        result = baseTeamDao.getTeamOrgList();
        return result;
    }*/
}