ソースを参照

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

trick9191 7 年 前
コミット
8217be159c

+ 124 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/patient/PatientCertificate.java

@ -0,0 +1,124 @@
package com.yihu.wlyy.entity.patient;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by Trick on 2018/7/20.
 */
@Entity
@Table(name = "wlyy_patient_certificate")
public class PatientCertificate extends IdEntity {
    private String code;//业务主键',
    private String signDictCode;//服务类型',
    private String signDictName;//服务类型名称',
    private String signYear;//签约年度',
    private String patient;//居民',
    private String patientName;//居民名称',
    private String certificatePath;//证书地址',
    private String del;//1.有效,0删除',
    private String content;//说明',
    private String remark;//备注',
    private Date createTime;//,
    private Date updateTime;//,
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getSignDictCode() {
        return signDictCode;
    }
    public void setSignDictCode(String signDictCode) {
        this.signDictCode = signDictCode;
    }
    public String getSignDictName() {
        return signDictName;
    }
    public void setSignDictName(String signDictName) {
        this.signDictName = signDictName;
    }
    public String getSignYear() {
        return signYear;
    }
    public void setSignYear(String signYear) {
        this.signYear = signYear;
    }
    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 String getCertificatePath() {
        return certificatePath;
    }
    public void setCertificatePath(String certificatePath) {
        this.certificatePath = certificatePath;
    }
    public String getDel() {
        return del;
    }
    public void setDel(String del) {
        this.del = del;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}

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

@ -0,0 +1,15 @@
package com.yihu.wlyy.repository.patient;
import com.yihu.wlyy.entity.patient.PatientCertificate;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Trick on 2018/7/20.
 */
public interface PatientCertificateDao extends PagingAndSortingRepository<PatientCertificate, Long>, JpaSpecificationExecutor<PatientCertificate> {
    List<PatientCertificate> findByPatientAndSignYearAndDel(String patient,String signYear,String del);
}

+ 2 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/patient/SignFamilyServerDao.java

@ -17,4 +17,6 @@ public interface SignFamilyServerDao extends PagingAndSortingRepository<SignFami
    List<SignFamilyServer> findBySignCodeAndType(String signCode);
    List<SignFamilyServer> findBySignCode(String signCode);
    SignFamilyServer findBySignCodeAndServerType(String signCode,String serverType);
}

+ 61 - 6
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -169,6 +169,8 @@ public class FamilyContractService extends BaseService {
    private TrackPatientDao trackPatientDao;
    @Autowired
    private WechatTemplateConfigDao templateConfigDao;
    @Autowired
    private PatientCertificateDao patientCertificateDao;
    public SignFamily findSignFamilyByCode(String code) {
@ -372,9 +374,13 @@ public class FamilyContractService extends BaseService {
        json.put("services", services);
        //是否签约上限
        JSONObject signLimit = signWebService.getSickFamilyDoctorSignLimit(doctor);
        json.put("signTotal", signLimit.getInt("signTotal"));//签约总数
        json.put("limitTotal", signLimit.getInt("limitTotal"));//限制总数
//        JSONObject signLimit = signWebService.getSickFamilyDoctorSignLimit(doctor);
//        json.put("signTotal", signLimit.getInt("signTotal"));//签约总数
//        json.put("limitTotal", signLimit.getInt("limitTotal"));//限制总数
        //上线记得切换正式
        json.put("signTotal", 20);//签约总数
        json.put("limitTotal", 1000);//限制总数
        return json;
    }
@ -527,7 +533,8 @@ public class FamilyContractService extends BaseService {
                           String idcard,
                           String ssc,
                           String mobile,
                           String emerMobile) throws Exception {
                           String emerMobile,
                           String sevId) throws Exception {
        // 查询三师签约
        JSONObject json = new JSONObject();
        SignFamily sc = signFamilyDao.findByIdcard(idcard);
@ -613,6 +620,10 @@ public class FamilyContractService extends BaseService {
        patient = p.getCode();
        sf.setPatient(patient);
        SignFamily temp = signFamilyDao.save(sf);
        //1.4.9.1版本新增服务类型
        signWebService.setSevId(temp,sevId);
        if (temp != null) {
            // 添加签约消息
            Message message = new Message();
@ -672,7 +683,7 @@ public class FamilyContractService extends BaseService {
     * @param patient 居民code
     * @return
     */
    public int sign(String doctor, String patient, String countryCode,String medicareNumber) throws Exception {
    public int sign(String doctor, String patient, String countryCode,String medicareNumber,String sevId) throws Exception {
        Patient p = patientDao.findByCode(patient);
        if (p == null) {
            return -1;
@ -733,6 +744,10 @@ public class FamilyContractService extends BaseService {
        SignFamily temp = signFamilyDao.save(sf);
        //设置居民服务类型
        //1.4.9.1版本
        signWebService.setSevId(temp,sevId);
        if (temp != null) {
            // 添加签约消息
            Message message = new Message();
@ -3506,6 +3521,7 @@ public class FamilyContractService extends BaseService {
     * @param patient 居民code
     * @return
     */
    @Deprecated
    @Transactional
    public int signRenew(String doctor, String healthDoctor, String patient, String reason,String medicareNumber) throws Exception {
        Patient p = patientDao.findByCode(patient);
@ -3729,7 +3745,7 @@ public class FamilyContractService extends BaseService {
     * @return
     */
    @Transactional
    public int signRenewOverdue(String doctor, String healthDoctor, String patient, String reason, String countryCode,String medicareNumber) throws Exception {
    public int signRenewOverdue(String doctor, String healthDoctor, String patient, String reason, String countryCode,String medicareNumber,String sevId) throws Exception {
        Patient p = patientDao.findByCode(patient);
        if (p == null) {
            return -1;
@ -3879,6 +3895,10 @@ public class FamilyContractService extends BaseService {
        SignFamily temp = signFamilyDao.save(sf);
        //设置居民服务类型
        //1.4.9.1版本
        signWebService.setSevId(temp,sevId);
        if (temp != null) {
            // 添加签约消息
            Message message = new Message();
@ -4513,4 +4533,39 @@ public class FamilyContractService extends BaseService {
            }
        }
    }
    public String  saveCertificate(String patient,String imgPath,String sevId){
        try{
            if (StringUtils.isNotBlank(sevId)) {
                String[] sevIds = sevId.split(",");
                for (int i = 0; i < sevIds.length; i++) {
                    String sql = "select d.name from wlyy_sign_dict d where d.code = '" + sevIds[i] + "' and d.year ='" + DateUtil.getSignYear() + "' ";
                    List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
                    Patient p = patientDao.findByCode(patient);
                    String[] img = imgPath.split(",");
                    for(String im :img){
                        PatientCertificate patientCertificate = new PatientCertificate();
                        patientCertificate.setCode(getCode());
                        //设置患者
                        patientCertificate.setPatient(patient);
                        patientCertificate.setPatientName(p.getName());
                        //设置类型
                        Map<String, Object> map = list.get(0);
                        String serverName = (String) map.get("name");
                        patientCertificate.setSignDictName(serverName);
                        patientCertificate.setSignDictCode(sevIds[i]);
                        //设置路径
                        patientCertificate.setCertificatePath(im);
                        patientCertificate.setDel("1");
                        patientCertificate.setCreateTime(new Date());
                        patientCertificateDao.save(patientCertificate);
                    }
                }
            }
        }catch (Exception e){
            logger.info(e.getMessage()+"___:"+e.toString());
        }
        return "1";
    }
}

+ 26 - 18
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/SignWebService.java

@ -1689,6 +1689,7 @@ public class SignWebService extends BaseService {
     * @return
     * @throws Exception
     */
    @Deprecated
    public int agreeRenew(String access_token, String dotorCode, String patientCode, String state, Long mesId, String signYear, String code,
                          String health,
                          String disease,
@ -2438,6 +2439,7 @@ public class SignWebService extends BaseService {
     * @param renew
     * @param sevId
     */
    @Deprecated
    public void setSevId(SignFamilyRenew renew, String sevId) {
        if (StringUtils.isNotBlank(sevId)) {
            if (StringUtils.isNotBlank(sevId)) {
@ -2445,15 +2447,18 @@ public class SignWebService extends BaseService {
                for (int i = 0; i < sevIds.length; i++) {
                    String sql = "select d.name from wlyy_sign_dict d where d.code = '" + sevIds[i] + "' and d.year ='" + DateUtil.getSignYear() + "' ";
                    List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
                    SignFamilyServer server = new SignFamilyServer();
                    server.setSignCode(renew.getCode());
                    server.setCreateTime(new Date());
                    server.setServerType(sevIds[i]);
                    Map<String, Object> map = list.get(0);
                    String serverName = (String) map.get("name");
                    server.setServerTypeName(serverName);
                    server.setCzrq(new Date());
                    signFamilyServerDao.save(server);
                    SignFamilyServer s =  signFamilyServerDao.findBySignCodeAndServerType(renew.getCode(),sevIds[i]);
                    if(s==null){
                        SignFamilyServer server = new SignFamilyServer();
                        server.setSignCode(renew.getCode());
                        server.setCreateTime(new Date());
                        server.setServerType(sevIds[i]);
                        Map<String, Object> map = list.get(0);
                        String serverName = (String) map.get("name");
                        server.setServerTypeName(serverName);
                        server.setCzrq(new Date());
                        signFamilyServerDao.save(server);
                    }
                }
            }
        }
@ -2471,15 +2476,18 @@ public class SignWebService extends BaseService {
            for (int i = 0; i < sevIds.length; i++) {
                String sql = "select d.name from wlyy_sign_dict d where d.code = '" + sevIds[i] + "' and d.year ='" + DateUtil.getSignYear() + "' ";
                List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
                SignFamilyServer server = new SignFamilyServer();
                server.setSignCode(renew.getCode());
                server.setCreateTime(new Date());
                server.setServerType(sevIds[i]);
                Map<String, Object> map = list.get(0);
                String serverName = (String) map.get("name");
                server.setServerTypeName(serverName);
                server.setCzrq(new Date());
                signFamilyServerDao.save(server);
                SignFamilyServer s =  signFamilyServerDao.findBySignCodeAndServerType(renew.getCode(),sevIds[i]);
                if(s==null){
                    SignFamilyServer server = new SignFamilyServer();
                    server.setSignCode(renew.getCode());
                    server.setCreateTime(new Date());
                    server.setServerType(sevIds[i]);
                    Map<String, Object> map = list.get(0);
                    String serverName = (String) map.get("name");
                    server.setServerTypeName(serverName);
                    server.setCzrq(new Date());
                    signFamilyServerDao.save(server);
                }
            }
        }
    }

+ 34 - 7
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/sign/FamilyContractController.java

@ -13,10 +13,11 @@ import com.yihu.wlyy.service.app.sign.FamilyContractService;
import com.yihu.wlyy.service.app.sign.SignWebService;
import com.yihu.wlyy.service.common.account.DoctorService;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.util.CommonUtil;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.IdcardValidator;
import com.yihu.wlyy.util.RSAUtils;
import com.yihu.wlyy.web.BaseController;
import com.yihu.wlyy.web.WeixinBaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -33,7 +34,6 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.net.URLDecoder;
import java.util.Calendar;
import java.util.List;
/**
@ -44,7 +44,7 @@ import java.util.List;
@Controller
@RequestMapping(value = "/patient/family_contract", produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = {RequestMethod.GET,RequestMethod.POST})
@Api(description = "患者端-家庭签约")
public class FamilyContractController extends BaseController {
public class FamilyContractController extends WeixinBaseController {
    @Autowired
    private FamilyContractService familyContractService;
@ -60,6 +60,8 @@ public class FamilyContractController extends BaseController {
    private SignWebService signWebService;
    @Autowired
    private RSAUtils rsaUtils;
    @Autowired
    private CommonUtil CommonUtil;
    /**
     * 得到患者的签约的医生的信息
     *
@ -423,7 +425,8 @@ public class FamilyContractController extends BaseController {
    public String sign(@RequestParam(required = false)String doctor,
                       @RequestParam(required = false)String patient,
                       @RequestParam(required = false)String countryCode,
                       @RequestParam(required = true)String medicareNumber) {
                       @RequestParam(required = true)String medicareNumber,
                       @RequestParam(required = false)String sevId) {
        try {
            if (StringUtils.isEmpty(doctor)) {
                return error(-1, "签约医生不能为空");
@ -435,7 +438,7 @@ public class FamilyContractController extends BaseController {
            }
            //==1.3.7===end===
            //1.4.2加入MedicareNumber字段入参
            int result = familyContractService.sign(doctor,patient,countryCode,medicareNumber);
            int result = familyContractService.sign(doctor,patient,countryCode,medicareNumber,sevId);
            if (result == -1) {
                return error(-1, "用户信息查询失败");
@ -444,6 +447,18 @@ public class FamilyContractController extends BaseController {
            } else if (result == -3) {
                return error(-1, "医生信息查询失败");
            } else {
                //1.4.9.1加入证件说明
                // 图片消息
                String content = fetchWxImages();
                // 将临时图片拷贝到正式存储路径下
                if (StringUtils.isNotEmpty(content)) {
                    content = CommonUtil.copyTempImage(content);
                    if (StringUtils.isNotEmpty(content)) {
                        familyContractService.saveCertificate(patient,content,sevId);
                    }
                }
                return write(200, "签约申请成功");
            }
        } catch (Exception e) {
@ -466,7 +481,8 @@ public class FamilyContractController extends BaseController {
                            @RequestParam(required = false) String patient,
                            @RequestParam(required = false) String reason,
                            @RequestParam(required = false) String countryCode,
                            @RequestParam(required = true) String medicareNumber) {
                            @RequestParam(required = true) String medicareNumber,
                            @RequestParam(required = false)String sevId) {
        try {
            if (StringUtils.isEmpty(doctor)) {
                return error(-1, "签约医生不能为空");
@ -481,7 +497,7 @@ public class FamilyContractController extends BaseController {
//                result = familyContractService.signRenewOverdue(doctor,healthDoctor,patient,reason,countryCode,medicareNumber);
//            }
            int result = -1;
            result = familyContractService.signRenewOverdue(doctor,healthDoctor,patient,reason,countryCode,medicareNumber);
            result = familyContractService.signRenewOverdue(doctor,healthDoctor,patient,reason,countryCode,medicareNumber,sevId);
            if (result == -1) {
                return error(-1, "用户信息查询失败");
@ -494,6 +510,17 @@ public class FamilyContractController extends BaseController {
            } else if (result == -5) {
                return error(-1, "未找到有效团队记录");
            } else {
                //1.4.9.1加入证件说明
                // 图片消息
                String content = fetchWxImages();
                // 将临时图片拷贝到正式存储路径下
                if (StringUtils.isNotEmpty(content)) {
                    content = CommonUtil.copyTempImage(content);
                    if (StringUtils.isNotEmpty(content)) {
                        familyContractService.saveCertificate(patient,content,sevId);
                    }
                }
                return write(200, "签约申请成功");
            }
        } catch (Exception e) {