Java tutorial
/** * * * @author <a href="mailto:nytclizy@gmail.com">?</a> * @date 2015-8-17 */ package cn.com.sinosoft.cimp.tran.websit.service; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import org.hibernate.type.StringType; import org.hibernate.type.Type; import org.springframework.stereotype.Service; import cn.com.sinosoft.cimp.core.service.SimpleServiceImpl; import cn.com.sinosoft.cimp.core.service.model.PageParam; import cn.com.sinosoft.cimp.core.service.model.PagingResult; import cn.com.sinosoft.cimp.core.service.model.PagingSrcSql; /** * * * @author <a href="mailto:nytclizy@gmail.com">?</a> * @date 2015-8-17 */ @Service public class CreditpublicityService extends SimpleServiceImpl { public static Map<String, String[][]> INFOS = new HashMap<String, String[][]>(); private static Properties TYPE_PROPER; static { //?? String[] SHOW_G1 = new String[] { "FOODNAME", "DECLAREUNIT", "DATE_ACCEPTED", "DATE_REVIEW", "REVIEWRESULT" }; String[] SHOW_G2 = new String[] { "COMP_NAME", "REG_ADDR", "BUS_ADDR", "OCODE", "PRINCIPAL" }; String[] SHOW_G3 = new String[] { "COMP_NAME", "REG_ADDR", "BUS_ADDR", "OCODE", "PRINCIPAL", "HEALTH_LICENSE", "LICENSEEND" }; String[] SHOW_G4 = new String[] { "COMP_NAME", "REG_ADDR", "BUS_ADDR", "OCODE", "PRINCIPAL", "RECORD_DATE", "CLOSED_DATE" }; //PUNISHED_DESC FACT_DESC ? //? String[] SEARCH_G1 = new String[] { "FOODNAME", "DECLAREUNIT" }; String[] SEARCH_G2 = new String[] { "COMP_NAME", "HEALTH_LICENSE", "BUS_ADDR" }; String[] SEARCH_G3 = new String[] { "COMP_NAME", "BUS_ADDR" }; INFOS.put("0101000000", new String[][] { { "CIMP_ST_DOCTOR" }, { "DOCTOR_NAME", "DOCTOR_SEX", "PARCTICE_LEVEL", "PARCTICE_SORT", "DOCTOR_UNITNAME", "DOCTOR_WORK_CODE" }, { "DOCTOR_NAME", "DOCTOR_SEX", "PARCTICE_SORT", "DOCTOR_UNITNAME" } });//? INFOS.put("0102000000", new String[][] { { "CIMP_ST_NURSE" }, { "NURSE_NAME", "NURSE_SEX", "NURSE_UNITNAME", "NURSE_CERT_CODE" }, { "NURSE_NAME", "NURSE_SEX", "NURSE_UNITNAME" } });//? INFOS.put("0103000000", new String[][] { { "CIMP_ST_FOOD_LICENSE" }, SHOW_G1, SEARCH_G1 });//??? INFOS.put("0104000000", new String[][] { { "CIMP_ST_FOOD_LICENSE" }, SHOW_G1, SEARCH_G1 });//????? INFOS.put("0105000000", new String[][] { { "CIMP_ST_FOOD_LICENSE" }, SHOW_G1, SEARCH_G1 });//?????? INFOS.put("0106000000", new String[][] { { "CIMP_ST_FOOD_LICENSE" }, SHOW_G1, SEARCH_G1 });//????? // INFOS.put("0110000000", new String[][]{{"CIMP_PI_DISINFECTANT"}, SHOW_G2, SEARCH_G2});//???? INFOS.put("0107000000", new String[][] { { "CIMP_ST_PUBLICPLACES" }, SHOW_G3, SEARCH_G2 });//??? INFOS.put("0109000000", new String[][] { { "CIMP_ST_DISINFECTANT" }, SHOW_G3, SEARCH_G2 });//???? INFOS.put("0108000000", new String[][] { { "CIMP_ST_WATER" }, SHOW_G3, SEARCH_G2 });//????? INFOS.put("0111000000", new String[][] { { "CIMP_ST_WATER" }, SHOW_G2, SEARCH_G3 });//?????? INFOS.put("0121000000", new String[][] { { "CIMP_ST_RADIATION" }, SHOW_G2, SEARCH_G3 });//??? INFOS.put("0120000000", new String[][] { { "CIMP_ST_OCC_SERVICES" }, SHOW_G3, SEARCH_G3 });//???? /**/ INFOS.put("0201010000", new String[][] { { "CIMP_ST_DISCIPLINE" }, SHOW_G4, SEARCH_G3 }); INFOS.put("0202020000", new String[][] { { "CIMP_ST_DISCIPLINE" }, SHOW_G4, SEARCH_G3 }); INFOS.put("0208070000", new String[][] { { "CIMP_ST_DISCIPLINE" }, SHOW_G4, SEARCH_G3 }); INFOS.put("0203050000", new String[][] { { "CIMP_ST_DISCIPLINE" }, SHOW_G4, SEARCH_G3 }); INFOS.put("0204030000", new String[][] { { "CIMP_ST_DISCIPLINE" }, SHOW_G4, SEARCH_G3 }); INFOS.put("0205040000", new String[][] { { "CIMP_ST_DISCIPLINE" }, SHOW_G4, SEARCH_G3 }); INFOS.put("0206080000", new String[][] { { "CIMP_ST_DISCIPLINE" }, SHOW_G4, SEARCH_G3 }); INFOS.put("0207020000", new String[][] { { "CIMP_ST_DISCIPLINE" }, SHOW_G4, SEARCH_G3 }); INFOS.put("0401000000", new String[][] { { "CIMP_ST_EX_DONATE_BLOOD" }, { "NAME", "SEX", "BIRTHDATE", "DATE_BLOOD", "TYPE_BLOOD", "QUANTITY_BLOOD" }, { "NAME", "SEX" } });// } /** * ?? * * @param type * @param pageParam * @return * @author <a href="mailto:nytclizy@gmail.com">?</a> */ public PagingResult getCreditpublicityInfos(String type, PageParam pageParam) { if (null == TYPE_PROPER) { TYPE_PROPER = new Properties(); try { InputStream is = getClass().getClassLoader().getResourceAsStream("searchType.properties"); TYPE_PROPER.load(is); } catch (IOException e) { e.printStackTrace(); } } List<String> simpleSearch = new ArrayList<String>() { { add("0101000000"); add("0102000000"); add("0107000000"); add("0109000000"); add("0108000000"); add("0120000000"); add("0121000000"); add("0401000000"); }//?;?;???;????;????? //???;????; }; List<String> foodSearch = new ArrayList<String>() { { add("0103000000"); add("0104000000"); add("0105000000"); add("0106000000"); }//???;?????;??????;????? }; List<String> discipline = new ArrayList<String>() { { add("0201010000"); add("0202020000"); add("0208070000"); add("0203050000"); add("0204030000"); add("0205040000"); add("0206080000"); add("0207020000"); } }; if ("0111000000".equals(type)) {//?????? return getSeWarterInfos(type, pageParam); } else if (foodSearch.contains(type)) {//? return getFoodSearchInfos(type, TYPE_PROPER.getProperty("food_" + type), pageParam); } else if (simpleSearch.contains(type)) {//? return getSimplePubsearchInfos(type, pageParam); } else if (discipline.contains(type)) {//? return getDisciplineSearchInfos(type, TYPE_PROPER.getProperty("dicipline_" + type), pageParam); } return null; } /** * * * @Method: getSeWarterInfos * @Method Description: ?????? * @Input parameters:@param type * @Input parameters:@param params * @Input parameters:@param pageParam * @Input parameters:@return * @Return parameters:PagingResult * @Auther:ZhangPan * @Date: 2015-9-29 ?6:38:14 * @Throws: exception * */ public PagingResult getSeWarterInfos(String type, PageParam pageParam) { PagingSrcSql srcSql = new PagingSrcSql(); StringBuffer sqlb = new StringBuffer(); List<Object> values = new ArrayList<Object>(); List<Type> types = new ArrayList<Type>(); sqlb.append(" SELECT " + getFieldNamesByType(type) + " FROM " + getTabNameByType(type) + " WHERE 1=1 "); //?????? sqlb.append(" and COMP_TYPE LIKE '0203%'"); addDateLimit(sqlb); srcSql.setSrcSql(sqlb.toString()); srcSql.setTypes(types.toArray(new Type[0])); srcSql.setValues(values.toArray()); return pagingSearch(pageParam, srcSql); } /** * ?- * * * @param sb * @author <a href="mailto:nytclizy@gmail.com">?</a> */ private void addDateLimit(StringBuffer sb) { sb.append(" and DATE_DATA_ACCESS >= add_months(sysdate, -1) order by DATE_DATA_ACCESS desc "); } /** * * * @Method: getDisciplineSearchInfos * @Method Description: ? * @Input parameters:@param type * @Input parameters:@param specialtyPrimary ??? * @Input parameters:@param params * @Input parameters:@param pageParam * @Input parameters:@return * @Return parameters:PagingResult * @Auther:ZhangPan * @Date: 2015-9-29 ?6:15:54 * @Throws: exception * */ public PagingResult getDisciplineSearchInfos(String type, String specialtyPrimary, PageParam pageParam) { PagingSrcSql srcSql = new PagingSrcSql(); StringBuffer sqlb = new StringBuffer(); List<Object> values = new ArrayList<Object>(); List<Type> types = new ArrayList<Type>(); sqlb.append(" SELECT " + getFieldNamesByType(type) + " , getpunished(DIS_ID) PUNISHED_DESC " + " , getillegal(DIS_ID) FACT_DESC " + " FROM CIMP_ST_DISCIPLINE " + " WHERE 1=1 "); //??? sqlb.append(" and SPECIALTY_PRIMARY like ?"); types.add(StringType.INSTANCE); values.add(specialtyPrimary + "%"); addDateLimit(sqlb); srcSql.setSrcSql(sqlb.toString()); srcSql.setTypes(types.toArray(new Type[0])); srcSql.setValues(values.toArray()); return pagingSearch(pageParam, srcSql); } /** * * * @Method: getFoodSearchInfos * @Method Description: ??? * @Input parameters:@param type * @Input parameters:@param produceType * @Input parameters:@param params * @Input parameters:@param pageParam * @Input parameters:@return * @Return parameters:PagingResult * @Auther:ZhangPan * @Date: 2015-9-29 ?10:39:22 * @Throws: exception * */ private PagingResult getFoodSearchInfos(String type, String produceType, PageParam pageParam) { PagingSrcSql srcSql = new PagingSrcSql(); StringBuffer sqlb = new StringBuffer(); List<Object> values = new ArrayList<Object>(); List<Type> types = new ArrayList<Type>(); sqlb.append(" SELECT " + getFieldNamesByType(type) + " FROM " + getTabNameByType(type) + " WHERE 1=1 "); //? sqlb.append(" and PRODUCT_TYPE = ?"); types.add(StringType.INSTANCE); values.add(produceType); addDateLimit(sqlb); srcSql.setSrcSql(sqlb.toString()); srcSql.setTypes(types.toArray(new Type[0])); srcSql.setValues(values.toArray()); return pagingSearch(pageParam, srcSql); } /** * * * @Method: getSimplePubsearchInfos * @Method Description: ? * @Input parameters:@param type * @Input parameters:@param params * @Input parameters:@param pageParam * @Input parameters:@return * @Return parameters:PagingResult * @Auther:ZhangPan * @Date: 2015-9-28 ?3:29:28 * @Throws: exception * */ private PagingResult getSimplePubsearchInfos(String type, PageParam pageParam) { PagingSrcSql srcSql = new PagingSrcSql(); StringBuffer sqlb = new StringBuffer(); List<Object> values = new ArrayList<Object>(); List<Type> types = new ArrayList<Type>(); sqlb.append(" SELECT " + getFieldNamesByType(type) + " FROM " + getTabNameByType(type) + " WHERE 1=1 "); addDateLimit(sqlb); srcSql.setSrcSql(sqlb.toString()); srcSql.setTypes(types.toArray(new Type[0])); srcSql.setValues(values.toArray()); return pagingSearch(pageParam, srcSql); } /** * ???? * * * @param type * @return * @author <a href="mailto:nytclizy@gmail.com">?</a> */ private String getTabNameByType(String type) { return INFOS.get(type)[0][0]; } /** * ???? * * * @param type * @return * @author <a href="mailto:nytclizy@gmail.com">?</a> */ private String getFieldNamesByType(String type) { String ret = " "; String[] fieldNames = INFOS.get(type)[1]; for (String fieldName : fieldNames) { ret += fieldName + ","; } if (ret.endsWith(",")) { ret = ret.substring(0, ret.length() - 1); } return ret; } }