|
@ -456,20 +456,35 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
whereSql+=" and s.hospital='"+hospitalCode+"' ";
|
|
|
}
|
|
|
String labelSql ="";
|
|
|
if(StringUtils.isNotEmpty(diseaseCode)||StringUtils.isNotEmpty(healthCode)||StringUtils.isNotEmpty(serveCode)){
|
|
|
leftSql +=" LEFT JOIN wlyy_sign_patient_label_info i on i.patient=s.service_patient_code and i.status=1 " ;
|
|
|
if(StringUtils.isNotEmpty(diseaseCode)){
|
|
|
labelSql+=" or (i.label='"+diseaseCode+"' and i.label_type='3') ";//疾病类型
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(healthCode)){
|
|
|
labelSql+=" or (i.label='"+healthCode+"' and i.label_type='2') ";//健康情况
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(serveCode)){
|
|
|
labelSql+=" or (i.label='"+serveCode+"' and i.label_type='1') ";//服务类型
|
|
|
}
|
|
|
// if(StringUtils.isNotEmpty(diseaseCode)||StringUtils.isNotEmpty(healthCode)||StringUtils.isNotEmpty(serveCode)){
|
|
|
// leftSql +=" LEFT JOIN wlyy_sign_patient_label_info i on i.patient=s.service_patient_code and i.status=1 " ;
|
|
|
// if(StringUtils.isNotEmpty(diseaseCode)){
|
|
|
// labelSql+=" or (i.label='"+diseaseCode+"' and i.label_type='3') ";//疾病类型
|
|
|
// }
|
|
|
// if(StringUtils.isNotEmpty(healthCode)){
|
|
|
// labelSql+=" or (i.label='"+healthCode+"' and i.label_type='2') ";//健康情况
|
|
|
// }
|
|
|
// if(StringUtils.isNotEmpty(serveCode)){
|
|
|
// labelSql+=" or (i.label='"+serveCode+"' and i.label_type='1') ";//服务类型
|
|
|
// }
|
|
|
// }
|
|
|
// if(StringUtils.isNotEmpty(labelSql)){
|
|
|
// whereSql+= " and ( "+labelSql.substring(3)+" )";
|
|
|
// }
|
|
|
if(StringUtils.isNotEmpty(serveCode)){
|
|
|
leftSql+=" JOIN wlyy_sign_family f on f.patient=s.service_patient_code and f.status=1 " +
|
|
|
" JOIN wlyy_sign_family_server r on r.sign_code=f.code ";
|
|
|
whereSql+=" and r.server_type='"+serveCode+"' ";
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(healthCode)||StringUtils.isNotEmpty(diseaseCode)){
|
|
|
leftSql+=" JOIN (SELECT t.patient,GROUP_CONCAT(',',t.label_type,t.label,',') label FROM wlyy_sign_patient_label_info t " +
|
|
|
"JOIN manage_synergy_workorder_servicer v on v.service_patient_code=t.patient and v.workorder_code = '"+workorderCode+"' where t. STATUS = 1 GROUP BY t.patient ) aa on aa.patient=s.service_patient_code ";
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(healthCode)){
|
|
|
whereSql+=" and aa.label LIKE '%,2"+healthCode+",%' ";
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(labelSql)){
|
|
|
whereSql+= " and ( "+labelSql.substring(3)+" )";
|
|
|
if(StringUtils.isNotEmpty(diseaseCode)){
|
|
|
whereSql+=" and aa.label LIKE '%,3"+diseaseCode+",%' ";
|
|
|
}
|
|
|
if(isFollow!=null&&isFollow==1){//跟进
|
|
|
leftSql+=" LEFT JOIN manage_synergy_workorder_servicer_log ll on ll.service_patient_code=s.code ";
|
|
@ -1139,7 +1154,7 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
|
|
|
|
|
|
@Transactional
|
|
|
public void taskSubmit(String workorderCode,String dealResultRemark,String accessoryJson) throws Exception{
|
|
|
public void taskSubmit(String userCode,String workorderCode,String dealResultRemark,String accessoryJson) throws Exception{
|
|
|
JSONArray jsonArray = new JSONArray(accessoryJson);
|
|
|
String fileName;
|
|
|
String url;
|
|
@ -1156,6 +1171,8 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
accessoryList.add(manageSynergyAccessoryDO);
|
|
|
}
|
|
|
manageSynergyAccessoryDao.save(accessoryList);
|
|
|
User user = userDao.findByCode(userCode);
|
|
|
workorderServicerDao.updateWorkorderServicer(workorderCode,userCode,user.getName(),1);
|
|
|
ManageSynergyWorkorderDO manageSynergyWorkorderDO = workOrderDao.findByCode(workorderCode);
|
|
|
manageSynergyWorkorderDO.setDealResultRemark(dealResultRemark);
|
|
|
manageSynergyWorkorderDO.setStatus(3);
|
|
@ -1204,6 +1221,7 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
String patientName,String ssc,String idcard,Integer userType,Integer isAcceptTask,String userName,String hospitalName,
|
|
|
HttpServletResponse response) throws Exception{
|
|
|
WritableWorkbook wwb = null;
|
|
|
OutputStream os = null;
|
|
|
try{
|
|
|
|
|
|
String servicerTable = " left join wlyy.manage_synergy_workorder_executor e on e.workorder_code=w.code AND e.del = 1 " ;
|
|
@ -1316,28 +1334,31 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
response.setCharacterEncoding("utf-8");
|
|
|
response.setContentType("octets/stream");
|
|
|
response.setHeader("Content-Disposition", "attachment; filename="+ new String( "synergyManageList.xls"));
|
|
|
OutputStream os = response.getOutputStream();
|
|
|
os = response.getOutputStream();
|
|
|
wwb = Workbook.createWorkbook(os);
|
|
|
WritableSheet ws = Workbook.createWorkbook(os).createSheet("sheet",1);
|
|
|
WritableSheet ws = wwb.createSheet("sheet",1);
|
|
|
List<String> header = null;
|
|
|
if(isAcceptTask==1){//我接收的任务
|
|
|
header = new ArrayList<>(Arrays.asList("服务编号","服务类型","创建时间","服务对象","工单状态","需求方","负责人","服务内容"));
|
|
|
if(isAcceptTask==1||isAcceptTask==4){//我接收的任务
|
|
|
header = new ArrayList<>(Arrays.asList("服务编号","服务类型","创建时间","服务对象","工单状态","需求方","负责人"));
|
|
|
}else if(isAcceptTask==2){//我派发的任务
|
|
|
header = new ArrayList<>(Arrays.asList("服务编号","服务类型","创建时间","服务对象","工单状态","家庭医生","所属机构","服务内容"));
|
|
|
header = new ArrayList<>(Arrays.asList("服务编号","服务类型","创建时间","服务对象","工单状态","家庭医生","所属机构"));
|
|
|
}else if(isAcceptTask==3){
|
|
|
header = new ArrayList<>(Arrays.asList("服务编号","服务类型","服务时间","服务对象","备注","需求方"));
|
|
|
}
|
|
|
int i = 0;
|
|
|
for (String h : header) {
|
|
|
Label label = new Label(0, i, h);
|
|
|
ws.addCell(label);
|
|
|
addCell(ws, 0, i, h);//表名,行,列,header
|
|
|
i++;
|
|
|
}
|
|
|
Integer workorderTypeR = null;
|
|
|
String workorderTypeName = null;
|
|
|
Date createTime = null;
|
|
|
i=0;
|
|
|
Date serviceTime =null;
|
|
|
i=1;
|
|
|
for(Map<String,Object> one:list){
|
|
|
workorderTypeR = (Integer) one.get("workorder_type");
|
|
|
workorderTypeR = (Integer) one.get("type");
|
|
|
createTime = (Date)one.get("create_time");
|
|
|
serviceTime = (Date)one.get("service_time");
|
|
|
addCell(ws, i, 0, one.get("code")+"","");
|
|
|
switch (workorderTypeR){
|
|
|
case 0: workorderTypeName="咨询";break;
|
|
@ -1348,17 +1369,22 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
case 5: workorderTypeName="疾病筛查";break;
|
|
|
}
|
|
|
addCell(ws, i, 1, workorderTypeName,"");
|
|
|
addCell(ws, i, 2, DateUtil.dateToStr(createTime,"yyyy--MM-dd HH:mm:ss"),"");
|
|
|
if(isAcceptTask==1){//我接收的任务
|
|
|
if(isAcceptTask==3){
|
|
|
addCell(ws, i, 2, DateUtil.dateToStr(serviceTime,"yyyy--MM-dd HH:mm:ss"),"");
|
|
|
}else{
|
|
|
addCell(ws, i, 2, DateUtil.dateToStr(createTime,"yyyy--MM-dd HH:mm:ss"),"");
|
|
|
}
|
|
|
if(isAcceptTask==1||isAcceptTask==3||isAcceptTask==4){//我接收的任务
|
|
|
String[] servicer = (one.get("servicer_key")+"").split(",");
|
|
|
Integer servicerCount = (Integer) one.get("servicer_count");
|
|
|
addCell(ws, i, 1, servicer[0]+"等"+servicerCount+"人","");
|
|
|
addCell(ws, i, 3, servicer[0]+"等"+servicerCount+"人","");
|
|
|
}else if(isAcceptTask==2){//我派发的任务
|
|
|
String[] servicer = (one.get("servicer_key")+"").split(",");
|
|
|
addCell(ws, i, 1, servicer[0],"");
|
|
|
addCell(ws, i, 3, servicer[0],"");
|
|
|
}
|
|
|
Integer statusR = (Integer) one.get("status");
|
|
|
// addCell(ws, i, 4, statusName,"");
|
|
|
String statusName="";
|
|
|
Integer statusR = (Integer) one.get("status");
|
|
|
switch (statusR){
|
|
|
case 0:statusName="草稿";break;
|
|
|
case 1:statusName="未接受";break;
|
|
@ -1366,23 +1392,32 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
case 3:statusName="处理完成";break;
|
|
|
case 4:statusName="退回";break;
|
|
|
}
|
|
|
addCell(ws, i, 3, statusName,"");
|
|
|
addCell(ws, i, 4, one.get("create_user_name")+"","");
|
|
|
if(isAcceptTask==1){//我接收的任务
|
|
|
if(isAcceptTask==3){
|
|
|
addCell(ws, i, 4, one.get("remark")+"","");
|
|
|
}else{
|
|
|
addCell(ws, i, 4, statusName,"");
|
|
|
}
|
|
|
addCell(ws, i, 5, one.get("create_user_name")+"","");//需求方
|
|
|
if(isAcceptTask==1||isAcceptTask==4){//我接收的任务
|
|
|
List<ManageSynergyWorkorderExecutorDO> managerList = workorderExecutorDao.findByWorkorderCode(one.get("code")+"",1);
|
|
|
String managerName = managerList.size()>0?managerList.get(0).getExecutorName():"";
|
|
|
addCell(ws, i, 5, managerName,"");//负责人
|
|
|
addCell(ws, i, 6, managerName,"");//负责人
|
|
|
}else if(isAcceptTask==2) {//我派发的任务
|
|
|
addCell(ws, i, 5, one.get("hospital_name")+"","");//所属机构
|
|
|
addCell(ws, i, 6, one.get("hospital_name")+"","");//所属机构
|
|
|
}
|
|
|
addCell(ws, i, 5, one.get("content")+"","");
|
|
|
// if(isAcceptTask!=3){
|
|
|
//
|
|
|
// addCell(ws, i, 7, one.get("content")+"","");//服务内容
|
|
|
// }
|
|
|
i++;
|
|
|
}
|
|
|
wwb.write();
|
|
|
}catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
if(os!=null)os.close();
|
|
|
throw e;
|
|
|
}finally {
|
|
|
|
|
|
if (wwb != null) wwb.close();
|
|
|
}
|
|
|
}
|
|
@ -1397,6 +1432,11 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
}
|
|
|
ws.addCell(label);
|
|
|
}
|
|
|
//添加单元格内容
|
|
|
public void addCell(WritableSheet ws, int row, int column, String data) throws WriteException {
|
|
|
Label label = new Label(column ,row, data);
|
|
|
ws.addCell(label);
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> getDealList(String idcard){
|
|
|
Patient patient = patientDao.findByIdcard(idcard);
|
|
@ -1890,7 +1930,7 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
String endTime = today+" 23:59:59";
|
|
|
/*startTime="2017-11-15 00:00:00";
|
|
|
endTime="2017-11-22 23:59:59";*/
|
|
|
String sql="SELECT" +
|
|
|
/*String sql="SELECT" +
|
|
|
" u.`code`,"+
|
|
|
" u.`name`," +
|
|
|
" u.`online` as onlineType," +
|
|
@ -1906,6 +1946,31 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
" AND r.answer_status=1"+
|
|
|
" GROUP BY" +
|
|
|
" u.`code`," +
|
|
|
" r.type";*/
|
|
|
String sql="SELECT" +
|
|
|
" u.`code`," +
|
|
|
" u.`name`," +
|
|
|
" u.`online` AS onlineType," +
|
|
|
" r.type," +
|
|
|
" IF (r.type IS NOT NULL, COUNT(*), 0) AS num" +
|
|
|
" FROM" +
|
|
|
" wlyy_user u" +
|
|
|
" LEFT JOIN (" +
|
|
|
" SELECT" +
|
|
|
" type," +
|
|
|
" user_code," +
|
|
|
" user_name" +
|
|
|
" FROM" +
|
|
|
" manage_call_record" +
|
|
|
" WHERE" +
|
|
|
" create_time >= '"+startTime+"'" +
|
|
|
" AND create_time <= '"+endTime+"'" +
|
|
|
" AND answer_status = 1" +
|
|
|
" ) r ON u.`code` = r.user_code" +
|
|
|
" WHERE" +
|
|
|
" u.type = 4" +
|
|
|
" GROUP BY" +
|
|
|
" u.`code`," +
|
|
|
" r.type";
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
List<Map<String,Object>> toList = new ArrayList<>();
|
|
@ -1927,6 +1992,10 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
resultMap.put("jieruCount",0);
|
|
|
resultMap.put("waihuCount",map.get("num"));
|
|
|
}
|
|
|
if ("null".equals(type) || StringUtils.isEmpty(type)){
|
|
|
resultMap.put("jieruCount",0);
|
|
|
resultMap.put("waihuCount",0);
|
|
|
}
|
|
|
toList.add(resultMap);
|
|
|
}else {
|
|
|
int count =0;
|
|
@ -1953,6 +2022,10 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
resultMap.put("jieruCount",0);
|
|
|
resultMap.put("waihuCount",map.get("num"));
|
|
|
}
|
|
|
if ("null".equals(type) || StringUtils.isEmpty(type)){
|
|
|
resultMap.put("jieruCount",0);
|
|
|
resultMap.put("waihuCount",0);
|
|
|
}
|
|
|
toList.add(resultMap);
|
|
|
}
|
|
|
}
|
|
@ -2017,4 +2090,85 @@ public class SynergyManageService extends BaseJpaService {
|
|
|
|
|
|
return workOrderDao.findByCode(workorderCode);
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getTaskByIdcard(String workorderCode,String idcard){
|
|
|
String sql=" select 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 "+
|
|
|
" LEFT JOIN manage_synergy_workorder w on s.workorder_code=w.code " +
|
|
|
" where w.code='"+workorderCode+"' and s.idcard='"+idcard+"'" ;
|
|
|
List<Map<String,Object>> workorderList = jdbcTemplate.queryForList(sql);
|
|
|
Map<String,Object> resultMap = new HashMap<>();
|
|
|
Map<String,Object> workorderMap = workorderList.get(0);
|
|
|
//居民信息
|
|
|
resultMap.put("mobile",workorderMap.get("mobile"));//电话号码
|
|
|
resultMap.put("patientName",workorderMap.get("service_patient_name"));//居民姓名
|
|
|
Integer callNum = customerLogDao.callNumByWorkorder(workorderMap.get("servicerCode")+"");
|
|
|
resultMap.put("callNum",callNum);//已呼叫次数
|
|
|
resultMap.putAll(this.getPatientInfo(workorderMap.get("service_patient_code") + ""));
|
|
|
Patient patient =patientDao.findByCode(workorderMap.get("service_patient_code")+"");
|
|
|
Integer sex = patient.getSex();
|
|
|
String sexName ="";
|
|
|
if(sex==1){
|
|
|
sexName="男";
|
|
|
}else if(sex==2){
|
|
|
sexName="女";
|
|
|
}else{
|
|
|
sexName="未知";
|
|
|
}
|
|
|
resultMap.put("sex",sexName);//性别
|
|
|
Integer age = IdCardUtil.getAgeForIdcard(patient.getIdcard());
|
|
|
resultMap.put("age",age);//年龄
|
|
|
resultMap.put("townName",workorderMap.get("town_name"));//所属区县
|
|
|
resultMap.put("hospitalName",workorderMap.get("hospital_name"));//所属社区
|
|
|
SignFamily signFamily = signFamilyDao.findSignByPatient(workorderMap.get("service_patient_code")+"");
|
|
|
resultMap.put("signDoctor",signFamily.getDoctorName());//签约医生(即:工单创建医生)
|
|
|
resultMap.put("healthDoctor",signFamily.getDoctorHealthName());//健管师
|
|
|
List<SignPatientLabelInfo> labelDiseaseType = signPatientLabelInfoDao.findByPatientAndLabelTypeAndStatus(workorderMap.get("service_patient_code")+"", "3", 1);
|
|
|
String diseaseType="";
|
|
|
List<String> diseaseTypeList= new ArrayList<>();
|
|
|
for(SignPatientLabelInfo one:labelDiseaseType){
|
|
|
diseaseType+=","+one.getLabelName();
|
|
|
diseaseTypeList.add(one.getLabel());
|
|
|
}
|
|
|
resultMap.put("diseaseType",StringUtils.isNotEmpty(diseaseType)?diseaseType.substring(1):"");//疾病类型
|
|
|
resultMap.put("diseaseTypeCode",diseaseTypeList);//疾病类型code
|
|
|
List<SignPatientLabelInfo> labelHealthType = signPatientLabelInfoDao.findByPatientAndLabelTypeAndStatus(workorderMap.get("service_patient_code")+"", "2", 1);
|
|
|
String healthType="";
|
|
|
for(SignPatientLabelInfo one:labelHealthType){
|
|
|
healthType+=","+one.getLabelName();
|
|
|
}
|
|
|
resultMap.put("healthType",StringUtils.isNotEmpty(healthType)?healthType.substring(1):"");//健康情况
|
|
|
String serveType="";
|
|
|
// 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("workorder",workorderMap.get("code"));//工单编号
|
|
|
resultMap.put("patientCode",workorderMap.get("service_patient_code"));//居民code
|
|
|
resultMap.put("doctorCode",workorderMap.get("create_user"));//创建人(医生)code
|
|
|
//获取提交记录
|
|
|
String servicerCode = workorderMap.get("servicerCode")+"";
|
|
|
resultMap.put("servicerCode", servicerCode);
|
|
|
List<ManageSynergyWorkorderServicerLogDO> list = manageSynergyWorkorderServicerLogDao.findByWorkorderServiceCode(servicerCode);
|
|
|
if(list.size()>0){
|
|
|
ManageSynergyWorkorderServicerLogDO log = list.get(0);
|
|
|
Map<String,Object> m = new HashMap<>();
|
|
|
m.put("personal",log.getPersonal());//是否为本人
|
|
|
m.put("callCode",log.getCallCode());//通话记录code
|
|
|
m.put("callStatus",log.getCallStatus());//通话状态(1、正常通话,2、无人接听,3、拒接,4、占线,5、关机,6、停机,7、无法接通,8、空号错号)
|
|
|
m.put("emphasis",log.getEmphasis());//是否重点患者(1、重点患者,2、非重点患者)
|
|
|
m.put("followUp",log.getFollowUp());//是否跟进(1、无需跟进,2、待跟进)
|
|
|
m.put("remark",log.getRemark());//备注
|
|
|
m.put("returnVisit",log.getReturnVisit());//回访(1、有效回访,2、无效回访)
|
|
|
resultMap.put("servicerLog",m);
|
|
|
resultMap.put("haveNum",1);
|
|
|
}
|
|
|
return resultMap;
|
|
|
}
|
|
|
}
|