From 435a35468c0e08ebe7deabc06c4a7550e7c25ecc Mon Sep 17 00:00:00 2001 From: chengqf <584883665@139.com> Date: Wed, 12 Apr 2023 09:42:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=97=E5=90=8D=E5=8A=A0=E5=8F=8D?= =?UTF-8?q?=E5=BC=95=E5=8F=B7=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E5=AD=97=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/idc/service/impl/IdcServiceImpl.java | 207 +++++++++--------- 1 file changed, 108 insertions(+), 99 deletions(-) diff --git a/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java b/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java index 1b66a8e8..54da48f7 100644 --- a/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java +++ b/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java @@ -70,7 +70,7 @@ public class IdcServiceImpl implements IdcService { @Value("${API_SECRET}") private String apiSecret; - + private int orderNum = 0; @Resource @@ -94,47 +94,50 @@ public class IdcServiceImpl implements IdcService { return ResultVOUtils.success(list); } - + /*下载任务*/ @Override public BaseResponse download(HttpServletRequest request, Map params) { - return statusFile(params,"basic_export_status"); + return statusFile(params, "basic_export_status"); } + @Override public BaseResponse uploadStatus(HttpServletRequest request, Map params) { - return statusFile(params,"basic_upload_status"); + return statusFile(params, "basic_upload_status"); } + @Override public BaseResponse downloadStatus(HttpServletRequest request, Map params) { - return statusFile(params,"basic_download_status"); + return statusFile(params, "basic_download_status"); } - private BaseResponse statusFile(Map params,String tableName) { - String id = ""; - if (params.containsKey("taskId") && params.get("taskId") != null) { - id = params.get("taskId").toString(); - } else { - id = params.get("id").toString(); - } - - Map map = map = dbDao.get("select * from " + tableName + " where id='" + id + "'"); - - if (map == null) - return ResultVOUtils.error(9000, "下载任务不存在"); - if (!(map.get("cacheFilePath") != null && FileUtils.isFileExist(map.get("cacheFilePath").toString()))) - return ResultVOUtils.error(9000, "下载文件不存在"); - String json = FileUtils.readFileAll(map.get("cacheFilePath").toString()); - - JSONObject object = JSON.parseObject(json); - if (object == null) - return ResultVOUtils.error(9000, "任务下载失败"); - if (object != null && object.getInteger("code") != null) { - BaseResponse response = JSON.parseObject(json, BaseResponse.class); - return response; - } - - return ResultVOUtils.success(object); + + private BaseResponse statusFile(Map params, String tableName) { + String id = ""; + if (params.containsKey("taskId") && params.get("taskId") != null) { + id = params.get("taskId").toString(); + } else { + id = params.get("id").toString(); + } + + Map map = map = dbDao.get("select * from " + tableName + " where id='" + id + "'"); + + if (map == null) + return ResultVOUtils.error(9000, "下载任务不存在" + tableName); + if (!(map.get("cacheFilePath") != null && FileUtils.isFileExist(map.get("cacheFilePath").toString()))) + return ResultVOUtils.error(9000, "下载文件不存在-" + tableName); + String json = FileUtils.readFileAll(map.get("cacheFilePath").toString()); + + JSONObject object = JSON.parseObject(json); + if (object == null) + return ResultVOUtils.error(9000, "任务下载失败"); + if (object != null && object.getInteger("code") != null) { + BaseResponse response = JSON.parseObject(json, BaseResponse.class); + return response; + } + + return ResultVOUtils.success(object); } - + /*UDI系统上传自助平台*/ @Override @@ -197,7 +200,7 @@ public class IdcServiceImpl implements IdcService { } } - + private void asyncDataTask(boolean isUpload) { initTable(); Map map = dbDao.get("select * from sync_data_set limit 1"); @@ -211,8 +214,7 @@ public class IdcServiceImpl implements IdcService { String[] syncTables = TableUtils.syncTables(); for (int i = 0; i < syncTables.length; i++) { String[] tnames = syncTables[i].split("/"); - boolean sync = ((tnames[0]==null||StringUtils.isEmpty(tnames[0])||(tnames[0]!=null&&tnames[0].equals("null")))&& - (tnames[1]==null||StringUtils.isEmpty(tnames[1])||(tnames[1]!=null&&tnames[1].equals("null"))))|| + boolean sync = StringUtils.isEmpty(tnames[0]) || (!StringUtils.isEmpty(tnames[0]) && map != null && map.get(tnames[0]) != null && map.get(tnames[0]).toString().equals("1")); saveIdcLog("---", "", map.get(tnames[0]) + syncTables[i], 0, 0); if (sync) { @@ -223,51 +225,51 @@ public class IdcServiceImpl implements IdcService { } } - + /*单独表调用,tableName可只传表名,如传完整参数按SYNCS_TABLES格式*/ @Override - public BaseResponse onceSync(String tableName,boolean isUpload) { - String tnames = tableName.contains("/") ? tableName : "//"+tableName+"///////"; - String[] ts = tnames.split("/"); - String ip=""; - Map map = dbDao.get("select * from sync_data_set limit 1"); - if(isUpload) { - if (!(map.get("syncIp") != null && !StringUtils.isEmpty(map.get("syncIp").toString()))) { + public BaseResponse onceSync(String tableName, boolean isUpload) { + String tnames = tableName.contains("/") ? tableName : "//" + tableName + "///////"; + String[] ts = tnames.split("/"); + String ip = ""; + Map map = dbDao.get("select * from sync_data_set limit 1"); + if (isUpload) { + if (!(map.get("syncIp") != null && !StringUtils.isEmpty(map.get("syncIp").toString()))) { logger.error("中继服务地址未配置"); return ResultVOUtils.error(9999, "中继服务地址未配置"); } - ip = map.get("syncIp").toString(); - } - if(!StringUtils.isEmpty(ts[0])) { - if(!(map!=null&&map.get(ts[0])!=null&&map.get(ts[0]).equals("1"))) - return ResultVOUtils.error(9999, "当前不允许生成"); - } - if(syncData(tnames,isUpload,ip)) - return ResultVOUtils.success(); - return ResultVOUtils.error(9999, "系统错误"); + ip = map.get("syncIp").toString(); + } + if (!StringUtils.isEmpty(ts[0])) { + if (!(map != null && map.get(ts[0]) != null && map.get(ts[0]).equals("1"))) + return ResultVOUtils.error(9999, "当前不允许生成"); + } + if (syncData(tnames, isUpload, ip)) + return ResultVOUtils.success(); + return ResultVOUtils.error(9999, "系统错误"); } - + private boolean syncData(String t, boolean isUpload, String syncIp) { boolean sync = true; boolean result = false; try { - String[] tnames = t.split("/"); + String[] tnames = t.split("/"); - String lastUpdateTime = getUpdateTime(tnames[2] + "." + tnames[0]); - Date nowUpdateTime = new Date(); - //if (!StringUtils.isEmpty(tnames[0])) { + String lastUpdateTime = getUpdateTime(tnames[2] + "." + tnames[0]); + Date nowUpdateTime = new Date(); +// if (!StringUtils.isEmpty(tnames[0])) { List> keyList = dbDao.listKeyMysql(tnames[2]); String keyColumn = keyList != null && keyList.size() > 0 ? keyList.get(0).get("columnName").toString() : "id"; Map map = new HashMap(); String sqlWhere = ""; String updateTimeColumn = tnames[6]; - if(StringUtils.isEmpty(updateTimeColumn)) { - Map tMap = dbDao.get("select column_name columnName from information_schema.columns where column_name='updateTime' and lower(table_name) = lower('"+tnames[0]+"') and table_schema = (select database()) limit 1"); - updateTimeColumn = tMap !=null ? "updateTime" : ""; + if (StringUtils.isEmpty(updateTimeColumn)) { + Map tMap = dbDao.get("select column_name columnName from information_schema.columns where column_name='updateTime' and lower(table_name) = lower('" + tnames[0] + "') and table_schema = (select database()) limit 1"); + updateTimeColumn = tMap != null ? "updateTime" : ""; } - - + + if (!StringUtils.isEmpty(updateTimeColumn)) { sqlWhere += " " + updateTimeColumn + ">= cast('" + lastUpdateTime + "' as datetime)";// and date_add(cast('"+DateUtil.formatDate(nowUpdateTime, "yyyy-MM-dd HH:mm:ss")+"' as datetime),INTERVAL 1 day)"; sqlWhere += " and not exists (select fkId from idc_record where type='" + tnames[2] + "' and fkId=" + tnames[2] + "." + keyColumn + " and createTime>date_sub(now(),interval 15 MINUTE))"; @@ -297,18 +299,19 @@ public class IdcServiceImpl implements IdcService { sync = nextTimePoint.before(nowUpdateTime); } if (sync) { - result = syncMasterData(map, isUpload, syncIp); + result = syncMasterData(map, isUpload, syncIp); if (result) { setUpdateTime(tnames[2] + "." + tnames[0], DateUtil.formatDate(nowUpdateTime, "yyyy-MM-dd HH:mm:ss")); } } - //} + //} } catch (Exception ex) { - + } return result; } + private String fetchData(String host, Map params) { OkHttpClient client = new OkHttpClient().newBuilder() .build(); @@ -358,7 +361,6 @@ public class IdcServiceImpl implements IdcService { return result; } - public BaseResponse downlaodSuccess(HttpServletRequest request, Map params) { String sql = "update basic_export_status set receiveStatus='1',endTime=now() where id='" + params.get("taskId") + "'"; @@ -366,17 +368,19 @@ public class IdcServiceImpl implements IdcService { return ResultVOUtils.success(); } - + @Override - public BaseResponse receiveJson(HttpServletRequest request,Map params) { - - return ResultVOUtils.success(); + public BaseResponse receiveJson(HttpServletRequest request, Map params) { + + return ResultVOUtils.success(); } + @Override public BaseResponse uploadFile(HttpServletRequest request, - String content,MultipartFile[] files) { - return ResultVOUtils.success(); + String content, MultipartFile[] files) { + return ResultVOUtils.success(); } + /****/ @Override public BaseResponse receive(HttpServletRequest request, @@ -544,13 +548,13 @@ public class IdcServiceImpl implements IdcService { int childNum = -1; /*子表*/ String[] syncTables = TableUtils.syncTables(); - if(!StringUtils.isEmpty(tableKey)) { - for (String str : syncTables) { - if (str.contains("/" + tableKey + "/")) { - childNum++; - childs[childNum] = str; - } - } + if (!StringUtils.isEmpty(tableKey)) { + for (String str : syncTables) { + if (str.contains("/" + tableKey + "/")) { + childNum++; + childs[childNum] = str; + } + } } Map table = dbDao.getMysql(tableName); if (!(table != null && table.get("tableName") != null)) @@ -604,7 +608,7 @@ public class IdcServiceImpl implements IdcService { String fileNames = list.get(m).get(filePathColumn).toString(); String[] str = fileNames.split(","); for (int r = 0; r < str.length; r++) { - if (!StringUtils.isEmpty(str[r])&&FileUtils.isFileExist(filePath + filePathSlash + "register/file/image2/" + str[r])) + if (!StringUtils.isEmpty(str[r]) && FileUtils.isFileExist(filePath + filePathSlash + "register/file/image2/" + str[r])) files.add(filePath + filePathSlash + "register/file/image2/" + str[r]); } } @@ -627,8 +631,8 @@ public class IdcServiceImpl implements IdcService { if (childList.get(i).get(chidTnames[7]) != null) { String[] str = childList.get(i).get(chidTnames[7]).toString().split(","); for (int s = 0; s < str.length; s++) { - if (!StringUtils.isEmpty(str[s])&&FileUtils.isFileExist(filePath + filePathSlash + "register/file/image2/" + str[s])) - files.add(filePath + filePathSlash + "register/file/image2/" + str[s]); + if (!StringUtils.isEmpty(str[s]) && FileUtils.isFileExist(filePath + filePathSlash + "register/file/image2/" + str[s])) + files.add(filePath + filePathSlash + "register/file/image2/" + str[s]); } } } @@ -681,7 +685,8 @@ public class IdcServiceImpl implements IdcService { } /*增加同步任务状态*/ - private void syncAddTaskStatus(Map json, int scheduleType, boolean success, Date startTime, boolean isEnd) { + private void syncAddTaskStatus(Map json, int scheduleType, boolean success, Date startTime, + boolean isEnd) { try { String content = JSON.toJSONString(json); String datePath = DateUtil.formatDate(new Date(), "yyyy-MM-dd"); @@ -724,7 +729,8 @@ public class IdcServiceImpl implements IdcService { } - private boolean analyMiddle(String host, JSONObject jsonObject, MultipartFile[] files, boolean isUpload, boolean isToDB) { + private boolean analyMiddle(String host, JSONObject jsonObject, MultipartFile[] files, boolean isUpload, + boolean isToDB) { if (jsonObject.get("data") != null) { String tableName = ""; String uniqueColumn = ""; @@ -787,7 +793,8 @@ public class IdcServiceImpl implements IdcService { /*解析到数据库*/ /*按表名解析数据到数据库,子表暂未处理*/ - private boolean analyToDB(String host, String tableName, String uniqueColumn, String filePathColumn, List> list, boolean isUpload) { + private boolean analyToDB(String host, String tableName, String uniqueColumn, String + filePathColumn, List> list, boolean isUpload) { String tName = DBAUtils.tableRealName(tableName); String sql = "replace " + tName + "("; @@ -803,7 +810,7 @@ public class IdcServiceImpl implements IdcService { if (col > 0) sql += ","; columnList.get(i).put("attrName", columnList.get(i).get("columnName")); - sql += columnList.get(i).get("columnName").toString(); + sql += "`"+columnList.get(i).get("columnName").toString()+"`"; col++; if (uniqueColumn != null && columnList.get(i).get("columnKey") != null && ("," + uniqueColumn + ",").contains("," + columnList.get(i).get("columnName") + ",")) { keyColumn[key] = columnList.get(i).get("columnName").toString(); @@ -1074,7 +1081,8 @@ public class IdcServiceImpl implements IdcService { } /*由表名获取数据*/ - private Map getData(String messageType, String tableName, Map params, Map whereParams) { + private Map getData(String messageType, String + tableName, Map params, Map whereParams) { List> list = getList(tableName, whereParams); Map map = new HashMap(); map.put("messageId", CustomUtil.getId()); @@ -1091,7 +1099,8 @@ public class IdcServiceImpl implements IdcService { } - private SystemParamConfigEntity getSystemParamConfig(String paramKey, String paramName, String defaultValue, String paramExplain) { + private SystemParamConfigEntity getSystemParamConfig(String paramKey, String paramName, String + defaultValue, String paramExplain) { SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey(paramKey); if (systemParamConfigEntity == null || (systemParamConfigEntity != null && StringUtils.isEmpty(systemParamConfigEntity.getParamKey()))) { systemParamConfigEntity = new SystemParamConfigEntity(); @@ -1193,13 +1202,13 @@ public class IdcServiceImpl implements IdcService { alterTable("idc_log", "create table idc_log (id varchar(36),orderNum int,taskId varchar(60),type varchar(60),content varchar(2000),offset int,total int,createTime datetime,PRIMARY KEY (id))"); dbDao.delete("delete from idc_record where createTime map = dbDao.getMysql(tableName); if (!(map != null && map.get("tableName") != null)) { - executeSql(sql); + executeSql(sql); } } - + private void executeSql(String sql) { - try { + try { jdbcTemplate.execute(sql); - + } catch (Exception e) { } } -} +} \ No newline at end of file From f9c8953255302dcbb35d84446f6daa379f29ad98 Mon Sep 17 00:00:00 2001 From: chengqf <584883665@139.com> Date: Wed, 12 Apr 2023 09:44:05 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=88=97=E5=90=8D=E5=8A=A0=E5=8F=8D?= =?UTF-8?q?=E5=BC=95=E5=8F=B7=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E5=AD=97=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/glxp/api/idc/service/impl/IdcServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java b/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java index 54da48f7..28771fd2 100644 --- a/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java +++ b/src/main/java/com/glxp/api/idc/service/impl/IdcServiceImpl.java @@ -796,7 +796,8 @@ public class IdcServiceImpl implements IdcService { private boolean analyToDB(String host, String tableName, String uniqueColumn, String filePathColumn, List> list, boolean isUpload) { - String tName = DBAUtils.tableRealName(tableName); + + String tName = DBAUtils.tableRealName(tableName); String sql = "replace " + tName + "("; String del = "delete from " + tName + " where "; String upd = "update " + tName + " set ";