|  | @ -17,6 +17,8 @@ import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
 |  | import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
 |  | import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO;
 | 
												
													
														
															|  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 |  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
 | 
												
													
														
															|  | import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
 |  | import com.yihu.jw.hospital.prescription.service.entrance.EntranceService;
 | 
												
													
														
															|  | import com.yihu.jw.patient.dao.BasePatientDao;
 |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
												
													
														
															|  | import com.yihu.jw.restmodel.web.MixEnvelop;
 |  | import com.yihu.jw.restmodel.web.MixEnvelop;
 | 
												
											
												
													
														
															|  | @ -57,6 +59,8 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |     private BasePatientDao basePatientDao;
 |  |     private BasePatientDao basePatientDao;
 | 
												
													
														
															|  |     @Autowired
 |  |     @Autowired
 | 
												
													
														
															|  |     private EnterpriseService enterpriseService;
 |  |     private EnterpriseService enterpriseService;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
 | 
												
													
														
															|  |     @Value("${wechat.id}")
 |  |     @Value("${wechat.id}")
 | 
												
													
														
															|  |     private String wxId;
 |  |     private String wxId;
 | 
												
													
														
															|  |     @Value("${wechat.flag}")
 |  |     @Value("${wechat.flag}")
 | 
												
											
												
													
														
															|  | @ -196,6 +200,14 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |      * 患者举报接口
 |  |      * 患者举报接口
 | 
												
													
														
															|  |      * */
 |  |      * */
 | 
												
													
														
															|  |     public BaseComplaintDO patiemtComplaint(String json) throws Exception{
 |  |     public BaseComplaintDO patiemtComplaint(String json) throws Exception{
 | 
												
													
														
															|  | 
 |  |         WlyyHospitalSysDictDO wlyyHospitalSysDictDO= wlyyHospitalSysDictDao.findById("complaintOpenControl");
 | 
												
													
														
															|  | 
 |  |         if (wlyyHospitalSysDictDO!=null){
 | 
												
													
														
															|  | 
 |  |             if (!"1".equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
 | 
												
													
														
															|  | 
 |  |                 throw new Exception("投诉通道已关闭");
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }else {
 | 
												
													
														
															|  | 
 |  |             throw new Exception("投诉通道已关闭");
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  |         BaseComplaintDO baseComplaintDO =objectMapper.readValue(json,BaseComplaintDO.class);
 |  |         BaseComplaintDO baseComplaintDO =objectMapper.readValue(json,BaseComplaintDO.class);
 | 
												
													
														
															|  |         BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(baseComplaintDO.getComplaintId());
 |  |         BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(baseComplaintDO.getComplaintId());
 | 
												
													
														
															|  |         if (baseComplaintDictDO!=null){
 |  |         if (baseComplaintDictDO!=null){
 | 
												
											
												
													
														
															|  | @ -207,7 +219,7 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |                 baseComplaintDO.setVisitDeptName(dictHospitalDeptDO.getName());
 |  |                 baseComplaintDO.setVisitDeptName(dictHospitalDeptDO.getName());
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |         if(StringUtils.isNoneBlank(baseComplaintDO.getPatient())){
 |  | 
 | 
												
													
														
															|  | 
 |  |         /*if(StringUtils.isNoneBlank(baseComplaintDO.getPatient())){
 | 
												
													
														
															|  |             BasePatientDO basePatientDO= basePatientDao.findById(baseComplaintDO.getPatient());
 |  |             BasePatientDO basePatientDO= basePatientDao.findById(baseComplaintDO.getPatient());
 | 
												
													
														
															|  |             if (basePatientDO!=null){
 |  |             if (basePatientDO!=null){
 | 
												
													
														
															|  |                 basePatientDO.setIdcardFront(baseComplaintDO.getIdcardFront());
 |  |                 basePatientDO.setIdcardFront(baseComplaintDO.getIdcardFront());
 | 
												
											
												
													
														
															|  | @ -215,15 +227,22 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |                 basePatientDao.save(basePatientDO);
 |  |                 basePatientDao.save(basePatientDO);
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |         }
 |  | 
 | 
												
													
														
															|  | 
 |  |         }*/
 | 
												
													
														
															|  |         baseComplaintDO.setIsDel("1");
 |  |         baseComplaintDO.setIsDel("1");
 | 
												
													
														
															|  |         baseComplaintDO.setStatus("0");
 |  |         baseComplaintDO.setStatus("0");
 | 
												
													
														
															|  |         baseComplaintDO.setCreateTime(new Date());
 |  |         baseComplaintDO.setCreateTime(new Date());
 | 
												
													
														
															|  |         baseComplaintDO=  baseComplaintDao.save(baseComplaintDO);
 |  |         baseComplaintDO=  baseComplaintDao.save(baseComplaintDO);
 | 
												
													
														
															|  | 
 |  |         BaseComplaintOperateLogDO baseComplaintOperateLogDO = new BaseComplaintOperateLogDO();
 | 
												
													
														
															|  | 
 |  |         baseComplaintOperateLogDO.setOperateFrom(baseComplaintDO.getPatient());
 | 
												
													
														
															|  | 
 |  |         baseComplaintOperateLogDO.setStatus("0");
 | 
												
													
														
															|  | 
 |  |         baseComplaintOperateLogDO.setOperateType("投诉提交");
 | 
												
													
														
															|  | 
 |  |         baseComplaintOperateLogDO.setRelationCode(baseComplaintDO.getId());
 | 
												
													
														
															|  | 
 |  |         baseComplaintOperateLogDO.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  |         baseComplaintOperateDao.save(baseComplaintOperateLogDO);
 | 
												
													
														
															|  |         try {
 |  |         try {
 | 
												
													
														
															|  |             List<BaseComplaintDoctorDO> doctorList=baseComplaintDoctorDao.findbyComplaintId(baseComplaintDO.getComplaintId());
 |  |             List<BaseComplaintDoctorDO> doctorList=baseComplaintDoctorDao.findbyComplaintId(baseComplaintDO.getComplaintId());
 | 
												
													
														
															|  |             for (BaseComplaintDoctorDO baseComplaintDoctorDO:doctorList){
 |  |             for (BaseComplaintDoctorDO baseComplaintDoctorDO:doctorList){
 | 
												
													
														
															|  |                 String url="";
 |  | 
 | 
												
													
														
															|  | 
 |  |                 String url="https://hlwyy.xmzsh.com/hlwyy/ims-app-web/#/complaint/detail?id="+baseComplaintDO.getId();
 | 
												
													
														
															|  |                 enterpriseService.sendTWMesByDoctor("zsyy",baseComplaintDoctorDO.getDoctor(),"投诉反馈","您收到一条投诉反馈,点击查看。",url);
 |  |                 enterpriseService.sendTWMesByDoctor("zsyy",baseComplaintDoctorDO.getDoctor(),"投诉反馈","您收到一条投诉反馈,点击查看。",url);
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  |         }catch (Exception e){
 |  |         }catch (Exception e){
 | 
												
											
												
													
														
															|  | @ -244,17 +263,19 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |             baseComplaintOperateLogDO.setOperateTo(doctor);
 |  |             baseComplaintOperateLogDO.setOperateTo(doctor);
 | 
												
													
														
															|  |             baseComplaintOperateLogDO.setComplaintTo(complaintId);
 |  |             baseComplaintOperateLogDO.setComplaintTo(complaintId);
 | 
												
													
														
															|  |             baseComplaintOperateLogDO.setComplaintFrom(baseComplaintDO.getComplaintId());
 |  |             baseComplaintOperateLogDO.setComplaintFrom(baseComplaintDO.getComplaintId());
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setStatus("3");
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setOperateType("转交");
 | 
												
													
														
															|  |             baseComplaintOperateLogDO.setRelationCode(id);
 |  |             baseComplaintOperateLogDO.setRelationCode(id);
 | 
												
													
														
															|  |             baseComplaintOperateLogDO.setCreateTime(new Date());
 |  |             baseComplaintOperateLogDO.setCreateTime(new Date());
 | 
												
													
														
															|  |             baseComplaintOperateDao.save(baseComplaintOperateLogDO);
 |  |             baseComplaintOperateDao.save(baseComplaintOperateLogDO);
 | 
												
													
														
															|  |             BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
 |  | 
 | 
												
													
														
															|  | 
 |  |             /*BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
 | 
												
													
														
															|  |             if (null != baseDoctorDO) {
 |  |             if (null != baseDoctorDO) {
 | 
												
													
														
															|  |                 doctorName=baseDoctorDO.getName();
 |  |                 doctorName=baseDoctorDO.getName();
 | 
												
													
														
															|  |                 baseComplaintDO.setAcceptorName(doctorName);
 |  |                 baseComplaintDO.setAcceptorName(doctorName);
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  |             baseComplaintDO.setAcceptor(doctor);
 |  | 
 | 
												
													
														
															|  | 
 |  |             baseComplaintDO.setAcceptor(doctor);*/
 | 
												
													
														
															|  |             baseComplaintDO.setComplaintId(complaintId);
 |  |             baseComplaintDO.setComplaintId(complaintId);
 | 
												
													
														
															|  |             BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(id);
 |  | 
 | 
												
													
														
															|  | 
 |  |             BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(complaintId);
 | 
												
													
														
															|  |             if (baseComplaintDictDO!=null){
 |  |             if (baseComplaintDictDO!=null){
 | 
												
													
														
															|  |                 complaitTypeName=baseComplaintDictDO.getName();
 |  |                 complaitTypeName=baseComplaintDictDO.getName();
 | 
												
													
														
															|  |                 baseComplaintDO.setComplaintName(complaitTypeName);
 |  |                 baseComplaintDO.setComplaintName(complaitTypeName);
 | 
												
											
												
													
														
															|  | @ -263,7 +284,7 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |             try {
 |  |             try {
 | 
												
													
														
															|  |                 List<BaseComplaintDoctorDO> doctorList=baseComplaintDoctorDao.findbyComplaintId(baseComplaintDO.getComplaintId());
 |  |                 List<BaseComplaintDoctorDO> doctorList=baseComplaintDoctorDao.findbyComplaintId(baseComplaintDO.getComplaintId());
 | 
												
													
														
															|  |                 for (BaseComplaintDoctorDO baseComplaintDoctorDO:doctorList){
 |  |                 for (BaseComplaintDoctorDO baseComplaintDoctorDO:doctorList){
 | 
												
													
														
															|  |                     String url="";
 |  | 
 | 
												
													
														
															|  | 
 |  |                     String url="https://hlwyy.xmzsh.com/hlwyy/ims-app-web/#/complaint/detail?id="+baseComplaintDO.getId();
 | 
												
													
														
															|  |                     enterpriseService.sendTWMesByDoctor("zsyy",baseComplaintDoctorDO.getDoctor(),"投诉反馈","您收到一条投诉反馈,点击查看。",url);
 |  |                     enterpriseService.sendTWMesByDoctor("zsyy",baseComplaintDoctorDO.getDoctor(),"投诉反馈","您收到一条投诉反馈,点击查看。",url);
 | 
												
													
														
															|  |                 }
 |  |                 }
 | 
												
													
														
															|  |             }catch (Exception e){
 |  |             }catch (Exception e){
 | 
												
											
												
													
														
															|  | @ -285,6 +306,13 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |             baseComplaintDO.setAcceptor(doctor);
 |  |             baseComplaintDO.setAcceptor(doctor);
 | 
												
													
														
															|  |             baseComplaintDO.setAcceptTime(new Date());
 |  |             baseComplaintDO.setAcceptTime(new Date());
 | 
												
													
														
															|  |             baseComplaintDao.save(baseComplaintDO);
 |  |             baseComplaintDao.save(baseComplaintDO);
 | 
												
													
														
															|  | 
 |  |             BaseComplaintOperateLogDO baseComplaintOperateLogDO = new BaseComplaintOperateLogDO();
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setOperateFrom(doctor);
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setStatus("1");
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setOperateType("接受");
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setRelationCode(id);
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateDao.save(baseComplaintOperateLogDO);
 | 
												
													
														
															|  |         }else if ("1".equalsIgnoreCase(baseComplaintDO.getStatus())){
 |  |         }else if ("1".equalsIgnoreCase(baseComplaintDO.getStatus())){
 | 
												
													
														
															|  |             throw new Exception("该工单已被接受");
 |  |             throw new Exception("该工单已被接受");
 | 
												
													
														
															|  |         }else {
 |  |         }else {
 | 
												
											
												
													
														
															|  | @ -311,6 +339,13 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |                 baseComplaintDO.setOperatorDeptName(baseDoctorHospitalDO.get(0).getDeptName());
 |  |                 baseComplaintDO.setOperatorDeptName(baseDoctorHospitalDO.get(0).getDeptName());
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  |             baseComplaintDao.save(baseComplaintDO);
 |  |             baseComplaintDao.save(baseComplaintDO);
 | 
												
													
														
															|  | 
 |  |             BaseComplaintOperateLogDO baseComplaintOperateLogDO = new BaseComplaintOperateLogDO();
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setOperateFrom(operator);
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setStatus("2");
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setOperateType("反馈");
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setRelationCode(id);
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateLogDO.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  |             baseComplaintOperateDao.save(baseComplaintOperateLogDO);
 | 
												
													
														
															|  |         }else if ("2".equalsIgnoreCase(baseComplaintDO.getStatus())){
 |  |         }else if ("2".equalsIgnoreCase(baseComplaintDO.getStatus())){
 | 
												
													
														
															|  |             throw new Exception("该工单已被处理完成");
 |  |             throw new Exception("该工单已被处理完成");
 | 
												
													
														
															|  |         }else if ("0".equalsIgnoreCase(baseComplaintDO.getStatus())){
 |  |         }else if ("0".equalsIgnoreCase(baseComplaintDO.getStatus())){
 | 
												
											
												
													
														
															|  | @ -320,16 +355,12 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     //查询投诉列表
 |  |     //查询投诉列表
 | 
												
													
														
															|  |     public MixEnvelop findComplaintList(String doctor,String status,String patientName,String patientId,String keyWord,String complaintId,
 |  | 
 | 
												
													
														
															|  | 
 |  |     public MixEnvelop findComplaintList(String role,String doctor,String status,String patientName,String patientId,String keyWord,String complaintId,
 | 
												
													
														
															|  |                                   String startTime,String endTime,Integer page ,Integer pageSize){
 |  |                                   String startTime,String endTime,Integer page ,Integer pageSize){
 | 
												
													
														
															|  |         MixEnvelop mixEnvelop = new MixEnvelop();
 |  |         MixEnvelop mixEnvelop = new MixEnvelop();
 | 
												
													
														
															|  |         List<BaseDoctorRoleDO>  rolelist= baseDoctorRoleDao.findByDoctorCode(doctor);
 |  | 
 | 
												
													
														
															|  |         Boolean queryAll=false;
 |  |         Boolean queryAll=false;
 | 
												
													
														
															|  |         for (BaseDoctorRoleDO baseDoctorRoleDO:rolelist){
 |  | 
 | 
												
													
														
															|  |             if ("admin".equalsIgnoreCase(baseDoctorRoleDO.getRoleCode())){
 |  | 
 | 
												
													
														
															|  |                 queryAll=true;
 |  | 
 | 
												
													
														
															|  |                 break;
 |  | 
 | 
												
													
														
															|  |             }
 |  | 
 | 
												
													
														
															|  | 
 |  |         if ("admin".equalsIgnoreCase(role)){
 | 
												
													
														
															|  | 
 |  |             queryAll=true;
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  |         String sql="select t.id as \"id\"," +
 |  |         String sql="select t.id as \"id\"," +
 | 
												
													
														
															|  |                 " t.complaint_id as \"complaintId\"," +
 |  |                 " t.complaint_id as \"complaintId\"," +
 | 
												
											
												
													
														
															|  | @ -389,6 +420,9 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |             }else {
 |  |             }else {
 | 
												
													
														
															|  |                 return null;
 |  |                 return null;
 | 
												
													
														
															|  |             }
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if (!StringUtils.isNoneBlank(status)){
 | 
												
													
														
															|  | 
 |  |                 sql+=" and t.status !='-1'";
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  |         }else {
 |  |         }else {
 | 
												
													
														
															|  |             if (StringUtils.isNoneBlank(complaintId)){
 |  |             if (StringUtils.isNoneBlank(complaintId)){
 | 
												
													
														
															|  |                 //sql+=" and t.complaint_id in ('"+complaint.replace(",","','")+"')";
 |  |                 //sql+=" and t.complaint_id in ('"+complaint.replace(",","','")+"')";
 | 
												
											
												
													
														
															|  | @ -546,35 +580,141 @@ public class BaseComplaintService {
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  |     /*
 |  |     /*
 | 
												
													
														
															|  |     * 查询投诉数量*/
 |  |     * 查询投诉数量*/
 | 
												
													
														
															|  |     public Map<String,Object> findComplaintCount(String doctor){
 |  | 
 | 
												
													
														
															|  | 
 |  |     public Map<String,Object> findComplaintCount(String doctor,String role){
 | 
												
													
														
															|  |         BaseComplaintDoctorDO baseComplaintDoctorDO=baseComplaintDoctorDao.findbyDoctorAndDel(doctor);
 |  |         BaseComplaintDoctorDO baseComplaintDoctorDO=baseComplaintDoctorDao.findbyDoctorAndDel(doctor);
 | 
												
													
														
															|  |         List<BaseDoctorRoleDO>  rolelist= baseDoctorRoleDao.findByDoctorCode(doctor);
 |  | 
 | 
												
													
														
															|  |         Boolean queryAll=false;
 |  | 
 | 
												
													
														
															|  |         if (rolelist!=null&&rolelist.contains("admin")){
 |  | 
 | 
												
													
														
															|  |             queryAll=true;
 |  | 
 | 
												
													
														
															|  |         }
 |  | 
 | 
												
													
														
															|  |         Integer complaints=0;
 |  |         Integer complaints=0;
 | 
												
													
														
															|  |         Integer recieve=0;
 |  |         Integer recieve=0;
 | 
												
													
														
															|  |         Integer deal=0;
 |  |         Integer deal=0;
 | 
												
													
														
															|  |         if (!queryAll){
 |  | 
 | 
												
													
														
															|  |              complaints=baseComplaintDao.getCountByStatusAndComplaintId("0",baseComplaintDoctorDO.getComplaintId());
 |  | 
 | 
												
													
														
															|  |              recieve=baseComplaintDao.getCountByStatusAndComplaintId("1",baseComplaintDoctorDO.getComplaintId());
 |  | 
 | 
												
													
														
															|  |              deal=baseComplaintDao.getCountByStatusAndComplaintId("2",baseComplaintDoctorDO.getComplaintId());
 |  | 
 | 
												
													
														
															|  |         }else {
 |  | 
 | 
												
													
														
															|  |             complaints=baseComplaintDao.getCountByStatus("0");
 |  | 
 | 
												
													
														
															|  |             recieve=baseComplaintDao.getCountByStatus("1");
 |  | 
 | 
												
													
														
															|  |             deal=baseComplaintDao.getCountByStatus("2");
 |  | 
 | 
												
													
														
															|  | 
 |  |         Integer cacel=0;
 | 
												
													
														
															|  | 
 |  |         if (baseComplaintDoctorDO!=null){
 | 
												
													
														
															|  | 
 |  |             Boolean queryAll=false;
 | 
												
													
														
															|  | 
 |  |             if ("admin".equalsIgnoreCase(role)){
 | 
												
													
														
															|  | 
 |  |                 queryAll=true;
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if (!queryAll){
 | 
												
													
														
															|  | 
 |  |                 complaints=baseComplaintDao.getCountByStatusAndComplaintId("0",baseComplaintDoctorDO.getComplaintId());
 | 
												
													
														
															|  | 
 |  |                 recieve=baseComplaintDao.getCountByStatusAndComplaintId("1",baseComplaintDoctorDO.getComplaintId());
 | 
												
													
														
															|  | 
 |  |                 deal=baseComplaintDao.getCountByStatusAndComplaintId("2",baseComplaintDoctorDO.getComplaintId());
 | 
												
													
														
															|  | 
 |  |                 //cacel=baseComplaintDao.getCountByStatusAndComplaintId("-1",baseComplaintDoctorDO.getComplaintId());
 | 
												
													
														
															|  | 
 |  |             }else {
 | 
												
													
														
															|  | 
 |  |                 complaints=baseComplaintDao.getCountByStatus("0");
 | 
												
													
														
															|  | 
 |  |                 recieve=baseComplaintDao.getCountByStatus("1");
 | 
												
													
														
															|  | 
 |  |                 deal=baseComplaintDao.getCountByStatus("2");
 | 
												
													
														
															|  | 
 |  |                 cacel=baseComplaintDao.getCountByStatus("-1");
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  |         }
 |  |         }
 | 
												
													
														
															|  | 
 |  |         Integer total = complaints+recieve+deal+cacel;
 | 
												
													
														
															|  | 
 |  |         Map map=new HashMap();
 | 
												
													
														
															|  | 
 |  |         map.put("complaints",complaints);
 | 
												
													
														
															|  | 
 |  |         map.put("recieve",recieve);
 | 
												
													
														
															|  | 
 |  |         map.put("deal",deal);
 | 
												
													
														
															|  | 
 |  |         map.put("cacel",cacel);
 | 
												
													
														
															|  | 
 |  |         map.put("total",total);
 | 
												
													
														
															|  | 
 |  |         return map;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /*
 | 
												
													
														
															|  | 
 |  |      * 查询投诉数量*/
 | 
												
													
														
															|  | 
 |  |     public Map<String,Object> findComplaintCountPatient(String patient){
 | 
												
													
														
															|  | 
 |  |         Integer complaints=0;
 | 
												
													
														
															|  | 
 |  |         Integer recieve=0;
 | 
												
													
														
															|  | 
 |  |         Integer deal=0;
 | 
												
													
														
															|  | 
 |  |         Integer cacel=0;
 | 
												
													
														
															|  | 
 |  |         complaints=baseComplaintDao.getCountByStatusByPatient("0",patient);
 | 
												
													
														
															|  | 
 |  |         recieve=baseComplaintDao.getCountByStatusByPatient("1",patient);
 | 
												
													
														
															|  | 
 |  |         deal=baseComplaintDao.getCountByStatusByPatient("2",patient);
 | 
												
													
														
															|  | 
 |  |         cacel=baseComplaintDao.getCountByStatusByPatient("-1",patient);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |         Integer total = complaints+recieve+deal;
 |  | 
 | 
												
													
														
															|  | 
 |  |         Integer total = complaints+recieve+deal+cacel;
 | 
												
													
														
															|  |         Map map=new HashMap();
 |  |         Map map=new HashMap();
 | 
												
													
														
															|  |         map.put("complaints",complaints);
 |  |         map.put("complaints",complaints);
 | 
												
													
														
															|  |         map.put("recieve",recieve);
 |  |         map.put("recieve",recieve);
 | 
												
													
														
															|  |         map.put("deal",deal);
 |  |         map.put("deal",deal);
 | 
												
													
														
															|  | 
 |  |         map.put("cacel",cacel);
 | 
												
													
														
															|  |         map.put("total",total);
 |  |         map.put("total",total);
 | 
												
													
														
															|  |         return map;
 |  |         return map;
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  |     public BaseComplaintDO  cancelPaitentComplaint(String id,String patient) throws  Exception{
 | 
												
													
														
															|  | 
 |  |         BaseComplaintDO baseComplaintDO = baseComplaintDao.findOne(id);
 | 
												
													
														
															|  | 
 |  |        if (baseComplaintDO!=null){
 | 
												
													
														
															|  | 
 |  |            if ("0".equalsIgnoreCase(baseComplaintDO.getStatus())){
 | 
												
													
														
															|  | 
 |  |                baseComplaintDO.setStatus("-1");
 | 
												
													
														
															|  | 
 |  |                baseComplaintDO=baseComplaintDao.save(baseComplaintDO);
 | 
												
													
														
															|  | 
 |  |                BaseComplaintOperateLogDO baseComplaintOperateLogDO = new BaseComplaintOperateLogDO();
 | 
												
													
														
															|  | 
 |  |                baseComplaintOperateLogDO.setOperateFrom(patient);
 | 
												
													
														
															|  | 
 |  |                baseComplaintOperateLogDO.setStatus("-1");
 | 
												
													
														
															|  | 
 |  |                baseComplaintOperateLogDO.setOperateType("居民撤销投诉");
 | 
												
													
														
															|  | 
 |  |                baseComplaintOperateLogDO.setRelationCode(baseComplaintDO.getId());
 | 
												
													
														
															|  | 
 |  |                baseComplaintOperateLogDO.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  |                baseComplaintOperateDao.save(baseComplaintOperateLogDO);
 | 
												
													
														
															|  | 
 |  |            }else {
 | 
												
													
														
															|  | 
 |  |                throw new Exception("不允许撤销");
 | 
												
													
														
															|  | 
 |  |            }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |        }
 | 
												
													
														
															|  | 
 |  |        return baseComplaintDO;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     public List<Map<String,Object>> findComplaintOperateLog(String complaintId){
 | 
												
													
														
															|  | 
 |  |         String sql ="select t.id as \"id\"," +
 | 
												
													
														
															|  | 
 |  |                 " p.name as \"complaintNameFrom\" ," +
 | 
												
													
														
															|  | 
 |  |                 " n.name as \"complaintNameto\", " +
 | 
												
													
														
															|  | 
 |  |                 " t.operate_from as \"operateFrom\" ," +
 | 
												
													
														
															|  | 
 |  |                 " t.operate_to as \"operateTo\" ," +
 | 
												
													
														
															|  | 
 |  |                 " t.cancel_by as \"cancelBy\", " +
 | 
												
													
														
															|  | 
 |  |                 " t.operate_type as \"operateType\", " +
 | 
												
													
														
															|  | 
 |  |                 " t.status as \"status\", " +
 | 
												
													
														
															|  | 
 |  |                 " t.create_time as \"createTime\" ," +
 | 
												
													
														
															|  | 
 |  |                 " t.relation_code as \"relationCode\" " +
 | 
												
													
														
															|  | 
 |  |                 " from base_complaint_operate_log t left join base_complaint c" +
 | 
												
													
														
															|  | 
 |  |                 " on t.relation_code=c.id" +
 | 
												
													
														
															|  | 
 |  |                 " left join base_complaint_dict p on t.complaint_from= p.id" +
 | 
												
													
														
															|  | 
 |  |                 " left join base_complaint_dict n on t.complaint_to=n.id where 1=1 " ;
 | 
												
													
														
															|  | 
 |  |         if (StringUtils.isNoneBlank(complaintId)){
 | 
												
													
														
															|  | 
 |  |             sql+=" and t.relation_code='"+complaintId+"'";
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         sql+=" order by t.create_time desc";
 | 
												
													
														
															|  | 
 |  |         List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
 | 
												
													
														
															|  | 
 |  |         List<WlyyHospitalSysDictDO> typeList=wlyyHospitalSysDictDao.findByDictName("complaintStatus");
 | 
												
													
														
															|  | 
 |  |         for (Map<String,Object> map:list){
 | 
												
													
														
															|  | 
 |  |             if (map.get("operateFrom")!=null){
 | 
												
													
														
															|  | 
 |  |                 if (map.get("status")!=null){
 | 
												
													
														
															|  | 
 |  |                     for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:typeList){
 | 
												
													
														
															|  | 
 |  |                         if (map.get("status").toString().equalsIgnoreCase(wlyyHospitalSysDictDO.getDictCode())){
 | 
												
													
														
															|  | 
 |  |                             map.put("operateType",wlyyHospitalSysDictDO.getDictValue());
 | 
												
													
														
															|  | 
 |  |                         }
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                     if ("0".equalsIgnoreCase(map.get("status").toString())||"-1".equalsIgnoreCase(map.get("status").toString())){
 | 
												
													
														
															|  | 
 |  |                         BasePatientDO basePatientDO = basePatientDao.findById(map.get("operateFrom").toString());
 | 
												
													
														
															|  | 
 |  |                         if (basePatientDO!=null){
 | 
												
													
														
															|  | 
 |  |                             map.put("operateFromName",basePatientDO.getName());
 | 
												
													
														
															|  | 
 |  |                         }
 | 
												
													
														
															|  | 
 |  |                     }else {
 | 
												
													
														
															|  | 
 |  |                         BaseDoctorDO baseDoctorDO= baseDoctorDao.findById(map.get("operateFrom").toString());
 | 
												
													
														
															|  | 
 |  |                         if (baseDoctorDO!=null){
 | 
												
													
														
															|  | 
 |  |                             map.put("operateFromName",baseDoctorDO.getName());
 | 
												
													
														
															|  | 
 |  |                         }
 | 
												
													
														
															|  | 
 |  |                         List<BaseDoctorHospitalDO> baseDoctorHospitalDO= baseDoctorHospitalDao.findByDoctorCode(map.get("operateFrom").toString());
 | 
												
													
														
															|  | 
 |  |                         if (baseDoctorHospitalDO!=null&&baseDoctorHospitalDO.size()>0){
 | 
												
													
														
															|  | 
 |  |                             map.put("operateFromDeptName",baseDoctorHospitalDO.get(0).getDeptName());
 | 
												
													
														
															|  | 
 |  |                         }
 | 
												
													
														
															|  | 
 |  |                     }
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if (map.get("operateTo")!=null){
 | 
												
													
														
															|  | 
 |  |                 BaseDoctorDO baseDoctorDO= baseDoctorDao.findById(map.get("operateTo").toString());
 | 
												
													
														
															|  | 
 |  |                 if (baseDoctorDO!=null){
 | 
												
													
														
															|  | 
 |  |                     map.put("operateToName",baseDoctorDO.getName());
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |                 List<BaseDoctorHospitalDO> baseDoctorHospitalDO= baseDoctorHospitalDao.findByDoctorCode(map.get("operateTo").toString());
 | 
												
													
														
															|  | 
 |  |                 if (baseDoctorHospitalDO!=null&&baseDoctorHospitalDO.size()>0){
 | 
												
													
														
															|  | 
 |  |                     map.put("operateToDeptName",baseDoctorHospitalDO.get(0).getDeptName());
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     return list;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | }
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 |