Java tutorial
package cn.com.sinosoft.cimp.recordsummarize.datadeduplication.service.impl; import java.lang.reflect.Field; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.Map.Entry; import javax.annotation.Resource; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.hibernate.Query; import org.hibernate.transform.Transformers; import org.hibernate.type.StringType; import org.hibernate.type.Type; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.com.sinosoft.cimp.auth.permmgr.model.UserVO; import cn.com.sinosoft.cimp.common.util.DataHandleUtil; import cn.com.sinosoft.cimp.core.dao.SimpleBaseDao; import cn.com.sinosoft.cimp.core.service.SimpleServiceImpl; import cn.com.sinosoft.cimp.core.service.model.FormResult; 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; import cn.com.sinosoft.cimp.personnelManager.model.PersonDemo; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoBlaObjectInvolved; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoBlaUnit; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoDiscipline; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoDisinfectant; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoDoctor; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoExDonateBlood; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoNurse; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoOccServices; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoPublicplaces; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoRadiation; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpCoWater; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.CimpDeduplicateLog; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.PerCoDisinfectant; import cn.com.sinosoft.cimp.recordsummarize.datadeduplication.model.PerCoWater; /** * * @author wang * */ @Service("dataDeduplicationService") public class DataDeduplicationService extends SimpleServiceImpl { @Resource SimpleBaseDao dao; @Autowired private HibernateTemplate hibernateTemplate; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date; //? public String queryUserOrg() { Subject currentUser = SecurityUtils.getSubject(); Session sessions = currentUser.getSession(); UserVO user = (UserVO) sessions.getAttribute("loginuser"); String queryFieldNameSql = "select ORG_CODE from t_auth_user where ID='" + user.getId() + "'"; String userOrg = dao.executeSql(queryFieldNameSql); return userOrg; } //??? public List<Map<String, Object>> queryCreditItems(String typeInfoId) { List<Map<String, Object>> list = null; Map<String, Object> obj = null; String userOrg = queryUserOrg(); if (typeInfoId != null && !typeInfoId.isEmpty()) { String sql = "select CR_CODE, NAME_TABLE from DIC_CREDIT_RECORD_MANAGEMENT where CR_CODE LIKE '" + typeInfoId + "%' and OWNERSHIP_MECHANISM='" + userOrg + "'"; list = dao.qryBySql(sql); for (int i = 0; i < list.size(); i++) { obj = list.get(i); System.out.println(obj.get("CR_CODE")); System.out.println(obj.get("NAME_TABLE")); } } return list; } //?? public List<Map<String, Object>> queryMergeRule(String crCode) { List<Map<String, Object>> list = null; if (crCode != null && !crCode.isEmpty()) { String sql = "select t.name_en,t.name_zh,t.is_co_mergeprimaryrule,t.is_co_mergedeputyrule from dic_column_list t " + "where (t.is_co_mergeprimaryrule = 'T' or " + "t.is_co_mergedeputyrule = 'T') and t.cr_code =" + crCode; System.out.println(sql); list = dao.qryBySql(sql); } return list; } //?? public String queryCreditItemTblName(String creditItemID) { String tableName = null; if (creditItemID != null && !creditItemID.isEmpty()) { String queryCreditItemsSql = "select CODE_ORIGINAL_TABLE from DIC_CREDIT_RECORD_MANAGEMENT where CR_CODE='" + creditItemID + "'"; tableName = dao.executeSql(queryCreditItemsSql); } return tableName; } //ID?? public String queryCreditItemTableIDField(String creditItemID) { String IDFieldName = null; if (creditItemID != null && !creditItemID.isEmpty()) { String queryIDFieldNameSql = "select NAME_EN from DIC_COLUMN_LIST where is_primary_key='01' and cr_code='" + creditItemID + "'"; IDFieldName = dao.executeSql(queryIDFieldNameSql); } return IDFieldName; } //?? public String queryCreditItemTableFieldName(String sql) { String FieldName = null; if (sql != null && !sql.isEmpty()) { FieldName = dao.executeSql(sql); } return FieldName; } //? public PagingResult queryRecordEntry(Map<String, String> params, PageParam pageParams) { System.out.println("----0------"); PagingSrcSql srcSql = getRecordEntrySql(params); String orderCol = getOrderCol(params); if (orderCol != null && orderCol != "") { params.put("orderCol", orderCol); } if (srcSql != null && srcSql.getSrcSql() != "") { return pagingSearch(params, pageParams, srcSql); } else { return null; } } //orderCol,sql private String getOrderCol(Map<String, String> params) { System.out.println("----2------"); String boxT = params.get("boxT"); String ruleMin = ""; if (boxT != null && boxT.length() > 0) { ruleMin = boxT.split(",")[0]; } return ruleMin; } //SQL private PagingSrcSql getRecordEntrySql(Map<String, String> params) { System.out.println("----1------"); PagingSrcSql srcSql = new PagingSrcSql(); StringBuffer sb = new StringBuffer(); List<Object> values = new ArrayList<Object>(); List<Type> types = new ArrayList<Type>(); String tableNameCode = params.get("recordItem"); // String organOrIndividual = params.get("organizationOrIndividual");// String orgOrIndividualName = queryCreditItemTableFieldName( "select name_en from dic_column_list where is_orgorindividualname='01' and cr_code='" + tableNameCode + "'"); String colTableName = queryCreditItemTableFieldName( "select CODE_COLLECTION_TABLE from dic_credit_record_management where cr_code='" + tableNameCode + "'"); // String colTableName=queryCreditItemTableFieldName("select CODE_original_TABLE from dic_credit_record_management where cr_code='"+tableNameCode+"'"); String boxT = params.get("boxT");// String boxF = params.get("boxF");// String ruleMin = "";//?? String ruleMax = "";//?? if (boxT != null && boxT.length() > 0) { ruleMin = boxT.split(",")[0]; if (boxF != null && boxF.length() > 0) { ruleMax = boxT + "," + boxF; } else { ruleMax = boxT; } sb.append("select t.* from " + colTableName + " t where " + ruleMin); sb.append(" in (select c." + ruleMin + " from " + colTableName + " c where state_valid = '02' "); if (organOrIndividual != null && organOrIndividual.length() > 0) { sb.append("and c." + orgOrIndividualName + " like '%" + organOrIndividual + "%'"); } sb.append(" group by " + ruleMax + " having count(1) > 1) and state_valid = '02' order by " + ruleMin); } if (sb != null && sb.length() > 0) { srcSql.setSrcSql(sb.toString()); srcSql.setTypes(types.toArray(new Type[0])); srcSql.setValues(values.toArray()); return srcSql; } else { return null; } } ///////////////////////////////////////////// public Integer findTotalPage(String sql, String crCode, String boxT, List<Map<String, Object>> params) { StringBuffer finalSql = new StringBuffer(); StringBuffer sb = new StringBuffer(); String colTableName = ""; StringBuffer temp = new StringBuffer(); colTableName = queryCreditItemTableFieldName( "select CODE_COLLECTION_TABLE from dic_credit_record_management where cr_code='" + crCode + "'"); // String s1 = colTableName.substring(8); // String s2 = "CIMP_"+s1; // sql = sql.replace(s2, colTableName); String ruleMin = "";//?? String ruleMax = "";//?? if (boxT != null && boxT.length() > 0) { ruleMin = boxT.split(",")[0]; ruleMax = boxT; sb.append("select t.* from " + colTableName + " t where " + ruleMin); sb.append(" in (select c." + ruleMin + " from " + colTableName + " c where c.state_valid = '02' "); if (colTableName.equals("CIMP_CO_FOOD_LICENSE")) { if (crCode.equals("0103000000")) { sb.append(" and c.product_type like '?' "); } if (crCode.equals("0104000000")) { sb.append(" and c.product_type like '???' "); } if (crCode.equals("0105000000")) { sb.append(" and c.product_type like '????' "); } if (crCode.equals("0106000000")) { sb.append(" and c.product_type like '?' "); } } if (colTableName.equals("CIMP_CO_WATER")) { if (crCode.equals("0111000000")) {// sb.append(" and c.comp_type like '0203%' "); } } if (colTableName.equals("CIMP_CO_DISCIPLINE")) { if (crCode.equals("0201010000")) {//??? sb.append(" and c.specialty_primary like '01%' "); } if (crCode.equals("0206080000")) {//??? sb.append(" and c.specialty_primary like '08%' "); } if (crCode.equals("0207020000")) {//?????? sb.append(" and c.specialty_primary like '0203%' "); } if (crCode.equals("0203050000")) {//??? sb.append(" and c.specialty_primary like '05%' "); } if (crCode.equals("0204030000")) {//?)??? sb.append(" and c.specialty_primary like '03%' "); } if (crCode.equals("0205040000")) {//??? sb.append(" and c.specialty_primary like '04%' "); } if (crCode.equals("0208070000")) {//???---??like '07%' sb.append(" and c.specialty_primary like '07%' "); } if (crCode.equals("0202020000")) {//??? sb.append(" and c.specialty_primary like '02%' "); } } // sb.append(" group by "+ruleMax+" having count(1) > 1) and state_valid = '02' order by "+ruleMin); sb.append(" group by " + ruleMax + " having count(1) > 1) and state_valid = '02' "); if (colTableName.equals("CIMP_CO_FOOD_LICENSE")) { if (crCode.equals("0103000000")) { sb.append(" and t.product_type like '?' "); } if (crCode.equals("0104000000")) { sb.append(" and t.product_type like '???' "); } if (crCode.equals("0105000000")) { sb.append(" and t.product_type like '????' "); } if (crCode.equals("0106000000")) { sb.append(" and t.product_type like '?' "); } } if (colTableName.equals("CIMP_CO_WATER")) { if (crCode.equals("0111000000")) {// sb.append(" and t.comp_type like '0203%' "); } } if (colTableName.equals("CIMP_CO_DISCIPLINE")) { if (crCode.equals("0201010000")) {//??? sb.append(" and t.specialty_primary like '01%' "); } if (crCode.equals("0206080000")) {//??? sb.append(" and t.specialty_primary like '08%' "); } if (crCode.equals("0207020000")) {//?????? sb.append(" and t.specialty_primary like '0203%' "); } if (crCode.equals("0203050000")) {//??? sb.append(" and t.specialty_primary like '05%' "); } if (crCode.equals("0204030000")) {//?)??? sb.append(" and t.specialty_primary like '03%' "); } if (crCode.equals("0205040000")) {//??? sb.append(" and t.specialty_primary like '04%' "); } if (crCode.equals("0208070000")) {//???---??like '07%' sb.append(" and t.specialty_primary like '07%' "); } if (crCode.equals("0202020000")) {//??? sb.append(" and t.specialty_primary like '02%' "); } } sb.append(" order by " + ruleMin); } if (!params.isEmpty() || params.size() != 0) { int sum = 0; temp.append(" select distinct "); temp.append(ruleMin); temp.append(" from ( "); temp.append(sb); temp.append(" ) where 1 =1 "); temp.append(sql); Query query = hibernateTemplate.getSessionFactory().openSession().createSQLQuery(temp.toString()); if (params.size() != 0) {//-----------------------------------> for (Map<String, Object> map : params) { if (map.get("symbol").equals("R")) { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), (String) entry.getValue()); } } } else { if (map.get("fuzzy").equals("T")) { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), "%" + (String) entry.getValue() + "%"); } } } else { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), (String) entry.getValue()); } } } } } } List<String> obj = query.list(); if (obj.size() != 0) { String ruleStr = getSqlStrByList(obj, 999, ruleMin); // for(int i=0;i<obj.size();i++){ temp.delete(0, temp.length()); temp.append("select count(*) quantity from "); temp.append(colTableName); temp.append(" where "); // temp.append(ruleMin); // temp.append(" in (:obj) "); temp.append(ruleStr); temp.append(" and state_valid = '02' "); if (temp != null && temp.length() > 0) { Query qry = hibernateTemplate.getSessionFactory().openSession().createSQLQuery(temp.toString()); // qry.setParameterList("obj", obj); qry.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); Map map = (Map) qry.list().get(0); BigDecimal b = (BigDecimal) map.get("QUANTITY"); sum = b.intValue(); } // } } return sum; } else { temp.append("select count(*) quantity from ( "); temp.append(sb); temp.append(" ) "); } // StringBuffer sbSql = new StringBuffer(getSql(sql,crCode,boxT)); // finalSql.append("select count(*) quantity from ( "); // finalSql.append(sbSql + " )"); if (temp != null && temp.length() > 0) { Query query = hibernateTemplate.getSessionFactory().openSession().createSQLQuery(temp.toString()); query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); Map map = (Map) query.list().get(0); BigDecimal b = (BigDecimal) map.get("QUANTITY"); return b.intValue(); } return 0; } /** * Example: * List sqhlist=[aa,bb,cc,dd,ee,ff,gg] ; * Test.getSqlStrByList(sqhList,3,"SHENQINGH")= * "SHENQING IN ('aa','bb','cc') OR SHENQINGH IN ('dd','ee','ff') OR SHENQINGH IN ('gg')" * * 1000????splitNumsqlin ? * @param sqhList ?List * @param splitNum , 1000 * @param columnName SQL?? Z.SHENQINGH * @return */ public String getSqlStrByList(List sqhList, int splitNum, String columnName) { if (splitNum > 1000) //?sql??1000. return null; StringBuffer sql = new StringBuffer(""); if (sqhList != null) { sql.append(" ").append(columnName).append(" IN ( "); for (int i = 0; i < sqhList.size(); i++) { sql.append("'").append(sqhList.get(i) + "',"); if ((i + 1) % splitNum == 0 && (i + 1) < sqhList.size()) { sql.deleteCharAt(sql.length() - 1); sql.append(" ) OR ").append(columnName).append(" IN ("); } } sql.deleteCharAt(sql.length() - 1); sql.append(" )"); } return sql.toString(); } public List<Map<String, Object>> findByPage(String sql, String crCode, String boxT, List<Map<String, Object>> params, String page, String rows) { // StringBuffer orignalSql = new StringBuffer(getSql(sql,crCode,boxT)); StringBuffer orignalSql = new StringBuffer(); StringBuffer finalSql = new StringBuffer(); StringBuffer sb = new StringBuffer(); StringBuffer temp = new StringBuffer(); String colTableName = queryCreditItemTableFieldName( "select CODE_COLLECTION_TABLE from dic_credit_record_management where cr_code='" + crCode + "'"); // String s1 = colTableName.substring(8); // String s2 = "CIMP_"+s1; // sql = sql.replace(s2, colTableName); String ruleMin = "";//?? String ruleMax = "";//?? String coltable = dao .executeSql("SELECT T.QUERY_COL_RELEASE_SQL FROM DIC_CREDIT_RECORD_MANAGEMENT T WHERE T.CR_CODE='" + crCode + "'"); if (boxT != null && boxT.length() > 0) { ruleMin = boxT.split(",")[0]; ruleMax = boxT; // sb.append("select t.* from "+colTableName+" t where "+ruleMin); sb.append(coltable + " and " + ruleMin); sb.append(" in (select c." + ruleMin + " from " + colTableName + " c where c.state_valid = '02' "); if (colTableName.equals("CIMP_CO_FOOD_LICENSE")) { if (crCode.equals("0103000000")) { sb.append(" and c.product_type like '?' "); } if (crCode.equals("0104000000")) { sb.append(" and c.product_type like '???' "); } if (crCode.equals("0105000000")) { sb.append(" and c.product_type like '????' "); } if (crCode.equals("0106000000")) { sb.append(" and c.product_type like '?' "); } } if (colTableName.equals("CIMP_CO_WATER")) { if (crCode.equals("0111000000")) {// sb.append(" and c.comp_type like '0203%' "); } } if (colTableName.equals("CIMP_CO_DISCIPLINE")) { if (crCode.equals("0201010000")) {//??? sb.append(" and c.specialty_primary like '01%' "); } if (crCode.equals("0206080000")) {//??? sb.append(" and c.specialty_primary like '08%' "); } if (crCode.equals("0207020000")) {//?????? sb.append(" and c.specialty_primary like '0203%' "); } if (crCode.equals("0203050000")) {//??? sb.append(" and c.specialty_primary like '05%' "); } if (crCode.equals("0204030000")) {//?)??? sb.append(" and c.specialty_primary like '03%' "); } if (crCode.equals("0205040000")) {//??? sb.append(" and c.specialty_primary like '04%' "); } if (crCode.equals("0208070000")) {//???---??like '07%' sb.append(" and c.specialty_primary like '07%' "); } if (crCode.equals("0202020000")) {//??? sb.append(" and c.specialty_primary like '02%' "); } } // sb.append(" group by "+ruleMax+" having count(1) > 1) and state_valid = '02' order by "+ruleMin); sb.append(" group by " + ruleMax + " having count(1) > 1) and state_valid = '02' "); if (colTableName.equals("CIMP_CO_FOOD_LICENSE")) { if (crCode.equals("0103000000")) { sb.append(" and product_type like '?' "); } if (crCode.equals("0104000000")) { sb.append(" and product_type like '???' "); } if (crCode.equals("0105000000")) { sb.append(" and product_type like '????' "); } if (crCode.equals("0106000000")) { sb.append(" and product_type like '?' "); } } if (colTableName.equals("CIMP_CO_WATER")) { if (crCode.equals("0111000000")) {// sb.append(" and comp_type like '0203%' "); } } if (colTableName.equals("CIMP_CO_DISCIPLINE")) { if (crCode.equals("0201010000")) {//??? sb.append(" and specialty_primary like '01%' "); } if (crCode.equals("0206080000")) {//??? sb.append(" and specialty_primary like '08%' "); } if (crCode.equals("0207020000")) {//?????? sb.append(" and specialty_primary like '0203%' "); } if (crCode.equals("0203050000")) {//??? sb.append(" and specialty_primary like '05%' "); } if (crCode.equals("0204030000")) {//?)??? sb.append(" and specialty_primary like '03%' "); } if (crCode.equals("0205040000")) {//??? sb.append(" and specialty_primary like '04%' "); } if (crCode.equals("0208070000")) {//???---??like '07%' sb.append(" and specialty_primary like '07%' "); } if (crCode.equals("0202020000")) {//??? sb.append(" and specialty_primary like '02%' "); } } sb.append(" order by " + ruleMin); } if (!params.isEmpty() || params.size() != 0) { temp.append(" select "); temp.append(ruleMin); temp.append(" from ( "); temp.append(sb); temp.append(" ) where 1 = 1 "); temp.append(sql); Query query = hibernateTemplate.getSessionFactory().openSession().createSQLQuery(temp.toString()); if (params.size() != 0) {//-----------------------------------> for (Map<String, Object> map : params) { if (map.get("symbol").equals("R")) { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), (String) entry.getValue()); } } } else { if (map.get("fuzzy").equals("T")) { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), "%" + (String) entry.getValue() + "%"); } } } else { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), (String) entry.getValue()); } } } } } } List<String> obj = query.list(); if (obj.size() != 0) { String ruleStr = getSqlStrByList(obj, 999, ruleMin); finalSql.append("SELECT * "); // finalSql.append(" * "); finalSql.append(" FROM ( "); finalSql.append(" SELECT ORINGAL.*, ROWNUM rnum "); // finalSql.append(" ORINGAL.*, ROWNUM rnum "); finalSql.append(" FROM ( "); // finalSql.append(" select * from "+colTableName+" where "+ruleMin+" in (:obj) and state_valid='02' order by "+ruleMax+"");//---------- finalSql.append(" select * from ( " + sb + " ) where " + ruleStr + " and state_valid='02' order by " + ruleMax); finalSql.append(" ) ORINGAL"); finalSql.append(" WHERE ROWNUM <= " + Integer.parseInt(page) * (Integer.parseInt(rows))); finalSql.append(" ) "); finalSql.append(" WHERE "); finalSql.append(" rnum > " + (Integer.parseInt(page) - 1) * (Integer.parseInt(rows))); Query qry = hibernateTemplate.getSessionFactory().openSession().createSQLQuery(finalSql.toString()); // qry.setParameterList("obj", obj); qry.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); DataHandleUtil u = new DataHandleUtil(); List<Map<String, Object>> newItems = u.idCardHandlerItem(qry.list(), "ID_CARD"); return newItems; } return new ArrayList<Map<String, Object>>(); } else { finalSql.append("SELECT"); finalSql.append(" * "); finalSql.append(" FROM ( "); finalSql.append(" SELECT "); finalSql.append(" ORINGAL.*, ROWNUM rnum "); finalSql.append(" FROM ( "); finalSql.append(sb); finalSql.append(" ) ORINGAL"); finalSql.append(" ) "); finalSql.append(" WHERE "); finalSql.append(" rnum > " + (Integer.parseInt(page) - 1) * (Integer.parseInt(rows))); finalSql.append(" AND rnum <= " + Integer.parseInt(page) * (Integer.parseInt(rows))); Query query = hibernateTemplate.getSessionFactory().openSession().createSQLQuery(finalSql.toString()); if (params.size() != 0) { for (int i = 0; i < params.size(); i++) { Map<String, Object> map = params.get(i); if (map.get("symbol").equals("R")) { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), (String) entry.getValue()); } } } else { if (map.get("fuzzy").equals("T")) { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), "%" + (String) entry.getValue() + "%"); } } } else { for (Entry<String, Object> entry : map.entrySet()) { if (!(entry.getKey().equals("fuzzy") || entry.getKey().equals("symbol"))) { query.setString(entry.getKey(), (String) entry.getValue()); } } } } } } query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); DataHandleUtil u = new DataHandleUtil(); List<Map<String, Object>> newItems = u.idCardHandlerItem(query.list(), "ID_CARD"); return newItems; } } public String getSql(String sql, String crCode, String boxT) { StringBuffer sb = new StringBuffer(); String colTableName = queryCreditItemTableFieldName( "select CODE_COLLECTION_TABLE from dic_credit_record_management where cr_code='" + crCode + "'"); String s1 = colTableName.substring(8); String s2 = "CIMP_" + s1; sql = sql.replace(s2, colTableName); String ruleMin = "";//?? String ruleMax = "";//?? if (boxT != null && boxT.length() > 0) { ruleMin = boxT.split(",")[0]; ruleMax = boxT; sb.append("select t.* from ("); sb.append(sql); sb.append(")t where " + ruleMin); sb.append(" in (select c." + ruleMin + " from " + colTableName + " c where state_valid = '02' "); sb.append(" group by " + ruleMax + " having count(1) > 1) order by " + ruleMin); } return sb.toString(); } ///////////////////////////////////////////////// //? public List<Map<String, Object>> querySelectedRecords(String idOne, String idTwo, String recordItem) { String tableName; // String tablePKFieldName=queryCreditItemTableIDField(recordItem); tableName = queryCreditItemTableFieldName( "select CODE_COLLECTION_TABLE from dic_credit_record_management where cr_code='" + recordItem + "'"); // tableName=queryCreditItemTableFieldName("select CODE_original_TABLE from dic_credit_record_management where cr_code='"+recordItem+"'"); String sql = "select * from " + tableName + " where uuid in ('" + idOne + "','" + idTwo + "')"; List<Map<String, Object>> list = dao.qryBySql(sql); return list; } //? @Transactional public Map<String, Object> mergeRecord(Map<String, Object> params) throws Exception { Map<String, Object> msg = new HashMap<String, Object>(); String tableCode = (String) params.get("tableCode"); String id = UUID.randomUUID().toString().replace("-", ""); org.hibernate.classic.Session hibsession = dao.getHibernateTemplate().getSessionFactory() .getCurrentSession(); boolean flag = false; Date tt = new Date(); String preid = (String) params.get("idOne"); if ("0101000000".equals(tableCode)) {//? CimpCoDoctor preobj = (CimpCoDoctor) hibsession.get(CimpCoDoctor.class, preid); CimpCoDoctor newobj = (CimpCoDoctor) bindData2Class(params, CimpCoDoctor.class, null); CimpCoDoctor finalobj = new CimpCoDoctor(); // BeanUtils.copyProperties(doctorNew , doctorOld , new String[]{}); // doctorOld .setUuid(id); // doctorOld .setState_release("02"); // hibsession.save(doctorOld ); // CimpCoDoctor doctor=(CimpCoDoctor) hibsession.get(CimpCoDoctor.class, preid); // doctor=(CimpCoDoctor) bindData2Class(params, CimpCoDoctor.class, null); // doctor.setUuid(id); // doctor.setState_release("02"); // hibsession.save(finalDoctor); // // Field[] field = doctorOld.getClass().getDeclaredFields(); // for (Field f : field) { // if (!f.getName().equals("uuid")) { // Field tempField = finalDoctor.getClass().getDeclaredField(f.getName()); // tempField.setAccessible(true); // Object val = tempField.get(doctorOld);// // if (val != null) { // tempField.set(finalDoctor, val); // } // // } // // } // Field[] field2 = doctorNew.getClass().getDeclaredFields(); // for (Field f : field2) { // if (!f.getName().equals("uuid")) { // Field tempField = finalDoctor.getClass().getDeclaredField(f.getName()); // tempField.setAccessible(true); // Object val = tempField.get(doctorNew);// // if (val != null) { // tempField.set(finalDoctor, val); // } // // } // // } reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); CimpCoDoctor preDoctorOne = dao.queryById((String) params.get("idTwo"), CimpCoDoctor.class); CimpCoDoctor preDoctorTwo = dao.queryById((String) params.get("idOne"), CimpCoDoctor.class); preDoctorOne.setState_valid("01"); preDoctorTwo.setState_valid("01"); hibsession.update(preDoctorTwo); hibsession.update(preDoctorOne); flag = true; msg.put("mark", "success"); } if ("0102000000".equals(tableCode)) {//? CimpCoNurse preNurseOne, preNurseTwo; CimpCoNurse preobj = (CimpCoNurse) hibsession.get(CimpCoNurse.class, preid); CimpCoNurse newobj = (CimpCoNurse) bindData2Class(params, CimpCoNurse.class, null); CimpCoNurse finalobj = new CimpCoNurse(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preNurseOne = dao.queryById((String) params.get("idTwo"), CimpCoNurse.class); preNurseTwo = dao.queryById((String) params.get("idOne"), CimpCoNurse.class); preNurseOne.setState_valid("01"); preNurseTwo.setState_valid("01"); hibsession.update(preNurseOne); hibsession.update(preNurseTwo); flag = true; msg.put("mark", "success"); } // if("0103000000".equals(tableCode)||"0104000000".equals(tableCode)||"0105000000".equals(tableCode)||"0106000000".equals(tableCode)){ if ("0103000000".equals(tableCode)) { //????---??? PerCoDisinfectant preDisinfectantOne, preDisinfectantTwo; PerCoDisinfectant preobj = (PerCoDisinfectant) hibsession.get(PerCoDisinfectant.class, preid); PerCoDisinfectant newobj = (PerCoDisinfectant) bindData2Class(params, PerCoDisinfectant.class, null); PerCoDisinfectant finalobj = new PerCoDisinfectant(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preDisinfectantOne = dao.queryById((String) params.get("idOne"), PerCoDisinfectant.class); preDisinfectantTwo = dao.queryById((String) params.get("idTwo"), PerCoDisinfectant.class); preDisinfectantOne.setState_valid("01"); preDisinfectantTwo.setState_valid("01"); hibsession.update(preDisinfectantOne); hibsession.update(preDisinfectantTwo); flag = true; msg.put("mark", "success"); } if ("0104000000".equals(tableCode)) { //??????---??? PerCoWater preWaterOne, preWaterTwo; PerCoWater preobj = (PerCoWater) hibsession.get(PerCoWater.class, preid); PerCoWater newobj = (PerCoWater) bindData2Class(params, PerCoWater.class, null); PerCoWater finalobj = new PerCoWater(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preWaterOne = dao.queryById((String) params.get("idOne"), PerCoWater.class); preWaterTwo = dao.queryById((String) params.get("idTwo"), PerCoWater.class); preWaterOne.setState_valid("01"); preWaterTwo.setState_valid("01"); hibsession.update(preWaterOne); hibsession.update(preWaterTwo); flag = true; msg.put("mark", "success"); } // if("0104000000".equals(tableCode)){//????? // // } // if("0105000000".equals(tableCode)){//?????? // // } // if("0106000000".equals(tableCode)){//????? // // } if ("0107000000".equals(tableCode)) {//??? CimpCoPublicplaces preOne, preTwo; CimpCoPublicplaces preobj = (CimpCoPublicplaces) hibsession.get(CimpCoPublicplaces.class, preid); CimpCoPublicplaces newobj = (CimpCoPublicplaces) bindData2Class(params, CimpCoPublicplaces.class, null); CimpCoPublicplaces finalobj = new CimpCoPublicplaces(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoPublicplaces.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoPublicplaces.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0108000000".equals(tableCode)) {//????? CimpCoWater preOne, preTwo; CimpCoWater preobj = (CimpCoWater) hibsession.get(CimpCoWater.class, preid); CimpCoWater newobj = (CimpCoWater) bindData2Class(params, CimpCoWater.class, null); CimpCoWater finalobj = new CimpCoWater(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoWater.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoWater.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0109000000".equals(tableCode)) {//???? CimpCoDisinfectant preOne, preTwo; CimpCoDisinfectant preobj = (CimpCoDisinfectant) hibsession.get(CimpCoDisinfectant.class, preid); CimpCoDisinfectant newobj = (CimpCoDisinfectant) bindData2Class(params, CimpCoDisinfectant.class, null); CimpCoDisinfectant finalobj = new CimpCoDisinfectant(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDisinfectant.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDisinfectant.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } // if("0110000000".equals(tableCode)){//???? // msg.put("mark", "success"); // return msg; // } if ("0111000000".equals(tableCode)) {//?????? CimpCoWater preOne, preTwo; CimpCoWater preobj = (CimpCoWater) hibsession.get(CimpCoWater.class, preid); CimpCoWater newobj = (CimpCoWater) bindData2Class(params, CimpCoWater.class, null); CimpCoWater finalobj = new CimpCoWater(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoWater.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoWater.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0112000000".equals(tableCode)) {//???? CimpCoRadiation preOne, preTwo; CimpCoRadiation preobj = (CimpCoRadiation) hibsession.get(CimpCoRadiation.class, preid); CimpCoRadiation newobj = (CimpCoRadiation) bindData2Class(params, CimpCoRadiation.class, null); CimpCoRadiation finalobj = new CimpCoRadiation(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoRadiation.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoRadiation.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0113000000".equals(tableCode)) {//?????? CimpCoOccServices preOne, preTwo; CimpCoOccServices preobj = (CimpCoOccServices) hibsession.get(CimpCoOccServices.class, preid); CimpCoOccServices newobj = (CimpCoOccServices) bindData2Class(params, CimpCoOccServices.class, null); CimpCoOccServices finalobj = new CimpCoOccServices(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setStateValid("02"); finalobj.setDateDataAccess(tt); finalobj.setStateRelease("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoOccServices.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoOccServices.class); preOne.setStateValid("01"); preTwo.setStateValid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0201010000".equals(tableCode)) {//??? CimpCoDiscipline preOne, preTwo; CimpCoDiscipline preobj = (CimpCoDiscipline) hibsession.get(CimpCoDiscipline.class, preid); CimpCoDiscipline newobj = (CimpCoDiscipline) bindData2Class(params, CimpCoDiscipline.class, null); CimpCoDiscipline finalobj = new CimpCoDiscipline(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDiscipline.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDiscipline.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0202020000".equals(tableCode)) {//??? CimpCoDiscipline preOne, preTwo; CimpCoDiscipline preobj = (CimpCoDiscipline) hibsession.get(CimpCoDiscipline.class, preid); CimpCoDiscipline newobj = (CimpCoDiscipline) bindData2Class(params, CimpCoDiscipline.class, null); CimpCoDiscipline finalobj = new CimpCoDiscipline(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDiscipline.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDiscipline.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0203050000".equals(tableCode)) {//??? CimpCoDiscipline preOne, preTwo; CimpCoDiscipline preobj = (CimpCoDiscipline) hibsession.get(CimpCoDiscipline.class, preid); CimpCoDiscipline newobj = (CimpCoDiscipline) bindData2Class(params, CimpCoDiscipline.class, null); CimpCoDiscipline finalobj = new CimpCoDiscipline(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDiscipline.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDiscipline.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0204030000".equals(tableCode)) {//?)??? CimpCoDiscipline preOne, preTwo; CimpCoDiscipline preobj = (CimpCoDiscipline) hibsession.get(CimpCoDiscipline.class, preid); CimpCoDiscipline newobj = (CimpCoDiscipline) bindData2Class(params, CimpCoDiscipline.class, null); CimpCoDiscipline finalobj = new CimpCoDiscipline(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDiscipline.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDiscipline.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0205040000".equals(tableCode)) {//??? CimpCoDiscipline preOne, preTwo; CimpCoDiscipline preobj = (CimpCoDiscipline) hibsession.get(CimpCoDiscipline.class, preid); CimpCoDiscipline newobj = (CimpCoDiscipline) bindData2Class(params, CimpCoDiscipline.class, null); CimpCoDiscipline finalobj = new CimpCoDiscipline(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDiscipline.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDiscipline.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0206080000".equals(tableCode)) {//??? CimpCoDiscipline preOne, preTwo; CimpCoDiscipline preobj = (CimpCoDiscipline) hibsession.get(CimpCoDiscipline.class, preid); CimpCoDiscipline newobj = (CimpCoDiscipline) bindData2Class(params, CimpCoDiscipline.class, null); CimpCoDiscipline finalobj = new CimpCoDiscipline(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDiscipline.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDiscipline.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0207020000".equals(tableCode)) {//?????? CimpCoDiscipline preOne, preTwo; CimpCoDiscipline preobj = (CimpCoDiscipline) hibsession.get(CimpCoDiscipline.class, preid); CimpCoDiscipline newobj = (CimpCoDiscipline) bindData2Class(params, CimpCoDiscipline.class, null); CimpCoDiscipline finalobj = new CimpCoDiscipline(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDiscipline.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDiscipline.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); // return msg; } if ("0208070000".equals(tableCode)) {//??? CimpCoDiscipline preOne, preTwo; CimpCoDiscipline preobj = (CimpCoDiscipline) hibsession.get(CimpCoDiscipline.class, preid); CimpCoDiscipline newobj = (CimpCoDiscipline) bindData2Class(params, CimpCoDiscipline.class, null); CimpCoDiscipline finalobj = new CimpCoDiscipline(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoDiscipline.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoDiscipline.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0401000000".equals(tableCode)) {//?? CimpCoExDonateBlood preOne, preTwo; CimpCoExDonateBlood preobj = (CimpCoExDonateBlood) hibsession.get(CimpCoExDonateBlood.class, preid); CimpCoExDonateBlood newobj = (CimpCoExDonateBlood) bindData2Class(params, CimpCoExDonateBlood.class, null); CimpCoExDonateBlood finalobj = new CimpCoExDonateBlood(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setState_valid("02"); finalobj.setDate_data_access(tt); finalobj.setState_release("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoExDonateBlood.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoExDonateBlood.class); preOne.setState_valid("01"); preTwo.setState_valid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } // if("0301000000".equals(tableCode)){//??? // msg.put("mark", "success"); // return msg; // } // if("0302000000".equals(tableCode)){//??? // msg.put("mark", "success"); // } if ("0303000000".equals(tableCode)) {//?? CimpCoBlaObjectInvolved preOne, preTwo; CimpCoBlaObjectInvolved preobj = (CimpCoBlaObjectInvolved) hibsession.get(CimpCoBlaObjectInvolved.class, preid); CimpCoBlaObjectInvolved newobj = (CimpCoBlaObjectInvolved) bindData2Class(params, CimpCoBlaObjectInvolved.class, null); CimpCoBlaObjectInvolved finalobj = new CimpCoBlaObjectInvolved(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setStateValid("02"); finalobj.setDateDataAccess(tt); finalobj.setStateRelease("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoBlaObjectInvolved.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoBlaObjectInvolved.class); preOne.setStateValid("01"); preTwo.setStateValid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if ("0304000000".equals(tableCode)) {//?? CimpCoBlaUnit preOne, preTwo; CimpCoBlaUnit preobj = (CimpCoBlaUnit) hibsession.get(CimpCoBlaUnit.class, preid); CimpCoBlaUnit newobj = (CimpCoBlaUnit) bindData2Class(params, CimpCoBlaUnit.class, null); CimpCoBlaUnit finalobj = new CimpCoBlaUnit(); reflect(preobj, newobj, finalobj); finalobj.setUuid(id); finalobj.setStateValid("02"); finalobj.setDateDataAccess(tt); finalobj.setStateRelease("01"); hibsession.save(finalobj); preOne = dao.queryById((String) params.get("idTwo"), CimpCoBlaUnit.class); preTwo = dao.queryById((String) params.get("idOne"), CimpCoBlaUnit.class); preOne.setStateValid("01"); preTwo.setStateValid("01"); hibsession.update(preOne); hibsession.update(preTwo); flag = true; msg.put("mark", "success"); } if (flag) { CimpDeduplicateLog deduplicateLog1 = new CimpDeduplicateLog(), deduplicateLog2 = new CimpDeduplicateLog(); Subject currentUser = SecurityUtils.getSubject(); Session sessions = currentUser.getSession(); UserVO user = (UserVO) sessions.getAttribute("loginuser"); String id1 = UUID.randomUUID().toString().replace("-", ""); String id2 = UUID.randomUUID().toString().replace("-", ""); deduplicateLog1.setId(id1); deduplicateLog2.setId(id2); deduplicateLog1.setPreRecordUUID(params.get("idOne").toString()); deduplicateLog2.setPreRecordUUID(params.get("idTwo").toString()); deduplicateLog1.setNewRecordUUID(id); deduplicateLog2.setNewRecordUUID(id); deduplicateLog1.setUserId(user.getId()); deduplicateLog2.setUserId(user.getId()); deduplicateLog1.setOperateDate(tt); deduplicateLog2.setOperateDate(tt); ; deduplicateLog1.setCreditTypeCode(tableCode.substring(0, 2)); deduplicateLog2.setCreditTypeCode(tableCode.substring(0, 2)); deduplicateLog1.setCreditItemCode(tableCode); deduplicateLog2.setCreditItemCode(tableCode); deduplicateLog1.setOperateType("01"); deduplicateLog2.setOperateType("01"); deduplicateLog1.setOrgCode(user.getOrgCode()); deduplicateLog2.setOrgCode(user.getOrgCode()); hibsession.save(deduplicateLog1); hibsession.save(deduplicateLog2); return msg; } msg.put("mark", "fail"); return msg; } @Transactional public boolean deleteRecordEntry(String[] id, String tableCode) { String tableName; tableName = queryCreditItemTableFieldName( "select CODE_COLLECTION_TABLE from dic_credit_record_management where cr_code='" + tableCode + "'"); String newID; Subject currentUser = SecurityUtils.getSubject(); Session sessions = currentUser.getSession(); UserVO user = (UserVO) sessions.getAttribute("loginuser"); Date time = new Date(); try { for (int i = 0; i < id.length; i++) { if (tableName != null && !tableName.isEmpty()) { newID = UUID.randomUUID().toString().replace("-", ""); String sql = "update " + tableName + " set STATE_VALID='01' where uuid='" + id[i] + "'"; org.hibernate.classic.Session hibsession = dao.getHibernateTemplate().getSessionFactory() .getCurrentSession(); dao.executeSql(sql); CimpDeduplicateLog deduplicateLog = new CimpDeduplicateLog(); deduplicateLog.setId(newID); deduplicateLog.setPreRecordUUID(id[i]); deduplicateLog.setUserId(user.getId()); deduplicateLog.setOperateDate(time); deduplicateLog.setCreditTypeCode(tableCode.substring(0, 2)); deduplicateLog.setCreditItemCode(tableCode); deduplicateLog.setOperateType("02"); deduplicateLog.setOrgCode(user.getOrgCode()); hibsession.save(deduplicateLog); } } // dao.executeDelOrUpdateSql("DELETE FROM CimpPiBasDoctor WHERE doctorId = ? ", // new Object[]{id}, new Type[]{StringType.INSTANCE}); return true; } catch (Exception e) { e.printStackTrace(); return false; } } // springmvc ??date? /* * @InitBinder protected void initBinder(WebDataBinder binder) { * SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); * binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, * true)); } */ /* * ???02? * */ public boolean changeStatus(String tableName) { if (tableName == null) { return false; } else { String sql = "update " + tableName + " set state_valid='02' where PRIME_INDEX is not null"; dao.executeDelOrUpdateSql(sql, null, null); return true; } } public Object reflect(Object preobj, Object newobj, Object finalobj) throws Exception { Field[] field = preobj.getClass().getDeclaredFields(); for (Field f : field) { if (!f.getName().equals("uuid")) { Field tempField = finalobj.getClass().getDeclaredField(f.getName()); tempField.setAccessible(true); Object val = tempField.get(preobj);// if (val != null) { tempField.set(finalobj, val); } } } Field[] field2 = newobj.getClass().getDeclaredFields(); for (Field f : field2) { if (!f.getName().equals("uuid")) { Field tempField = finalobj.getClass().getDeclaredField(f.getName()); tempField.setAccessible(true); Object val = tempField.get(newobj);// if (val != null) { tempField.set(finalobj, val); } } } return finalobj; } public List<Map<String, Object>> getCreditTypeByPermissions(String orgCode, String type) { List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); StringBuffer sql = new StringBuffer(); sql.append("SELECT "); sql.append(" * "); sql.append(" FROM "); sql.append(" DIC_CREDIT_INFO_TYPE ORDER BY ORDERS"); Query query = hibernateTemplate.getSessionFactory().openSession().createSQLQuery(sql.toString()); query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); List<Map<String, Object>> list = query.list(); System.out.println("?" + orgCode); for (Map<String, Object> map : list) { String departments = (String) map.get("BELONG_DEPARTMENTS"); if (Arrays.asList(departments.split(",")).contains(orgCode)) { String typename = (String) map.get("NAME"); if (type.equals("1")) {//1??? 2 if (orgCode.equals("0000000001")) { if (!typename.isEmpty() && !typename.equals("????")) { result.add(map); } } else if (orgCode.equals("0000000000")) { if (!typename.isEmpty() && !typename.equals("?")) { result.add(map); } } else { result.add(map); } } if (type.equals("2")) { if (orgCode.equals("0000000001")) { if (!typename.isEmpty() && !typename.equals("????")) { result.add(map); } } else { result.add(map); } } } } result.get(0).put("selected", true); return result; } /** * ???? * @author taotouhong * @date 20151019 ?4:49:25 * @param dicTable * @return */ public String convertCodes(String dicTable) { String sql = "select codes,names from dic_" + dicTable; String temp = "<option value=''></option>"; List<Map<String, Object>> list = dao.qryBySql(sql); for (Map<String, Object> obj : list) { String names = (String) obj.get("names"); String codes = (String) obj.get("codes"); temp += "<option value='" + codes + "'>" + names + "</option>"; } return temp; } public String convertCodes(String dicTable, String sort) { String sql = "select spe_code,spe_name from " + dicTable + " where spe_code like '" + sort + "'"; String temp = "<option value=''></option>"; List<Map<String, Object>> list = dao.qryBySql(sql); for (Map<String, Object> obj : list) { String names = (String) obj.get("spe_name"); String codes = (String) obj.get("spe_code"); temp += "<option value='" + codes + "'>" + names + "</option>"; } return temp; } public List<String> getValByCodes(String dicTable, String code, String type) { String sql = ""; int j = 0; String temp = ""; String[] str = null; str = code.split(","); if (code.contains("null")) { for (int i = 0; i < str.length; i++) { if (str[i].equals("'null'")) { j = i; } } } if (type.equals("1")) { // sql = "select names from "+dicTable+" where codes in ("+code+") order by instr("+code+",codes)"; sql = "select names from " + dicTable + " where codes in (" + code + ") ORDER BY \"DECODE\"(codes," + code + ")"; } else { sql = "select spe_name from " + dicTable + " where spe_code in (" + code + ") ORDER BY \"DECODE\"(spe_code," + code + ")"; } Query query = hibernateTemplate.getSessionFactory().openSession().createSQLQuery(sql); List<String> list = query.list(); if (list.size() == 1) { if (str[0].equals(str[1])) { list.add(1, list.get(0)); } else { if (j == 0) { temp = list.get(0); list.add(j, " "); list.add(1, temp); } else { list.add(1, " "); } } } return list; } }