|  |  | @ -67,18 +67,18 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  |     @Value("${API_SECRET}") |  |  |  |     @Value("${API_SECRET}") | 
			
		
	
		
		
			
				
					
					|  |  |  |     private String apiSecret; |  |  |  |     private String apiSecret; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     /*同步表,格式:同步设置表列名/同步设置表列名(子表时设置,主表不设置)/主表关联列/子表关联列/数据库实际表/时间列/图片或文件列/数据条件/说明*/ |  |  |  |     /*同步表,格式:同步设置表列名/同步设置表列名(子表时设置,主表不设置)/主表唯一列(多列逗号分隔)/主表关联列/子表关联列/数据库实际表/时间列/图片或文件列/数据条件/说明*/ | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |     private final String[] SYNC_TABLES= { |  |  |  |     private final String[] SYNC_TABLES= { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			"entrustAction////////委托验收,basicProducts//basic_udirel///updateTime///耗材字典","/basicProducts/basic_products//////耗材字典信息详情", |  |  |  |     		"entrustAction/////////委托验收","basicProducts//basic_udirel/uuid///updateTime///耗材字典","/basicProducts/basic_products/uuid,nameCode/uuid/uuid////耗材字典信息详情", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"//company_product_relevance///updateTime///供应商关联信息", |  |  |  | 			"//company_product_relevance////updateTime///供应商关联信息", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"basicCorp//basic_corp///updateTime///往来单位","typeThird//thr_bustype_origin///updateTime///第三方单据类型", |  |  |  | 			"basicCorp//basic_corp/erpId///updateTime///往来单位","typeThird//thr_bustype_origin/action,thirdSys///updateTime///第三方单据类型", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"basicThirdCorp//thr_corp///updateTime///第三方往来单位","//thr_dept///updateTime///第三方部门", |  |  |  | 			"basicThirdCorp//thr_corp/unitId,thirdSysFk///updateTime///第三方往来单位","//thr_dept/code,thirdSysFk///updateTime///第三方部门", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"//thr_inv_products///updateTime///第三方库存","basicThirdInv//thr_inv_warehouse//////第三方仓库", |  |  |  | 			"//thr_inv_products/inventoryCode,batchNo,warehouseCode,spaceCode,thirdSysFk///updateTime///第三方库存","basicThirdInv//thr_inv_warehouse/code,thirdSysFk//////第三方仓库", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"basicThirdBusOrder//thr_order///updateTime///第三方业务单据","/basicThirdBusOrder/thr_order_detail///updateTime///第三方单据详情", |  |  |  | 			"basicThirdBusOrder//thr_order/billNo,thirdSysFk///updateTime///第三方业务单据","/basicThirdBusOrder/thr_order_detail/productId,orderIdFk,thirdSysFk///updateTime///第三方单据详情", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"basicThirdProducts//thr_products///updateTime///第三方产品信息","//sup_cert///updateTime/filePath//资质证书信息", |  |  |  | 			"basicThirdProducts//thr_products/code,thirdSysFk///updateTime///第三方产品信息","//sup_cert////updateTime/filePath//资质证书信息", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"//sup_cert_set///updateTime///供应商资质证书设置","companyCert//sup_company///updateTime///配送企业", |  |  |  | 			"//sup_cert_set////updateTime///供应商资质证书设置","companyCert//sup_company////updateTime///配送企业", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"manufacturerCert//sup_manufacturer///updateTime///生产企业","productCert//sup_product///updateTime///产品资质信息", |  |  |  | 			"manufacturerCert//sup_manufacturer////updateTime///生产企业","productCert//sup_product/productId,manufacturerIdFk,customerId///updateTime///产品资质信息", | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			"dbDiProducts//productinfo///updateTime///DI产品信息,//udicompany///updateTime///国际库医疗器械注册人信息"}; |  |  |  | 			"dbDiProducts//productinfo/nameCode,uuiddiType///updateTime///DI产品信息//udicompany/tyshxydm///updateTime///国际库医疗器械注册人信息"}; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 	 |  |  |  | 	 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	private int orderNum=0; |  |  |  | 	private int orderNum=0; | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -169,6 +169,7 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if(map!=null&&map.get("downstreamEnable")!=null&&map.get("downstreamEnable").toString().equals("1")) { |  |  |  | 		if(map!=null&&map.get("downstreamEnable")!=null&&map.get("downstreamEnable").toString().equals("1")) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			for(int i=0;i<SYNC_TABLES.length;i++) { |  |  |  | 			for(int i=0;i<SYNC_TABLES.length;i++) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				String[] tnames = SYNC_TABLES[i].split("/"); |  |  |  | 				String[] tnames = SYNC_TABLES[i].split("/"); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 				saveIdcLog("---","",map.get(tnames[0])+SYNC_TABLES[i],0,0); | 
			
		
	
		
		
			
				
					
					|  |  |  | 				if(!StringUtils.isEmpty(tnames[0])&&map!=null&&map.get(tnames[0])!=null&&map.get(tnames[0]).toString().equals("1")) |  |  |  | 				if(!StringUtils.isEmpty(tnames[0])&&map!=null&&map.get(tnames[0])!=null&&map.get(tnames[0]).toString().equals("1")) | 
			
		
	
		
		
			
				
					
					|  |  |  | 					syncData(SYNC_TABLES[i],isUpload); |  |  |  | 					syncData(SYNC_TABLES[i],isUpload); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
	
		
		
			
				
					|  |  | @ -178,35 +179,31 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	private void syncData(String t,boolean isUpload) { |  |  |  | 	private void syncData(String t,boolean isUpload) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		boolean sync = true; |  |  |  | 		boolean sync = true; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String[] tnames = t.split("/"); |  |  |  | 		String[] tnames = t.split("/"); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String[] cnames = {}; |  |  |  | 	 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		String lastUpdateTime = getUpdateTime(tnames[0]); |  |  |  | 		String lastUpdateTime = getUpdateTime(tnames[0]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		Date nowUpdateTime = new Date(); |  |  |  | 		Date nowUpdateTime = new Date(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if(!StringUtils.isEmpty(tnames[0])) { |  |  |  | 		if(!StringUtils.isEmpty(tnames[0])) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			int n=-1; |  |  |  | 			 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			for(int k=0;k<SYNC_TABLES.length;k++) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 				if(SYNC_TABLES[k].contains("/"+tnames[0]+"/")) { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 					n++; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 					cnames[n] = SYNC_TABLES[k]; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 				} |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			List<Map<String, String>> keyList = dbDao.listKeyMysql(tnames[2]); |  |  |  | 			List<Map<String, String>> keyList = dbDao.listKeyMysql(tnames[2]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			String keyColumn = keyList!=null&&keyList.size()>0 ? keyList.get(0).get("columnName").toString() : "id"; |  |  |  | 			String keyColumn = keyList!=null&&keyList.size()>0 ? keyList.get(0).get("columnName").toString() : "id"; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			Map<String,Object> map = new HashMap<String,Object>(); |  |  |  | 			Map<String,Object> map = new HashMap<String,Object>(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			String sqlWhere = "not exists (select fkId from idc_record where type='"+tnames[2]+"' and fkId="+tnames[2]+"."+keyColumn+")"; |  |  |  | 			String sqlWhere = "not exists (select fkId from idc_record where type='"+tnames[2]+"' and fkId="+tnames[2]+"."+keyColumn+")"; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if(!StringUtils.isEmpty(tnames[5])) { |  |  |  | 			if(!StringUtils.isEmpty(tnames[6])) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				sqlWhere+=" and "+tnames[5]+">=cast('"+lastUpdateTime+"' as datetime)"; |  |  |  | 				sqlWhere+=" and "+tnames[6]+">=cast('"+lastUpdateTime+"' as datetime)"; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			} else { |  |  |  | 			} else { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				map.put("isEnd", "1"); |  |  |  | 				map.put("isEnd", "1"); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			map.put("sqlWhere", sqlWhere); |  |  |  | 			map.put("sqlWhere", sqlWhere); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			map.put("dataWhere", tnames[7]); |  |  |  | 			 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			map.put("tableKey", tnames[0]); |  |  |  | 			map.put("tableKey", tnames[0]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			map.put("tableName", tnames[2]); |  |  |  | 			map.put("tableName", tnames[2]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			map.put("masterLinkColumn", tnames[3]); |  |  |  | 			map.put("uniqueColumn", tnames[3]); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			map.put("subLinkColumn", tnames[4]); |  |  |  | 			map.put("masterLinkColumn", tnames[4]); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			map.put("filePathColumn", tnames[6]); |  |  |  | 			map.put("subLinkColumn", tnames[5]); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			map.put("messageType", tnames[8]); |  |  |  | 			map.put("filePathColumn", tnames[7]); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			map.put("messageName", tnames[8]); |  |  |  | 			map.put("dataWhere", tnames[8]); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			map.put("messageType", tnames[9]); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			map.put("messageName", tnames[9]); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			ScheduledRequest scheduledRequest = new ScheduledRequest(); |  |  |  | 			ScheduledRequest scheduledRequest = new ScheduledRequest(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			scheduledRequest.setCronName("sync"+WordUtils.capitalizeFully(tnames[2], new char[]{'_'}).replace("_", "")); |  |  |  | 			scheduledRequest.setCronName("sync"+WordUtils.capitalizeFully(tnames[2], new char[]{'_'}).replace("_", "")); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); |  |  |  | 			ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); | 
			
		
	
	
		
		
			
				
					|  |  | @ -406,7 +403,7 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		boolean success=false; |  |  |  | 		boolean success=false; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String tableName = params.get("tableName").toString(); |  |  |  | 		String tableName = params.get("tableName").toString(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String tableKey = params.get("tableKey").toString(); |  |  |  | 		String tableKey = params.get("tableKey").toString(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String[] childs = {}; |  |  |  | 		String[] childs = new String[10]; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		int childNum = -1; |  |  |  | 		int childNum = -1; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		/*子表*/ |  |  |  | 		/*子表*/ | 
			
		
	
		
		
			
				
					
					|  |  |  | 		for(String str:SYNC_TABLES) { |  |  |  | 		for(String str:SYNC_TABLES) { | 
			
		
	
	
		
		
			
				
					|  |  | @ -421,12 +418,12 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String sql = "select count(*) from "+tableName; |  |  |  | 		String sql = "select count(*) from "+tableName; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		Map<String,Object> column = getColumn(tableName); |  |  |  | 		Map<String,Object> column = getColumn(tableName); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		Map<String,Object> whMap = new HashMap<String,Object>(); |  |  |  | 		Map<String,Object> whereParams = new HashMap<String,Object>(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		whMap.put("sqlWhere", params.get("sqlWhere")); |  |  |  | 		whereParams.put("sqlWhere", params.get("sqlWhere")); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		whMap.put("dataWhere", params.get("dataWhere")); |  |  |  | 		whereParams.put("dataWhere", params.get("dataWhere")); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		 |  |  |  | 		 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		Map<String,Object> map = new HashMap<String,Object>(); |  |  |  | 		Map<String,Object> map = new HashMap<String,Object>(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String where = DBAUtils.convertWhere(column,whMap,""); |  |  |  | 		String where = DBAUtils.convertWhere(column,whereParams,""); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		sql+=!StringUtils.isEmpty(where) ? " where "+where : ""; |  |  |  | 		sql+=!StringUtils.isEmpty(where) ? " where "+where : ""; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		map.put("sql", sql); |  |  |  | 		map.put("sql", sql); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		int total = dbDao.count(map); |  |  |  | 		int total = dbDao.count(map); | 
			
		
	
	
		
		
			
				
					|  |  | @ -441,14 +438,16 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		 |  |  |  | 		 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if(total>0) { |  |  |  | 		if(total>0) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			success = true; |  |  |  | 			success = true; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			params.put("page", 0); |  |  |  | 			 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 			params.put("limit", limit); |  |  |  | 			whereParams.put("page", 0); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			whereParams.put("limit", limit); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			 | 
			
		
	
		
		
			
				
					
					|  |  |  | 			List<Map<String, String>> keyList = dbDao.listKeyMysql(tableName); |  |  |  | 			List<Map<String, String>> keyList = dbDao.listKeyMysql(tableName); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			String keyColumn = keyList!=null&&keyList.size()>0 ? keyList.get(0).get("columnName").toString() : "id"; |  |  |  | 			String keyColumn = keyList!=null&&keyList.size()>0 ? keyList.get(0).get("columnName").toString() : "id"; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			for(int i=0;i<Math.ceil(total/limit)+1;i++) { |  |  |  | 			for(int i=0;i<Math.ceil(total/limit)+1;i++) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 				params.replace("page", i *limit); |  |  |  | 				whereParams.replace("page", i *limit); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				params.replace("limit",limit); |  |  |  | 				whereParams.replace("limit",limit); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				Map<String,Object> data = getData(messageType,tableName,params); |  |  |  | 				Map<String,Object> data = getData(messageType,tableName,params,whereParams); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 				String recordSql = ""; |  |  |  | 				String recordSql = ""; | 
			
		
	
		
		
			
				
					
					|  |  |  | 				orderNum++; |  |  |  | 				orderNum++; | 
			
		
	
		
		
			
				
					
					|  |  |  | 				saveIdcLog(messageType,"",tableName +">"+where,i *limit,total); |  |  |  | 				saveIdcLog(messageType,"",tableName +">"+where,i *limit,total); | 
			
		
	
	
		
		
			
				
					|  |  | @ -462,7 +461,8 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 							} |  |  |  | 							} | 
			
		
	
		
		
			
				
					
					|  |  |  | 							recordSql+=!StringUtils.isEmpty(recordSql) ? "," : ""; |  |  |  | 							recordSql+=!StringUtils.isEmpty(recordSql) ? "," : ""; | 
			
		
	
		
		
			
				
					
					|  |  |  | 							recordSql+="('"+UUID.randomUUID().toString().replaceAll("-", "")+"','"+tableName+"','"+list.get(m).get(keyColumn)+"','"+isEnd+"',now())"; |  |  |  | 							recordSql+="('"+UUID.randomUUID().toString().replaceAll("-", "")+"','"+tableName+"','"+list.get(m).get(keyColumn)+"','"+isEnd+"',now())"; | 
			
		
	
		
		
			
				
					
					|  |  |  | 							if(childNum>-1&¶ms.get("masterLinkColumn")!=null&¶ms.get("subLinkColumn")!=null) { |  |  |  | 							if(childNum>-1&¶ms.get("masterLinkColumn")!=null&&!StringUtils.isEmpty(params.get("masterLinkColumn").toString())&& | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 									params.get("subLinkColumn")!=null&&!StringUtils.isEmpty(params.get("subLinkColumn").toString())) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 								for(int z=0;z<childNum+1;z++) { |  |  |  | 								for(int z=0;z<childNum+1;z++) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 									String[] chidTnames = childs[z].split("/"); |  |  |  | 									String[] chidTnames = childs[z].split("/"); | 
			
		
	
		
		
			
				
					
					|  |  |  | 									String keyValue = list.get(i).get(params.get("masterLinkColumn")).toString(); |  |  |  | 									String keyValue = list.get(i).get(params.get("masterLinkColumn")).toString(); | 
			
		
	
	
		
		
			
				
					|  |  | @ -539,19 +539,20 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 	private void analyToDB(JSONObject jsonObject,MultipartFile[] files) { |  |  |  | 	private void analyToDB(JSONObject jsonObject,MultipartFile[] files) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		if(!StringUtils.isEmpty(jsonObject.getString("tableName"))) { |  |  |  | 		if(!StringUtils.isEmpty(jsonObject.getString("tableName"))) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			List<Map<String,Object>> list = jsonObject.getObject("data", List.class); |  |  |  | 			List<Map<String,Object>> list = jsonObject.getObject("data", List.class); | 
			
		
	
		
		
			
				
					
					|  |  |  | 			analyData(jsonObject.getString("tableName"),list); |  |  |  | 			analyData(jsonObject.getString("tableName"),jsonObject.getString("uniqueColumn"),list); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 			//图片处理
 |  |  |  | 			//图片处理
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 	/*按表名解析数据到数据库,子表暂未处理*/ |  |  |  | 	/*按表名解析数据到数据库,子表暂未处理*/ | 
			
		
	
		
		
			
				
					
					|  |  |  | 	private void analyData(String tableName,List<Map<String,Object>> list) { |  |  |  | 	private void analyData(String tableName,String uniqueColumn,List<Map<String,Object>> list) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		 | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String tName = DBAUtils.tableRealName(tableName); |  |  |  | 		String tName = DBAUtils.tableRealName(tableName); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String sql="insert into "+tName +"("; |  |  |  | 		String sql="insert into "+tName +"("; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String del="delete from "+tName+" where "; |  |  |  | 		String del="delete from "+tName+" where "; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String upd="update "+tName+" set "; |  |  |  | 		String upd="update "+tName+" set "; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		String[] keyColumn=new String[10]; |  |  |  | 		String[] keyColumn=new String[30]; | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		String[] keyDataType=new String[10]; |  |  |  | 		String[] keyDataType=new String[30]; | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		List<Map<String,String>> columnList = dbDao.listColumnsMysql(tName); |  |  |  | 		List<Map<String,String>> columnList = dbDao.listColumnsMysql(tName); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		int key=0; |  |  |  | 		int key=0; | 
			
		
	
		
		
			
				
					
					|  |  |  | 		int col=0; |  |  |  | 		int col=0; | 
			
		
	
	
		
		
			
				
					|  |  | @ -562,11 +563,17 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 			String extra = columnList.get(i).get("extra")!=null&&columnList.get(i).get("extra").toLowerCase().contains("auto_i") ? "A" : "N"; |  |  |  | 			String extra = columnList.get(i).get("extra")!=null&&columnList.get(i).get("extra").toLowerCase().contains("auto_i") ? "A" : "N"; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			sql+=extra.equals("N") ? columnList.get(i).get("columnName").toString() : ""; |  |  |  | 			sql+=extra.equals("N") ? columnList.get(i).get("columnName").toString() : ""; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			col+=extra.equals("N") ? 1 : 0; |  |  |  | 			col+=extra.equals("N") ? 1 : 0; | 
			
		
	
		
		
			
				
					
					|  |  |  | 			if(columnList.get(i).get("columnKey")!=null&&!StringUtils.isEmpty(columnList.get(i).get("columnKey").toString())&& |  |  |  | 			if(uniqueColumn!=null&&columnList.get(i).get("columnKey")!=null&&(","+uniqueColumn+",").contains(","+columnList.get(i).get("columnKey")+",")) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 				("PRI,UNI,MUL".contains(columnList.get(i).get("columnKey").toString()))&&extra.equals("N")) { |  |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 				keyColumn[key] = columnList.get(i).get("columnName").toString(); |  |  |  | 				keyColumn[key] = columnList.get(i).get("columnName").toString(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 				keyDataType[key]=columnList.get(i).get("dataType").toString().contains("char") ? "C" : "N"; |  |  |  | 				keyDataType[key]=columnList.get(i).get("dataType").toString().contains("char") ? "C" : columnList.get(i).get("dataType").toString().contains("date") ? "D" : "N"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 				key++; |  |  |  | 				key++; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 			} else { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 				if(columnList.get(i).get("columnKey")!=null&&!StringUtils.isEmpty(columnList.get(i).get("columnKey").toString())&& | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					("PRI,UNI,MUL".contains(columnList.get(i).get("columnKey").toString()))&&extra.equals("N")) { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					keyColumn[key] = columnList.get(i).get("columnName").toString(); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					keyDataType[key]=columnList.get(i).get("dataType").toString().contains("char") ? "C" : columnList.get(i).get("dataType").toString().contains("date") ? "D" : "N"; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 					key++; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 				} | 
			
		
	
		
		
			
				
					
					|  |  |  | 			} |  |  |  | 			} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		} |  |  |  | 		} | 
			
		
	
		
		
			
				
					
					|  |  |  | 		sql+=") values "; |  |  |  | 		sql+=") values "; | 
			
		
	
	
		
		
			
				
					|  |  | @ -582,7 +589,9 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 					for(int z=0;z<keyColumn.length;z++ ) { |  |  |  | 					for(int z=0;z<keyColumn.length;z++ ) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 						if(list.get(i).get(keyColumn[z])!=null&&!StringUtils.isEmpty(list.get(i).get(keyColumn[z]).toString())) { |  |  |  | 						if(list.get(i).get(keyColumn[z])!=null&&!StringUtils.isEmpty(list.get(i).get(keyColumn[z]).toString())) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 							updateWhere+=!StringUtils.isEmpty(updateWhere) ? " and " : " "; |  |  |  | 							updateWhere+=!StringUtils.isEmpty(updateWhere) ? " and " : " "; | 
			
		
	
		
		
			
				
					
					|  |  |  | 							updateWhere+=keyColumn[z]+" = "+(keyDataType[z].equals("C") ? "'" :"") +list.get(i).get(keyColumn[z]) +(keyDataType[z].equals("C") ? "'" :""); |  |  |  | 							String value = list.get(i).get(keyColumn[z]) !=null ? list.get(i).get(keyColumn[z]).toString() : ""; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 							value = keyDataType[z].equals("D") ? "cast('"+DateUtil.formatDate(IDCUtils.parseDate(value),"yyyy-MM-dd HH:mm:ss") +"' as datetime)": value ; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 							updateWhere+=keyColumn[z]+" = "+(keyDataType[z].equals("C") ? "'" :"") +value +(keyDataType[z].equals("C") ? "'" :""); | 
			
		
	
		
		
			
				
					
					|  |  |  | 						} |  |  |  | 						} | 
			
		
	
		
		
			
				
					
					|  |  |  | 					} |  |  |  | 					} | 
			
		
	
		
		
			
				
					
					|  |  |  | 					if("A,D".contains(operateMode)&&!StringUtils.isEmpty(updateWhere)) |  |  |  | 					if("A,D".contains(operateMode)&&!StringUtils.isEmpty(updateWhere)) | 
			
		
	
	
		
		
			
				
					|  |  | @ -642,7 +651,7 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 						for (Object o : (List<?>) obj) { |  |  |  | 						for (Object o : (List<?>) obj) { | 
			
		
	
		
		
			
				
					
					|  |  |  | 							chList.add((Map<String,Object>)o); |  |  |  | 							chList.add((Map<String,Object>)o); | 
			
		
	
		
		
			
				
					
					|  |  |  | 						} |  |  |  | 						} | 
			
		
	
		
		
			
				
					
					|  |  |  | 						analyData(list.get(i).get("tableName"+m).toString(),chList); |  |  |  | 						analyData(list.get(i).get("tableName"+m).toString(),"",chList); | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 					} |  |  |  | 					} | 
			
		
	
		
		
			
				
					
					|  |  |  | 				} |  |  |  | 				} | 
			
		
	
		
		
			
				
					
					|  |  |  | 				 |  |  |  | 				 | 
			
		
	
	
		
		
			
				
					|  |  | @ -739,13 +748,14 @@ public class IdcServiceImpl implements IdcService { | 
			
		
	
		
		
			
				
					
					|  |  |  | 		return list; |  |  |  | 		return list; | 
			
		
	
		
		
			
				
					
					|  |  |  | 	} |  |  |  | 	} | 
			
		
	
		
		
			
				
					
					|  |  |  | 	/*由表名获取数据*/ |  |  |  | 	/*由表名获取数据*/ | 
			
		
	
		
		
			
				
					
					|  |  |  | 	private Map<String,Object> getData(String messageType,String tableName,Map<String,Object> params) { |  |  |  | 	private Map<String,Object> getData(String messageType,String tableName,Map<String,Object> params,Map<String,Object> whereParams) { | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | 		List<Map<String,Object>> list = getList(tableName,params); |  |  |  | 		List<Map<String,Object>> list = getList(tableName,whereParams); | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  | 		Map<String,Object> map = new HashMap<String,Object>(); |  |  |  | 		Map<String,Object> map = new HashMap<String,Object>(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		map.put("messageId", UUID.randomUUID().toString().replaceAll("-", "")); |  |  |  | 		map.put("messageId", UUID.randomUUID().toString().replaceAll("-", "")); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		map.put("messageType", messageType); |  |  |  | 		map.put("messageType", messageType); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		map.put("apiCode", "common"); |  |  |  | 		map.put("apiCode", "common"); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		map.put("tableName", DBAUtils.tableAliasName(tableName)); |  |  |  | 		map.put("tableName", DBAUtils.tableAliasName(tableName)); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 		map.put("uniqueColumn", params.get("uniqueColumn")); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		map.put("sendTime", new Date()); |  |  |  | 		map.put("sendTime", new Date()); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		map.put("version", "1.0"); |  |  |  | 		map.put("version", "1.0"); | 
			
		
	
		
		
			
				
					
					|  |  |  | 		map.put("total", list.size()); |  |  |  | 		map.put("total", list.size()); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |