| 
					
				 | 
			
			
				@ -11,12 +11,13 @@ import com.yihu.jw.base.service.org.tree.TreeNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.base.service.user.UserService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.base.util.ConstantUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.base.util.JavaBeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.org.BaseOrgDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.org.BaseOrgSaasDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.org.BaseOrgUserDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.user.UserDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.org.dao.BaseOrgDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.base.wx.WxGraphicMessageVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.base.wx.WxReplySceneVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.utils.StringUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.utils.hibernate.HibenateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.mysql.query.BaseJpaService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -25,12 +26,12 @@ 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 com.yihu.jw.entity.base.org.BaseOrgDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.util.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import sun.misc.Unsafe; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.logging.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -76,6 +77,8 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private HibenateUtils hibenateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseOrgUserDao  baseOrgUserDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WlyyHospitalSysDictDao hospitalSysDictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${wechat.flag}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private boolean flag; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -86,43 +89,27 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param orgStatus 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject queryOrgBaseInfoList(String codeOrName,String orgStatus,String orgType,int page,int size,String wechatId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject queryOrgBaseInfoList(String codeOrName,String orgStatus,String orgType,int page,int size,String wechatId,String userId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int start = 0 == page ? page++ : (page - 1) * size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int end = 0 == size ? 15 : page * size; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String codeOrNameValue = null == codeOrName ? "" : codeOrName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String sql = "select id as \"id\",code as \"code\",name as \"name\",case del when 1 then '有效' else '失效' end as status as \"del\",concat(province_name,city_name,town_name,address) as \"address\" " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " from base_org " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " where " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " ((code like '{code}' or ''='{code}')  and (del = '{orgStatus}' or ''='{orgStatus}'))" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " or " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " ((name like '{name}' or ''='{name}') and (del = '{orgStatus}' or ''='{orgStatus}'))" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " and" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " (del = '{orgStatus}' or ''='{orgStatus}')" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                "  order by create_time desc "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String finalSql = sql 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                .replace("{code}", "%" + codeOrNameValue + "%") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                .replace("{name}", "%" + codeOrNameValue + "%") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                .replace("{orgStatus}", null == orgStatus ? "" : orgStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String countSql = "SELECT count(id)" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " FROM base_org " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " WHERE " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " ((code like '{code}' or ''='{code}')  and (del = '{orgStatus}' or ''='{orgStatus}'))" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " OR " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " ((name like '{name}' or ''='{name}') and (del = '{orgStatus}' or ''='{orgStatus}'))" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " AND" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                " (del = '{orgStatus}' OR ''='{orgStatus}')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String finalCountSql = countSql 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                .replace("{code}", "%" + codeOrNameValue + "%") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                .replace("{name}", "%" + codeOrNameValue + "%") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                .replace("{orgStatus}", null == orgStatus ? "" : orgStatus); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Logger.getAnonymousLogger().info("finalSql="+finalSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(finalSql,page,size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Logger.getAnonymousLogger().info("finalCountSql="+finalCountSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String filters = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtil.isBlank(userId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           //判断当前用户是否不需要过滤测试机构 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<WlyyHospitalSysDictDO>  dictDOs = hospitalSysDictDao.findByDictNameAndDictCode("jkzl_user",userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(dictDOs.size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //需要过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String sql = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<Map<String,Object>> list =  jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(list.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    String orgCodes = String.valueOf(list.get(0).get("orgCodes")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    orgCodes = orgCodes.replaceAll(",","','"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    filters = " and code not in ('"+orgCodes+"')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String codeOrNameValue = null == codeOrName ? "" : codeOrName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String sql = "SELECT\n" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "\tID AS \"id\",\n" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "\tcode AS \"code\",\n" + 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -154,6 +141,9 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (!StringUtil.isBlank(orgType)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    sql+=" and type = '"+orgType+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(!StringUtil.isBlank(filters)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    sql+= filters; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql+="  ORDER BY\n" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "\tcreate_time DESC"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String finalSql = sql; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -200,6 +190,9 @@ public class BaseOrgService extends BaseJpaService<BaseOrgDO, BaseOrgDao> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!StringUtil.isBlank(orgStatus)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            countSql+=" and del = '"+orgStatus+"'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(!StringUtil.isBlank(filters)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            countSql+= filters; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Logger.getAnonymousLogger().info("finalCountSql="+countSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer count = jdbcTemplate.queryForObject(countSql, Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("count", count); 
			 |