|
@ -154,7 +154,7 @@ public class SynergyManageService extends BaseJpaService {
|
|
//关键字查询
|
|
//关键字查询
|
|
servicerTable +=" left join wlyy.manage_synergy_workorder_servicer s on s.workorder_code=w.code ";
|
|
servicerTable +=" left join wlyy.manage_synergy_workorder_servicer s on s.workorder_code=w.code ";
|
|
if(StringUtils.isNotEmpty(keywords)){
|
|
if(StringUtils.isNotEmpty(keywords)){
|
|
whereSql += " and w.servicer_count<=10 ";
|
|
|
|
|
|
// whereSql += " and w.servicer_count<=10 ";
|
|
whereSql += " and (w.create_user_name like '%"+keywords+"%' or s.service_patient_name like '%"+keywords+"%' " +
|
|
whereSql += " and (w.create_user_name like '%"+keywords+"%' or s.service_patient_name like '%"+keywords+"%' " +
|
|
" or s.ssc like '%"+keywords+"%' or s.idcard like '%"+keywords+"%' ) ";
|
|
" or s.ssc like '%"+keywords+"%' or s.idcard like '%"+keywords+"%' ) ";
|
|
}
|
|
}
|
|
@ -250,7 +250,8 @@ public class SynergyManageService extends BaseJpaService {
|
|
map.put("patientCode",ls.size()>0?ls.get(0):null);//1对1服务工单,服务对象code
|
|
map.put("patientCode",ls.size()>0?ls.get(0):null);//1对1服务工单,服务对象code
|
|
}
|
|
}
|
|
map.put("typeName",workorderTypeName);//服务类型名称
|
|
map.put("typeName",workorderTypeName);//服务类型名称
|
|
map.put("serviceTime", DateUtil.dateToStr((Date)one.get("service_time"),"yyyy-MM-dd HH:mm"));//服务时间
|
|
|
|
|
|
map.put("serviceTime", one.get("service_time")!=null?DateUtil.dateToStr((Date)one.get("service_time"),"yyyy-MM-dd HH:mm"):"");//服务时间
|
|
|
|
map.put("createTime",one.get("create_time")!=null?DateUtil.dateToStr((Date)one.get("create_time"),"yyyy-MM-dd HH:mm"):"");
|
|
map.put("priority",one.get("priority"));//工单优先级
|
|
map.put("priority",one.get("priority"));//工单优先级
|
|
map.put("priorityName",((Integer)one.get("priority"))==1?"加急":"普通");
|
|
map.put("priorityName",((Integer)one.get("priority"))==1?"加急":"普通");
|
|
if(one.get("service_time")!=null){//咨询、随访、预约的服务时间是null
|
|
if(one.get("service_time")!=null){//咨询、随访、预约的服务时间是null
|
|
@ -479,18 +480,29 @@ public class SynergyManageService extends BaseJpaService {
|
|
whereSql+=" and s.status=1 ";
|
|
whereSql+=" and s.status=1 ";
|
|
}
|
|
}
|
|
String sql =" select DISTINCT w.*,s.mobile,s.service_patient_name,s.service_patient_code,s.code as servicerCode,s.town_name,s.hospital_name, " +
|
|
String sql =" select DISTINCT w.*,s.mobile,s.service_patient_name,s.service_patient_code,s.code as servicerCode,s.town_name,s.hospital_name, " +
|
|
" w.create_user_name " +
|
|
|
|
" from manage_synergy_workorder_servicer s " +
|
|
|
|
|
|
" w.create_user_name " ;
|
|
|
|
String sqlCenter = " from manage_synergy_workorder_servicer s " +
|
|
" LEFT JOIN manage_synergy_workorder w on s.workorder_code=w.code " +
|
|
" LEFT JOIN manage_synergy_workorder w on s.workorder_code=w.code " +
|
|
" LEFT JOIN manage_synergy_workorder_executor e on e.workorder_code=w.code " + leftSql+
|
|
" LEFT JOIN manage_synergy_workorder_executor e on e.workorder_code=w.code " + leftSql+
|
|
" LEFT JOIN manage_synergy_workorder_customer_log l on l.workorder_service_code=s.service_patient_code " +
|
|
" LEFT JOIN manage_synergy_workorder_customer_log l on l.workorder_service_code=s.service_patient_code " +
|
|
" where s.workorder_code='"+workorderCode+"' " +
|
|
" where s.workorder_code='"+workorderCode+"' " +
|
|
" and w.del=1 and w.status=2 and e.del=1 "+
|
|
" and w.del=1 and w.status=2 and e.del=1 "+
|
|
whereSql+" order by "+orderBySql;
|
|
|
|
List<Map<String,Object>> resultWorkorderList = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
whereSql;
|
|
|
|
String orderSql =" order by "+orderBySql;
|
|
|
|
String sql1=" select count(1) as num ";
|
|
|
|
String whereSql1=whereSql+" and l.id is not null ";
|
|
|
|
List<Map<String,Object>> resultWorkorderListCount = jdbcTemplate.queryForList(sql1+sqlCenter+whereSql1);
|
|
|
|
int count = resultWorkorderListCount.get(0).get("num")!=null?Integer.valueOf(resultWorkorderListCount.get(0).get("num")+""):0;
|
|
|
|
List<Map<String,Object>> resultWorkorderList = jdbcTemplate.queryForList(sql+sqlCenter+orderSql);
|
|
Map<String,Object> resultMap = new HashMap<>();
|
|
Map<String,Object> resultMap = new HashMap<>();
|
|
if(resultWorkorderList.size()>0){
|
|
if(resultWorkorderList.size()>0){
|
|
Map<String,Object> workorderMap = resultWorkorderList.get(0);
|
|
|
|
|
|
Integer ra = 0;
|
|
|
|
if(count>0){
|
|
|
|
ra = getRandom(0,count-1);
|
|
|
|
}else{
|
|
|
|
ra = getRandom(0,resultWorkorderList.size()-1);
|
|
|
|
}
|
|
|
|
Map<String,Object> workorderMap = resultWorkorderList.get(ra);
|
|
//居民信息
|
|
//居民信息
|
|
resultMap.put("mobile",workorderMap.get("mobile"));//电话号码
|
|
resultMap.put("mobile",workorderMap.get("mobile"));//电话号码
|
|
resultMap.put("patientName",workorderMap.get("service_patient_name"));//居民姓名
|
|
resultMap.put("patientName",workorderMap.get("service_patient_name"));//居民姓名
|
|
@ -530,12 +542,17 @@ public class SynergyManageService extends BaseJpaService {
|
|
healthType+=","+one.getLabelName();
|
|
healthType+=","+one.getLabelName();
|
|
}
|
|
}
|
|
resultMap.put("healthType",StringUtils.isNotEmpty(healthType)?healthType.substring(1):"");//健康情况
|
|
resultMap.put("healthType",StringUtils.isNotEmpty(healthType)?healthType.substring(1):"");//健康情况
|
|
List<SignPatientLabelInfo> labelServeType = signPatientLabelInfoDao.findByPatientAndLabelTypeAndStatus(workorderMap.get("service_patient_code")+"", "2", 1);
|
|
|
|
String serveType="";
|
|
String serveType="";
|
|
for(SignPatientLabelInfo one:labelServeType){
|
|
|
|
serveType+=","+one.getLabelName();
|
|
|
|
|
|
// List<SignPatientLabelInfo> labelServeType = signPatientLabelInfoDao.findByPatientAndLabelTypeAndStatus(workorderMap.get("service_patient_code")+"", "2", 1);
|
|
|
|
// for(SignPatientLabelInfo one:labelServeType){
|
|
|
|
// serveType+=","+one.getLabelName();
|
|
|
|
// }
|
|
|
|
List<Map<String,Object>> signTypes = jdbcTemplate.queryForList("SELECT s.server_type_name,s.server_type FROM wlyy_sign_family_server s right join wlyy_sign_family f on s.sign_code=f.code WHERE f.patient='"+workorderMap.get("service_patient_code")+"' and f.status=1 and f.expenses_status='1' ");
|
|
|
|
for(Map<String,Object> one:signTypes){
|
|
|
|
serveType+=","+(one.get("server_type_name")!=null?one.get("server_type_name"):"");
|
|
}
|
|
}
|
|
resultMap.put("serveType",StringUtils.isNotEmpty(serveType)?serveType.substring(1):"");//服务类型
|
|
|
|
|
|
resultMap.put("serveType",StringUtils.isNotEmpty(serveType)?serveType.substring(1):"");
|
|
|
|
// resultMap.put("serveType",StringUtils.isNotEmpty(serveType)?serveType.substring(1):"");//服务类型
|
|
resultMap.put("workorder",workorderMap.get("code"));//工单编号
|
|
resultMap.put("workorder",workorderMap.get("code"));//工单编号
|
|
resultMap.put("patientCode",workorderMap.get("service_patient_code"));//居民code
|
|
resultMap.put("patientCode",workorderMap.get("service_patient_code"));//居民code
|
|
resultMap.put("doctorCode",workorderMap.get("create_user"));//创建人(医生)code
|
|
resultMap.put("doctorCode",workorderMap.get("create_user"));//创建人(医生)code
|
|
@ -554,11 +571,22 @@ public class SynergyManageService extends BaseJpaService {
|
|
m.put("remark",log.getRemark());//备注
|
|
m.put("remark",log.getRemark());//备注
|
|
m.put("returnVisit",log.getReturnVisit());//回访(1、有效回访,2、无效回访)
|
|
m.put("returnVisit",log.getReturnVisit());//回访(1、有效回访,2、无效回访)
|
|
resultMap.put("servicerLog",m);
|
|
resultMap.put("servicerLog",m);
|
|
|
|
resultMap.put("haveNum",1);
|
|
}
|
|
}
|
|
return resultMap;
|
|
|
|
}else{
|
|
}else{
|
|
throw new Exception("没有任务");
|
|
|
|
|
|
resultMap.put("haveNum",0);
|
|
|
|
}
|
|
|
|
return resultMap;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getRandom(int min, int max){
|
|
|
|
if(max==0){
|
|
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
Random random = new Random();
|
|
|
|
int s = random.nextInt(max) % (max - min + 1) + min;
|
|
|
|
return s;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@ -907,6 +935,7 @@ public class SynergyManageService extends BaseJpaService {
|
|
resultMap.put("workorderTypeName",workorderTypeName);
|
|
resultMap.put("workorderTypeName",workorderTypeName);
|
|
resultMap.put("workorderType",one.get("workorder_type"));
|
|
resultMap.put("workorderType",one.get("workorder_type"));
|
|
resultMap.put("priority",one.get("priority"));
|
|
resultMap.put("priority",one.get("priority"));
|
|
|
|
resultMap.put("relationCode",one.get("relation_code"));
|
|
resultMap.put("relationCodeName",one.get("relation_code_name"));
|
|
resultMap.put("relationCodeName",one.get("relation_code_name"));
|
|
resultMap.put("serviceTime",DateUtil.dateToStr((Date)one.get("service_time"),"yyyy-MM-dd HH:mm:ss"));
|
|
resultMap.put("serviceTime",DateUtil.dateToStr((Date)one.get("service_time"),"yyyy-MM-dd HH:mm:ss"));
|
|
resultMap.put("reminderTime",DateUtil.dateToStr((Date)one.get("create_time"),"yyyy-MM-dd HH:mm:ss"));
|
|
resultMap.put("reminderTime",DateUtil.dateToStr((Date)one.get("create_time"),"yyyy-MM-dd HH:mm:ss"));
|
|
@ -961,9 +990,9 @@ public class SynergyManageService extends BaseJpaService {
|
|
}
|
|
}
|
|
manageSynergyWorkorderDO1.setPriority(manageSynergyWorkorderDO.getPriority());
|
|
manageSynergyWorkorderDO1.setPriority(manageSynergyWorkorderDO.getPriority());
|
|
manageSynergyWorkorderDO1.setServiceTime(manageSynergyWorkorderDO.getServiceTime());
|
|
manageSynergyWorkorderDO1.setServiceTime(manageSynergyWorkorderDO.getServiceTime());
|
|
manageSynergyWorkorderDO1.setReturnedRemark(manageSynergyWorkorderDO.getReturnedRemark());
|
|
|
|
manageSynergyWorkorderDO.setStatus(1);
|
|
|
|
workOrderDao.save(manageSynergyWorkorderDO);
|
|
|
|
|
|
manageSynergyWorkorderDO1.setRemark(manageSynergyWorkorderDO.getRemark());
|
|
|
|
manageSynergyWorkorderDO1.setStatus(1);
|
|
|
|
workOrderDao.save(manageSynergyWorkorderDO1);
|
|
}
|
|
}
|
|
|
|
|
|
public String findByPatient(String patient){
|
|
public String findByPatient(String patient){
|
|
@ -1130,6 +1159,7 @@ public class SynergyManageService extends BaseJpaService {
|
|
ManageSynergyWorkorderDO manageSynergyWorkorderDO = workOrderDao.findByCode(workorderCode);
|
|
ManageSynergyWorkorderDO manageSynergyWorkorderDO = workOrderDao.findByCode(workorderCode);
|
|
manageSynergyWorkorderDO.setDealResultRemark(dealResultRemark);
|
|
manageSynergyWorkorderDO.setDealResultRemark(dealResultRemark);
|
|
manageSynergyWorkorderDO.setStatus(3);
|
|
manageSynergyWorkorderDO.setStatus(3);
|
|
|
|
manageSynergyWorkorderDO.setCompleteTime(new Date());
|
|
workOrderDao.save(manageSynergyWorkorderDO);
|
|
workOrderDao.save(manageSynergyWorkorderDO);
|
|
}
|
|
}
|
|
|
|
|
|
@ -1192,21 +1222,28 @@ public class SynergyManageService extends BaseJpaService {
|
|
whereSql += " and e.executor_code ='"+code+"' ";
|
|
whereSql += " and e.executor_code ='"+code+"' ";
|
|
}else if(isAcceptTask==2){//我派发
|
|
}else if(isAcceptTask==2){//我派发
|
|
whereSql +=" and w.create_user_type=2 ";//创建人为客服
|
|
whereSql +=" and w.create_user_type=2 ";//创建人为客服
|
|
whereSql += " and e.create_user ='"+code+"' ";
|
|
|
|
|
|
whereSql += " and w.create_user ='"+code+"' ";
|
|
}
|
|
}
|
|
}else if(userType==3){//医生
|
|
|
|
|
|
}else if(userType==1){//医生
|
|
if(isAcceptTask==1){//我接收
|
|
if(isAcceptTask==1){//我接收
|
|
whereSql +=" and w.create_user_type=2 ";//创建人为客服
|
|
whereSql +=" and w.create_user_type=2 ";//创建人为客服
|
|
whereSql += " and e.executor_code ='"+code+"' ";
|
|
whereSql += " and e.executor_code ='"+code+"' ";
|
|
}else if(isAcceptTask==2){//我派发
|
|
}else if(isAcceptTask==2){//我派发
|
|
whereSql +=" and w.create_user_type=2 ";//创建人为医生
|
|
|
|
whereSql += " and e.create_user ='"+code+"' ";
|
|
|
|
|
|
whereSql += " and w.create_user_type=1 ";//创建人为医生
|
|
|
|
whereSql += " and w.create_user ='"+code+"' ";
|
|
|
|
whereSql += " and w.create_user_role=1 ";
|
|
|
|
}
|
|
|
|
}else if(userType==4){//医生管理员
|
|
|
|
if(isAcceptTask==2){
|
|
|
|
whereSql += " and w.create_user_type=1 ";//创建人为医生
|
|
|
|
whereSql += " and w.create_user ='"+code+"' ";
|
|
|
|
whereSql += " and w.create_user_role=2 ";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
//关键字查询
|
|
//关键字查询
|
|
|
|
servicerTable +=" left join wlyy.manage_synergy_workorder_servicer s on s.workorder_code=w.code ";
|
|
if(StringUtils.isNotEmpty(keywords)){
|
|
if(StringUtils.isNotEmpty(keywords)){
|
|
servicerTable +=" left join wlyy.manage_synergy_workorder_servicer s on s.workorder_code=w.code ";
|
|
|
|
whereSql += " and w.servicer_count<=10 ";
|
|
whereSql += " and w.servicer_count<=10 ";
|
|
whereSql += " and (w.create_user_name like '%"+keywords+"%' or s.service_patient_name like '%"+keywords+"%' " +
|
|
whereSql += " and (w.create_user_name like '%"+keywords+"%' or s.service_patient_name like '%"+keywords+"%' " +
|
|
" or s.ssc like '%"+keywords+"%' or s.idcard like '%"+keywords+"%' ) ";
|
|
" or s.ssc like '%"+keywords+"%' or s.idcard like '%"+keywords+"%' ) ";
|
|
@ -1229,7 +1266,11 @@ public class SynergyManageService extends BaseJpaService {
|
|
}
|
|
}
|
|
//是否超时
|
|
//是否超时
|
|
if(timeout!=null){
|
|
if(timeout!=null){
|
|
whereSql +=" and w.service_time >'"+DateUtil.dateToStrLong(new Date())+"' ";
|
|
|
|
|
|
if(timeout==1){
|
|
|
|
whereSql +=" and w.service_time >'"+DateUtil.dateToStrLong(new Date())+"' ";
|
|
|
|
}else if(timeout==2){
|
|
|
|
whereSql +=" and w.service_time <='"+DateUtil.dateToStrLong(new Date())+"' ";
|
|
|
|
}
|
|
}
|
|
}
|
|
//服务编码
|
|
//服务编码
|
|
if(StringUtils.isNotEmpty(workorderCode)){
|
|
if(StringUtils.isNotEmpty(workorderCode)){
|
|
@ -1248,21 +1289,20 @@ public class SynergyManageService extends BaseJpaService {
|
|
}
|
|
}
|
|
//服务对象
|
|
//服务对象
|
|
if(StringUtils.isNotEmpty(patientName)){
|
|
if(StringUtils.isNotEmpty(patientName)){
|
|
whereSql+=" s.service_patient_name like '%"+keywords+"%' ";
|
|
|
|
|
|
whereSql+=" and s.service_patient_name like '%"+keywords+"%' ";
|
|
}
|
|
}
|
|
//社保卡号
|
|
//社保卡号
|
|
if(StringUtils.isNotEmpty(ssc)){
|
|
if(StringUtils.isNotEmpty(ssc)){
|
|
whereSql+=" s.ssc like '%"+keywords+"%' ";
|
|
|
|
|
|
whereSql+=" and s.ssc like '%"+keywords+"%' ";
|
|
}
|
|
}
|
|
//身份证号
|
|
//身份证号
|
|
if(StringUtils.isNotEmpty(idcard)){
|
|
if(StringUtils.isNotEmpty(idcard)){
|
|
whereSql+=" s.idcard like '%"+keywords+"%' ";
|
|
|
|
|
|
whereSql+=" and s.idcard like '%"+keywords+"%' ";
|
|
}
|
|
}
|
|
//需求方
|
|
//需求方
|
|
if(StringUtils.isNotEmpty(userName)){
|
|
if(StringUtils.isNotEmpty(userName)){
|
|
whereSql+=" and w.create_user_name like '%"+userName+"%' ";
|
|
whereSql+=" and w.create_user_name like '%"+userName+"%' ";
|
|
}
|
|
}
|
|
//所属机构
|
|
|
|
if(StringUtils.isNotEmpty(hospitalName)){
|
|
if(StringUtils.isNotEmpty(hospitalName)){
|
|
whereSql+=" and w.hospital_name like '%"+hospitalName+"%' ";
|
|
whereSql+=" and w.hospital_name like '%"+hospitalName+"%' ";
|
|
}
|
|
}
|