Shi Kejing 4 سال پیش
والد
کامیت
cb8f74c949

+ 104 - 0
svr/svr-door-serivce/src/main/java/com/yihu/jw/door/controller/doctor/DoorOrderController.java

@ -2,6 +2,7 @@ package com.yihu.jw.door.controller.doctor;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
import com.yihu.jw.door.controller.BaseController;
import com.yihu.jw.door.dao.WlyyDoorDoctorDao;
import com.yihu.jw.door.dao.WlyyDoorServiceOrderDao;
@ -12,6 +13,7 @@ import com.yihu.jw.door.service.common.HospitalService;
import com.yihu.jw.door.service.common.ServerPackageService;
import com.yihu.jw.door.service.prescription.JwDoorPrescriptionService;
import com.yihu.jw.door.util.StreamUtil;
import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
import com.yihu.jw.entity.door.WlyyDoorConclusionDO;
import com.yihu.jw.entity.door.WlyyDoorServiceOrderDO;
import com.yihu.jw.restmodel.ResponseContant;
@ -62,6 +64,9 @@ public class DoorOrderController extends BaseController {
    @Autowired
    private JwDoorPrescriptionService jwDoorPrescriptionService;
    @Autowired
    private BaseDoctorRoleDao baseDoctorRoleDao;
    @PostMapping("/initDoorStatus")
    @ApiOperation(value = "获取医生分派订单开关状态")
@ -634,7 +639,106 @@ public class DoorOrderController extends BaseController {
                    if (doctor == null) {
                        continue;
                    }
                    String status = wlyyDoorServiceOrderService.findDispatchStatusByDoctor(doctor.get("id").toString());
                    JSONObject json = new JSONObject();
                    json.put("status", status);
                    json.put("id", doctor.get("id"));
                    // 医生标识
                    json.put("code", doctor.get("id"));
                    // 医生姓名
                    json.put("name", doctor.get("name"));
                    // 所在医院名称
                    json.put("hospital", doctor.get("hospital"));
                    // 所在医院名称
                    json.put("hospital_name", doctor.get("hospital_name"));
                    // 科室名称
                    json.put("dept_name", (doctor.get("dept_name") == null ||
                            org.apache.commons.lang3.StringUtils.isEmpty(doctor.get("dept_name").toString())) ? " " : doctor.get("dept_name"));
//                    json.put("level", doctor.get("level") );
                    json.put("job", doctor.get("job") );
                    // 职称名称
                    json.put("job_name", (doctor.get("job_name") == null ||
                            org.apache.commons.lang3.StringUtils.isEmpty(doctor.get("job_name").toString())) ? " " : doctor.get("job_name"));
                    // 头像
                    json.put("photo", doctor.get("photo"));
                    // 简介
                    json.put("introduce", doctor.get("introduce"));
                    // 专长
                    json.put("expertise", doctor.get("expertise"));
                    json.put("flag", doctors.contains(String.valueOf(doctor.get("code"))) ? true : false);
                    json.put("fixed", one != null && String.valueOf(doctor.get("code")).equals(one.getDoctor()) ? true : false);
                    //出诊费用
                    json.put("fee", 0);
                    array.add(json);
                }
            }
            // 排序
            Collections.sort(array, new Comparator<JSONObject>() {
                @Override
                public int compare(JSONObject o1, JSONObject o2) {
                    Integer flag1 = (Boolean)o1.get("flag") ? 2 : 1;
                    Integer flag2 = (Boolean)o2.get("flag") ? 2 : 1;
                    if (flag1 - flag2 > 0) {
                        return -1;
                    } else if (flag1 - flag2 < 0) {
                        return 1;
                    } else {return 0;}
                }
            });
            Collections.sort(array, new Comparator<JSONObject>() {
                @Override
                public int compare(JSONObject o1, JSONObject o2) {
                    Integer fixed = (Boolean)o1.get("fixed") ? 2 : 1;
                    Integer fixed2 = (Boolean)o2.get("fixed") ? 2 : 1;
                    int sort = fixed - fixed2;
                    if (sort > 0) {
                        return -1;
                    } else if (sort < 0) {
                        return 1;
                    } else {
                        return 0;
                    }
                }
            });
            return write(200, "获取医院医生列表成功!", "list", array);
        } catch (Exception e) {
            error(e);
            return error(-1, "获取医院医生列表失败!");
        }
    }
    @ApiOperation("社区医院下护士列表查询接口 没分页")
    @RequestMapping(value = "getNurseListByHospitalNoPage",method =RequestMethod.POST)
    @ResponseBody
    public String getNurseListByHospitalNoPage(
            @RequestParam(required = true) String orderId,
            @RequestParam(required = false) String hospital,
            @RequestParam(required = false) String name,
            @RequestParam(required = false) Integer type) {
        try {
            List<JSONObject> array = new ArrayList<>();
            WlyyDoorServiceOrderDO one = doorServiceOrderDao.findOne(orderId);
            // 被服务的居民的次数(非代理居民)
//            Integer times = wlyyDoorServiceOrderService.countPatientDoorTimes(one.getPatient());
            List<String> doctors = doorDoctorDao.findDoctors(orderId);
            List<Map<String, Object>> list = hospitalService.getDoctorsByhospitalNoPage(hospital, name, type, 0);
            if (list != null) {
                for (Map<String, Object> doctor : list) {
                    if (doctor == null) {
                        continue;
                    }
                    List<BaseDoctorRoleDO> baseDoctorRoleDOS = baseDoctorRoleDao.findByDoctorCode(doctor.get("id").toString());
                    if (baseDoctorRoleDOS.size()<1){
                        continue;
                    }
                    if (!baseDoctorRoleDOS.get(0).getRoleCode().equals("nurse")){
                        continue;
                    }
                    String status = wlyyDoorServiceOrderService.findDispatchStatusByDoctor(doctor.get("id").toString());
                    JSONObject json = new JSONObject();
                    json.put("status", status);
                    json.put("id", doctor.get("id"));
                    // 医生标识
                    json.put("code", doctor.get("id"));

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

@ -25,6 +25,7 @@ import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.common.QrcodeUtil;
import com.yihu.jw.util.date.DateUtil;
@ -2949,6 +2950,27 @@ public class WlyyDoorServiceOrderService extends BaseJpaService<WlyyDoorServiceO
        return result;
    }
    /**
     * 查看指定医生是否开启分派订单功能
     * @param doctor
     * @return
     */
    public String findDispatchStatusByDoctor(String doctor) {
        WlyyDoorDoctorStatusDO doctorSwitch = wlyyDoorDoctorStatusDao.findByDoctor(doctor);
        BaseDoctorDO doctorVO = doctorDao.findById(doctor);
        if (null == doctorSwitch) {
            WlyyDoorDoctorStatusDO wlyyDoorDoctorStatusDO =new WlyyDoorDoctorStatusDO();
            wlyyDoorDoctorStatusDO.setDoctor(doctor);
            wlyyDoorDoctorStatusDO.setStatus(5);
            wlyyDoorDoctorStatusDO.setCreateTime(new Date());
            wlyyDoorDoctorStatusDO.setCreateUser(doctor);
            wlyyDoorDoctorStatusDO.setCreateUserName(null != doctorVO ? doctorVO.getName() : null);
            wlyyDoorDoctorStatusDao.save(wlyyDoorDoctorStatusDO);
            return "0";
        }
        return doctorSwitch.getStatus() == 5 ? "0" : "1";
    }
    /**
     * 获取未付款的服务项
     * @param orderId