From 8789c38e3929be29f352d1c868f3ab8a9f656751 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Wed, 12 Apr 2023 23:14:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E6=8D=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sync/BasicDownloadController.java | 10 +++++-- .../sync/SpsSyncDataController.java | 9 +++++-- .../admin/controller/sync/SyncController.java | 17 ++++++++++++ .../com/glxp/sale/admin/http/SpGetHttp.java | 6 ++--- .../admin/idc/controller/IdcController.java | 16 ++++++------ .../admin/res/sync/SpsSyncOrderResponse.java | 22 +++++++--------- .../sale/admin/res/sync/SpsSyncResponse.java | 4 +++ .../sale/admin/thread/DlAllDataService.java | 26 ++++++++++++------- .../com/glxp/sale/admin/thread/HeartTask.java | 12 ++++----- .../admin/thread/ScanDownloadService.java | 1 - 10 files changed, 79 insertions(+), 44 deletions(-) create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncResponse.java diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/BasicDownloadController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/BasicDownloadController.java index d70d644..0a105bc 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/BasicDownloadController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/BasicDownloadController.java @@ -11,10 +11,12 @@ import com.glxp.sale.admin.req.info.DeleteRequest; import com.glxp.sale.admin.req.sync.BasicExportStatusRequest; import com.glxp.sale.admin.res.sync.*; import com.glxp.sale.admin.service.sync.BasicExportService; +import com.glxp.sale.admin.util.FileUtils; import com.glxp.sale.admin.util.RedisUtil; import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.util.ResultVOUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -70,6 +72,8 @@ public class BasicDownloadController { return ResultVOUtils.success("删除成功!"); } + @Value("${file_path}") + private String filePath; @PostMapping("/spssync/basic/udiinfo/downloadByStatus") public BaseResponse downloadByStatus(@RequestBody BasicExportStatusRequest basicExportStatusRequest) { @@ -101,9 +105,11 @@ public class BasicDownloadController { basicExportService.finished(basicExportStatusRequest.getId()); return ResultVOUtils.success(spsSyncDataResponse); } else if (basicExportStatusRequest.getType().equals(BasicProcessStatus.NEW_ALL_ORDER)) {//单据 - SpsSyncOrderResponse spsSyncDataResponse = (SpsSyncOrderResponse) redisUtil.get(basicExportStatusRequest.getId() + ""); + String fileName = filePath + "upload/" + BasicProcessStatus.NEW_ALL_ORDER + "-" + basicExportStatusRequest.getId() + ".udi"; + String json = FileUtils.readFileAll(fileName); +// String spsSyncDataResponse = (String) redisUtil.get(spsSyncDataRequest.getId() + ""); basicExportService.finished(basicExportStatusRequest.getId()); - return ResultVOUtils.success(spsSyncDataResponse); + return ResultVOUtils.success(json); } else if (basicExportStatusRequest.getType().equals(BasicProcessStatus.NEW_ALL_UDIS)) {//国家库信息 BasicExportStatusEntity basicExportStatusEntity = basicExportService.findById(basicExportStatusRequest.getId()); String data = (String) redisUtil.get(basicExportStatusRequest.getId() + ""); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java index 891fff4..acdbb5b 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java @@ -18,6 +18,7 @@ import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.util.ResultVOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -41,6 +42,8 @@ public class SpsSyncDataController { private BasicUploadService basicUploadService; @Resource private GennerOrderUtils gennerOrderUtils; + @Value("${file_path}") + private String filePath; private static final Logger logger = LoggerFactory.getLogger(SpsSyncDataController.class); @@ -72,8 +75,10 @@ public class SpsSyncDataController { @GetMapping("sps/sync/order") public BaseResponse getOrder(SpsSyncDataRequest spsSyncDataRequest) { - SpsSyncOrderResponse spsSyncDataResponse = (SpsSyncOrderResponse) redisUtil.get(spsSyncDataRequest.getId() + ""); - return ResultVOUtils.success(spsSyncDataResponse); + String fileName = filePath + "upload/" + BasicProcessStatus.NEW_ALL_ORDER + "-" + spsSyncDataRequest.getId() + ".udi"; + String json = FileUtils.readFileAll(fileName); +// String spsSyncDataResponse = (String) redisUtil.get(spsSyncDataRequest.getId() + ""); + return ResultVOUtils.success(json); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SyncController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SyncController.java index 8805ba1..7fd0d51 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SyncController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SyncController.java @@ -67,7 +67,16 @@ public class SyncController { @RequestMapping("/orderApi/**") public Object orderApi(HttpServletRequest request, HttpServletResponse httpServletResponse) { String uri = uriUtils.parseUri(request.getRequestURL().toString()); + log.info(uri); + String isTopService = systemParamConfigService.selectValueByParamKey("is_top_service"); + if (StrUtil.isNotEmpty(isTopService) && isTopService.equals("1")) { + uri = uri.replace("orderApi/", ""); + } + String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_ip"); + if (StrUtil.isNotEmpty(upperServerHost)) { + uri = upperServerHost + "/" + uri; + } JSONObject jsonObject = redirect(request, uri, ConstantStatus.SYNC_SCAN_ORDER, BasicProcessStatus.NEW_ALL_ORDER); return jsonObject; } @@ -77,6 +86,14 @@ public class SyncController { public Object busOrderApi(HttpServletRequest request, HttpServletResponse httpServletResponse) { String uri = uriUtils.parseUri(request.getRequestURL().toString()); log.info(uri); + String isTopService = systemParamConfigService.selectValueByParamKey("is_top_service"); + if (StrUtil.isNotEmpty(isTopService) && isTopService.equals("1")) { + uri = uri.replace("busOrderApi/", ""); + } + String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_ip"); + if (StrUtil.isNotEmpty(upperServerHost)) { + uri = upperServerHost + "/" + uri; + } JSONObject jsonObject = redirect(request, uri, ConstantStatus.SYNC_SCAN_ORDER, BasicProcessStatus.NEW_ALL_ORDER); return jsonObject; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/http/SpGetHttp.java b/api-admin/src/main/java/com/glxp/sale/admin/http/SpGetHttp.java index 895219f..7a18f2e 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/http/SpGetHttp.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/http/SpGetHttp.java @@ -255,7 +255,7 @@ public class SpGetHttp { //获取所有单据信息 - public BaseResponse getAllOrder(SpsSyncDataRequest spsSyncDataRequest) { + public BaseResponse getAllOrder(SpsSyncDataRequest spsSyncDataRequest) { Map paramMap = new HashMap<>(16); if (spsSyncDataRequest.getLastUpdateTime() != null) paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime()); @@ -263,8 +263,8 @@ public class SpGetHttp { paramMap.put("id", spsSyncDataRequest.getId()); String response = UHttpClient.mipsGetHead(getSpmsUrl() + "/sps/sync/order", paramMap, getHeaders()); try { - BaseResponse data = - JSONObject.parseObject(response, new TypeReference>() { + BaseResponse data = + JSONObject.parseObject(response, new TypeReference>() { }); return data; diff --git a/api-admin/src/main/java/com/glxp/sale/admin/idc/controller/IdcController.java b/api-admin/src/main/java/com/glxp/sale/admin/idc/controller/IdcController.java index 73b2274..b84fe1d 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/idc/controller/IdcController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/idc/controller/IdcController.java @@ -63,7 +63,7 @@ public class IdcController { // return idcService.receiveJson(request, params); } - + @RequestMapping(value = "/spssync/common/uploadFile") public BaseResponse uploadFile(HttpServletRequest request, @RequestParam("content") String content, @@ -93,7 +93,7 @@ public class IdcController { return idcService.taskList(request, params); } - + //@Log("数据同步任务根据任务ID下载数据") @RequestMapping(value = "/spssync/common/download") @ResponseBody @@ -106,13 +106,13 @@ public class IdcController { public BaseResponse uploadStatus(HttpServletRequest request, @RequestBody Map params) { return idcService.uploadStatus(request, params); } - + @RequestMapping(value = "/spssync/common/downloadStatus") @ResponseBody public BaseResponse downloadStatus(HttpServletRequest request, @RequestBody Map params) { return idcService.downloadStatus(request, params); } - + //@Log("数据同步任务根据任务ID,返回下载成功标记") @RequestMapping(value = "/spssync/common/success") @ResponseBody @@ -127,10 +127,10 @@ public class IdcController { response.setContentType("application/force-download"); idcService.downloadFile(fileName, response); } - + } - - + + @RequestMapping("/mapi/**") public Object mapi(HttpServletRequest request, HttpServletResponse httpServletResponse) { String uri = uriUtils.parseUri(request.getRequestURL().toString()); @@ -140,7 +140,7 @@ public class IdcController { if (StrUtil.isNotEmpty(isTopService) && isTopService.equals("1")) { uri = uri.replace("mapi/", ""); } - String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_host"); + String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_ip"); if (StrUtil.isNotEmpty(upperServerHost)) { uri = upperServerHost + "/" + uri; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncOrderResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncOrderResponse.java index 018c323..f080b1d 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncOrderResponse.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncOrderResponse.java @@ -1,10 +1,7 @@ package com.glxp.sale.admin.res.sync; import cn.hutool.core.collection.CollUtil; -import com.glxp.sale.admin.entity.sync.ErpOrderEntity; -import com.glxp.sale.admin.entity.sync.OrderEntity; -import com.glxp.sale.admin.entity.sync.StockOrderRemakEntity; -import com.glxp.sale.admin.entity.sync.WarehouseEntity; +import com.glxp.sale.admin.entity.sync.*; import lombok.Data; import java.util.List; @@ -14,10 +11,11 @@ public class SpsSyncOrderResponse { //同步任务ID private String taskId; - List orderEntities; - List orderDetailEntityList; - List warehouseEntityList; - List stockOrderRemakEntities; + List orderEntities; + List codeEntities; + List orderDetailBizEntities; + List orderDetailCodeEntities; + List orderDetailResultEntities; @Override public String toString() { @@ -25,11 +23,11 @@ public class SpsSyncOrderResponse { if (CollUtil.isNotEmpty(orderEntities)) { remark.append("单据:").append(orderEntities.size()).append(" 条\n"); } - if (CollUtil.isNotEmpty(orderDetailEntityList)) { - remark.append("单据详情:").append(orderDetailEntityList.size()).append(" 条\n"); + if (CollUtil.isNotEmpty(orderDetailResultEntities)) { + remark.append("单据详情:").append(orderDetailResultEntities.size()).append(" 条\n"); } - if (CollUtil.isNotEmpty(warehouseEntityList)) { - remark.append("单据条码信息:").append(warehouseEntityList.size()).append(" 条\n"); + if (CollUtil.isNotEmpty(codeEntities)) { + remark.append("单据条码信息:").append(codeEntities.size()).append(" 条\n"); } return remark.toString(); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncResponse.java new file mode 100644 index 0000000..77501f0 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncResponse.java @@ -0,0 +1,4 @@ +package com.glxp.sale.admin.res.sync; + +public class SpsSyncResponse { +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java index 6d5b17b..3709e21 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java @@ -2,6 +2,7 @@ package com.glxp.sale.admin.thread; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.glxp.sale.admin.constant.BasicProcessStatus; import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.constant.FileConstant; @@ -19,6 +20,7 @@ import com.glxp.sale.admin.thread.didl.AsyncDiDlHelper; import com.glxp.sale.admin.util.*; import com.glxp.sale.common.res.BaseResponse; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -41,6 +43,9 @@ public class DlAllDataService { RedisUtil redisUtil; @Resource GennerOrderUtils gennerOrderUtils; + @Value("${file_path}") + private String filePath; + public void dllNewAllData() { log.info("下载所有基础信息---"); @@ -153,7 +158,7 @@ public class DlAllDataService { SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable"); for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) { - BaseResponse baseResponse = null; + BaseResponse baseResponse = null; SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); if (basicExportStatusEntity.getFromType() == 0) { BaseResponse response = spGetHttp.getLastUpdateTime("AutoDownloadOrder"); @@ -166,26 +171,27 @@ public class DlAllDataService { } if (baseResponse.getCode() == 20000) { - SpsSyncOrderResponse syncOrderResponse = baseResponse.getData(); - if (syncOrderResponse != null && - (CollUtil.isNotEmpty(syncOrderResponse.getOrderEntities()) - || CollUtil.isNotEmpty(syncOrderResponse.getOrderDetailEntityList()) - || CollUtil.isNotEmpty(syncOrderResponse.getWarehouseEntityList())) - ) { + + JSONObject syncOrderResponse = JSON.parseObject(baseResponse.getData()); + if (syncOrderResponse != null) { String key = gennerOrderUtils.getOrders(); BasicExportStatusEntity myEntity = new BasicExportStatusEntity(); myEntity.setId(key); - myEntity.setTaskId(syncOrderResponse.getTaskId()); + String taskId = syncOrderResponse.getString("taskId"); + myEntity.setTaskId(taskId); myEntity.setStatus(0); myEntity.setUpdateTime(new Date()); myEntity.setStartTime(DateUtil.getDateTime()); myEntity.setIdDatas(ConstantStatus.SYNC_SCAN_ORDER); myEntity.setType(BasicProcessStatus.NEW_ALL_ORDER); - myEntity.setRemark(syncOrderResponse.toString()); +// myEntity.setRemark(syncOrderResponse.toString()); basicExportService.insertExportStatus(myEntity); myEntity.setStatus(Constant.SYNC_STATUS_WAIT); if (downstream.getParamValue().equals("1")) { - redisUtil.set(key, baseResponse.getData()); +// redisUtil.set(key, baseResponse.getData()); + FileUtils.makeDirectory(filePath + "upload/"); + String fileName = filePath + "upload/" + BasicProcessStatus.NEW_ALL_ORDER + "-" + key + ".udi"; + FileUtils.SaveFileAs(baseResponse.getData(), fileName); myEntity.setTransportType(BasicProcessStatus.INTERFACE_TYPE); myEntity.setStatus(Constant.SYNC_STATUS_WAIT_DL); basicExportService.updateExportStatus(myEntity); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/HeartTask.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/HeartTask.java index e5912f7..dc92bab 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/HeartTask.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/HeartTask.java @@ -67,12 +67,12 @@ public class HeartTask implements SchedulingConfigurer { //定时从上游下载数据 private void dlData() { SystemParamConfigEntity upConnect = systemParamConfigService.selectByParamKey("sync_upstream_enable"); - if (upConnect!=null&&upConnect.getParamValue().equals("1")) { + if (upConnect != null && upConnect.getParamValue().equals("1")) { dlAllData(); scanUpload(); } SystemParamConfigEntity donwConnect = systemParamConfigService.selectByParamKey("sync_downstream_enable"); - if (donwConnect!=null&&donwConnect.getParamValue().equals("1")) { + if (donwConnect != null && donwConnect.getParamValue().equals("1")) { scanDonwload(); } @@ -143,11 +143,11 @@ public class HeartTask implements SchedulingConfigurer { String doing = (String) redisUtil.get("is_doing_download"); if (doing == null || doing.equals("false")) { redisUtil.set("is_doing_download", "true", 60); - dlAllDataService.dllNewAllData(); +// dlAllDataService.dllNewAllData(); dlAllDataService.dllNewAllOrder(); - dlAllDataService.dllNewAllBusType(); - dlAllDataService.dlScheduleStatus(); - dlAllDataService.dlAllDi(); +// dlAllDataService.dllNewAllBusType(); +// dlAllDataService.dlScheduleStatus(); +// dlAllDataService.dlAllDi(); redisUtil.set("is_doing_download", "false"); } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/ScanDownloadService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/ScanDownloadService.java index 8ce3189..5b5e4e8 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/ScanDownloadService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/ScanDownloadService.java @@ -124,7 +124,6 @@ public class ScanDownloadService { String data = FileUtils.readFileAll(file.getPath()); BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); String fileName = file.getName(); - SpsSyncOrderResponse baseResponse = JSONObject.parseObject(data, new TypeReference() { });