소스 검색

Merge branch 'dev' of chenweida/patient-co-management into dev

chenweida 7 년 전
부모
커밋
fe1476f0ae
16개의 변경된 파일880개의 추가작업 그리고 6개의 파일을 삭제
  1. 2 2
      patient-co/patient-co-statistics/pom.xml
  2. 6 0
      patient-co/patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/config/SwaggerConfig.java
  3. 2 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/security/WebSecurityConfig.java
  4. 12 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/patient/SignFamily.java
  5. 142 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/Service.java
  6. 151 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/ServiceItem.java
  7. 142 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/SignFamilyService.java
  8. 144 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/SignFamilyServiceItem.java
  9. 3 3
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java
  10. 15 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/ServiceDao.java
  11. 16 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/ServiceItemDao.java
  12. 17 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/SignFamilyServiceDao.java
  13. 12 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/SignFamilyServiceItemDao.java
  14. 176 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignFamilyServiceService.java
  15. 39 0
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/sign/PatientSignFamilyServiceController.java
  16. 1 1
      pom.xml

+ 2 - 2
patient-co/patient-co-statistics/pom.xml

@ -49,8 +49,8 @@
        <version.spring-boot>1.3.5.RELEASE</version.spring-boot>
        <version.spring-framework>4.2.5.RELEASE</version.spring-framework>
        <version.spring-session>1.2.0.RELEASE</version.spring-session>
        <version.swagger>2.4.0</version.swagger>
        <version.swagger-ui>2.4.0</version.swagger-ui>
        <version.swagger>2.7.0</version.swagger>
        <version.swagger-ui>2.7.0</version.swagger-ui>
        <version.tomcat-embed>8.0.28</version.tomcat-embed>
    </properties>

+ 6 - 0
patient-co/patient-co-statistics/src/main/java/com/yihu/wlyy/statistics/config/SwaggerConfig.java

@ -23,6 +23,11 @@ import static springfox.documentation.builders.PathSelectors.regex;
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurerAdapter {
    private static final String PUBLIC_API = "Default";
    /**
     * 解决swagger UI资源映射找不到问题
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
@ -31,6 +36,7 @@ public class SwaggerConfig extends WebMvcConfigurerAdapter {
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
    @Bean
    public Docket publicAPI() {
        return new Docket(DocumentationType.SWAGGER_2)

+ 2 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/config/security/WebSecurityConfig.java

@ -27,6 +27,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                .antMatchers("/configuration/security").authenticated()
                .anyRequest().permitAll()
                .and()
                .headers().frameOptions().disable()
                .and()
                .csrf().disable()
                .formLogin().defaultSuccessUrl("/swagger-ui.html").failureUrl("/login") //登录成功之后的跳转
                .permitAll()

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/patient/SignFamily.java

@ -6,6 +6,7 @@ import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
/**
@ -63,6 +64,9 @@ public class SignFamily extends IdEntity {
    private Long adminTeamId;//行政团队ID
    private Date expensesTime;//缴费时间
    private Integer num;//签约数
    //1.3.3.2新增字段
    //基卫服务类型
    private String serverType;
@ -559,4 +563,12 @@ public class SignFamily extends IdEntity {
    public void setSickVillageName(String sickVillageName) {
        this.sickVillageName = sickVillageName;
    }
    @Transient
    public Integer getNum() {
        return num;
    }
    public void setNum(Integer num) {
        this.num = num;
    }
}

+ 142 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/Service.java

@ -0,0 +1,142 @@
package com.yihu.wlyy.entity.service;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2 17/8/8.
 * 服务表 一个签约可以对应对个服务 也可以为0
 */
@Entity
@Table(name = "wlyy_service")
public class Service extends IdEntity {
    private String code; //非业务主键
    private String name;       //	服务名称	 		 	 
    private String town;          //	可为空 有值时是 某个区的特定服务	 		 	 
    private String hospital;     //	可为空 有值时是 某个机构的特定服务
    private String image;//图片的url
    private String introduce;     //	简介	 		 	 
    private Integer del;//	是否删除  1可用   不可用
    private Date createTime;  //		创建时间
    private String createUser;//	创建人code
    private String createUserName;   //	创建人name
    private Date updateTime;  //修改时间
    private String updateUser;//	修改人code
    private String updateUserName;    //	修改人name
    private String remark;   //	备注
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTown() {
        return town;
    }
    public void setTown(String town) {
        this.town = town;
    }
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    public String getImage() {
        return image;
    }
    public void setImage(String image) {
        this.image = image;
    }
    public String getIntroduce() {
        return introduce;
    }
    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
        return updateUser;
    }
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }
    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
}

+ 151 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/ServiceItem.java

@ -0,0 +1,151 @@
package com.yihu.wlyy.entity.service;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2 17/8/8.
 * 服务项表 一个签约可以对应对个服务 也可以为0
 */
@Entity
@Table(name = "wlyy_service_item")
public class ServiceItem extends IdEntity {
    private String code; //非业务主键
    private String serviceCode;// 所属服务code 关联表 wlyy_Service
    private String name;       //	服务名称
    private String image;   //图片的url
    private Integer type;   // 服务类型 1 热线电话 2 中医体检
    private String mobile;  //服务项对应的热线电话
    private String introduce;     //	简介	 		 	 
    private Integer del;    //	是否删除  1可用   不可用
    private Date createTime;  //创建时间
    private String createUser; //	创建人code
    private String createUserName;    //	创建人name
    private Date updateTime;    //修改时间
    private String updateUser;  //	修改人code
    private String updateUserName;    //	修改人name
    private String remark;      //	备注
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getServiceCode() {
        return serviceCode;
    }
    public void setServiceCode(String serviceCode) {
        this.serviceCode = serviceCode;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getImage() {
        return image;
    }
    public void setImage(String image) {
        this.image = image;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    public String getIntroduce() {
        return introduce;
    }
    public void setIntroduce(String introduce) {
        this.introduce = introduce;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
        return updateUser;
    }
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }
    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 142 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/SignFamilyService.java

@ -0,0 +1,142 @@
package com.yihu.wlyy.entity.service;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2 17/8/8.
 * 签约服务表 一个签约可以对应对个服务 也可以为0
 */
@Entity
@Table(name = "wlyy_sign_family_service")
public class SignFamilyService extends IdEntity {
    private String code; //非业务主键
    private String serviceCode;//所属的服务code
    private String signCode;    //关联的签约
    private String patient;   //所属患者
    private String patientName; //所属患者名称
    private Integer del;    //	是否删除  1可用   不可用
    private Date signTime;  //服务签约时间
    private Date createTime;  //		创建时间
    private String createUser;//	创建人code
    private String createUserName;   //	创建人name
    private Date updateTime;  //修改时间
    private String updateUser;//	修改人code
    private String updateUserName;    //	修改人name
    private String remark;   //	备注
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getServiceCode() {
        return serviceCode;
    }
    public void setServiceCode(String serviceCode) {
        this.serviceCode = serviceCode;
    }
    public String getSignCode() {
        return signCode;
    }
    public void setSignCode(String signCode) {
        this.signCode = signCode;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getSignTime() {
        return signTime;
    }
    public void setSignTime(Date signTime) {
        this.signTime = signTime;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
        return updateUser;
    }
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }
    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
}

+ 144 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/entity/service/SignFamilyServiceItem.java

@ -0,0 +1,144 @@
package com.yihu.wlyy.entity.service;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by chenweida on 2 17/8/8.
 * 签约服务项表 一个签约可以对应对个服务 也可以为0
 */
@Entity
@Table(name = "wlyy_sign_family_service_item")
public class SignFamilyServiceItem extends IdEntity {
    private String code; //非业务主键
    private String serviceCode;// 所属服务code 关联表 wlyy_Service
    private String signServiceCode;// 签约的包的code 关联 wlyy_sign_family_service code
    private String serviceItemCode;// 所属服务项 关联表wlyy_service_item  code
    private String signCode;//签约code
    private String patient;   //所属患者
    private Integer del;//	是否删除  1可用   不可用				 	 
    private Date createTime;  //		创建时间
    private String createUser;//	创建人code
    private String createUserName;   //	创建人name
    private Date updateTime;  //修改时间
    private String updateUser;//	修改人code
    private String updateUserName;    //	修改人name
    private String remark;   //	备注
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getServiceCode() {
        return serviceCode;
    }
    public void setServiceCode(String serviceCode) {
        this.serviceCode = serviceCode;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getUpdateUser() {
        return updateUser;
    }
    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }
    public String getUpdateUserName() {
        return updateUserName;
    }
    public void setUpdateUserName(String updateUserName) {
        this.updateUserName = updateUserName;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public String getSignServiceCode() {
        return signServiceCode;
    }
    public void setSignServiceCode(String signServiceCode) {
        this.signServiceCode = signServiceCode;
    }
    public String getServiceItemCode() {
        return serviceItemCode;
    }
    public void setServiceItemCode(String serviceItemCode) {
        this.serviceItemCode = serviceItemCode;
    }
    public String getSignCode() {
        return signCode;
    }
    public void setSignCode(String signCode) {
        this.signCode = signCode;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
}

+ 3 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyDao.java

@ -404,15 +404,15 @@ public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Lo
    SignFamily findOutTimeSigningByPatient(String patient);
    @Query(value = " select a.*  from wlyy_sign_family a where a.patient = ?1  and a.status = -4 and a.team_code = ?2 order by a.apply_date desc limit 0,1", nativeQuery = true)
    SignFamily findOutTimeSigningByPatientAndTeamCode(String patient,String teamCode);
    SignFamily findOutTimeSigningByPatientAndTeamCode(String patient, String teamCode);
    //      完成缴费后更新签约开始时间begin 缴费状态expensesStatus 医保流水号medical_insurance_num  扣费时间expenses_time
    @Modifying
    @Query("update SignFamily a set a.begin = ?2 ,a.medicalInsuranceNum=?3,a.expensesStatus = ?4,a.expensesTime = ?2,a.signPaySource = ?5 where a.code = ?1 ")
    int updatePatientBegin(String code, Date begin,String medicalInsuranceNum,String expensesStatus,int signPaySource );
    int updatePatientBegin(String code, Date begin, String medicalInsuranceNum, String expensesStatus, int signPaySource);
    //查询居民的扣费状态
    @Query( " select a from SignFamily a where a.patient = ?1 ")
    @Query(" select a from SignFamily a where a.patient = ?1 ")
    SignFamily findPatientExpensesStatus(String patient);
}

+ 15 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/ServiceDao.java

@ -0,0 +1,15 @@
package com.yihu.wlyy.repository.service;
import com.yihu.wlyy.entity.service.Service;
import com.yihu.wlyy.entity.template.DoctorTeamGuidanceTemplate;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/8/8.
 */
public interface ServiceDao extends PagingAndSortingRepository<Service, Long>, JpaSpecificationExecutor<Service> {
    @Query("from Service where code=?1 and del=1")
    Service findByCode(String serviceCode);
}

+ 16 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/ServiceItemDao.java

@ -0,0 +1,16 @@
package com.yihu.wlyy.repository.service;
import com.yihu.wlyy.entity.service.ServiceItem;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by chenweida on 2017/8/8.
 */
public interface ServiceItemDao extends PagingAndSortingRepository<ServiceItem, Long>, JpaSpecificationExecutor<ServiceItem> {
    @Query(" from ServiceItem where serviceCode=?1 and del=1")
    List<ServiceItem> findByServiceCode(String serviceCode);
}

+ 17 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/SignFamilyServiceDao.java

@ -0,0 +1,17 @@
package com.yihu.wlyy.repository.service;
import com.yihu.wlyy.entity.service.ServiceItem;
import com.yihu.wlyy.entity.service.SignFamilyService;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by chenweida on 2017/8/8.
 */
public interface SignFamilyServiceDao extends PagingAndSortingRepository<SignFamilyService, Long>, JpaSpecificationExecutor<SignFamilyService> {
    @Query("select s from ServiceItem s,SignFamilyServiceItem si where s.code=si.serviceItemCode and si.patient=?1")
    List<ServiceItem> getPatientServiceItems(String patient);
}

+ 12 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/service/SignFamilyServiceItemDao.java

@ -0,0 +1,12 @@
package com.yihu.wlyy.repository.service;
import com.yihu.wlyy.entity.service.SignFamilyService;
import com.yihu.wlyy.entity.service.SignFamilyServiceItem;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by chenweida on 2017/8/8.
 */
public interface SignFamilyServiceItemDao extends PagingAndSortingRepository<SignFamilyServiceItem, Long>, JpaSpecificationExecutor<SignFamilyServiceItem> {
}

+ 176 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignFamilyServiceService.java

@ -0,0 +1,176 @@
package com.yihu.wlyy.service.app.sign;
import com.alibaba.fastjson.JSONObject;
import com.yihu.wlyy.entity.patient.SignFamily;
import com.yihu.wlyy.entity.service.Service;
import com.yihu.wlyy.entity.service.ServiceItem;
import com.yihu.wlyy.entity.service.SignFamilyService;
import com.yihu.wlyy.entity.service.SignFamilyServiceItem;
import com.yihu.wlyy.repository.patient.SignFamilyDao;
import com.yihu.wlyy.repository.service.ServiceDao;
import com.yihu.wlyy.repository.service.ServiceItemDao;
import com.yihu.wlyy.repository.service.SignFamilyServiceDao;
import com.yihu.wlyy.repository.service.SignFamilyServiceItemDao;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
 * Created by chenweida on 2017/8/8.
 * 签约服务 服务类型
 */
@org.springframework.stereotype.Service
public class SignFamilyServiceService {
    @Autowired
    private ServiceDao serviceDao;
    @Autowired
    private ServiceItemDao serviceItemDao;
    @Autowired
    private SignFamilyDao signFamilyDao;
    @Autowired
    private SignFamilyServiceDao signFamilyServiceDao;
    @Autowired
    private SignFamilyServiceItemDao signFamilyServiceItemDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 给患者批量分配服务
     *
     * @param patients    患者code
     * @param serviceCode 服务code
     * @throws Exception
     */
    @Transactional
    public JSONObject patientsAddService(List<String> patients, String serviceCode) throws Exception {
        JSONObject jo = new JSONObject();
        List<String> errorPatient = new ArrayList<>();
        Service service = serviceDao.findByCode(serviceCode);
        List<ServiceItem> serviceItems = serviceItemDao.findByServiceCode(serviceCode);
        List<SignFamilyService> saveSignFamilyServiceList = new ArrayList<>();
        List<SignFamilyServiceItem> saveSignFamilyServiceItemeList = new ArrayList<>();
        for (String patientCode : patients) {
            //判断患者是否有已经扣费的签约
            SignFamily sgnFamily = this.getSignFamily(patientCode);
            if (sgnFamily == null || sgnFamily.getNum() == 0 || sgnFamily.getNum() == null) {
                errorPatient.add(patientCode);
                continue;
            }
            //添加服务
            SignFamilyService signFamilyService = new SignFamilyService();
            signFamilyService.setServiceCode(service.getCode());
            String signServiceCode = UUID.randomUUID().toString();
            signFamilyService.setCode(signServiceCode);
            signFamilyService.setCreateTime(new Date());
            signFamilyService.setSignCode(sgnFamily.getCode());
            signFamilyService.setSignTime(new Date());
            signFamilyService.setDel(1);
            saveSignFamilyServiceList.add(signFamilyService);
            //添加服务项
            for (ServiceItem oneServiceItem : serviceItems) {
                SignFamilyServiceItem signFamilyServiceItem = new SignFamilyServiceItem();
                signFamilyServiceItem.setCode(UUID.randomUUID().toString());
                signFamilyServiceItem.setCreateTime(new Date());
                signFamilyServiceItem.setDel(1);
                signFamilyServiceItem.setServiceCode(service.getCode());
                signFamilyServiceItem.setServiceItemCode(oneServiceItem.getCode());
                signFamilyServiceItem.setSignCode(sgnFamily.getCode());
                signFamilyServiceItem.setSignServiceCode(signServiceCode);
                saveSignFamilyServiceItemeList.add(signFamilyServiceItem);
            }
        }
        signFamilyServiceDao.save(saveSignFamilyServiceList);
        signFamilyServiceItemDao.save(saveSignFamilyServiceItemeList);
        jo.put("status", 1);//执行成功
        jo.put("errorPatients", errorPatient);//未成功的患者
        return jo;
    }
    /**
     * 给患者分配服务
     *
     * @param patient     患者code
     * @param serviceCode 服务code
     * @throws Exception
     */
    @Transactional
    public boolean patientAddService(String patient, String serviceCode) throws Exception {
        Service service = serviceDao.findByCode(serviceCode);
        List<ServiceItem> serviceItems = serviceItemDao.findByServiceCode(serviceCode);
        //判断患者是否有已经扣费的签约
        SignFamily sgnFamily = this.getSignFamily(patient);
        //添加服务
        SignFamilyService signFamilyService = new SignFamilyService();
        signFamilyService.setServiceCode(service.getCode());
        String signServiceCode = UUID.randomUUID().toString();
        signFamilyService.setCode(signServiceCode);
        signFamilyService.setCreateTime(new Date());
        signFamilyService.setSignCode(sgnFamily.getCode());
        signFamilyService.setSignTime(new Date());
        signFamilyService.setDel(1);
        //添加服务项
        List<SignFamilyServiceItem> saveSignFamilyServiceItemeList = new ArrayList<>();
        for (ServiceItem oneServiceItem : serviceItems) {
            SignFamilyServiceItem signFamilyServiceItem = new SignFamilyServiceItem();
            signFamilyServiceItem.setCode(UUID.randomUUID().toString());
            signFamilyServiceItem.setCreateTime(new Date());
            signFamilyServiceItem.setDel(1);
            signFamilyServiceItem.setServiceCode(service.getCode());
            signFamilyServiceItem.setServiceItemCode(oneServiceItem.getCode());
            signFamilyServiceItem.setSignCode(sgnFamily.getCode());
            signFamilyServiceItem.setSignServiceCode(signServiceCode);
            saveSignFamilyServiceItemeList.add(signFamilyServiceItem);
        }
        signFamilyServiceDao.save(signFamilyService);
        signFamilyServiceItemDao.save(saveSignFamilyServiceItemeList);
        return true;
    }
    /**
     * 查找患者有哪些服务项
     *
     * @param patient     患者code
     * @param serviceCode 服务code
     * @return
     * @throws Exception
     */
    public List<ServiceItem> getPatientServiceItem(String patient, String serviceCode) throws Exception {
        StringBuffer sql = new StringBuffer(" SELECT " +
                "   s.* " +
                " FROM " +
                "   wlyy_service_item s, " +
                "   wlyy_sign_family_service_item si " +
                " WHERE " +
                "   s.`code` = si.service_item_code ");
        if (!StringUtils.isEmpty(patient)) {
            sql.append(" and si.patient = '" + patient + "'");
        }
        if (!StringUtils.isEmpty(serviceCode)) {
            sql.append(" and si.service_code = '" + serviceCode + "'");
        }
        return jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper(ServiceItem.class));
    }
    private SignFamily getSignFamily(String patient) {
        String sql = "select count(id) num,code from wlyy_sign_family where patient='" + patient + "' ";
        List<SignFamily> signFamilies = jdbcTemplate.query(sql, new BeanPropertyRowMapper(SignFamily.class));
        return signFamilies.get(0);
    }
}

+ 39 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/sign/PatientSignFamilyServiceController.java

@ -0,0 +1,39 @@
package com.yihu.wlyy.web.patient.sign;
import com.yihu.wlyy.entity.service.ServiceItem;
import com.yihu.wlyy.service.app.sign.SignFamilyServiceService;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
 * Created by chenweida on 2017/8/8.
 */
@RestController
@Api(description = "患者签约服务")
@RequestMapping("/patient/sign/service")
public class PatientSignFamilyServiceController extends BaseController {
    @Autowired
    private SignFamilyServiceService signFamilyServiceService;
    @RequestMapping(value = "/getPatientService", method = RequestMethod.GET)
    @ApiOperation("根据患者code获取患者的服务")
    public String getPatientService(
            @RequestParam(required = false, value = "patientCode") @ApiParam(required = false, value = "患者code", name = "patientCode") String patientCode
    ) {
        try {
            List<ServiceItem> serviceItems = signFamilyServiceService.getPatientServiceItem(patientCode, null);
            return write(200, "请求成功", "data", serviceItems);
        } catch (Exception e) {
            return error(-1, e.getMessage());
        }
    }
}

+ 1 - 1
pom.xml

@ -30,7 +30,7 @@
        <version.spring-data-commons>1.8.0.RELEASE</version.spring-data-commons>
        <version.spring-data-keyvalue>1.1.2.RELEASE</version.spring-data-keyvalue>
        <version.spring-data-redis>1.7.2.RELEASE</version.spring-data-redis>
        <version.swagger>2.4.0</version.swagger>
        <version.swagger>2.7.0</version.swagger>
        <version.poi>3.15-beta1</version.poi>
        <version.hibernate>4.3.5.Final</version.hibernate>
        <version.hibernate-validator>5.0.3.Final</version.hibernate-validator>