Bladeren bron

代码修改

liubing 4 jaren geleden
bovenliggende
commit
624b815251

+ 5 - 1
common/common-entity/sql记录

@ -422,4 +422,8 @@ CREATE TABLE `base_emergency_assistance_order` (
-- 2021-04-13 lb
-- 2021-04-13 lb
ALTER table base_doctor ADD COLUMN `doctor_lat` varchar(100) DEFAULT NULL COMMENT '医生当前定位地址纬度';
ALTER table base_doctor ADD COLUMN `doctor_lat` varchar(100) DEFAULT NULL COMMENT '医生当前定位地址纬度';
ALTER table base_doctor ADD COLUMN `doctor_lon` varchar(100) DEFAULT NULL COMMENT '医生当前定位地址经度';
ALTER table base_doctor ADD COLUMN `doctor_lon` varchar(100) DEFAULT NULL COMMENT '医生当前定位地址经度';
alter TABLE base_emergency_assistance_order add COLUMN complete_time timestamp NULL DEFAULT NULL COMMENT '医生确认完成时间';
alter TABLE base_emergency_assistance_order add COLUMN complete_time timestamp NULL DEFAULT NULL COMMENT '医生确认完成时间';
-- 2021-04-19 lb
ALTER table base.base_doctor add COLUMN `doctor_locate_address` varchar(100) DEFAULT NULL COMMENT '医生当前定位地址';
ALTER table base.base_emergency_assistance_order add COLUMN `team_code` varchar(100) DEFAULT NULL COMMENT '服务团队';

+ 9 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorDO.java

@ -289,6 +289,7 @@ public class BaseDoctorDO extends UuidIdentityEntityWithOperator {
    private Integer level;
    private Integer level;
    private String doctorLat;//医生当前定位地址纬度
    private String doctorLat;//医生当前定位地址纬度
    private String doctorLon;//医生当前定位地址经度
    private String doctorLon;//医生当前定位地址经度
    private String doctorLocateAddress;//医生定位地址
    @Column(name = "visit_time")
    @Column(name = "visit_time")
@ -781,4 +782,12 @@ public class BaseDoctorDO extends UuidIdentityEntityWithOperator {
    public void setDoctorLon(String doctorLon) {
    public void setDoctorLon(String doctorLon) {
        this.doctorLon = doctorLon;
        this.doctorLon = doctorLon;
    }
    }
    public String getDoctorLocateAddress() {
        return doctorLocateAddress;
    }
    public void setDoctorLocateAddress(String doctorLocateAddress) {
        this.doctorLocateAddress = doctorLocateAddress;
    }
}
}

+ 12 - 3
common/common-entity/src/main/java/com/yihu/jw/entity/care/assistance/EmergencyAssistanceDO.java

@ -33,13 +33,14 @@ public class EmergencyAssistanceDO extends UuidIdentityEntityWithOperator {
    private String conclusionImg; //服务相关附件
    private String conclusionImg; //服务相关附件
    private Integer status; //工单状态 -1已取消 0已完成 1申请中
    private Integer status; //工单状态 -1已取消 0已完成 1申请中
    private Date completeTime;//完成时间
    private Date completeTime;//完成时间
    private String teamCode;
    private String sendMessage;//
    private String sendMessage;//
    private Integer patientAge;
    private Integer patientAge;
    private String patientPhoto;
    private String patientPhoto;
    private Integer patientSex;
    private Integer patientSex;
    private double distance;//医生与患者距离 单位km
    private double distance;//医生与患者距离 单位km
    private JSObject otherDoctorDistance;
    private String otherDoctorDistance;
    public String getPatient() {
    public String getPatient() {
        return patient;
        return patient;
@ -192,6 +193,14 @@ public class EmergencyAssistanceDO extends UuidIdentityEntityWithOperator {
        this.completeTime = completeTime;
        this.completeTime = completeTime;
    }
    }
    public String getTeamCode() {
        return teamCode;
    }
    public void setTeamCode(String teamCode) {
        this.teamCode = teamCode;
    }
    @Transient
    @Transient
    public String getSendMessage() {
    public String getSendMessage() {
        return sendMessage;
        return sendMessage;
@ -238,11 +247,11 @@ public class EmergencyAssistanceDO extends UuidIdentityEntityWithOperator {
    }
    }
    @Transient
    @Transient
    public JSObject getOtherDoctorDistance() {
    public String getOtherDoctorDistance() {
        return otherDoctorDistance;
        return otherDoctorDistance;
    }
    }
    public void setOtherDoctorDistance(JSObject otherDoctorDistance) {
    public void setOtherDoctorDistance(String otherDoctorDistance) {
        this.otherDoctorDistance = otherDoctorDistance;
        this.otherDoctorDistance = otherDoctorDistance;
    }
    }
}
}

+ 26 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/assistance/EmergencyAssistanceEndpoint.java

@ -46,13 +46,34 @@ public class EmergencyAssistanceEndpoint extends EnvelopRestEndpoint {
        }
        }
    }
    }
    @GetMapping(value = "getOrderDetail")
    @ApiOperation(value = "查看救助详情")
    public ObjEnvelop getOrderDetail(@ApiParam(name="orderId",value = "工单id")
                               @RequestParam(value = "orderId") String orderId
    @GetMapping(value = "doctorGetOrderDetail")
    @ApiOperation(value = "医生查看救助详情")//不可查看已取消
    public ObjEnvelop doctorGetOrderDetail(@ApiParam(name="orderId",value = "工单id")
                                     @RequestParam(value = "orderId") String orderId,
                                     @ApiParam(name="doctor",value = "doctor")
                                     @RequestParam(value = "doctor") String doctor
    ){
    ){
        try {
        try {
            JSONObject result = assistanceService.getOrderDetail(orderId);
            JSONObject result = assistanceService.doctorGetOrderDetail(orderId,doctor);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return ObjEnvelop.getError(result.getString(ResponseContant.resultMsg));
            }
            return ObjEnvelop.getSuccess("查询成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败"+e.getMessage());
        }
    }
    @GetMapping(value = "patientGetOrderDetail")
    @ApiOperation(value = "患者查看救助详情")//仅只能查看已完成
    public ObjEnvelop patientGetOrderDetail(@ApiParam(name="orderId",value = "工单id")
                               @RequestParam(value = "orderId") String orderId,
                               @ApiParam(name="patient",value = "patient")
                               @RequestParam(value = "patient") String patient
    ){
        try {
            JSONObject result = assistanceService.patientGetOrderDetail(orderId,patient);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return ObjEnvelop.getError(result.getString(ResponseContant.resultMsg));
                return ObjEnvelop.getError(result.getString(ResponseContant.resultMsg));
            }
            }

+ 2 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/security/SecurityMonitoringOrderEndpoint.java

@ -46,8 +46,8 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "getSecurityOrderList")
    @GetMapping(value = "getSecurityOrderList")
    @ApiOperation(value = "获取安防工单列表")
    @ApiOperation(value = "获取安防工单列表")
    public ListEnvelop getSecurityOrderList(@ApiParam(name="doctor",value = "医生ID,当前查看列表医生",required = true)
                                            @RequestParam(value = "doctor")String doctor,
    public ListEnvelop getSecurityOrderList(@ApiParam(name="doctor",value = "医生ID,当前查看列表医生",required = false)
                                            @RequestParam(value = "doctor",required = false)String doctor,
                                            @ApiParam(name="serverDoctor",value = "处置医生di 即为患者提供服务的医生")
                                            @ApiParam(name="serverDoctor",value = "处置医生di 即为患者提供服务的医生")
                                            @RequestParam(value = "serverDoctor",required = false)String serverDoctor,
                                            @RequestParam(value = "serverDoctor",required = false)String serverDoctor,
                                            @ApiParam(name="patientName",value = "患者姓名或身份证")
                                            @ApiParam(name="patientName",value = "患者姓名或身份证")

+ 28 - 14
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/sign/SignEndpoint.java

@ -141,6 +141,34 @@ public class SignEndpoint extends EnvelopRestEndpoint {
        }
        }
    }
    }
    @GetMapping(value = "serviceItemByPackageId")
    @ApiOperation(value = "根据服务包获取服务项目")
    public ObjEnvelop serviceItemByPackageI (
            @ApiParam(name = "packageId", value = "packageId", required = true)
            @RequestParam(value = "packageId") String packageId) throws Exception {
        try{
            return ObjEnvelop.getSuccess("查询成功",servicePackageService.serviceItemByPackageId(packageId));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "servicePackageByServerItem")
    @ApiOperation(value = "根据服务项目获取患者服务包列表")
    public ObjEnvelop servicePackageByServerItem (
            @ApiParam(name = "patient", value = "patient", required = true)
            @RequestParam(value = "patient") String patient,
            @ApiParam(name = "serverItem", value = "serverItem", required = true)
            @RequestParam(value = "serverItem") String serverItem) throws Exception {
        try{
            return ObjEnvelop.getSuccess("查询成功",servicePackageService.servicePackageByServerItem(patient,serverItem));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");
        }
    }
    @PostMapping(value = "servicePackageSign")
    @PostMapping(value = "servicePackageSign")
    @ApiOperation(value = "分配服务包-签约")
    @ApiOperation(value = "分配服务包-签约")
    @ObserverRequired
    @ObserverRequired
@ -176,20 +204,6 @@ public class SignEndpoint extends EnvelopRestEndpoint {
        }
        }
    }
    }
    @GetMapping(value = "servicePackageByPatient")
    @ApiOperation(value = "获取患者服务包")
    public ObjEnvelop servicePackageByPatient (
            @ApiParam(name = "patient", value = "患者id", required = true)
            @RequestParam(value = "patient") String patient,
            @ApiParam(name = "packageType", value = "服务包类型1养老服务、2医疗服务、3安防监护、4慢病管理", required = false)
            @RequestParam(value = "packageType",required = false) String packageType) throws Exception {
        try{
            return ObjEnvelop.getSuccess("查询成功",servicePackageService.servicePackageByPatient(patient, packageType));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");
        }
    }
    @GetMapping(value = "isCapacityAssessment" )
    @GetMapping(value = "isCapacityAssessment" )
    @ApiOperation(value = "查询今年是否进行过能力评估")
    @ApiOperation(value = "查询今年是否进行过能力评估")

+ 87 - 8
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java

@ -1,6 +1,7 @@
package com.yihu.jw.care.service.assistance;
package com.yihu.jw.care.service.assistance;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.yihu.jw.care.dao.assistance.EmergencyAssistanceDao;
import com.yihu.jw.care.dao.assistance.EmergencyAssistanceDao;
@ -95,6 +96,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        }
        }
        Map<String,Object> mapTmp = items.get(0);
        Map<String,Object> mapTmp = items.get(0);
        List<BaseDoctorDO> doctorDOS = baseTeamMemberDao.findAllMembers(mapTmp.get("team_code").toString());
        List<BaseDoctorDO> doctorDOS = baseTeamMemberDao.findAllMembers(mapTmp.get("team_code").toString());
        assistanceDO.setTeamCode(mapTmp.get("team_code").toString());
        if (doctorDOS.size()==0){
        if (doctorDOS.size()==0){
            String failMsg = "紧急救助服务项服务医生为空,不可发起救助";
            String failMsg = "紧急救助服务项服务医生为空,不可发起救助";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
@ -112,7 +114,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
                distance = distanceTmp;
                distance = distanceTmp;
                assistanceDO.setDoctor(doctorDO.getId());
                assistanceDO.setDoctor(doctorDO.getId());
                assistanceDO.setDoctorName(doctorDO.getName());
                assistanceDO.setDoctorName(doctorDO.getName());
                assistanceDO.setDoctorAddress("");
                assistanceDO.setDoctorAddress(doctorDO.getDoctorLocateAddress());
                assistanceDO.setDoctorLon(doctorDO.getDoctorLon());
                assistanceDO.setDoctorLon(doctorDO.getDoctorLon());
                assistanceDO.setDoctorLat(doctorDO.getDoctorLat());
                assistanceDO.setDoctorLat(doctorDO.getDoctorLat());
            }
            }
@ -133,11 +135,6 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        return getOrderDetail(assistanceDO.getId());
        return getOrderDetail(assistanceDO.getId());
    }
    }
    /**
     * 救助工单详情
     * @param orderID
     * @return
     */
    public JSONObject getOrderDetail(String orderID){
    public JSONObject getOrderDetail(String orderID){
        JSONObject result = new JSONObject();
        JSONObject result = new JSONObject();
        EmergencyAssistanceDO assistanceDO = emergencyAssistanceDao.findOne(orderID);
        EmergencyAssistanceDO assistanceDO = emergencyAssistanceDao.findOne(orderID);
@ -147,17 +144,98 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            result.put(ResponseContant.resultMsg,failMsg);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
            return result;
        }
        }
        List<BaseDoctorDO> doctorDOS = baseTeamMemberDao.findAllMembers(assistanceDO.getTeamCode());
        double distance = 0.0;
        JSONArray otherDoctorDistance = new JSONArray();
        JSONObject otherDoctorDistanceObj = new JSONObject();
        for (BaseDoctorDO doctorDO:doctorDOS){
            if (StringUtils.isBlank(doctorDO.getDoctorLat())||StringUtils.isBlank(doctorDO.getDoctorLon())){
                continue;
            }
            double distanceTmp = countDistance.getDistance(Double.parseDouble(assistanceDO.getServeLat()),Double.parseDouble(assistanceDO.getServeLon()),Double.parseDouble(doctorDO.getDoctorLat()),Double.parseDouble(doctorDO.getDoctorLon()));
            if (doctorDO.getId().equals(assistanceDO.getDoctor())){//服务医生
                assistanceDO.setDistance(distance);
            }
            else {
                otherDoctorDistanceObj.put("doctor",doctorDO.getId());
                otherDoctorDistanceObj.put("doctorName",doctorDO.getName());
                otherDoctorDistanceObj.put("doctorAddress",doctorDO.getDoctorLocateAddress());
                otherDoctorDistanceObj.put("doctorLon",doctorDO.getDoctorLon());
                otherDoctorDistanceObj.put("doctorLat",doctorDO.getDoctorLat());
                otherDoctorDistanceObj.put("distance",distanceTmp);
                otherDoctorDistance.add(otherDoctorDistanceObj);
            }
        }
        assistanceDO.setOtherDoctorDistance(otherDoctorDistance.toJSONString());
        BasePatientDO patientDO = patientDao.findById(assistanceDO.getPatient());
        BasePatientDO patientDO = patientDao.findById(assistanceDO.getPatient());
        assistanceDO.setPatientPhoto(patientDO.getPhoto());
        assistanceDO.setPatientPhoto(patientDO.getPhoto());
        assistanceDO.setPatientSex(patientDO.getSex());
        assistanceDO.setPatientSex(patientDO.getSex());
        assistanceDO.setPatientAge(IdCardUtil.getAgeForIdcard(patientDO.getIdcard()));
        assistanceDO.setPatientAge(IdCardUtil.getAgeForIdcard(patientDO.getIdcard()));
        double distance=countDistance.getDistance(Double.parseDouble(assistanceDO.getServeLat()),Double.parseDouble(assistanceDO.getServeLon()),Double.parseDouble(assistanceDO.getDoctorLat()),Double.parseDouble(assistanceDO.getDoctorLon()));
        assistanceDO.setDistance(distance);
        result.put(ResponseContant.resultFlag, ResponseContant.success);
        result.put(ResponseContant.resultFlag, ResponseContant.success);
        result.put(ResponseContant.resultMsg,JSONObject.parseObject(JSON.toJSONStringWithDateFormat(assistanceDO,"yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue)));
        result.put(ResponseContant.resultMsg,JSONObject.parseObject(JSON.toJSONStringWithDateFormat(assistanceDO,"yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue)));
        return result;
        return result;
    }
    }
    /**
     * 救助工单详情
     * @param orderID
     * @return
     */ //医生无法查看已取消
    public JSONObject doctorGetOrderDetail(String orderID,String doctor){
        JSONObject result = new JSONObject();
        BaseDoctorDO doctorDO = doctorDao.findById(doctor);
        if (doctorDO==null) {
            String failMsg = "医生信息不存在,无法查看";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, failMsg);
            return result;
        }
        EmergencyAssistanceDO assistanceDO = emergencyAssistanceDao.findOne(orderID);
        if (assistanceDO==null){
            String failMsg = "当前救助工单不存在";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
        }
        if (assistanceDO.getStatus()==-1){
            String failMsg = "当前工单已取消 无法查看";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
        }
        return getOrderDetail(orderID);
    }
    /**
     * 救助工单详情
     * @param orderID
     * @return
     *///患者只能查看已完成
    public JSONObject patientGetOrderDetail(String orderID,String patient){
        JSONObject result = new JSONObject();
        BasePatientDO patientDO = patientDao.findById(patient);
        if (patientDO==null) {
            String failMsg = "患者信息不存在,无法查看";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, failMsg);
            return result;
        }
        EmergencyAssistanceDO assistanceDO = emergencyAssistanceDao.findOne(orderID);
        if (assistanceDO==null){
            String failMsg = "当前救助工单不存在";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
        }
        if (assistanceDO.getStatus()!=0){
            String failMsg = "当前工单未完成 无法查看";
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg,failMsg);
            return result;
        }
        return getOrderDetail(orderID);
    }
    /**
    /**
     * 居民救助历史tab数量
     * 居民救助历史tab数量
     * @param patient
     * @param patient
@ -323,6 +401,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            return result;
            return result;
        }
        }
        else {
        else {
            doctorDO.setDoctorLocateAddress(doctorAddress);
            doctorDO.setDoctorLat(doctorLat);
            doctorDO.setDoctorLat(doctorLat);
            doctorDO.setDoctorLon(doctorLon);
            doctorDO.setDoctorLon(doctorLon);
            doctorDao.save(doctorDO);
            doctorDao.save(doctorDO);

+ 0 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java

@ -221,8 +221,6 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                    "base_team_member m " +
                    "base_team_member m " +
                    "where ord.patient = CONVERT(sr.patient USING utf8) and  sr.id = r.sign_id and sr.status=1 and " +
                    "where ord.patient = CONVERT(sr.patient USING utf8) and  sr.id = r.sign_id and sr.status=1 and " +
                    " r.service_package_id = i.service_package_id and  m.team_code = i.team_code  and i.del = 1 and sr.`status`=1  and i.code='8' and m.doctor_code = '"+doctor+"' and m.del = '1') ";
                    " r.service_package_id = i.service_package_id and  m.team_code = i.team_code  and i.del = 1 and sr.`status`=1  and i.code='8' and m.doctor_code = '"+doctor+"' and m.del = '1') ";
        } else  {
            return new JSONArray();
        }
        }
        if (StringUtils.isNotBlank(serverDoctor)){
        if (StringUtils.isNotBlank(serverDoctor)){
            sql +=" and ord.doctor = '"+serverDoctor+"' ";
            sql +=" and ord.doctor = '"+serverDoctor+"' ";

+ 13 - 14
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ServicePackageService.java

@ -403,21 +403,20 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
        return new ArrayList<>();
        return new ArrayList<>();
    }
    }
    public List<ServicePackageRecordDO> servicePackageByPatient(String patient,String packageType){
        //签约记录
        List<ServicePackageSignRecordDO> signs = servicePackageSignRecordDao.findByStatusAndPatient(1,patient);
        if (signs.size()>0){
            ServicePackageSignRecordDO tmp = signs.get(0);
            String sql = " select r.* from base_service_package_record r inner join base_service_package p on r.service_package_id = p.id " +
                    " and p.del=1  where r.sign_id='"+tmp.getId()+"' ";
            if (StringUtils.isNotBlank(packageType)){
                sql += " and p.type='"+packageType+"' ";
            }
            List<ServicePackageRecordDO> result = jdbcTemplate.query(sql,new BeanPropertyRowMapper(ServicePackageRecordDO.class));
            return result;
        }
        else return new ArrayList<>();
    public List<Map<String,Object>> serviceItemByPackageId(String packageId){
        String sql ="select code,name,count(code)count from base_service_package_item  where " +
                "service_package_id='"+packageId+"' group by code ";
        List<Map<String,Object>> result = jdbcTemplate.queryForList(sql);
        return result;
    }
    public List<Map<String,Object>> servicePackageByServerItem(String patient,String serverItem)
    {
        String sql="select  DISTINCT pack.* from base_service_package_record re, base_service_package_item item,base_service_package pack  \n" +
                "where re.service_package_id = item.service_package_id and item.service_package_id = pack.id and re.sign_id in (\n" +
                "select rd.id from base_service_package_sign_record rd  where rd.patient='"+patient+"' and item='"+serverItem+"' and rd.status=1) ";
        List<Map<String,Object>> result = jdbcTemplate.queryForList(sql);
        return result;
    }
    }
}
}