|
@ -1,30 +1,32 @@
|
|
|
package com.yihu.jw.service.rehabilitation;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.dao.rehabilitation.PatientRehabilitationPlanDao;
|
|
|
import com.yihu.jw.dao.rehabilitation.RehabilitationDetailDao;
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
import com.yihu.jw.dao.rehabilitation.PatientRehabilitationPlanDao;
|
|
|
import com.yihu.jw.dao.rehabilitation.RehabilitationPlanTemplateDao;
|
|
|
import com.yihu.jw.dao.rehabilitation.RehabilitationTemplateDetailDao;
|
|
|
import com.yihu.jw.entity.specialist.HospitalServiceItemDO;
|
|
|
import com.yihu.jw.entity.specialist.rehabilitation.PatientRehabilitationPlanDO;
|
|
|
import com.yihu.jw.entity.specialist.rehabilitation.RehabilitationDetailDO;
|
|
|
import com.yihu.jw.entity.specialist.rehabilitation.PatientRehabilitationPlanDO;
|
|
|
import com.yihu.jw.entity.specialist.rehabilitation.RehabilitationPlanTemplateDO;
|
|
|
import com.yihu.jw.entity.specialist.rehabilitation.RehabilitationTemplateDetailDO;
|
|
|
import com.yihu.jw.restmodel.iot.common.UploadVO;
|
|
|
import com.yihu.jw.restmodel.specialist.PatientSignInfoVO;
|
|
|
import com.yihu.jw.restmodel.web.MixEnvelop;
|
|
|
import com.yihu.jw.rm.specialist.SpecialistMapping;
|
|
|
import com.yihu.jw.service.FileUploadService;
|
|
|
import com.yihu.jw.service.SpecialistHospitalServiceItemService;
|
|
|
import com.yihu.jw.service.SpecialistService;
|
|
|
import com.yihu.jw.util.common.QrcodeUtil;
|
|
|
import com.yihu.fastdfs.FastDFSUtil;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.io.InputStream;
|
|
@ -32,6 +34,7 @@ import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* Created by humingfen on 2018/8/17.
|
|
@ -60,6 +63,10 @@ public class RehabilitationPlanService {
|
|
|
private FileUploadService fileUploadService;
|
|
|
@Autowired
|
|
|
protected HttpServletRequest request;
|
|
|
@Autowired
|
|
|
private SpecialistHospitalServiceItemService hospitalServiceItemService;
|
|
|
@Autowired
|
|
|
private SpecialistService specialistService;
|
|
|
|
|
|
public MixEnvelop<String, String> createRehabilitationTemplate(RehabilitationPlanTemplateDO templateDO) {
|
|
|
templateDO.setCreateTime(new Date());
|
|
@ -88,18 +95,24 @@ public class RehabilitationPlanService {
|
|
|
return MixEnvelop.getSuccess(SpecialistMapping.api_success,true);
|
|
|
}
|
|
|
|
|
|
public MixEnvelop<RehabilitationPlanTemplateDO, RehabilitationPlanTemplateDO> findRehabilitationPlanTemplate(Integer adminTeamCode, Integer page, Integer size) {
|
|
|
public MixEnvelop<RehabilitationPlanTemplateDO, RehabilitationPlanTemplateDO> findRehabilitationPlanTemplate(Long adminTeamCode, String doctor, String patient) {
|
|
|
|
|
|
if(page != null && size != null){
|
|
|
String sql = "select * from wlyy_rehabilitation_plan_template t where t.admin_team_code = '" + adminTeamCode + "' and t.del = 1 ORDER BY t.create_time DESC LIMIT "+(page-1)*size+","+size;
|
|
|
List<RehabilitationPlanTemplateDO> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper(RehabilitationPlanTemplateDO.class));
|
|
|
String countSql = "select count(1) from wlyy_rehabilitation_plan_template t where t.admin_team_code = '" + adminTeamCode + "' and t.del = 1";
|
|
|
Long count = jdbcTemplate.queryForObject(countSql, Long.class);
|
|
|
return MixEnvelop.getSuccessListWithPage(SpecialistMapping.api_success,list,page,size,count);
|
|
|
}else {
|
|
|
List<RehabilitationPlanTemplateDO> list = templateDao.findByAdminTeamCode(adminTeamCode);
|
|
|
return MixEnvelop.getSuccessList(SpecialistMapping.api_success,list, list.size());
|
|
|
if(adminTeamCode == null && StringUtils.isNotBlank(doctor) && StringUtils.isNotBlank(patient)){
|
|
|
PatientSignInfoVO patientSignSpecialistInfo = (PatientSignInfoVO) specialistService.findPatientSignSpecialistInfo(patient,doctor).getObj();
|
|
|
adminTeamCode = patientSignSpecialistInfo.getTeamCode();
|
|
|
}
|
|
|
List<RehabilitationPlanTemplateDO> list = templateDao.findByAdminTeamCode(adminTeamCode);
|
|
|
return MixEnvelop.getSuccessList(SpecialistMapping.api_success,list, list.size());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据模板id修改康复模板删除状态
|
|
|
* @param id
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop<Boolean,Boolean> deleteRehabilitationPlanTemplate(String id) {
|
|
|
templateDao.updateDelById(id);
|
|
|
return MixEnvelop.getSuccess(SpecialistMapping.api_success,true);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -107,9 +120,9 @@ public class RehabilitationPlanService {
|
|
|
* @param templateId
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop<RehabilitationTemplateDetailDO, RehabilitationTemplateDetailDO> findTemplateDetailByTemplateId(String templateId) {
|
|
|
public MixEnvelop<HospitalServiceItemDO, HospitalServiceItemDO> findTemplateDetailByTemplateId(String templateId) {
|
|
|
List<String> hospitalServiceItemIds = templateDetailDao.findHospitalServiceItemIdByTemplateId(templateId);
|
|
|
return MixEnvelop.getSuccess(SpecialistMapping.api_success);
|
|
|
return hospitalServiceItemService.selectById(hospitalServiceItemIds);
|
|
|
}
|
|
|
|
|
|
public PatientRehabilitationPlanDO createPatientRehabilitationPlan(PatientRehabilitationPlanDO planDO) {
|
|
@ -120,7 +133,12 @@ public class RehabilitationPlanService {
|
|
|
|
|
|
public List<RehabilitationDetailDO> createRehabilitationDetail(List<RehabilitationDetailDO> details, String planId) {
|
|
|
for(RehabilitationDetailDO detail : details) {
|
|
|
// HospitalServiceItemDO hospitalServiceItemDO = hospitalServiceItemService.findById(detail.getHospitalServiceItemId());
|
|
|
List<String> list = new ArrayList<>();
|
|
|
list.add(detail.getHospitalServiceItemId());
|
|
|
HospitalServiceItemDO hospitalServiceItemDO = hospitalServiceItemService.selectById(list).getDetailModelList().get(0);
|
|
|
detail.setHospital(hospitalServiceItemDO.getHospital());
|
|
|
detail.setHospitalName(hospitalServiceItemDO.getHospitalName());
|
|
|
detail.setExpense(hospitalServiceItemDO.getExpense());
|
|
|
detail.setPlanId(planId);
|
|
|
detail.setCreateTime(new Date());
|
|
|
detail.setStatus(0);
|
|
@ -128,6 +146,62 @@ public class RehabilitationPlanService {
|
|
|
return (List<RehabilitationDetailDO>)rehabilitationDetailDao.save(details);
|
|
|
}
|
|
|
|
|
|
public MixEnvelop<HospitalServiceItemDO,HospitalServiceItemDO> findServiceItemsByHospital(String doctorHospital, String signHospital) {
|
|
|
JSONArray jsonArray = new JSONArray();
|
|
|
List<String> list = new ArrayList<>();
|
|
|
list.add(doctorHospital);
|
|
|
List<HospitalServiceItemDO> docHospitalServiceItemDO = hospitalServiceItemService.selectByHospital(list).getDetailModelList();
|
|
|
if(StringUtils.isNotBlank(signHospital)){
|
|
|
if(signHospital.equals(doctorHospital)) {
|
|
|
for (Object object : docHospitalServiceItemDO) {
|
|
|
JSONObject json = (JSONObject) JSONObject.toJSON(object);
|
|
|
json.put("type", "社区");
|
|
|
jsonArray.add(json);
|
|
|
}
|
|
|
}else if(!signHospital.equals(doctorHospital)){
|
|
|
JSONArray array = new JSONArray();
|
|
|
List<String> itemIds = new ArrayList<>();
|
|
|
list.remove(0);
|
|
|
list.add(signHospital);
|
|
|
List<HospitalServiceItemDO> signHospitalServiceItemDO = hospitalServiceItemService.selectByHospital(list).getDetailModelList();
|
|
|
HashSet signSet = new HashSet();
|
|
|
for(HospitalServiceItemDO h : signHospitalServiceItemDO){
|
|
|
signSet.add(h.getServiceItemId());
|
|
|
}
|
|
|
//将服务项目重复的都放入itemIds集合里,并在列表中删除该条数据
|
|
|
List<HospitalServiceItemDO> temp = new ArrayList<>();
|
|
|
temp.addAll(docHospitalServiceItemDO);
|
|
|
for(HospitalServiceItemDO h : docHospitalServiceItemDO){
|
|
|
int size = signSet.size();
|
|
|
String itemId = h.getServiceItemId();
|
|
|
signSet.add(itemId);
|
|
|
if(signSet.size() == size){
|
|
|
itemIds.add(itemId);
|
|
|
temp.remove(h);
|
|
|
}
|
|
|
}
|
|
|
array.addAll(signHospitalServiceItemDO);
|
|
|
array.addAll(temp);
|
|
|
for(Object obj : array){
|
|
|
//往实体类插入数据
|
|
|
JSONObject json = (JSONObject) JSONObject.toJSON(obj);
|
|
|
if(json.get("hospital").equals(signHospital)){
|
|
|
json.put("type", "社区");
|
|
|
}else if(json.get("hospital").equals(doctorHospital)){
|
|
|
json.put("type", "医院");
|
|
|
}
|
|
|
if(itemIds.contains(json.get("serviceItemId"))){
|
|
|
json.put("type", "社区,医院");
|
|
|
}
|
|
|
jsonArray.add(json);
|
|
|
}
|
|
|
}
|
|
|
}else {
|
|
|
jsonArray.addAll(docHospitalServiceItemDO);
|
|
|
}
|
|
|
return MixEnvelop.getSuccess(SpecialistMapping.api_success, jsonArray);
|
|
|
}
|
|
|
|
|
|
public MixEnvelop<String,String> createServiceQrCode(String planDetailId){
|
|
|
RehabilitationDetailDO rehabilitationDetailDO = rehabilitationDetailDao.findById(planDetailId);
|
|
|
String fileUrl = "";
|