cn.com.sinosoft.cimp.tran.websit.service.CreditpublicityService.java Source code

Java tutorial

Introduction

Here is the source code for cn.com.sinosoft.cimp.tran.websit.service.CreditpublicityService.java

Source

/**
 * 
 *
 * @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;
    }

}