ソースを参照

客服系统代码提交

liuwenbin 7 年 前
コミット
6f11cadd72

+ 90 - 2
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/synergy/SynergyManageService.java

@ -1,9 +1,15 @@
package com.yihu.wlyy.service.synergy;
import com.yihu.wlyy.util.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * Created by 刘文彬 on 2018/9/27.
 */
@ -11,6 +17,9 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional
public class SynergyManageService {
    @Autowired
    JdbcTemplate jdbcTemplate;
    /**
     * 我接收到的任务
     * @param code
@ -22,7 +31,9 @@ public class SynergyManageService {
     * @throws Exception
     */
    public void acceptTaskList(String code,String keywords,Integer workorderType,
                               Integer isMyTask,Integer status,Integer priority) throws Exception{
                               Integer isMyTask,Integer status,Integer priority,Integer timeout,String workorderCode,
                               String principal,String serviceStartTime,String serviceEndTime,
                               String patientName,String ssc,String idcard) throws Exception{
        String servicerTable = "";
        String whereSql = "";
@ -49,10 +60,87 @@ public class SynergyManageService {
        if(priority!=null){
            whereSql+= " and w.priority="+priority+" ";
        }
        //是否超时
        if(timeout!=null){
        }
        //服务编码
        if(StringUtils.isNotEmpty(workorderCode)){
            whereSql+=" and w.code like '%"+workorderCode+"%' ";
        }
        //负责人
        if(StringUtils.isNotEmpty(principal)){
            whereSql+=" and e.code like '%"+principal+"%' and e.executor_type=1 ";
        }
        //服务时间
        if(StringUtils.isNotEmpty(serviceStartTime)){
            whereSql+=" and w.service_time>='"+serviceStartTime+"' ";
        }
        if(StringUtils.isNotEmpty(serviceEndTime)){
            whereSql+=" and w.service_time<='"+serviceEndTime+"' ";
        }
        //服务对象
        if(StringUtils.isNotEmpty(patientName)){
            whereSql+=" s.service_patient_name like '%"+keywords+"%' ";
        }
        //社保卡号
        if(StringUtils.isNotEmpty(ssc)){
            whereSql+=" s.ssc like '%"+keywords+"%' ";
        }
        //身份证号
        if(StringUtils.isNotEmpty(idcard)){
            whereSql+=" s.idcard like '%"+keywords+"%' ";
        }
        String sql =" select DISTINCT w.* from wlyy.manage_synergy_workorder w  " +servicerTable+
                " left join wlyy.vmanage_synergy_workorder_executor e on e.workorder_code=w.code " +
                " where w.status in (2,3) and w.del=1  " +
                " and e.del=1 ";
                " and e.del=1 "+whereSql;
        List<Map<String,Object>> resultWorkorderList = jdbcTemplate.queryForList(sql);
        List<Map<String,Object>> resultList = new ArrayList<>();
        for(Map<String,Object> one:resultWorkorderList){
            Map<String,Object> map = new HashMap<>();
            map.put("workorderCode",one.get("code"));//服务编码
            Integer workorderTypeR = (Integer) one.get("type");
            String workorderTypeName = "";
            map.put("type",workorderTypeR);//服务类型
            switch (workorderTypeR){
                case 0: workorderTypeName="咨询";break;
                case 1: workorderTypeName="健康教育";break;
                case 2: workorderTypeName="预约";break;
                case 3: workorderTypeName="随访";break;
                case 4: workorderTypeName="问卷调查";break;
                case 5: workorderTypeName="疾病筛查";break;
            }
            map.put("typeName",workorderTypeName);//服务类型名称
            map.put("serviceTime", DateUtil.dateToStr((Date)one.get("service_time"),"yyyy-MM-dd HH:mm"));//服务时间
            map.put("priority",one.get("priority"));//工单优先级
            map.put("priorityName",((Integer)one.get("priority"))==1?"加急":"普通");
            String[] servicer = (one.get("servicer_key")+"").split(",");
            map.put("servicer",servicer[0]);//服务对象
            map.put("servicerCount",one.get("servicer_count"));//服务对象人数
            Integer statusR = (Integer) one.get("status");
            map.put("status",statusR);//工单状态
            String statusName="";
            switch (statusR){
                case 0:statusName="草稿";break;
                case 1:statusName="未接受";break;
                case 2:statusName="处理中";break;
                case 3:statusName="处理完成";break;
                case 4:statusName="退回";break;
            }
            map.put("statusName",statusName);
            map.put("principalMan",one.get(""));//负责人
        }
    }
    //获取服务编码
    public synchronized  String getWorkorderNo(){
        String orderNo = "" ;
        String trandNo = String.valueOf((Math.random() * 9 + 1) * 1000000);
        String sdf = new SimpleDateFormat("yyyyMMddHHMMSS").format(new Date());
        orderNo = trandNo.toString().substring(0, 4);
        orderNo = sdf + orderNo ;
        return orderNo ;
    }
}