diff --git a/src/main/java/com/glxp/api/constant/BasicProcessStatus.java b/src/main/java/com/glxp/api/constant/BasicProcessStatus.java index 35e92dc09..b028a12d7 100644 --- a/src/main/java/com/glxp/api/constant/BasicProcessStatus.java +++ b/src/main/java/com/glxp/api/constant/BasicProcessStatus.java @@ -27,7 +27,7 @@ public class BasicProcessStatus { public static final int BASIC_THIRD_ORDER = 6; //往来单位 public static final int NEW_ALL_DATA = 7; //所有最新数据 public static final int NEW_ALL_BUS = 8; - public static final int NEW_ALL_ORDER = 9; + public static final String NEW_ALL_ORDER = "9"; public static final int NEW_ALL_DI = 10; public static final int SCHEDULE_NORMAL = 1; //常规任务 diff --git a/src/main/java/com/glxp/api/entity/sync/BasicDownloadStatusEntity.java b/src/main/java/com/glxp/api/entity/sync/BasicDownloadStatusEntity.java index 9842cd3ed..d91f106fa 100644 --- a/src/main/java/com/glxp/api/entity/sync/BasicDownloadStatusEntity.java +++ b/src/main/java/com/glxp/api/entity/sync/BasicDownloadStatusEntity.java @@ -18,7 +18,7 @@ public class BasicDownloadStatusEntity { private String taskId; private String idDatas; private Integer status; - private Integer type; + private String type; private Date updateTime; private Integer scheduleType; private Date startTime; diff --git a/src/main/java/com/glxp/api/entity/sync/BasicExportStatusEntity.java b/src/main/java/com/glxp/api/entity/sync/BasicExportStatusEntity.java index 66d87cf5a..b0fcb4fec 100644 --- a/src/main/java/com/glxp/api/entity/sync/BasicExportStatusEntity.java +++ b/src/main/java/com/glxp/api/entity/sync/BasicExportStatusEntity.java @@ -10,7 +10,7 @@ public class BasicExportStatusEntity { private String id; private String idDatas; private Integer status; - private Integer type; + private String type; private Date updateTime; private Integer scheduleType; private Date startTime; diff --git a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java index 38f21c1cc..cb8697216 100644 --- a/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java +++ b/src/main/java/com/glxp/api/http/sync/SpGetHttpClient.java @@ -158,7 +158,7 @@ public class SpGetHttpClient { } - public String getBasicData(String id, int type) { + public String getBasicData(String id, String type) { BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest(); basicExportStatusRequest.setId(id); basicExportStatusRequest.setType(type); 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..f11db2895 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 @@ -66,13 +66,13 @@ public class IdcServiceImpl implements IdcService { private String backFilePath; @Value("${API_KEY}") - private String apiKey; - @Value("${API_SECRET}") - private String apiSecret; + private String apiKey; + @Value("${API_SECRET}") + private String apiSecret; - /*同步表,格式:同步设置表列名/同步设置表列名(子表时设置,主表不设置)/主表唯一列(多列逗号分隔)/主表关联列/子表关联列/数据库实际表/时间列/图片或文件列/数据条件/说明*/ - private final String[] SYNC_TABLES= { - "entrustAction//basic_entrust_accept/id///updateTime///委托验收","basicProducts//basic_udirel/id///updateTime///耗材字典","/basicProducts/basic_products/id/uuid/uuid////耗材字典信息详情", + /*同步表,格式:同步设置表列名/同步设置表列名(子表时设置,主表不设置)/主表唯一列(多列逗号分隔)/主表关联列/子表关联列/数据库实际表/时间列/图片或文件列/数据条件/说明*/ + private final String[] SYNC_TABLES= { + "entrustAction//basic_entrust_accept/id///updateTime///委托验收","basicProducts//basic_udirel/id///updateTime///耗材字典","/basicProducts/basic_products/id/uuid/uuid////耗材字典信息详情", "/companyCert/company_product_relevance/id/customerId/unitFk/updateTime///供应商关联信息", "basicCorp//basic_corp/id///updateTime///往来单位","typeThird//thr_bustype_origin/id///updateTime///第三方单据类型", "basicThirdCorp//thr_corp/id///updateTime///第三方往来单位","//thr_dept/id///updateTime///第三方部门", @@ -85,14 +85,14 @@ public class IdcServiceImpl implements IdcService { "/manufacturerCert/sup_cert/id/manufacturerId/manufacturerIdFk/updateTime/filePath/type=2/生产企业资质证书信息", "/productCert/sup_cert/id/productId/productIdFk/updateTime/filePath/type=3/产品资质证书信息", "//udicompany/id///updateTime///国际库医疗器械注册人信息"}; - //"dbDiProducts//productinfo/id///updateTime///DI产品信息", - //"basicInv/////////仓库字典", - //"typeBus/////////业务单据类型", - //"typeScan/////////扫码单据类型", + //"dbDiProducts//productinfo/id///updateTime///DI产品信息", + //"basicInv/////////仓库字典", + //"typeBus/////////业务单据类型", + //"typeScan/////////扫码单据类型", private int orderNum=0; @Resource - private SystemParamConfigService systemParamConfigService; + private SystemParamConfigService systemParamConfigService; @Resource private JdbcTemplate jdbcTemplate; @@ -101,7 +101,7 @@ public class IdcServiceImpl implements IdcService { private DbDao dbDao; @Resource - private ScheduledDao scheduledDao; + private ScheduledDao scheduledDao; @Override public BaseResponse taskList(HttpServletRequest request,Map params) { @@ -119,7 +119,7 @@ public class IdcServiceImpl implements IdcService { if(!FileUtils.isFileExist(map.get("cacheFilePath").toString())) ResultVOUtils.error(9000, "下载文件不存在"); String json = FileUtils.readFileAll(map.get("cacheFilePath").toString()); - + JSONObject object = JSON.parseObject(json); if(object==null) ResultVOUtils.error(9000, "任务下载失败"); @@ -127,31 +127,31 @@ public class IdcServiceImpl implements IdcService { BaseResponse response = JSON.parseObject(json,BaseResponse.class); return response; } - + return ResultVOUtils.success(object); } - - /*UDI系统上传自助平台*/ + + /*UDI系统上传自助平台*/ @Override - public void asyncUdiTask() { + public void asyncUdiTask() { logger.info("UDI管理系统同步任务开始--------"); asyncDataTask(true); - } - /*自助平台生成任务,不上传*/ + } + /*自助平台生成任务,不上传*/ @Override - public void asyncSpsTask() { + public void asyncSpsTask() { logger.info("自助平台同步任务开始--------"); asyncDataTask(false); - } - + } + /*拉取前一级中继服务数据*/ @Async @Override public void asyncFetchUdiTask() { fetchTask(false); } - @Async + @Async @Override public void asyncFetchTask() { initTable(); @@ -162,9 +162,9 @@ public class IdcServiceImpl implements IdcService { fetchTask(true); } - + private void fetchTask(boolean isIdc) { - + String host = getNextHost(); if(!isIdc) { Map map = dbDao.get("select * from sync_data_set limit 1"); @@ -174,14 +174,14 @@ 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(list!=null) { for(Map map:list) { Map params = new HashMap(); @@ -193,17 +193,17 @@ public class IdcServiceImpl implements IdcService { } } } - + @Async @Override - public void asyncIdcTask() { + public void asyncIdcTask() { initTable(); Map map = dbDao.get("select * from idc_var where code='system_type'"); if(map==null) { dbDao.save("insert into idc_var (code,content) values ('system_type','IDC')"); } } - + private void asyncDataTask(boolean isUpload) { initTable(); @@ -217,7 +217,7 @@ public class IdcServiceImpl implements IdcService { } for(int i=0;i> keyList = dbDao.listKeyMysql(tnames[2]); String keyColumn = keyList!=null&&keyList.size()>0 ? keyList.get(0).get("columnName").toString() : "id"; Map map = new HashMap(); @@ -248,7 +248,7 @@ public class IdcServiceImpl implements IdcService { map.put("isEnd", "1"); } map.put("sqlWhere", sqlWhere); - + map.put("tableKey", tnames[0]); map.put("tableName", tnames[2]); map.put("uniqueColumn", tnames[3]); @@ -261,33 +261,33 @@ public class IdcServiceImpl implements IdcService { ScheduledRequest scheduledRequest = new ScheduledRequest(); scheduledRequest.setCronName("sync"+WordUtils.capitalizeFully(tnames[2], new char[]{'_'}).replace("_", "")); ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); - String cron = scheduledEntity!=null ? scheduledEntity.getCron() : ""; - - if(!StringUtils.isEmpty(cron)) { + String cron = scheduledEntity!=null ? scheduledEntity.getCron() : ""; + + if(!StringUtils.isEmpty(cron)) { CronSequenceGenerator cronSequenceGenerator = new CronSequenceGenerator(cron); Date nextTimePoint = cronSequenceGenerator.next(DateUtil.parseDate(lastUpdateTime)); sync = nextTimePoint.before(nowUpdateTime); } - if(sync) { + if(sync) { if(syncMasterData(map,isUpload,syncIp)) { setUpdateTime(tnames[2]+"."+tnames[0],DateUtil.formatDate(nowUpdateTime,"yyyy-MM-dd HH:mm:ss")); } - } + } } } - - + + private String fetchData(String host,Map params) { OkHttpClient client = new OkHttpClient().newBuilder() - .build(); + .build(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(params)); Request request = new Request.Builder() - .url(host+"/spssync/common/download") - .method("POST", body) - .addHeader("Content-Type", "application/json") - .build(); + .url(host+"/spssync/common/download") + .method("POST", body) + .addHeader("Content-Type", "application/json") + .build(); String result = ""; MultipartFile[] files = {}; try { @@ -295,7 +295,7 @@ public class IdcServiceImpl implements IdcService { 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); @@ -310,14 +310,14 @@ public class IdcServiceImpl implements IdcService { logger.info("res1-->"+JSON.toJSONString(json)); syncAddTaskStatus(json.getJSONObject("data"),0,success); analyMiddle(host,json.getJSONObject("data"),files,false,false); - } + } } - + if(success) { String ret = post(host+"/spssync/common/success",params); - + } - + } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -328,16 +328,16 @@ public class IdcServiceImpl implements IdcService { private String post(String url,Map params) { OkHttpClient client = new OkHttpClient().newBuilder() - .build(); + .build(); MediaType mediaType = MediaType.parse("application/json"); RequestBody body = RequestBody.create(mediaType, ""); if(params!=null) body = RequestBody.create(mediaType,JSON.toJSONString(params)); Request request = new Request.Builder() - .url(url) - .method("POST", body) - .addHeader("Content-Type", "application/json") - .build(); + .url(url) + .method("POST", body) + .addHeader("Content-Type", "application/json") + .build(); String result = ""; try { Response response = client.newCall(request).execute(); @@ -358,7 +358,7 @@ public class IdcServiceImpl implements IdcService { /****/ @Override public BaseResponse receive(HttpServletRequest request, - String content,MultipartFile[] files) { + String content,MultipartFile[] files) { /*授权检查,后续完善*/ String apiKey = request.getHeader("apiKey"); String secretKey = request.getHeader("secretKey"); @@ -373,23 +373,23 @@ public class IdcServiceImpl implements IdcService { IDCUtils.createDirectory(filePath +filePathSlash +datePath+"/"); if(!FileUtils.makeDirectory(backFilePath +backFileSlash +datePath)) IDCUtils.createDirectory(filePath +backFileSlash +datePath+"/"); - + FileUtils.SaveFileAs(content, fileName); - FileUtils.SaveFileAs(content, backFileName); - ArrayList saveFiles = new ArrayList<>(); - - if(files!=null) { - - int n=0; - try { - for(MultipartFile file:files) { - String imageName = filePath +filePathSlash+"register/file/image2/"+file.getOriginalFilename(); - saveFiles.add(imageName); - - writeFile(file.getBytes(), filePath +filePathSlash+"register/file/image2/", file.getOriginalFilename()); - writeFile(file.getBytes(), backFilePath +backFileSlash+datePath+"register/file/image2/", file.getOriginalFilename()); - n++; - } + FileUtils.SaveFileAs(content, backFileName); + ArrayList saveFiles = new ArrayList<>(); + + if(files!=null) { + + int n=0; + try { + for(MultipartFile file:files) { + String imageName = filePath +filePathSlash+"register/file/image2/"+file.getOriginalFilename(); + saveFiles.add(imageName); + + writeFile(file.getBytes(), filePath +filePathSlash+"register/file/image2/", file.getOriginalFilename()); + writeFile(file.getBytes(), backFilePath +backFileSlash+datePath+"register/file/image2/", file.getOriginalFilename()); + n++; + } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -398,33 +398,33 @@ public class IdcServiceImpl implements IdcService { e.printStackTrace(); } - } - - /*解析入库*/ - boolean success = false; - if(isLastLevel()) { - success = analyMiddle("",json,files,true,true); - syncAddTaskStatus(json,2,success); - if(!success) { - - return ResultVOUtils.error(9000, "解析失败"); - } - } else { - //需要转发 - if(isRelay()) { - String host = getNextHost(); - String result = relay(request.getHeader("reqNo"),content,saveFiles,host); - if(IDCUtils.isJson(result)) { - syncAddTaskStatus(json,1,true); - BaseResponse object = JSON.parseObject(result,BaseResponse.class); - return object; - } else { - syncAddTaskStatus(json,1,false); - return ResultVOUtils.error(9000, "转发失败"); - } - - } - } + } + + /*解析入库*/ + boolean success = false; + if(isLastLevel()) { + success = analyMiddle("",json,files,true,true); + syncAddTaskStatus(json,2,success); + if(!success) { + + return ResultVOUtils.error(9000, "解析失败"); + } + } else { + //需要转发 + if(isRelay()) { + String host = getNextHost(); + String result = relay(request.getHeader("reqNo"),content,saveFiles,host); + if(IDCUtils.isJson(result)) { + syncAddTaskStatus(json,1,true); + BaseResponse object = JSON.parseObject(result,BaseResponse.class); + return object; + } else { + syncAddTaskStatus(json,1,false); + return ResultVOUtils.error(9000, "转发失败"); + } + + } + } return ResultVOUtils.success(); } @@ -432,18 +432,18 @@ public class IdcServiceImpl implements IdcService { /*数据同步,从数据库获取数据下发或上传下级中继服务*/ @Override public BaseResponse send(Map params) { - - return send(params.get("messageType").toString(),params.get("tableName").toString(),params); - - + + return send(params.get("messageType").toString(),params.get("tableName").toString(),params); + + } @Override public BaseResponse send(String messageType,String tableName,Map params) { - + return ResultVOUtils.error(9999, ""); } - - + + @Override public void downloadFile(String fileName,HttpServletResponse response) { OutputStream os; @@ -456,8 +456,8 @@ public class IdcServiceImpl implements IdcService { byte[] bytes = FileUtils.readFileByBytes(filePath+filePathSlash+fileName); os = response.getOutputStream(); os.write(bytes); - os.flush(); - os.close(); + os.flush(); + os.close(); } } catch (IOException e) { // TODO Auto-generated catch block @@ -475,10 +475,10 @@ public class IdcServiceImpl implements IdcService { dbDao.save(sql); } - + private void saveExportStatus(Map params) { Map map = new HashMap(); - + map.putAll(params); map.put("receiveStatus", "0"); map.put("id", CustomUtil.getId()); @@ -514,8 +514,8 @@ public class IdcServiceImpl implements IdcService { dbDao.save(sql); } - - + + private boolean syncMasterData(Map params,boolean isUpload,String syncIp) { boolean success=false; String tableName = params.get("tableName").toString(); @@ -538,29 +538,29 @@ public class IdcServiceImpl implements IdcService { Map whereParams = new HashMap(); whereParams.put("sqlWhere", params.get("sqlWhere")); whereParams.put("dataWhere", params.get("dataWhere")); - + Map map = new HashMap(); String where = DBAUtils.convertWhere(column,whereParams,""); sql+=!StringUtils.isEmpty(where) ? " where "+where : ""; map.put("sql", sql); int total = dbDao.count(map); - + String isEnd = params.get("isEnd")!=null ? params.get("isEnd").toString() : "0"; int limit = 50; ArrayList files = new ArrayList<>(); - + String filePathColumn = params.get("filePathColumn")!=null ? params.get("filePathColumn").toString() : ""; orderNum++; String messageType = params.get("messageType").toString(); saveIdcLog(messageType,"",tableName +">"+where,0,total); String filePathSlash = filePath.substring(filePath.length() -1).equals("/") ? "" : "/"; - + if(total>0) { success = true; - + whereParams.put("page", 0); whereParams.put("limit", limit); - + List> keyList = dbDao.listKeyMysql(tableName); String keyColumn = keyList!=null&&keyList.size()>0 ? keyList.get(0).get("columnName").toString() : "id"; for(int i=0;i"+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;msuccess",i *limit,total); } else { success = false; - + saveIdcLog(messageType,"",tableName +">"+result,i *limit,total); } } else { success = false; saveIdcLog(messageType,"",syncIp+":"+tableName +">fail:上传地址未连通",i *limit,total); } - + } else { if(!StringUtils.isEmpty(recordSql)) { dbDao.save("insert into idc_record (id,type,fkId,isEnd,createTime) values "+recordSql); @@ -647,12 +647,12 @@ public class IdcServiceImpl implements IdcService { } } } - - } - + + } + return success; } - + /*增加同步任务状态*/ private void syncAddTaskStatus(Map json,int scheduleType,boolean success) { try @@ -665,31 +665,31 @@ public class IdcServiceImpl implements IdcService { IDCUtils.createDirectory(filePath +datePath+"/"); if(!FileUtils.makeDirectory(backFilePath +datePath)) IDCUtils.createDirectory(filePath +datePath+"/"); - + FileUtils.SaveFileAs(content, fileName); - FileUtils.SaveFileAs(content, backFileName); - - //type,transportType,superiorService,subordinateService,cacheFilePath - Map map = new HashMap<>(); - map.put("type", json.get("messageType")); - 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"); - if(scheduleType==2) { - saveUploadStatus(map); - } else if (scheduleType==3) { - saveDownloadStatus(map); - } else { - saveExportStatus(map); - } + FileUtils.SaveFileAs(content, backFileName); + + //type,transportType,superiorService,subordinateService,cacheFilePath + Map map = new HashMap<>(); + map.put("type", json.get("messageType")); + 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"); + if(scheduleType==2) { + saveUploadStatus(map); + } else if (scheduleType==3) { + saveDownloadStatus(map); + } else { + saveExportStatus(map); + } } catch (Exception ex) { logger.error(ex.getMessage()); } } - + private boolean analyMiddle(String host,JSONObject jsonObject,MultipartFile[] files,boolean isUpload,boolean isToDB) { if(jsonObject.get("data")!=null) { String tableName = ""; @@ -725,7 +725,7 @@ public class IdcServiceImpl implements IdcService { } private boolean analyToFile(String host,String filePathColumn,List> list) { - + if(list!=null&&list.size()>0) { String[] files = new String[list.size()]; //logger.info("filePathColumn-->"+filePathColumn); @@ -745,13 +745,13 @@ public class IdcServiceImpl implements IdcService { } } } - + batchDownloadFile(host,files); } return true; } /*解析到数据库*/ - + /*按表名解析数据到数据库,子表暂未处理*/ private boolean analyToDB(String host,String tableName,String uniqueColumn,String filePathColumn,List> list,boolean isUpload) { @@ -777,7 +777,7 @@ public class IdcServiceImpl implements IdcService { key++; } else { if(columnList.get(i).get("columnKey")!=null&&!StringUtils.isEmpty(columnList.get(i).get("columnKey").toString())&& - ("PRI".contains(columnList.get(i).get("columnKey").toString()))) { + ("PRI".contains(columnList.get(i).get("columnKey").toString()))) { 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++; @@ -797,7 +797,7 @@ public class IdcServiceImpl implements IdcService { if(!StringUtils.isEmpty(filePathColumn)) { files[i] = list.get(i).get(filePathColumn) !=null ? list.get(i).get(filePathColumn).toString() : ""; } - + if("A,D,U".contains(operateMode)) { for(int z=0;z0 ? "," : ""; - boolean ups = list.get(i).containsKey(attrName) ? true : false ; - updateSet+=ups&&h>0 ? "," : ""; - updateSet+=ups ? columnList.get(k).get("columnName")+"=" : ""; - if(StringUtils.isEmpty(value)) { - sql+="null"; - updateSet+=ups ? "null" : ""; + "C" : columnList.get(k).get("dataType").toLowerCase().contains("date") ? "D" : "N" ; + + sql+=m>0 ? "," : ""; + boolean ups = list.get(i).containsKey(attrName) ? true : false ; + updateSet+=ups&&h>0 ? "," : ""; + updateSet+=ups ? columnList.get(k).get("columnName")+"=" : ""; + if(StringUtils.isEmpty(value)) { + sql+="null"; + updateSet+=ups ? "null" : ""; + } else { + if(dataType.equals("C")) { + sql+="'"+value+"'"; + updateSet+=ups ? "'"+value+"'" : ""; + } else if (dataType.equals("N")) { + sql+=value; + updateSet+=ups ? value : ""; } else { - if(dataType.equals("C")) { - sql+="'"+value+"'"; - updateSet+=ups ? "'"+value+"'" : ""; - } else if (dataType.equals("N")) { - sql+=value; - updateSet+=ups ? value : ""; - } else { - Date date = new Date(); - date = StringUtils.isNumeric(value) ? new Date(Long.valueOf(value)) : IDCUtils.parseDate(value); - String str = DateUtils.format(date, "yyyy-MM-dd HH:mm:ss"); - sql+="cast('"+str+"' as datetime)"; - updateSet+=ups ? "cast('"+str+"' as datetime)" : ""; - } + Date date = new Date(); + date = StringUtils.isNumeric(value) ? new Date(Long.valueOf(value)) : IDCUtils.parseDate(value); + String str = DateUtils.format(date, "yyyy-MM-dd HH:mm:ss"); + sql+="cast('"+str+"' as datetime)"; + updateSet+=ups ? "cast('"+str+"' as datetime)" : ""; } - m++; - if(operateMode.equals("U")&&!StringUtils.isEmpty(updateSet)&&!StringUtils.isEmpty(updateWhere)) - dbDao.update(upd + updateSet+" where "+updateWhere); - h+=ups ? 1 : 0; } - + m++; + if(operateMode.equals("U")&&!StringUtils.isEmpty(updateSet)&&!StringUtils.isEmpty(updateWhere)) + dbDao.update(upd + updateSet+" where "+updateWhere); + h+=ups ? 1 : 0; + } + sql+=")"; n++; } - + for(int m=0;m<30;m++) { if(list.get(i).get("tableName"+m)!=null&&list.get(i).get("data"+m)!=null) { Object obj = list.get(i).get("data"+m); @@ -870,10 +870,10 @@ public class IdcServiceImpl implements IdcService { break; } } - + } if(n>0) { - + result = (dbDao.save(sql)>0); if(!result) logger.error(tableName+"-->fetchSave Fail"); @@ -894,7 +894,7 @@ public class IdcServiceImpl implements IdcService { host+="/spssync/common/upload" ; OkHttpClient client = new OkHttpClient().newBuilder() .connectTimeout(30, TimeUnit.SECONDS)//设置连接超时时间 - .readTimeout(30, TimeUnit.SECONDS)//设置读取超时时间 + .readTimeout(30, TimeUnit.SECONDS)//设置读取超时时间 .build(); MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); @@ -905,8 +905,8 @@ public class IdcServiceImpl implements IdcService { for (int i = 0; i < files.size(); i++) { if(!StringUtils.isEmpty(files.get(i))) { File file = new File(files.get(i)); - builder.addFormDataPart("files",files.get(i), - RequestBody.create(MediaType.parse(fileType), file)); + builder.addFormDataPart("files",files.get(i), + RequestBody.create(MediaType.parse(fileType), file)); } } } @@ -914,17 +914,17 @@ public class IdcServiceImpl implements IdcService { RequestBody body = builder.build(); Request req = new Request.Builder() - .url(host) - .method("POST", body) - .addHeader("Content-Type", "application/x-www-form-urlencoded") - .addHeader("format", "json") - .addHeader("apiKey", apiKey) - .addHeader("secretKey", apiSecret) - .addHeader("reqNo", reqNo) - .addHeader("timestamp",DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")) - .addHeader("Access-Control-Allow-Headers", "Authorization, Origin, X-Requested-With, Content-Type, Accept") - .build(); - try { + .url(host) + .method("POST", body) + .addHeader("Content-Type", "application/x-www-form-urlencoded") + .addHeader("format", "json") + .addHeader("apiKey", apiKey) + .addHeader("secretKey", apiSecret) + .addHeader("reqNo", reqNo) + .addHeader("timestamp",DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")) + .addHeader("Access-Control-Allow-Headers", "Authorization, Origin, X-Requested-With, Content-Type, Accept") + .build(); + try { Response response = client.newCall(req).execute(); result=response.body().string(); log.debug("result--->"+result); @@ -947,7 +947,7 @@ public class IdcServiceImpl implements IdcService { String[] str = fileName.split(","); for(int i=0;i map = dbDao.get("select * from idc_var where code='system_type'"); return !(map!=null&&map.get("content")!=null&&map.get("content").toString().equals("IDC")) ; } - + /*是否需要转发*/ private boolean isRelay() { String relayHost = getNextHost(); @@ -1030,10 +1030,10 @@ public class IdcServiceImpl implements IdcService { private List> getList(String tableName,Map params) { String sql = "select "+tableName+".*,'A' as operateMode from "+tableName; Map column = getColumn(tableName); - + String where = DBAUtils.convertWhere(column,params,""); sql+=!StringUtils.isEmpty(where) ? " where "+where : ""; - + Map map = new HashMap(); map.putAll(params); map.put("sql", sql); @@ -1099,7 +1099,7 @@ public class IdcServiceImpl implements IdcService { for(int i=0;i column = new HashMap(); String dataType =columnList.get(i).get("dataType").toLowerCase().contains("char") || columnList.get(i).get("dataType").toLowerCase().contains("text")? - "C" : columnList.get(i).get("dataType").toLowerCase().contains("date") ? "D" : "N" ;; + "C" : columnList.get(i).get("dataType").toLowerCase().contains("date") ? "D" : "N" ;; String attrName = columnList.get(i).get("columnName").toString(); if(map.get(attrName)==null) { column.put("tableName", tname); @@ -1131,7 +1131,7 @@ public class IdcServiceImpl implements IdcService { } else { //国家库数据 if(id.equals("productinfo")) { - + } updateTime = "2000-01-01 00:00:00"; String sql = "insert into idc_status (id,statusTime) values ('"+id+"',cast('"+updateTime+"' as datetime))"; @@ -1163,7 +1163,7 @@ public class IdcServiceImpl implements IdcService { jdbcTemplate.execute("alter table idc_status modify column id varchar(100)"); jdbcTemplate.execute("delete from idc_log where createTime busTypes; //扫码单据类型 private List changeBusTypes; //业务单据类型 - private List purTypeEntities; +// private List purTypeEntities; private String orderSyncStart; private String basicSyncStart; diff --git a/src/main/java/com/glxp/api/service/sync/UpBasicService.java b/src/main/java/com/glxp/api/service/sync/UpBasicService.java index 06b703f65..48805864e 100644 --- a/src/main/java/com/glxp/api/service/sync/UpBasicService.java +++ b/src/main/java/com/glxp/api/service/sync/UpBasicService.java @@ -5,6 +5,7 @@ import com.glxp.api.constant.ConstantStatus; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.purchase.PurOrderDetailEntity; import com.glxp.api.entity.purchase.PurOrderEntity; +import com.glxp.api.entity.sync.SyncDataChangeBustypesEntity; import com.glxp.api.entity.system.SyncDataBustypeEntity; import com.glxp.api.entity.system.SyncDataPurTypeEntity; import com.glxp.api.req.inout.FilterOrderRequest; @@ -106,10 +107,10 @@ public class UpBasicService { List purOrderEntities = new ArrayList<>(); FilterOrderRequest orderFilterRequest = new FilterOrderRequest(); BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest); - if (CollUtil.isNotEmpty(syncDataSetEntity.getPurTypeEntities())) { - for (SyncDataPurTypeEntity syncDataBustypeEntity : syncDataSetEntity.getPurTypeEntities()) { - if (syncDataBustypeEntity.getType() == ConstantStatus.BUS_TYPE_DD) { - List temps = purOrderService.findByStatus(syncDataBustypeEntity.getAction(), syncDataBustypeEntity.getOrderStatus()); + if (CollUtil.isNotEmpty(syncDataSetEntity.getChangeBusTypes())) { + for (SyncDataChangeBustypesEntity syncDataChangeBustypesEntity : syncDataSetEntity.getChangeBusTypes()) { + if (syncDataChangeBustypesEntity.getAction().equals(ConstantStatus.BUS_ORDER_CGDD)) { + List temps = purOrderService.findByStatus(syncDataChangeBustypesEntity.getAction(), syncDataChangeBustypesEntity.getOrderStatus()); if (CollUtil.isNotEmpty(temps)) { purOrderEntities.addAll(temps); } diff --git a/src/main/java/com/glxp/api/task/AsyncFetchUdiTask.java b/src/main/java/com/glxp/api/task/AsyncFetchUdiTask.java index ca6f4fc3f..c9a91e4c5 100644 --- a/src/main/java/com/glxp/api/task/AsyncFetchUdiTask.java +++ b/src/main/java/com/glxp/api/task/AsyncFetchUdiTask.java @@ -36,7 +36,7 @@ public class AsyncFetchUdiTask implements SchedulingConfigurer { scheduledRequest.setCronName("syncFetch"); logger.info("syncFetch----------------"); ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); - String cron = scheduledEntity!=null ? scheduledEntity.getCron() : "0 0/5 * * * ?"; + String cron = scheduledEntity!=null ? scheduledEntity.getCron() : "0 0/1 * * * ?"; if (cron.isEmpty()) { logger.error("cron is null"); diff --git a/src/main/java/com/glxp/api/task/AsyncUdiTask.java b/src/main/java/com/glxp/api/task/AsyncUdiTask.java index 660b74446..001d5a507 100644 --- a/src/main/java/com/glxp/api/task/AsyncUdiTask.java +++ b/src/main/java/com/glxp/api/task/AsyncUdiTask.java @@ -16,7 +16,6 @@ import com.glxp.api.idc.service.IdcService; import com.glxp.api.req.system.ScheduledRequest; - @Component @EnableScheduling public class AsyncUdiTask implements SchedulingConfigurer { @@ -37,7 +36,7 @@ public class AsyncUdiTask implements SchedulingConfigurer { scheduledRequest.setCronName("syncIdcUdi"); logger.info("syncIdcUdi----------------"); ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); - String cron = scheduledEntity!=null ? scheduledEntity.getCron() : "0 0/3 * * * ?"; + String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 0/1 * * * ?"; if (cron.isEmpty()) { logger.error("cron is null"); @@ -48,9 +47,8 @@ public class AsyncUdiTask implements SchedulingConfigurer { } private void process() { - logger.info("syncIdcUdi----process------------"); - - idcService.asyncUdiTask(); - } + logger.info("syncIdcUdi----process------------"); + idcService.asyncUdiTask(); + } } diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 2be72e2d3..7192e8b79 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -67,6 +67,7 @@ public class SyncHeartTask implements SchedulingConfigurer { } if (curTime2 - lastTime2 > timeInterval2) { heartService.uploadAllOrder(null); + heartService.uploadAllBusOrder(null); redisUtil.set("SPS_SYNC_UPLOAD_ORDER", curTime2); } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 97b7afa15..7e59ac974 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -46,7 +46,7 @@ logging: level: com.glxp.api.dao: debug -file_path: D:/udi/udiwms/udiwmsfile/ +file_path: D:/udi/inUdiwms/udiwmsfile/ UDI_KEY: 6b137c66-6286-46c6-8efa-c2f5dd9237df UDI_SERVER_URL: https://www.udims.com/UDI_DL_Server_test SPMS_KEY: lCOdWCBKS6Kw45wdnnqUTELXyuSKnXEs