|
@ -8,6 +8,7 @@ import com.yihu.jw.care.service.common.OrderNoService;
|
|
|
import com.yihu.jw.care.service.doctor.DoctorServicePermissionsService;
|
|
|
import com.yihu.jw.care.service.message.BaseServiceNewsService;
|
|
|
import com.yihu.jw.care.service.pay.PayService;
|
|
|
import com.yihu.jw.care.service.role.RoleService;
|
|
|
import com.yihu.jw.care.util.MessageUtil;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
|
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
|
|
@ -94,6 +95,8 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
private BaseAdminServiceDynamicDao baseAdminServiceDynamicDao;
|
|
|
@Autowired
|
|
|
private DoctorServicePermissionsService doctorServicePermissionsService;
|
|
|
@Autowired
|
|
|
private RoleService roleService;
|
|
|
|
|
|
//是否开启支付 false 不需要支付
|
|
|
public static final boolean isNeedPay = false;
|
|
@ -234,6 +237,36 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 管理员端生活照料获取顶部状态栏订单各分类总条数
|
|
|
* @param area
|
|
|
* @param level 1省2市3区县4机构5团队6医生
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String, Integer> adminGetNumGroupByStatus(String area,Integer level) {
|
|
|
String olderFilter = roleService.getOlderRoleSQL(area,level+"");
|
|
|
|
|
|
String sql = "SELECT a.status, COUNT(DISTINCT a.id) as num FROM base_life_care_order a " +
|
|
|
" WHERE 1=1 and a.pay_status>0 and a.status<>0 " ;
|
|
|
|
|
|
sql += olderFilter.replace("{patient}","a.patient")+ " group BY a.status";
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
Map<String, Integer> map = new HashMap<>();
|
|
|
//状态 待服务 1、已完成 2 、已取消 -1 已签到 3
|
|
|
map.put("1",0);
|
|
|
map.put("2",0);
|
|
|
map.put("3",0);
|
|
|
map.put("-1",0);
|
|
|
int total = 0;
|
|
|
for (Map<String, Object> one:list){
|
|
|
map.put(String.valueOf(one.get("status")), Integer.valueOf(String.valueOf(one.get("num"))));
|
|
|
total+=Integer.valueOf(String.valueOf(one.get("num")));
|
|
|
}
|
|
|
|
|
|
map.put("total", total);
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 医生/助老员-查询-工单列表
|
|
@ -343,6 +376,79 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 管理员-查询-工单列表
|
|
|
* @param area
|
|
|
* @param level 1省2市3区县4机构5团队6医生
|
|
|
*/
|
|
|
public PageEnvelop<List<Map<String,Object>>> adminQueryBriefList(String area,Integer level,String name,String phone,Integer status,int page, int size) {
|
|
|
List<Map<String,Object>> sqlResultlist = new ArrayList<>();
|
|
|
String olderFilter = roleService.getOlderRoleSQL(area,level+"");
|
|
|
|
|
|
name = null == name ? "" : name;
|
|
|
phone = null == phone ? "" : phone;
|
|
|
status = null == status ? -100 : status;
|
|
|
int start = 0 == page ? page++ : (page - 1) * size;
|
|
|
int end = 0 == size ? 15 : size;
|
|
|
StringBuffer buffer = new StringBuffer();
|
|
|
if (StringUtils.isNoneBlank(name)){
|
|
|
buffer.append(" AND (o.`patient_name` like '%"+name+"%' or p.idcard like '%"+name+"%')");
|
|
|
}else if (StringUtils.isNoneBlank(phone)){
|
|
|
buffer.append(" AND o.`proxy_patient_phone` like '%"+phone+"%'");
|
|
|
}
|
|
|
|
|
|
String sql = "SELECT " +
|
|
|
" p.name AS patientName, " +
|
|
|
" p.photo AS photo, " +
|
|
|
" p.idcard," +
|
|
|
" case p.sex " +
|
|
|
" when 1 then '男' " +
|
|
|
" when 2 then '女' " +
|
|
|
" end AS sex, " +
|
|
|
" TIMESTAMPDIFF(year,p.birthday,NOW()) AS age," +
|
|
|
" o.id as orderId, " +
|
|
|
" o.patient_phone as phone, " +
|
|
|
" o.proxy_patient as proxyPatient, " +
|
|
|
" o.patient as patient, " +
|
|
|
" o.number as number, " +
|
|
|
" o.patient_expected_serve_time as serveTime, o.doctor, o.doctor_name as doctorName, " +
|
|
|
" o.serve_address as address, " +
|
|
|
" o.type as type, " +
|
|
|
" o.serve_lon as lon, " +
|
|
|
" o.serve_lat as lat, " +
|
|
|
" o.`status` as status " +
|
|
|
" FROM " +
|
|
|
" ( base_life_care_order o " +
|
|
|
" LEFT JOIN base_patient p ON o.patient = p.id ) "+
|
|
|
" WHERE 1=1 " +olderFilter.replace("{patient}","o.patient")+
|
|
|
" " +buffer+
|
|
|
" AND ( o.`status` = {status} OR -100 = {status} ) and o.pay_status>0 and o.status<>0 " +
|
|
|
" ORDER BY o.create_time desc " +
|
|
|
" LIMIT {start},{end};";
|
|
|
|
|
|
String finalSql = sql.replace("{status}", String.valueOf(status))
|
|
|
.replace("{start}", String.valueOf(start))
|
|
|
.replace("{end}", String.valueOf(end));
|
|
|
|
|
|
String countSql = "SELECT " +
|
|
|
" count(o.id) " +
|
|
|
" FROM " +
|
|
|
" base_life_care_order o " +
|
|
|
" LEFT JOIN base_patient p ON o.patient = p.id " +
|
|
|
" WHERE 1=1 " +olderFilter.replace("{patient}","o.patient")+
|
|
|
" " +buffer+
|
|
|
" AND (o.`status` = {status} or -100 = {status}) and o.pay_status>0 and o.status<>0 ";
|
|
|
|
|
|
String finqlCountSql = countSql.replace("{status}", String.valueOf(status));
|
|
|
sqlResultlist = jdbcTemplate.queryForList(finalSql);
|
|
|
for (Map<String,Object> orderDO:sqlResultlist){
|
|
|
orderDO.put("feeDetails",getFeeDetails(orderDO.get("orderId").toString()));
|
|
|
}
|
|
|
Long count;
|
|
|
count = jdbcTemplate.queryForObject(finqlCountSql, Long.class);
|
|
|
return PageEnvelop.getSuccessListWithPage("success",sqlResultlist,page,size,count);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查找服务项字典
|
|
|
* v1.7.1 机构的生活照料服务项目必须配置才有返回
|