Selaa lähdekoodia

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

Conflicts:
	svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/service/CreditsDetailService.java
yeshijie 4 vuotta sitten
vanhempi
commit
1acdc40040

+ 238 - 0
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/controller/patient/ConsultController.java

@ -0,0 +1,238 @@
//package com.yihu.jw.door.controller.patient;
//
//import com.alibaba.fastjson.JSONObject;
//import com.yihu.jw.door.controller.BaseController;
//import com.yihu.jw.door.service.consult.ConsultTeamService;
//import com.yihu.jw.entity.base.im.ConsultTeamDo;
//import com.yihu.jw.entity.base.im.ConsultTeamLogDo;
//import com.yihu.jw.entity.patient.Patient;
//import com.yihu.jw.im.dao.ConsultTeamDao;
//import com.yihu.jw.im.util.ImUtil;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam;
//import org.apache.commons.lang3.StringUtils;
//import org.apache.http.NameValuePair;
//import org.apache.http.message.BasicNameValuePair;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.http.MediaType;
//import org.springframework.jdbc.core.JdbcTemplate;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.Map;
//
///**
// * Created by yeshijie on 2020/12/29.
// */
//@RestController
//@RequestMapping(value = "/patient/consult", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
//@Api(description = "患者端-患者咨询")
//public class ConsultController extends BaseController {
//
//    @Autowired
//    private ConsultTeamService consultTeamService;
//    @Autowired
//    private ConsultTeamDao consultTeamDao;
//    @Autowired
//    private ImUtil imUtil;
//    @Autowired
//    private JdbcTemplate jdbcTemplate;
//
//    /**
//     * 三师咨询追问接口
//     *
//     * @param consult 咨询标识
//     * @param content 追问内容
//     * @param type    追问内容类型:1文字,2图片,3语音  ... (im消息类型)
//     * @return
//     */
//    @RequestMapping(value = "append")
//    @ResponseBody
//    @ApiOperation("三师咨询追问接口")
//    public String append(
//            @RequestParam String consult,
//            @RequestParam String content,
//            @RequestParam int type,
//            @RequestParam(required = false, defaultValue = "0") Integer times) {
//        try {
//            List<ConsultTeamLogDo> logs = new ArrayList<ConsultTeamLogDo>();
//            ConsultTeamDo consultModel = consultTeamDao.findByConsult(consult);
//
//            if (consultModel == null) {
//                return error(-1, "咨询记录不存在!");
//            }
//
//            if (consultModel.getEndMsgId() != null) {
//                return error(-1, "咨询已结束");
//            }
//
//            String[] arr = null;
//            if (type == 3) {
//                String path = fetchWxVoices();
//                JSONObject obj = new JSONObject();
//                // 将临时语音拷贝到正式存储路径下
//                if (StringUtils.isNotEmpty(path)) {
//                    content = CommonUtil.copyTempVoice(path);
//                    obj.put("path", content);
//                    obj.put("times", times);
//                    content = obj.toString();
//                }
//                ConsultTeamLogDo log = new ConsultTeamLogDo();
//                log.setConsult(consult);
//                log.setContent(content);
//                log.setDel("1");
//                log.setChatType(type);
//                log.setType(type);
//                logs.add(log);
//            } else if (type == 2) {
//                // 图片消息
//                content = fetchWxImages();
//                // 将临时图片拷贝到正式存储路径下
//                if (StringUtils.isNotEmpty(content)) {
//                    content = CommonUtil.copyTempImage(content);
//                }
//                if (StringUtils.isEmpty(content)) {
//                    return error(-1, "图片上传失败!");
//                }
//                String[] images = content.split(",");
//                for (String image : images) {
//                    ConsultTeamLogDo log = new ConsultTeamLogDo();
//                    log.setConsult(consult);
//                    log.setContent(image);
//                    log.setDel("1");
//                    log.setChatType(type);
//                    log.setType(type);
//                    logs.add(log);
//                }
//            } else {
//                ConsultTeamLogDo log = new ConsultTeamLogDo();
//                log.setConsult(consult);
//                log.setContent(content);
//                log.setDel("1");
//                log.setChatType(type);
//                log.setType(type);
//                logs.add(log);
//
//                arr = new String[]{content};
//            }
////            Patient patient = patientDao.findByCode(getUID());
//            Patient patient = patientDao.findByCode(getRepUID());
//            int i = 0;
//            List<String> failed = new ArrayList<>();
//
//            String agent = getUID()==getRepUID()?null:getUID();
//            for (ConsultTeamLogDo log : logs) {
//                String response = imUtil.sendTopicIM(getRepUID(), patient.getName(), consult, String.valueOf(log.getType()), log.getContent(),agent);
//
//                if (StringUtils.isNotEmpty(response)) {
//                    JSONObject resObj = new JSONObject(response);
//                    if (resObj.getInteger("status") == -1) {
//                        return invalidUserException(new RuntimeException(resObj.getString("message")), -1, "追问失败!" + resObj.getString("message"));
//                    }
//                    failed.add(String.valueOf(resObj.get("data")));
//                    try {
//                        String sql = "";
//                        if (consultModel.getType() == 2){
//                            //家庭咨询
//                            sql = "SELECT t.participant_id FROM " + im +
//                                    ".participants t where t.session_id = '" +
//                                    patient.getCode() + "_" + consultModel.getTeam() + "_" + consultModel.getType() +
//                                    "' and t.participant_role = 0";
//                        }else if (consultModel.getType() == 8 || consultModel.getType() == 9 || consultModel.getType() == 11){
//                            //8-续方咨询 9-在线复诊咨询 11-上门预约服务
//                            sql = "SELECT t.participant_id FROM " + im +
//                                    ".participants t where t.session_id = '" +
//                                    patient.getCode() + "_" + consultModel.getConsult() + "_" + consultModel.getType() +
//                                    "' and t.participant_role = 0";
//                        }else if(consultModel.getType() == 18){
//                            //康复咨询
//                            sql = "SELECT t.participant_id FROM " + im +
//                                    ".participants t where t.session_id = '(SELECT session_id from "+im+".topics WHERE id='"+consultModel.getConsult()+"')' and t.participant_role = 0";
//                        }
//
//                        if(StringUtils.isEmpty(sql)){
//                            return write(-1, "追问失败!", "data", "不存在该类型!【type】:" + type);
//                        }
//                        List<Map<String, Object>> participants = jdbcTemplate.queryForList(sql);
//
//                        for (Map<String, Object> participant : participants) {
////                          //有居民、健管、全科
//                            String doctorCode = participant.get("participant_id").toString();
//                            if (doctorCode.equals(patient.getCode())) {
//                                continue;
//                            }
//
//                        }
//                    } catch (Exception e) {
//                        e.printStackTrace();
//                    }
//
//                }
//            }
//            return write(200, "追问成功!", "data", failed);
//        } catch (Exception e) {
//            error(e);
//            return invalidUserException(e, -1, "追问失败!");
//        }
//    }
//
//
//    /**
//     * 网络咨询咨询日志查询
//     *
//     * @param consult  咨询标识
//     * @param pagesize 每页显示数,默认为10
//     * @return
//     */
//    @GetMapping(value = "loglist")
//    @ApiOperation("网络咨询咨询日志查询")
//    public String loglist(@RequestParam String consult, @RequestParam int page, @RequestParam int pagesize) {
//        try {
//            ConsultTeamDo consultModel = consultTeamDao.findByConsult(consult);
//            if (consultModel == null) {
//                return error(-1, "咨询记录不存在!");
//            }
//            JSONObject messageObj = imUtil.getTopicMessage(consultModel.getConsult(), consultModel.getStartMsgId(), consultModel.getEndMsgId(), page, pagesize, getRepUID());
//
//            return write(200, "查询成功", "list", messageObj);
//        } catch (Exception e) {
//            error(e);
//            return invalidUserException(e, -1, "查询失败!");
//        }
//    }
//
//    @GetMapping(value = "getTopic")
//    public String getTopic(String consult){
//        try{
//            return success(imUtil.getTopic(consult).get("data").toString());
//        }catch (Exception e){
//            error(e);
//            return error(-1,e.getMessage());
//        }
//    }
//
//    @GetMapping(value = "getConsult")
//    public String getConsult(String consult){
//        try{
//            ConsultTeamDo consultTeam = consultTeamDao.findByConsult(consult);
//            return write(200, "查询成功", "data", consultTeam);
//        }catch (Exception e){
//            error(e);
//            return error(-1,e.getMessage());
//        }
//    }
//
//    @GetMapping(value = "queryByRelationCode")
//    @ApiOperation("根据关联业务code查询咨询记录")
//    public String queryByRelationCode(@ApiParam(name = "code", value = "咨询关联业务code") @RequestParam(value = "code", required = true) String code){
//        try{
//            ConsultTeamDo consultTeam = consultTeamDao.queryByRelationCode(code);
//            return write(200, "提交成功", "data", consultTeam);
//        }catch (Exception e){
//            error(e);
//            return error(-1,"添加失败");
//        }
//    }
//}

+ 44 - 1
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/controller/patient/PatientController.java

@ -15,10 +15,15 @@ import io.swagger.annotations.ApiOperation;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * Created by yeshijie on 2020/12/28.
 */
@ -35,6 +40,8 @@ public class PatientController extends BaseController {
    private BaseOrgDao baseOrgDao;
    @Autowired
    private BasePatientMedicareCardDao patientMedicareCardDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
@ -47,7 +54,43 @@ public class PatientController extends BaseController {
    public String baseinfo() {
        try {
            BasePatientDO temp = patientDao.findById(getUID());
            SignFamily jiating = signFamilyDao.findByPatientAndType(getUID(), 2);
            SignFamily jiating;
            synchronized (temp.getId().intern()){
                jiating = signFamilyDao.findByPatientAndType(getUID(), 2);
                if(jiating == null){
                    //泰安业务,如果没有签约,默认签约一个医生
                    jiating = new SignFamily();
                    jiating.setStatus(1);
                    jiating.setCzrq(new Date());
                    jiating.setCode(getUID());
                    String sql = "SELECT" +
                            "        d.id," +
                            "                d.name," +
                            "                dh.org_code," +
                            "                dh.org_name" +
                            "        FROM" +
                            "        base_doctor d" +
                            "        LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.id" +
                            "        WHERE" +
                            "        d.enabled = 1" +
                            "        AND dh.org_code = '350211A1002'" +
                            "        AND d.del = 1 limit 1";
                    List<Map<String,Object>> list =  jdbcTemplate.queryForList(sql);
                    jiating.setDoctor(list.get(0).get("id").toString());
                    jiating.setDoctorName(list.get(0).get("name").toString());
                    jiating.setExpensesStatus("1");
                    jiating.setHospital(list.get(0).get("org_code").toString());
                    jiating.setHospitalName(list.get(0).get("org_name").toString());
                    jiating.setSignYear("2020");
                    jiating.setIdcard(temp.getIdcard());
                    jiating.setMobile(temp.getMobile());
                    jiating.setPatient(temp.getId());
                    jiating.setName(temp.getName());
                    jiating.setType(2);
                    signFamilyDao.save(jiating);
                }
            }
            JSONObject json = new JSONObject();
            int prescription = 0;
            int sign = 0;

+ 35 - 35
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/service/WlyyDoorServiceOrderService.java

@ -630,10 +630,26 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        //新增工单与服务项费用关联关系
        if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO)) {return result;}
        JSONObject dispatcherJson = queryDispatcherInfoByPatient(jsonObjectParam.getJSONObject("hospital").get("code").toString());
        if (dispatcherJson.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
            return dispatcherJson;
        if ( StringUtils.isNotBlank(orderDO.getDoctor())) {
            orderDO.setStatus(2);
/*            orderDO.setDoctor(signFamily.getDoctor());
            orderDO.setDoctorName(signFamily.getDoctorName());*/
            this.save(orderDO);
            WlyyDoorServiceOrderDO wlyyDoorServiceOrder = wlyyDoorServiceOrderDao.findOne(orderDO.getId());
            //新增工单医生关联关系
            if (orderWithDoctorAdd(result, jsonObjectParam, wlyyDoorServiceOrder)) {return result;}
            // 给服务医生发接单消息
            this.createMessage(orderDO.getId(),orderDO.getProxyPatient(),orderDO.getDoctor(),407,"服务工单待接单","您有新的服务工单,请前往处理");
            //发送智能助手消息
            sendWeixinMessage(4,orderDO.getDoctor(),orderDO.getPatient());
            result.put(ResponseContant.resultFlag, ResponseContant.success);
            result.put(ResponseContant.resultMsg, consultTeam);
            return  result;
        }
        JSONObject dispatcherJson = queryDispatcherInfoByPatient(jsonObjectParam.getJSONObject("hospital").get("code").toString());
        List<Map<String,Object>> dispatcherInfoList = (List)dispatcherJson.get(ResponseContant.resultMsg);
        for(Map<String,Object> map: dispatcherInfoList){
            String dispatcher = map.get("code").toString();
@ -643,10 +659,14 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
            this.createMessage(orderDO.getId(),"system",dispatcher,430,"居民提交工单申请",orderDO.getPatientName() + "提交了服务工单"+orderDO.getNumber()+"申请");
        }
        //给机构调度员发送医生助手消息
        String  dispatcherSql = "SELECT u.user_code FROM `manage_role_user` u ,wlyy_doctor d where u.role_id = 22 and u.user_code = d.`code` and d.hospital = '" +orderDO.getHospital() + "'";
        String  dispatcherSql = "SELECT m.doctor_code FROM base_doctor_role m " +
                "JOIN base_doctor_role_dict r ON m.role_code = r.code " +
                "JOIN base_doctor_hospital o ON m.doctor_code = o.doctor_code WHERE " +
                " r.code = 'dispatcher' and o.del=1 and o.org_code = '"+orderDO.getHospital()+"'";
        List<Map<String, Object>> dispatcherList = jdbcTemplate.queryForList(dispatcherSql);
        for(Map<String, Object> map : dispatcherList) {
            sendWeixinMessage(3, map.get("user_code") + "", orderDO.getPatient());
            sendWeixinMessage(3, map.get("doctor_code") + "", orderDO.getPatient());
        }
        result.put(ResponseContant.resultFlag, ResponseContant.success);
        result.put(ResponseContant.resultMsg, consultTeam);
@ -1156,8 +1176,8 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
                "  ( wlyy_door_service_order o " +
                " LEFT JOIN base_doctor d ON o.doctor = d.id " +
                " LEFT JOIN base_doctor_hospital dh ON o.doctor = dh.doctor_code) " +
                " LEFT JOIN base_org de on o.id = de.order_id " +
                " LEFT JOIN dm_hospital dm on o.hospital = dm.code " +
                " LEFT JOIN wlyy_door_fee_detail de on o.id = de.order_id " +
                " LEFT JOIN base_org dm on o.hospital = dm.code " +
                " WHERE  " +
                "  (o.patient = '{patient}' or o.proxy_patient = '{patient}') " +
                " AND (o.`status` = {status} or -100 = {status})";
@ -1878,13 +1898,13 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
                " base_doctor d " +
                " LEFT JOIN wlyy_door_doctor_status ds ON d.id = ds.doctor " +
                " LEFT JOIN wlyy_door_service_order o on o.doctor = d.id and o.`status` in (2,3,4) " +
                " WHERE d.status = 1" +
                " AND d.level <> 11" +
                " AND d.hospital = '{hospital}' " +
                " LEFT JOIN base_doctor_hospital dh on dh.doctor_code = d.id " +
                " WHERE d.enabled = 1" +
                " AND dh.org_code = '{hospital}' "+
                " AND d.`name` like '%{doctorName}%' " +
                " AND (ds.`status` in ({status}) or '-100' = '{status}')" +
                " AND d.del=1  " +
                " GROUP BY d.`code` ORDER BY ds.create_time DESC " +
                " GROUP BY d.id ORDER BY ds.create_time DESC " +
                " LIMIT {start},{end}";
        String finalSql = sql.replace("{hospital}", hospital)
@ -1898,11 +1918,11 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
                " FROM  " +
                "   base_doctor d  " +
                " LEFT JOIN wlyy_door_doctor_status ds ON d.id = ds.doctor " +
                " WHERE d.status = 1" +
                " AND d.level <> 4" +
                " AND d.hospital = '{hospital}' "+
                " LEFT JOIN base_doctor_hospital dh on dh.doctor_code = d.id " +
                " WHERE d.enabled = 1" +
                " AND dh.org_code = '{hospital}' "+
                " AND d.`name` like '%{doctorName}%' " +
                " AND d.del=1 and d.status=1 " +
                " AND d.del=1 " +
                " AND (ds.`status` in ({status}) or '-100' = '{status}')";
        String finalCountSql = countSql.replace("{hospital}", hospital)
@ -2869,26 +2889,6 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
            wlyyDoorServiceOrder.setDoctorArrivingTime(jsonObjectParam.getString("doctorArrivingTime"));
        }
//        //添加居民同意状态
//        wlyyDoorServiceOrder.setIsPatientConfirm(1);
//        wlyyDoorServiceOrder.setPatientConfirmTime(new Date());
//        wlyyDoorServiceOrder.setUpdateTime(new Date());
//        this.save(wlyyDoorServiceOrder);
//
//        //修改时有更改到关联关系,则先删除原有关联关系,再新增关联关系
//        //删除工单原来医生的关联关系
//        // 删除出诊医生或服务项
//        this.orderWithFeeDelete(jsonObjectParam,wlyyDoorServiceOrder);
        //新增工单医生关联关系
        if (orderWithDoctorAdd(result, jsonObjectParam, wlyyDoorServiceOrder)) {return result;}
//        //新增工单居民确认操作日志记录
//        if (orderWithConfirmLogAdd(result, jsonObjectParam, wlyyDoorServiceOrder.getId())) {return result;}
        //微信模板消息-反馈处理通知
//        pushMsgTask.putWxMsg(tokenUtils.getAccessToken(),30,);
        result.put(ResponseContant.resultFlag, ResponseContant.success);
        result.put(ResponseContant.resultMsg, wlyyDoorServiceOrder);
        return result;