|
@ -1,6 +1,10 @@
|
|
|
package com.yihu.wlyy.service.synergy;
|
|
|
|
|
|
import com.yihu.wlyy.util.DateUtil;
|
|
|
import com.yihu.wlyy.entity.synergy.ManageSynergyWorkorderDO;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import com.yihu.wlyy.entity.synergy.ManageSynergyWorkorderDO;
|
|
|
import com.yihu.wlyy.repository.synergy.ManageSynergyWorkOrderDao;
|
|
|
import com.yihu.wlyy.repository.synergy.ManageSynergyWorkorderExecutorDao;
|
|
@ -13,6 +17,13 @@ import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* Created by 刘文彬 on 2018/9/27.
|
|
|
*/
|
|
@ -20,6 +31,9 @@ import java.util.Map;
|
|
|
@Transactional
|
|
|
public class SynergyManageService {
|
|
|
|
|
|
@Autowired
|
|
|
JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
@Autowired
|
|
|
private ManageSynergyWorkOrderDao workOrderDao;
|
|
|
@Autowired
|
|
@ -41,7 +55,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 = "";
|
|
@ -68,13 +84,89 @@ 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 ;
|
|
|
}
|
|
|
//获取系统服务详情
|
|
|
public Map<String, Object> getWorkOrderInfo(String workorderCode, Integer role) {
|
|
|
Map<String, Object> map = new HashMap<>();
|