Shi Kejing %!s(int64=4) %!d(string=hai) anos
pai
achega
7a4c540070

+ 22 - 3
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/service/DoorOrderService.java

@ -6,12 +6,14 @@ import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
import com.yihu.jw.door.dao.*;
import com.yihu.jw.door.dao.followup.FollowUpDao;
import com.yihu.jw.door.util.MessageUtil;
import com.yihu.jw.door.util.StreamUtil;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.base.im.ConsultDo;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.entity.base.patient.BasePatientDO;
@ -150,6 +152,8 @@ public class DoorOrderService {
    private FollowUpDao followupDao;
    @Autowired
    private BasePatientWechatDao basePatientWechatDao;
    @Autowired
    private BaseDoctorRoleDao baseDoctorRoleDao;
    /**
     * 互联网查询待服务工单数
@ -321,8 +325,15 @@ public class DoorOrderService {
     * @return
     */
    public List<Map<String, Object>> getDoorServiceDoctor(String orderId) {
        String sql = "SELECT dd.id as id,CONCAT(d.`name`,' (',dd.doctor_job_name,')') as name, dd.doctor from wlyy_door_doctor dd JOIN base_doctor d ON d.id = dd.doctor WHERE order_id=?";
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql, orderId);
        String sql = "SELECT dd.id as id,CONCAT(d.`name`,' (',d.job_title_name,')') as name, d.id \n" +
                "from wlyy_door_doctor dd INNER JOIN wlyy_door_service_order  sor on dd.order_id = sor.id\n" +
                "INNER JOIN base_doctor d ON d.id = sor.doctor WHERE order_id='"+orderId+"' \n" +
                "UNION\n" +
                "\n" +
                "SELECT dd.id as id,CONCAT(d.`name`,' (',d.job_title_name,')') as name, d.id \n" +
                "from wlyy_door_doctor dd INNER JOIN wlyy_door_service_order  sor on dd.order_id = sor.id\n" +
                "INNER JOIN base_doctor d ON d.id = sor.nursing_staff WHERE order_id='"+orderId+"';";
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(sql);
        return mapList;
    }
@ -734,7 +745,15 @@ public class DoorOrderService {
        if(type != null && type == 3 ){
            sql += " and o.type = " + type + " and o.proxy_patient = '" + doctorCode + "'";
        }else if(!StringUtils.isEmpty(doctorCode)){
            sql+=" and (d.doctor='"+doctorCode+"' or o.doctor='"+doctorCode+"')";
            List<BaseDoctorRoleDO> baseDoctorRoleDOS = baseDoctorRoleDao.findByDoctorCode(doctorCode);
            if (baseDoctorRoleDOS.get(0).getRoleCode().equals("nurse")){
//                sql+=" and (d.doctor='"+doctorCode+"' or o.nursing_staff='"+doctorCode+"')";
                sql+=" and  o.nursing_staff='"+doctorCode+"'";
            }else {
                sql+=" and (d.doctor='"+doctorCode+"' or o.doctor='"+doctorCode+"')";
            }
        }
        if(examPaperStatus!=null){
            sql+=" and o.conclusion_status =1 ";

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

@ -2129,13 +2129,13 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        String sql = "select ds.doctor,d.name, d.job_title_name as jobName, 1 as sortFlag " +
                " from wlyy_door_doctor_status ds " +
                "        JOIN (select b.* from base_doctor b,base_doctor_hospital dh where b.id=dh.doctor_code and dh.del = 1 and dh.org_code='" + hospital + "')  d on ds.doctor = d.id " +
                " LEFT JOIN base_doctor_role dr ON dr.doctor_code = d.id where ds.status in (1,2,3,4) AND dr.role_code != 'nurse' GROUP BY doctor " +
                " LEFT JOIN base_doctor_role dr ON dr.doctor_code = d.id where ds.status in (1,2,3,4) AND dr.role_code != 'nurse' " +
                " limit " + start + "," + end ;
        String countSql = "select count(ds.id) " +
                "from wlyy_door_doctor_status ds " +
                "         JOIN (select b.* from base_doctor b,base_doctor_hospital dh where b.id=dh.doctor_code and dh.del = 1 and dh.org_code= '" + hospital + "') d on ds.doctor = d.id " +
                " LEFT JOIN base_doctor_role dr ON dr.doctor_code = d.id where ds.status in (1,2,3,4) AND dr.role_code != 'nurse' GROUP BY doctor ";
                " LEFT JOIN base_doctor_role dr ON dr.doctor_code = d.id where ds.status in (1,2,3,4) AND dr.role_code != 'nurse' ";
        List<Map<String,Object>> doctorList = new ArrayList<>();
        try {
            doctorList = jdbcTemplate.queryForList(sql);
@ -2267,6 +2267,9 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        // 派单时,把医生拉入会话,作为其中一个成员,医生拒单时,退出会话
        ConsultDo consult = consultDao.queryByRelationCode(orderId);
        String sessionId = doorServiceOrderDO.getPatient() + "_" + consult.getId() + "_" + doorServiceOrderDO.getNumber() + "_" + consult.getType();
        if (!StringUtils.isEmpty(nursingStaff)){
            imUtill.updateParticipantNew(sessionId,nursingStaff,null);
        }
        imUtill.updateParticipantNew(sessionId,doctor,null);
        messageUtil.updateMessage(doorServiceOrderDO,new String[]{"402","403","430","435"},"431",dispatcher,dispatcher);
@ -2348,6 +2351,9 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        ConsultDo consult = consultDao.queryByRelationCode(orderId);
        String sessionId = doorServiceOrderDO.getPatient() + "_" + consult.getId() + "_" + doorServiceOrderDO.getNumber() + "_" + consult.getType();
        imUtill.updateParticipantNew(sessionId,doctor,null);
        if (!StringUtils.isEmpty(nursingStaff)){
            imUtill.updateParticipantNew(sessionId,nursingStaff,null);
        }
        messageUtil.updateMessage(doorServiceOrderDO,new String[]{"402","403","430","435"},"431",dispatcher,dispatcher);
        // 工单状态变更记录