|  | @ -16,7 +16,8 @@ import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | import java.util.ArrayList;
 | 
	
		
			
				|  |  | import java.util.Arrays;
 | 
	
		
			
				|  |  | import java.util.List;
 | 
	
		
			
				|  |  | import java.util.concurrent.ExecutionException;
 | 
	
		
			
				|  |  | import java.util.regex.Matcher;
 | 
	
		
			
				|  |  | import java.util.regex.Pattern;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * Created by chenweida on 2017/8/10.
 | 
	
	
		
			
				|  | @ -87,6 +88,7 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |             //清空表
 | 
	
		
			
				|  |  |             zyIvDiagnoseDictDao.deleteAll();
 | 
	
		
			
				|  |  |             //新增数据
 | 
	
		
			
				|  |  |             logger.info("save table zy_iv_diagnose_dict  ,size:" + zyIvDiagnoseDicts.size());
 | 
	
		
			
				|  |  |             zyIvDiagnoseDictDao.save(zyIvDiagnoseDicts);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("synchronized zy_iv_diagnose_dict end");
 | 
	
	
		
			
				|  | @ -104,6 +106,7 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |             //清空表
 | 
	
		
			
				|  |  |             zyIvSubjectClassDictDao.deleteAll();
 | 
	
		
			
				|  |  |             //新增数据
 | 
	
		
			
				|  |  |             logger.info("save table zy_iv_subject_class_dict  ,size:" + zyIvSubjectClassDicts.size());
 | 
	
		
			
				|  |  |             zyIvSubjectClassDictDao.save(zyIvSubjectClassDicts);
 | 
	
		
			
				|  |  |             logger.info("synchronized zy_iv_subject_class_dict end");
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -116,10 +119,10 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |         List<ZyIvStaffRegTypeAllotDict> zyIvStaffRegTypeAllotDicts = new ArrayList<>();
 | 
	
		
			
				|  |  |         //得到list
 | 
	
		
			
				|  |  |         commonGetOneDict(zyIvStaffRegTypeAllotDicts, ZyIvStaffRegTypeAllotDict.class, dictName);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //清空表
 | 
	
		
			
				|  |  |         zyIvStaffRegTypeAllotDictDao.deleteAll();
 | 
	
		
			
				|  |  |         //新增数据
 | 
	
		
			
				|  |  |         logger.info("save table zy_iv_staff_reg_type_allot_dict  ,size:" + zyIvStaffRegTypeAllotDicts.size());
 | 
	
		
			
				|  |  |         zyIvStaffRegTypeAllotDictDao.save(zyIvStaffRegTypeAllotDicts);
 | 
	
		
			
				|  |  |         logger.info("synchronized zy_iv_staff_reg_type_allot_dict end");
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -134,6 +137,7 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |         //清空表
 | 
	
		
			
				|  |  |         zyIvStaffDictDao.deleteAll();
 | 
	
		
			
				|  |  |         //新增数据
 | 
	
		
			
				|  |  |         logger.info("save table zy_iv_staff_dict  ,size:" + zyIvStaffDicts.size());
 | 
	
		
			
				|  |  |         zyIvStaffDictDao.save(zyIvStaffDicts);
 | 
	
		
			
				|  |  |         logger.info("synchronized zy_iv_staff_dict end");
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -145,10 +149,10 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |         List<ZyIvPhysicDict> zyIvPhysicDicts = new ArrayList<>();
 | 
	
		
			
				|  |  |         //得到list
 | 
	
		
			
				|  |  |         commonGetOneDict(zyIvPhysicDicts, ZyIvPhysicDict.class, dictName);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         //清空表
 | 
	
		
			
				|  |  |         zyIvPhysicDictDao.deleteAll();
 | 
	
		
			
				|  |  |         //新增数据
 | 
	
		
			
				|  |  |         logger.info("save table zy_iv_physic_dict  ,size:" + zyIvPhysicDicts.size());
 | 
	
		
			
				|  |  |         zyIvPhysicDictDao.save(zyIvPhysicDicts);
 | 
	
		
			
				|  |  |         logger.info("synchronized zy_iv_physic_dict end");
 | 
	
		
			
				|  |  |     }
 | 
	
	
		
			
				|  | @ -164,6 +168,7 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |             //清空表
 | 
	
		
			
				|  |  |             zyIvOrgPhysicAllotDictDao.deleteAll();
 | 
	
		
			
				|  |  |             //新增数据
 | 
	
		
			
				|  |  |             logger.info("save table zy_iv_org_physic_allot_dict  ,size:" + zyIvOrgPhysicAllotDicts.size());
 | 
	
		
			
				|  |  |             zyIvOrgPhysicAllotDictDao.save(zyIvOrgPhysicAllotDicts);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("synchronized zy_iv_org_physic_allot_dict end");
 | 
	
	
		
			
				|  | @ -180,6 +185,8 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |             //清空表
 | 
	
		
			
				|  |  |             zyIvDiagnoseClassDictDao.deleteAll();
 | 
	
		
			
				|  |  |             //新增数据
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             logger.info("save table zy_iv_diagnose_class_dict  ,size:" + zIvDiagnoseClassDicts.size());
 | 
	
		
			
				|  |  |             zyIvDiagnoseClassDictDao.save(zIvDiagnoseClassDicts);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("synchronized zy_iv_diagnose_class_dict end");
 | 
	
	
		
			
				|  | @ -197,6 +204,7 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |             //清空表
 | 
	
		
			
				|  |  |             zyIvDeptStaffAllotDictDao.deleteAll();
 | 
	
		
			
				|  |  |             //新增数据
 | 
	
		
			
				|  |  |             logger.info("save table zy_iv_dept_staff_allot_dict  ,size:" + syIvDeptStaffAllotDictz.size());
 | 
	
		
			
				|  |  |             zyIvDeptStaffAllotDictDao.save(syIvDeptStaffAllotDictz);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("synchronized zy_iv_dept_staff_allot_dict end");
 | 
	
	
		
			
				|  | @ -222,16 +230,34 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |                     throw new Exception("zy dict error status not 200");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if (returnJson.containsKey("data")) {
 | 
	
		
			
				|  |  |                     JSONArray dataJSONArray = returnJson.getJSONObject("data").getJSONArray("returnData");
 | 
	
		
			
				|  |  |                     String dataString = returnJson.getString("data");
 | 
	
		
			
				|  |  |                     JSONArray dataJSONArray = JSONObject.fromObject(dataString).getJSONArray("returnData");
 | 
	
		
			
				|  |  |                     logger.info("zy dict data size " + dataJSONArray.size() + ",dictname:" + dictName);
 | 
	
		
			
				|  |  |                     if (dataJSONArray.size() == 0) {
 | 
	
		
			
				|  |  |                         throw new Exception("zy dict error data size 0");
 | 
	
		
			
				|  |  |                         continue;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     ZyCommonDict[] zyCommonDictArrays = (ZyCommonDict[]) JSONArray.toArray(dataJSONArray, ZyCommonDict.class);
 | 
	
		
			
				|  |  |                     //下划线转驼峰
 | 
	
		
			
				|  |  |                     JSONArray newJA = new JSONArray();
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     JSONArray jsonArrayTemp = dataJSONArray.getJSONArray(0);
 | 
	
		
			
				|  |  |                     for (int i = 0; i < jsonArrayTemp.size(); i++) {
 | 
	
		
			
				|  |  |                         JSONObject jo = jsonArrayTemp.getJSONObject(i);
 | 
	
		
			
				|  |  |                         JSONObject newJO = new JSONObject();
 | 
	
		
			
				|  |  |                         jo.keySet().stream().forEach(key -> {
 | 
	
		
			
				|  |  |                             Object value = jo.get(key);
 | 
	
		
			
				|  |  |                             String newKey = Tool.lineToHump(key.toString());
 | 
	
		
			
				|  |  |                             newJO.put(newKey, value);
 | 
	
		
			
				|  |  |                         });
 | 
	
		
			
				|  |  |                         newJA.add(newJO);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                     ZyCommonDict[] zyCommonDictArrays = (ZyCommonDict[]) JSONArray.toArray(newJA, ZyCommonDict.class);
 | 
	
		
			
				|  |  |                     zyCommonDictz.addAll(Arrays.asList(zyCommonDictArrays));
 | 
	
		
			
				|  |  |                 } else {
 | 
	
		
			
				|  |  |                     throw new Exception("zy dict error no contain data");
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             } catch (Exception e) {
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
		
			
				|  |  |                 isFlush = false; //设置状态不能更新
 | 
	
		
			
				|  |  |                 logger.error("dictName:" + dictName);
 | 
	
		
			
				|  |  |                 logger.error("returnJson:" + json);
 | 
	
	
		
			
				|  | @ -245,6 +271,7 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |                 //清空表
 | 
	
		
			
				|  |  |                 zyCommonDictDao.deleteAll();
 | 
	
		
			
				|  |  |                 //新增数据
 | 
	
		
			
				|  |  |                 logger.info("save table zy_common_dict  ,size:" + zyCommonDictz.size());
 | 
	
		
			
				|  |  |                 zyCommonDictDao.save(zyCommonDictz);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
	
		
			
				|  | @ -263,6 +290,7 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |             //清空表
 | 
	
		
			
				|  |  |             zyIvDeptDictDao.deleteAll();
 | 
	
		
			
				|  |  |             //新增数据
 | 
	
		
			
				|  |  |             logger.info("save table zy_iv_dept_dict  ,size:" + zyIvDeptDicts.size());
 | 
	
		
			
				|  |  |             zyIvDeptDictDao.save(zyIvDeptDicts);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         logger.info("synchronized zy_iv_dept_dict end");
 | 
	
	
		
			
				|  | @ -285,11 +313,24 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |                 throw new Exception("zy dict error status not 200");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (returnJson.containsKey("data")) {
 | 
	
		
			
				|  |  |                 JSONArray dataJSONArray = returnJson.getJSONObject("data").getJSONArray("returnData");
 | 
	
		
			
				|  |  |                 if (dataJSONArray.size() == 0) {
 | 
	
		
			
				|  |  |                     throw new Exception("zy dict error data size 0");
 | 
	
		
			
				|  |  |                 JSONArray dataJSONArray = JSONObject.fromObject(returnJson.getString("data")).getJSONArray("returnData");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 logger.info("zy dict data size " + dataJSONArray.size() + ",dictname:" + dictName);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                 //下划线转驼峰
 | 
	
		
			
				|  |  |                 JSONArray newJA = new JSONArray();
 | 
	
		
			
				|  |  |                 for (int i = 0; i < dataJSONArray.getJSONArray(0).size(); i++) {
 | 
	
		
			
				|  |  |                     JSONObject jo = dataJSONArray.getJSONArray(0).getJSONObject(i);
 | 
	
		
			
				|  |  |                     JSONObject newJO = new JSONObject();
 | 
	
		
			
				|  |  |                     jo.keySet().stream().forEach(key -> {
 | 
	
		
			
				|  |  |                         Object value = jo.get(key);
 | 
	
		
			
				|  |  |                         String newKey = Tool.lineToHump(key.toString());
 | 
	
		
			
				|  |  |                         newJO.put(newKey, value);
 | 
	
		
			
				|  |  |                     });
 | 
	
		
			
				|  |  |                     newJA.add(newJO);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 tList.addAll(Arrays.asList(JSONArray.toArray(dataJSONArray, clazz)));
 | 
	
		
			
				|  |  |                 tList.addAll(Arrays.asList(JSONArray.toArray(newJA, clazz)));
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 throw new Exception("zy dict error no contain data");
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -434,4 +475,51 @@ public class ZyDictJob implements Job {
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return "";
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public static class Tool {
 | 
	
		
			
				|  |  |         private static Pattern linePattern = Pattern.compile("_(\\w)");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         /**
 | 
	
		
			
				|  |  |          * 下划线转驼峰
 | 
	
		
			
				|  |  |          */
 | 
	
		
			
				|  |  |         public static String lineToHump(String str) {
 | 
	
		
			
				|  |  |             str = str.toLowerCase();
 | 
	
		
			
				|  |  |             Matcher matcher = linePattern.matcher(str);
 | 
	
		
			
				|  |  |             StringBuffer sb = new StringBuffer();
 | 
	
		
			
				|  |  |             while (matcher.find()) {
 | 
	
		
			
				|  |  |                 matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             matcher.appendTail(sb);
 | 
	
		
			
				|  |  |             return sb.toString();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         /**
 | 
	
		
			
				|  |  |          * 驼峰转下划线(简单写法,效率低于{@link #humpToLine2(String)})
 | 
	
		
			
				|  |  |          */
 | 
	
		
			
				|  |  |         public static String humpToLine(String str) {
 | 
	
		
			
				|  |  |             return str.replaceAll("[A-Z]", "_$0").toLowerCase();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         private static Pattern humpPattern = Pattern.compile("[A-Z]");
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         /**
 | 
	
		
			
				|  |  |          * 驼峰转下划线,效率比上面高
 | 
	
		
			
				|  |  |          */
 | 
	
		
			
				|  |  |         public static String humpToLine2(String str) {
 | 
	
		
			
				|  |  |             Matcher matcher = humpPattern.matcher(str);
 | 
	
		
			
				|  |  |             StringBuffer sb = new StringBuffer();
 | 
	
		
			
				|  |  |             while (matcher.find()) {
 | 
	
		
			
				|  |  |                 matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             matcher.appendTail(sb);
 | 
	
		
			
				|  |  |             return sb.toString();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         public static void main(String[] args) {
 | 
	
		
			
				|  |  |             String lineToHump = lineToHump("f_parent_no_leader");
 | 
	
		
			
				|  |  |             System.out.println(lineToHump);//fParentNoLeader
 | 
	
		
			
				|  |  |             System.out.println(humpToLine(lineToHump));//f_parent_no_leader
 | 
	
		
			
				|  |  |             System.out.println(humpToLine2(lineToHump));//f_parent_no_leader
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |