Sfoglia il codice sorgente

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

yeshijie 7 anni fa
parent
commit
2f746908b5

+ 18 - 10
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/charge/OnePayService.java

@ -486,25 +486,33 @@ public class OnePayService {
                    for (BindCard card : result) {
                        if ("98".equals(card.getAttachRelation())) {
                            String idcard = card.getAttachIdNo();
                            String bindCardNo= card.getAttachCardNo();
                            Patient patient = patientDao.findByIdcard(idcard);
                            userCode = patient.getCode();
                            patient.setSicardStatus(1);
                            patient.setSicardTime(new Date());
                            patient.setPrincipalCode(userCode);
                            patientDao.save(patient);
                            LOGGER.info("myself ==========>  userCode " + userCode);
                            String ssc = patient.getSsc();
                            if (bindCardNo.equals(ssc)){
                                patient.setSicardStatus(1);
                                patient.setSicardTime(new Date());
                                patient.setPrincipalCode(userCode);
                                patientDao.save(patient);
                                LOGGER.info("myself ==========>  userCode " + userCode);
                            }
                        }
                    }
                    //获取家人绑卡情况
                    for (BindCard familyCard : result) {
                        if (!"98".equals(familyCard.getAttachRelation())) {
                            String idcard = familyCard.getAttachIdNo();
                            String bindCardNo = familyCard.getAttachCardNo();
                            Patient patient = patientDao.findByIdcard(idcard);
                            patient.setSicardStatus(1);
                            patient.setSicardTime(new Date());
                            patient.setPrincipalCode(userCode);
                            patientDao.save(patient);
                            LOGGER.info("family ==========>  userCode "+userCode +" ========== >> "+patient.getOpenid());
                            String ssc = patient.getSsc();
                            if (bindCardNo.equals(ssc)){
                                patient.setSicardStatus(1);
                                patient.setSicardTime(new Date());
                                patient.setPrincipalCode(userCode);
                                patientDao.save(patient);
                                LOGGER.info("family ==========>  userCode "+userCode +" ========== >> "+patient.getOpenid());
                            }
                        }
                    }
                }

+ 1 - 1
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/web/quota/JobController.java

@ -722,7 +722,7 @@ public class JobController extends BaseController {
    @ApiOperation("医生端产检系统提醒")
    public String startDoctorPrenatalInspectorJob() {
        try {
            quartzHelper.startNow(DoctorPrenatalInspectorJob.class, "DOCTOR_PRENATAL_INSPECTOR_JOB", null);
            quartzHelper.startNow(DoctorPrenatalInspectorJob.class, "DoctorPrenatalInspectorJob", null);
            return success("启动成功!");
        } catch (Exception e) {
            error(e);

+ 108 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/prenatalInspector/PrenatalInspectorPreCardService.java

@ -1,5 +1,6 @@
package com.yihu.wlyy.service.app.prenatalInspector;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.device.entity.DevicePatientHealthIndex;
@ -723,10 +724,10 @@ public class PrenatalInspectorPreCardService extends BaseService {
     *
     * @param prenatalId
     */
    public JSONObject getPrenatalStatus(Long prenatalId) throws Exception {
    public JSONObject getPrenatalStatusBak(Long prenatalId) throws Exception {
        JSONObject json = new JSONObject();
        try {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            PrenatalInspectorPlan plan = prenatalInspectorPlanDao.findOne(prenatalId);
            Date planTime = plan.getInspectionTime();
            Boolean flag = getSendStatus(prenatalId);
@ -793,6 +794,83 @@ public class PrenatalInspectorPreCardService extends BaseService {
        return json;
    }
    /**
     * 根据待产检ID查询最近一条待产检计划状态
     *
     * @param prenatalId
     */
    public JSONObject getPrenatalStatus(Long prenatalId) throws Exception {
        JSONObject json = new JSONObject();
        try {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            PrenatalInspectorPlan plan = prenatalInspectorPlanDao.findOne(prenatalId);
            Date planTime = plan.getInspectionTime();
            String pregnancyNo = plan.getInspectionCode();
            String patient = plan.getPatient();
            Boolean flag = getSendStatus(prenatalId);
            Long days = DateUtil.getDays(new Date(), planTime);
            Date begin = DateUtil.getPreDays(planTime,-14);
            Date end = DateUtil.getPreDays(planTime,14);
            //有产检code
            if (StringUtils.isNotEmpty(pregnancyNo) && (pregnancyNo != null)){
                Boolean examStatus = getExamStatus(patient,pregnancyNo,begin,end);
                if (examStatus){
                    json.put("renatalStatus", "4");
                }else {
                    if (days > 7) {
                        json.put("renatalStatus", "3");
                        json.put("sendStatus", flag == true ? "1" : "0");
                    }else{
                        PrenatalInspectorRecord record = recordDao.findByRelationAndType(prenatalId.toString(), 0);
                        if (record == null) {
                            json.put("renatalStatus", "1");
                            if (days < -7) {
                                json.put("reason", "未到提醒时间(" + format.format(DateUtil.getPreDays(plan.getInspectionTime(), -7)) + " 08:00)");
                            }else {
                                json.put("reason", "提醒时间(" + format.format(DateUtil.getPreDays(plan.getInspectionTime(), -7)) + " 08:00)");
                            }
                        } else {
                            PrenatalInspectorRecord docRecord = recordDao.findByRelationAndType(prenatalId.toString(), 1);
                            json.put("renatalStatus", "2");
                            json.put("sendStatus", flag == true ? "1" : "0");
                            if (docRecord == null) {
                                json.put("sendTime", format.format(record.getSendTime()));
                            } else {
                                json.put("sendTime", format.format(docRecord.getSendTime()));
                            }
                        }
                    }
                }
            }else {
                PrenatalInspectorRecord record = recordDao.findByRelationAndType(prenatalId.toString(), 0);
                if (record == null) {
                    json.put("renatalStatus", "1");
                    if (days < -7) {
                        json.put("reason", "未到提醒时间(" + format.format(DateUtil.getPreDays(plan.getInspectionTime(), -7)) + " 08:00)");
                    }else {
                        json.put("reason", "提醒时间(" + format.format(DateUtil.getPreDays(plan.getInspectionTime(), -7)) + " 08:00)");
                    }
                } else {
                    PrenatalInspectorRecord docRecord = recordDao.findByRelationAndType(prenatalId.toString(), 1);
                    json.put("renatalStatus", "2");
                    json.put("sendStatus", flag == true ? "1" : "0");
                    if (docRecord == null) {
                        json.put("sendTime", format.format(record.getSendTime()));
                    } else {
                        json.put("sendTime", format.format(docRecord.getSendTime()));
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        json.put("prenatalId", prenatalId);
        return json;
    }
    /**
     * 提醒居民(每24小时可提醒一次)
     *
@ -902,4 +980,32 @@ public class PrenatalInspectorPreCardService extends BaseService {
        return flag;
    }
    /**
     * 查询待产检计划产检时间在该时间段内是否有过真实产检
     * @param patient 居民code
     * @param pregnancyNo 产检号
     * @param begin  起始时间
     * @param end  截止时间
     * @return
     * @throws Exception
     */
    public Boolean getExamStatus(String patient,String pregnancyNo,Date begin,Date end) throws Exception {
        Boolean flag = false;
        try {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                JSONArray natals = reExamRecode(patient,pregnancyNo);
                for (Object natal : natals) {
                    JSONObject examRecord = JSON.parseObject(natal.toString());
                    String exam_time = examRecord.getString("EXAM_TIME");
                    Date examTime = format.parse(exam_time);
                    if ((examTime.getTime()<= end.getTime()) && (examTime.getTime() >= begin.getTime())){
                        return true;
                    }
                }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }
}

+ 16 - 10
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/common/QrcodeService.java

@ -11,6 +11,7 @@ import com.yihu.wlyy.util.HttpUtil;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -37,6 +38,8 @@ public class QrcodeService extends BaseService {
    private TownDao townDao;
    @Autowired
    private HttpUtil HttpUtil;
    @Value("${server.server_url}")
    private String server_url;
    /**
     * 所有医生二维码生成
@ -263,8 +266,7 @@ public class QrcodeService extends BaseService {
                    doctorLevel = "全科医生";
                } else if (doctor.getLevel() == 3) {
                    doctorLevel = "健康管理师";
                }
                else{
                } else {
                    doctorLevel = "未知";
                }
@ -433,9 +435,9 @@ public class QrcodeService extends BaseService {
    /**
     * 从微信生成二维码并下载到本地
     *
     * @param content 场景值
     * @param content  场景值
     * @param fileName 二维码文件名
     * @param path 生成二维码路径
     * @param path     生成二维码路径
     * @param token
     * @throws IOException
     */
@ -502,10 +504,14 @@ public class QrcodeService extends BaseService {
    /**
     * 从微信生成永久二维码(供第三方调用)
     *  文件不存在才会新建
     * 文件不存在才会新建
     *
     * @param content
     * @param fileName
     * @param path
     * @param token
     * @throws IOException
     * @return 返回服务器地址
     * @throws Exception
     */
    public String getQrcodeFromWeiXin(String content, String fileName, String path, String token) throws Exception {
        try {
@ -514,10 +520,11 @@ public class QrcodeService extends BaseService {
            String result = HttpUtil.sendPost(token_url, params);
            if (!StringUtils.isEmpty(result)) {
                String absPath = "qrcode" + File.separator + fileName + ".png";
                JSONObject json = new JSONObject(result);
                if (json.has("ticket")) {
                    String file = path + File.separator + fileName + ".png";
                    String file = path + File.separator + absPath;
                    // 保存路径
                    File pathFile = new File(path);
                    // 保存文件
@ -528,8 +535,7 @@ public class QrcodeService extends BaseService {
                    }
                    // 文件已存在则返回已存在的路径
                    if (outputFile.exists()) {
//                        outputFile.delete();
                        return file;
                        return server_url + absPath;
                    }
                    // 请求输入流
                    InputStream inputStream = null;
@ -556,7 +562,7 @@ public class QrcodeService extends BaseService {
                        outputStream.close();
                    }
                    return file;
                    return server_url + absPath;
                } else {
                    throw new Exception("请求微信生成二维码失败!");
                }

+ 1 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/weixin/wxpay/service/OnePayService.java

@ -718,11 +718,8 @@ public class OnePayService {
                //保存到患者表
                Patient p = patientDao.findByCode(patient);
//                if(!"undefined".equals(openid)&&StringUtils.isNotBlank(openid)){
//                    p.setOpenid(openid);
//                }
//            增加绑定电子社保卡信息
                if (p.getSicardStatus()!=null && p.getSicardStatus()!=1){
                if (p.getSicardTime() == null){
                    p.setSicardTime(new Date());
                }
                patientDao.save(p);

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prenatalInspector/PrenatalController.java

@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
 */
@RestController
@RequestMapping(value = "/doctor/prenatalnspector", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(description = "居民端-产检")
@Api(description = "医生端-产检")
public class PrenatalController extends BaseController{
    @Autowired

+ 1 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/ylzpay/ThirdQrcodeController.java

@ -28,8 +28,6 @@ import java.io.File;
@Api(description = "供第三方微信类相关业务调用")
public class ThirdQrcodeController extends WeixinBaseController {
    @Value("${server.server_url}")
    private String server_url;
    @Autowired
    private QrcodeService qrcodeService;
@ -46,7 +44,7 @@ public class ThirdQrcodeController extends WeixinBaseController {
    public String getQrcode(@ApiParam(name = "scene", defaultValue = "") @RequestParam(value = "scene", required = true) String scene) throws Exception {
        try {
            String content = "wechat_" + scene;
            String path = server_url + File.separator + "qrcode";
            String path = ThirdQrcodeController.class.getResource("/").getPath().replace("/WEB-INF/classes/", "");
            // 通过微信接口生成医生二维码
            String result = qrcodeService.getQrcodeFromWeiXin(content, content.replaceAll("\r\n", ""), path, getAccessToken());
            return write(200, "生成二维码成功!", "data", result);