| 
					
				 | 
			
			
				@ -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.BaseDoctorRoleDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				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.patient.dao.BasePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.MixEnvelop; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -57,6 +59,8 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BasePatientDao basePatientDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private EnterpriseService enterpriseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${wechat.id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String wxId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${wechat.flag}") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -196,6 +200,14 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 患者举报接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(baseComplaintDO.getComplaintId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (baseComplaintDictDO!=null){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -207,7 +219,7 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseComplaintDO.setVisitDeptName(dictHospitalDeptDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isNoneBlank(baseComplaintDO.getPatient())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        /*if(StringUtils.isNoneBlank(baseComplaintDO.getPatient())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BasePatientDO basePatientDO= basePatientDao.findById(baseComplaintDO.getPatient()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (basePatientDO!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                basePatientDO.setIdcardFront(baseComplaintDO.getIdcardFront()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -215,15 +227,22 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                basePatientDao.save(basePatientDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseComplaintDO.setIsDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseComplaintDO.setStatus("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseComplaintDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseComplaintDoctorDO> doctorList=baseComplaintDoctorDao.findbyComplaintId(baseComplaintDO.getComplaintId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (Exception e){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -244,17 +263,19 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintOperateLogDO.setOperateTo(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintOperateLogDO.setComplaintTo(complaintId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintOperateLogDO.setComplaintFrom(baseComplaintDO.getComplaintId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintOperateLogDO.setStatus("3"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintOperateLogDO.setOperateType("转交"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintOperateLogDO.setRelationCode(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintOperateLogDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintOperateDao.save(baseComplaintOperateLogDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            /*BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null != baseDoctorDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorName=baseDoctorDO.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseComplaintDO.setAcceptorName(doctorName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintDO.setAcceptor(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintDO.setAcceptor(doctor);*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintDO.setComplaintId(complaintId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseComplaintDictDO baseComplaintDictDO = baseComplaintDictDao.findById(complaintId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (baseComplaintDictDO!=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                complaitTypeName=baseComplaintDictDO.getName(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseComplaintDO.setComplaintName(complaitTypeName); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -263,7 +284,7 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<BaseComplaintDoctorDO> doctorList=baseComplaintDoctorDao.findbyComplaintId(baseComplaintDO.getComplaintId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }catch (Exception e){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -285,6 +306,13 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintDO.setAcceptor(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseComplaintDO.setAcceptTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            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())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("该工单已被接受"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -311,6 +339,13 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseComplaintDO.setOperatorDeptName(baseDoctorHospitalDO.get(0).getDeptName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            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())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("该工单已被处理完成"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }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){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        MixEnvelop mixEnvelop = new MixEnvelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorRoleDO>  rolelist= baseDoctorRoleDao.findByDoctorCode(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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\"," + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " t.complaint_id as \"complaintId\"," + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -389,6 +420,9 @@ public class BaseComplaintService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!StringUtils.isNoneBlank(status)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql+=" and t.status !='-1'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(complaintId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //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); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorRoleDO>  rolelist= baseDoctorRoleDao.findByDoctorCode(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Boolean queryAll=false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (rolelist!=null&&rolelist.contains("admin")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            queryAll=true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer complaints=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer recieve=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.put("complaints",complaints); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        map.put("recieve",recieve); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        map.put("deal",deal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        map.put("cacel",cacel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        map.put("total",total); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 |