瀏覽代碼

代码修改

liubing 4 年之前
父節點
當前提交
4ae44d5a24

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

@ -38,7 +38,7 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
            if (result.getIntValue("resultFlag") == 0) {
                return ObjEnvelop.getError(result.getString("resultMsg"));
            }
            return ObjEnvelop.getSuccess("创建成功",result);
            return ObjEnvelop.getSuccess("创建成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("创建失败"+e.getMessage());
@ -47,7 +47,7 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = "getSecurityOrderList")
    @ApiOperation(value = "获取安防工单列表")//TODO 查询需要修改
    public ListEnvelop getSecurityOrderList(@ApiParam(name="doctor",value = "医生ID",required = false)
    public ListEnvelop getSecurityOrderList(@ApiParam(name="doctor",value = "医生ID",required = true)
                                            @RequestParam(value = "doctor")String doctor,
                                            @ApiParam(name="patient",value = "patient")
                                            @RequestParam(value = "patient",required = false)String patient,
@ -67,6 +67,23 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "getSecurityOrderDetail")
    @ApiOperation(value = "获取安防工单详情")//
    public ObjEnvelop getSecurityOrderDetail(@ApiParam(name="orderId",value = "orderId",required = true)
                                            @RequestParam(value = "orderId")String orderId){
        try {
            JSONObject result = securityMonitoringOrderService.getSecurityOrderDetail(orderId);
            if (result.getIntValue("resultFlag") == 0) {
                return ObjEnvelop.getError(result.getString("resultMsg"));
            }
            return ObjEnvelop.getSuccess("创建成功",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败");
        }
    }
    @PostMapping("acceptOrder")
    @ApiOperation(value = "接单")
    @ObserverRequired
@ -78,7 +95,7 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
            if (result.getIntValue("resultFlag") == 0) {
                return ObjEnvelop.getError(result.getString("resultMsg"));
            }
            return ObjEnvelop.getSuccess("操作成功",200);
            return ObjEnvelop.getSuccess("接单成功",result.getJSONObject("resultMsg"));
        } catch (Exception e) {
            e.printStackTrace();
            return ObjEnvelop.getError( "操作失败!" + e.getMessage());
@ -89,14 +106,15 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "取消工单")
    public Envelop cancelOrder(
            @ApiParam(name = "orderId", value = "工单id") @RequestParam(value = "orderId", required = true) String orderId,
            @ApiParam(name = "reason", value = "取消理由") @RequestParam(value = "reason", required = true) String reason) {
            @ApiParam(name = "reason", value = "取消理由") @RequestParam(value = "reason", required = true) String reason,
            @ApiParam(name = "doctor", value = "医生id") @RequestParam(value = "doctor", required = true) String doctor) {
        JSONObject result = new JSONObject();
        try{
            result = securityMonitoringOrderService.cancelOrder(orderId, 2, reason,null,null);
            result = securityMonitoringOrderService.cancelOrder(orderId, 2, reason,doctor);
            if (result.getIntValue("resultFlag") == 0) {
                return ObjEnvelop.getError(result.getString("resultMsg"));
            }
            return ObjEnvelop.getSuccess("创建成功");
            return ObjEnvelop.getSuccess("工单已取消",result.getJSONObject("resultMsg"));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("工单取消失败"+e.getMessage());
@ -135,12 +153,16 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
    @PostMapping("updateDoorConclusion")
    @ApiOperation("编辑保存服务工单小结")
    public ObjEnvelop updateDoorConclusion(
            @ApiParam(value = "服务小结json",name = "model")
            @RequestParam String model,
            @ApiParam(value = "处置状态",name = "manageStatus",required = true)
            @RequestParam Integer manageStatus,
            @ApiParam(value = "工单id", name = "orderId")
            @RequestParam(value = "orderId", required = true) String orderId,
            @ApiParam(value = "服务小结", name = "conclusion")
            @RequestParam(value = "conclusion", required = true) String conclusion,
            @ApiParam(value = "补录状态", name = "examPapeStatus")
            @RequestParam(value = "examPapeStatus", required = false) Integer examPapeStatus) {
        try {
            SecurityMonitoringConclusionDO doorConclusion = securityMonitoringOrderService.updateDoorConclusion(model, examPapeStatus);
            SecurityMonitoringConclusionDO doorConclusion = securityMonitoringOrderService.updateDoorConclusion(manageStatus, orderId,conclusion,examPapeStatus);
            return ObjEnvelop.getSuccess( "保存成功", doorConclusion);
        } catch (Exception e) {
            e.printStackTrace();

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

@ -1,7 +1,9 @@
package com.yihu.jw.care.service.security;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.security.*;
@ -29,10 +31,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.*;
/**
 * Created by Bing on 2021/4/6.
@ -106,11 +105,20 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            return result;
        }
        BasePatientDO patientDO = basePatientDao.findById(orderDO.getPatient());
        if (patientDO==null){
            result.put("resultFlag", 0);
            String failMsg = "当前服务对象未建档";
            result.put("resultMsg", failMsg);
            logger.error(failMsg);
            return result;
        }
        //签约防走失服务包
        List<ServicePackageRecordDO> signRecords = servicePackageService.servicePackageByPatient(orderDO.getPatient(),"3");
        if (signRecords.size()<0) {
        if (signRecords.size()==0) {
            result.put("resultFlag", 0);
            String failMsg = "当前服务对象未完成签约,请完成签约后再预约服务!";
            String failMsg = "当前服务对象未签约防走失服务包,请完成签约后再发起工单!";
            result.put("resultMsg", failMsg);
            logger.error(failMsg);
            return result;
@ -132,31 +140,59 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            logger.error(failMsg);
            return result;
        }
        orderDO.setHospital(jsonObjectParam.getJSONObject("hospital").get("code").toString());
        orderDO.setCreateTime(new Date());
        //判断创建预警服务类型,发起类型(1本人发起 2家人待预约 3医生代预约)
        orderDO.setType(3);//发起类型
        orderDO.setServiceStatus("2");
        this.save(orderDO);
        result.put("resultFlag", 1);
        result.put("resultMsg",orderDO);
        //创建咨询
        org.json.JSONObject successOrNot = null;
        try {
//            successOrNot = consultTeamService.addDoorServiceConsult(orderDO.getId());
        return result;
    }
            successOrNot = null;//TODO 接单时创建两个人聊天
        } catch (Exception e) {
            String failMsg = "创建咨询时异常: " + e.getMessage();
    public JSONObject getSecurityOrderDetail(String orderID){
        JSONObject result = new JSONObject();
        SecurityMonitoringOrderDO orderDO = securityMonitoringOrderDao.findOne(orderID);
        if (orderDO==null){
            String failMsg = "工单不存在!";
            result.put("resultFlag", 0);
            result.put("resultMsg", failMsg);
            logger.error(failMsg);
            return result;
        }
        if (Integer.parseInt(successOrNot.get("resultFlag").toString()) == 0) {
            return JSONObject.parseObject(successOrNot.toString());
        Integer conclusionStatus = Integer.valueOf(orderDO.getConclusionStatus()==null?"0":(orderDO.getConclusionStatus()+""));
        String conclusionStatusName = "";
        switch (conclusionStatus){
            case 1:conclusionStatusName="待补录";break;
            case 2:conclusionStatusName="已登记";break;
        }
        if (conclusionStatus==2){
            SecurityMonitoringConclusionDO conclusionDO = securityMonitoringConclusionDao.findByOrderId(orderDO.getId());
            if (conclusionDO!=null){
                orderDO.setMonitoringConclusion(conclusionDO);
            }
        }
        JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(orderDO, SerializerFeature.WriteMapNullValue));
        jsonObject.put("conclusionStatusName",conclusionStatusName);
        Integer statustemp = Integer.valueOf(orderDO.getStatus()+"");
        String statusName = "";
        switch (statustemp){
            case -1:statusName="已取消";break;
            case 1:statusName="待处置";break;
            case 2:statusName="前往居民定位";break;
            case 3:statusName="已签到";break;
            case 4:statusName="已登记小结";break;
            case 5:statusName="待补录";break;
            case 6:statusName="待评价";break;
            case 7:statusName="已完成";break;
        }
        jsonObject.put("statusName",statusName);
        result.put("resultFlag", 1);
        result.put("resultMsg",jsonObject);
        return result;
    }
    public JSONArray getSecurityOrderList(String doctor, String patient, String status, Integer page, Integer pageSize){
@ -172,7 +208,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        if (StringUtils.isNotBlank(status)){
            sql+=" and ord.status='"+Integer.parseInt(status)+"' ";
        }
        if (StringUtils.isBlank(status)&&status.equals("1")){//状态为空或待处置时 查询该医生签约团队居民的预警
        if (StringUtils.isBlank(status)||status.equals("1")){//状态为空或待处置时 查询该医生签约团队居民的预警
        }
        sql+=" order by ord.create_time desc limit " + (page*pageSize) + "," + pageSize;
@ -195,7 +231,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            tmp.put("doctorName",one.get("doctor_ame"));
            tmp.put("patientPhone",one.get("patient_phone"));
            tmp.put("conclusionStatus",one.get("conclusion_status"));
            Integer conclusionStatus = Integer.valueOf(one.get("conclusion_status")+"");
            Integer conclusionStatus = Integer.valueOf(one.get("conclusion_status")==null?"0":(one.get("conclusion_status")+""));
            String conclusionStatusName = "";
            switch (conclusionStatus){
                case 1:conclusionStatusName="待补录";break;
@ -419,13 +455,10 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
    /**
     * 取消工单
     * @param orderId
     * @param type
     * @param reason
     * @param dispatcher
     * @param dispatcherName
     * @return
     */
    public JSONObject cancelOrder(String orderId,int type,String reason,String dispatcher,String dispatcherName){
    public JSONObject cancelOrder(String orderId,int type,String reason,String doctor){
        JSONObject result = new JSONObject();
        SecurityMonitoringOrderDO orderDO = securityMonitoringOrderDao.findOne(orderId);
        if(null == orderDO){
@ -436,6 +469,14 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            return result;
        }
        //接单前可取消工单
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
        if (doctorDO==null){
            String failMsg = "【取消工单】操作医生不存在," + orderId;
            result.put("resultFlag", 0);
            result.put("resultMsg", failMsg);
            logger.error(failMsg);
            return result;
        }
        if(orderDO.getStatus() > SecurityMonitoringOrderDO.Status.waitForSend.getType()){
            String failMsg = "只有医生接单前的工单才可取消:," + orderId;
            result.put("resultFlag", 0);
@ -443,6 +484,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            logger.error(failMsg);
            return result;
        }
        orderDO.setDoctor(doctor);
        orderDO.setDoctorName(doctorDO.getName());
        orderDO.setCancelType(type);
        orderDO.setCancelTime(new Date());
        orderDO.setCancelReason(reason);
@ -494,7 +537,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
//        pushMsgTask.putWxMsg(tokenUtils.getAccessToken(), 30, patient.getOpenid(), patient.getName(), json);
        result.put("resultFlag", 1);
        result.put("resultMsg", "工单服务已取消!");
        result.put("resultMsg", orderDO);
        return result;
    }
@ -580,15 +623,17 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
    /**
     * 编辑保存服务工单小结
     * @param model
     * @return
     * @throws Exception
     */
    public SecurityMonitoringConclusionDO updateDoorConclusion(String model, Integer examPapeStatus) throws Exception {
    public SecurityMonitoringConclusionDO updateDoorConclusion(Integer manageStatus,String orderId,String conclusion,Integer examPapeStatus) throws Exception {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
        SecurityMonitoringConclusionDO doorConclusion = objectMapper.readValue(model, SecurityMonitoringConclusionDO.class);
        SecurityMonitoringOrderDO one = securityMonitoringOrderDao.findOne(doorConclusion.getOrderId());
        SecurityMonitoringConclusionDO doorConclusion = new SecurityMonitoringConclusionDO();
        SecurityMonitoringOrderDO one = securityMonitoringOrderDao.findOne(orderId);
        if (one==null){
        }
        BaseDoctorDO doctorVO = baseDoctorDao.findById(one.getDoctor());
        if (doorConclusion != null && org.apache.commons.lang.StringUtils.isNotEmpty(doorConclusion.getId())) {
            doorConclusion.setUpdateTime(new Date());