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 120109b1e..9094acb82 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 @@ -174,14 +174,11 @@ public class IdcServiceImpl implements IdcService { logger.info("fetch from ip:"+host); if(!StringUtils.isEmpty(host)) { String result = post(host+"/spssync/common/list",null); - + if(IDCUtils.isJson(result)) { JSONObject json = JSON.parseObject(result); - - if(json!=null&&json.getInteger("code")==20000&&json.get("data")!=null) { - - List list = JSON.parseArray(JSON.toJSONString(json.get("data")), Map.class); - + if(json!=null&&json.getInteger("code")==20000&&json.getString("data")!=null) { + List list = JSON.parseArray(json.getString("data"), Map.class); if(list!=null) { for(Map map:list) { Map params = new HashMap(); @@ -290,12 +287,13 @@ public class IdcServiceImpl implements IdcService { .build(); String result = ""; MultipartFile[] files = {}; + Date startTime = new Date(); try { boolean success=true; Response response = client.newCall(request).execute(); result = response.body().string(); JSONObject json = JSONObject.parseObject(result); - + if(isLastLevel()) { if(json.get("code")!=null&&json.getInteger("code")==20000) { success = analyMiddle(host,json.getJSONObject("data"),files,false,true); @@ -304,11 +302,11 @@ public class IdcServiceImpl implements IdcService { } else { success = false; } - syncAddTaskStatus(json.getJSONObject("data"),3,success); + syncAddTaskStatus(json.getJSONObject("data"),3,success,startTime,true); } else { if(json.get("code")!=null&&json.get("data")!=null) { - logger.info("res1-->"+JSON.toJSONString(json)); - syncAddTaskStatus(json.getJSONObject("data"),0,success); + //logger.info("res1-->"+JSON.toJSONString(json)); + syncAddTaskStatus(json.getJSONObject("data"),0,success,startTime,true); analyMiddle(host,json.getJSONObject("data"),files,false,false); } } @@ -351,7 +349,7 @@ public class IdcServiceImpl implements IdcService { public BaseResponse downlaodSuccess(HttpServletRequest request,Map params) { - String sql = "update basic_export_status set receiveStatus='1' where id='"+params.get("taskId")+"'"; + String sql = "update basic_export_status set receiveStatus='1',endTime=now() where id='"+params.get("taskId")+"'"; dbDao.update(sql); return ResultVOUtils.success(); } @@ -377,9 +375,9 @@ public class IdcServiceImpl implements IdcService { FileUtils.SaveFileAs(content, fileName); FileUtils.SaveFileAs(content, backFileName); ArrayList saveFiles = new ArrayList<>(); - + Date startTime = new Date(); if(files!=null) { - + int n=0; try { for(MultipartFile file:files) { @@ -404,7 +402,7 @@ public class IdcServiceImpl implements IdcService { boolean success = false; if(isLastLevel()) { success = analyMiddle("",json,files,true,true); - syncAddTaskStatus(json,2,success); + syncAddTaskStatus(json,2,success,startTime,true); if(!success) { return ResultVOUtils.error(9000, "解析失败"); @@ -415,11 +413,11 @@ public class IdcServiceImpl implements IdcService { String host = getNextHost(); String result = relay(request.getHeader("reqNo"),content,saveFiles,host); if(IDCUtils.isJson(result)) { - syncAddTaskStatus(json,1,true); + syncAddTaskStatus(json,1,true,startTime,true); BaseResponse object = JSON.parseObject(result,BaseResponse.class); return object; } else { - syncAddTaskStatus(json,1,false); + syncAddTaskStatus(json,1,false,startTime,false); return ResultVOUtils.error(9000, "转发失败"); } @@ -448,10 +446,8 @@ public class IdcServiceImpl implements IdcService { public void downloadFile(String fileName,HttpServletResponse response) { OutputStream os; String filePathSlash = filePath.substring(filePath.length() -1).equals("/") ? "" : fileName.substring(0,1).equals("/") ? "" : "/"; - if(!FileUtils.isFileExist(filePath+filePathSlash+fileName)) - fileName = "11.jpg"; - logger.info(filePath+filePathSlash+fileName); - try { + + try { if(FileUtils.isFileExist(filePath+filePathSlash+fileName)) { byte[] bytes = FileUtils.readFileByBytes(filePath+filePathSlash+fileName); os = response.getOutputStream(); @@ -468,23 +464,21 @@ public class IdcServiceImpl implements IdcService { private void saveUploadStatus(Map params) { Map map = new HashMap(); map.putAll(params); - map.put("id", CustomUtil.getId()); - map.put("updateTime", new Date()); + Map columns = getColumn("basic_upload_status"); - String sql = "insert into basic_upload_status "+DBAUtils.parseInsert(map, columns); + String sql = "replace basic_upload_status "+DBAUtils.parseInsert(map, columns); dbDao.save(sql); } private void saveExportStatus(Map params) { Map map = new HashMap(); - map.putAll(params); map.put("receiveStatus", "0"); - map.put("id", CustomUtil.getId()); - map.put("updateTime", new Date()); + + Map columns = getColumn("basic_export_status"); - String sql = "insert into basic_export_status "+DBAUtils.parseInsert(map, columns); + String sql = "replace basic_export_status "+DBAUtils.parseInsert(map, columns); dbDao.save(sql); } @@ -492,10 +486,9 @@ public class IdcServiceImpl implements IdcService { Map map = new HashMap(); map.put("receiveStatus", "0"); map.putAll(params); - map.put("id", CustomUtil.getId()); - map.put("updateTime", new Date()); + Map columns = getColumn("basic_download_status"); - String sql = "insert into basic_download_status "+DBAUtils.parseInsert(map, columns); + String sql = "replace basic_download_status "+DBAUtils.parseInsert(map, columns); dbDao.save(sql); } @@ -566,15 +559,17 @@ public class IdcServiceImpl implements IdcService { for(int i=0;i data = getData(messageType,tableName,params,whereParams); String recordSql = ""; orderNum++; saveIdcLog(messageType,"",tableName +">"+where,i *limit,total); if(data.get("data")!=null) { - + List list = JSONObject.parseArray(JSON.toJSONString(data.get("data")), Map.class); if(list!=null&&list.size()>0) { for(int m=0;m-1) { for(int z=0;zsuccess",i *limit,total); } - syncAddTaskStatus(data,isUpload ? 1 : 0 ,success); + syncAddTaskStatus(data,isUpload ? 1 : 0 ,success,startTime,isUpload); } } } @@ -654,7 +650,7 @@ public class IdcServiceImpl implements IdcService { } /*增加同步任务状态*/ - private void syncAddTaskStatus(Map json,int scheduleType,boolean success) { + private void syncAddTaskStatus(Map json,int scheduleType,boolean success,Date startTime,boolean isEnd) { try { String content = JSON.toJSONString(json); @@ -672,11 +668,18 @@ public class IdcServiceImpl implements IdcService { //type,transportType,superiorService,subordinateService,cacheFilePath Map map = new HashMap<>(); map.put("type", json.get("messageType")); + map.put("id", json.get("messageId")); + if(json.get("id")==null) + map.put("id", CustomUtil.getId()); map.put("transportType", scheduleType == 0 ? "1" : "2"); map.put("scheduleType", scheduleType); map.put("taskId", json.get("messageId")); map.put("cacheFilePath", fileName); map.put("status", success ? "1" : "0"); + map.put("startTime", startTime!=null ? startTime : new Date()); + map.put("updateTime", new Date()); + if(isEnd) + map.put("endTime", new Date()); if(scheduleType==2) { saveUploadStatus(map); } else if (scheduleType==3) { @@ -864,7 +867,6 @@ public class IdcServiceImpl implements IdcService { for (Object o : (List) obj) { chList.add((Map)o); } - //logger.info("childList-->"+list.get(i).get("tableName"+m)+"-->"+JSON.toJSONString(chList)); analyToDB(host,list.get(i).get("tableName"+m).toString(),"","",chList,isUpload); } else { break; @@ -873,7 +875,6 @@ public class IdcServiceImpl implements IdcService { } if(n>0) { - result = (dbDao.save(sql)>0); if(!result) logger.error(tableName+"-->fetchSave Fail"); @@ -947,7 +948,7 @@ public class IdcServiceImpl implements IdcService { String[] str = fileName.split(","); for(int i=0;i"+str[i]); if(!signleDownloadFile(syncIp,str[i])) success = false; } @@ -1033,7 +1034,6 @@ public class IdcServiceImpl implements IdcService { String where = DBAUtils.convertWhere(column,params,""); sql+=!StringUtils.isEmpty(where) ? " where "+where : ""; - Map map = new HashMap(); map.putAll(params); map.put("sql", sql); @@ -1044,7 +1044,7 @@ public class IdcServiceImpl implements IdcService { private Map getData(String messageType,String tableName,Map params,Map whereParams) { List> list = getList(tableName,whereParams); Map map = new HashMap(); - map.put("messageId", UUID.randomUUID().toString().replaceAll("-", "")); + map.put("messageId", CustomUtil.getId()); map.put("messageType", messageType); map.put("apiCode", "common"); map.put("tableName", DBAUtils.tableAliasName(tableName));