From 9bca7f472991b8eabe9db1a53979b5ae921522d0 Mon Sep 17 00:00:00 2001 From: anthonyywj2 <353682448@qq.com> Date: Thu, 21 Apr 2022 09:21:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=A4=87=E4=BB=BD=E3=80=82?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/constant/BasicProcessStatus.java | 9 + .../sale/admin/constant/FileConstant.java | 4 + .../param/SystemParamConfigController.java | 118 ++++++- .../sync/BasicDowmloadController.java | 32 +- .../sync/SpsSyncDataController.java | 146 +++++++++ .../admin/dao/param/SystemParamConfigDao.java | 5 +- .../entity/sync/BasicExportStatusEntity.java | 2 + .../sync/BasicExportStatusTimeEntity.java | 13 + .../entity/sync/BasicUnitMaintainEntity.java | 1 + .../entity/sync/BussinessLocalTypeEntity.java | 26 ++ .../sync/BussinessOriginTypeEntity.java | 16 + .../entity/sync/BussinessTypeEntity.java | 54 ++++ .../sync/CompanyProductRelevanceEntity.java | 24 ++ .../admin/entity/sync/ErpOrderEntity.java | 10 + .../admin/entity/sync/InvWarehouseEntity.java | 1 + .../sale/admin/entity/sync/OrderEntity.java | 15 + .../admin/entity/sync/ProductInfoEntity.java | 61 ++++ .../entity/sync/ThrInvWarehouseEntity.java | 8 +- .../entity/sync/ThrOrderDetailEntity.java | 6 + .../admin/entity/sync/ThrOrderEntity.java | 17 + .../admin/entity/sync/ThrProductsEntity.java | 10 + .../admin/entity/sync/UdiCompanyEntity.java | 20 ++ .../sale/admin/entity/sync/UdiInfoEntity.java | 7 +- .../admin/entity/sync/UdiRelevanceEntity.java | 1 + .../admin/entity/sync/WarehouseEntity.java | 23 +- .../com/glxp/sale/admin/http/SpGetHttp.java | 128 +++++++- .../com/glxp/sale/admin/http/SpPostHttp.java | 33 ++ .../com/glxp/sale/admin/http/UHttpClient.java | 6 +- .../param/SystemParamConfigSaveRequest.java | 1 + .../req/sync/BasicExportStatusRequest.java | 2 + .../admin/req/sync/SpsSyncDataRequest.java | 10 + .../admin/res/sync/SpsSyncBusResponse.java | 16 + .../admin/res/sync/SpsSyncDataResponse.java | 22 ++ .../admin/res/sync/SpsSyncOrderResponse.java | 16 + .../res/sync/SpsSyncScheduleResponse.java | 12 + .../param/SystemParamConfigService.java | 5 +- .../impl/SystemParamConfigServiceImpl.java | 10 +- .../sale/admin/thread/DlAllDataService.java | 290 ++++++++++++++++++ .../sale/admin/thread/DlBasicService.java | 38 ++- .../sale/admin/thread/DlSpOrderService.java | 5 +- .../com/glxp/sale/admin/thread/HeartTask.java | 111 ++++--- .../admin/thread/ScanDownloadService.java | 136 +++++++- .../sale/admin/thread/ScanUploadService.java | 107 ++++++- .../thread/didl/AsyncCompanyDlService.java | 82 +++++ .../admin/thread/didl/AsyncCompanyDlTask.java | 57 ++++ .../admin/thread/didl/AsyncDiDlHelper.java | 64 ++++ .../admin/thread/didl/AsyncDiDlService.java | 84 +++++ .../sale/admin/thread/didl/AsyncDiDlTask.java | 60 ++++ .../com/glxp/sale/admin/util/DateUtil.java | 8 + .../com/glxp/sale/admin/util/FileUtils.java | 3 +- .../mapper/param/SystemParamConfigDao.xml | 44 ++- .../mybatis/mapper/sync/BasicExportDao.xml | 17 +- 52 files changed, 1866 insertions(+), 130 deletions(-) create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicExportStatusTimeEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessLocalTypeEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessOriginTypeEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessTypeEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/sync/CompanyProductRelevanceEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ProductInfoEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiCompanyEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/req/sync/SpsSyncDataRequest.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncBusResponse.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncDataResponse.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncOrderResponse.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncScheduleResponse.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncCompanyDlService.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncCompanyDlTask.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlHelper.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlService.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlTask.java diff --git a/api-admin/src/main/java/com/glxp/sale/admin/constant/BasicProcessStatus.java b/api-admin/src/main/java/com/glxp/sale/admin/constant/BasicProcessStatus.java index fc8cc89..add89d7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/constant/BasicProcessStatus.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/constant/BasicProcessStatus.java @@ -21,6 +21,8 @@ public class BasicProcessStatus { public static final int DATA_TYPE_UDI = 1; public static final int DATA_TYPE_SP = 2; + + //导出数据类型 public static final int BASIC_UDI = 1; //耗材字典 public static final int BASIC_INV = 2; //仓库字典 @@ -28,6 +30,9 @@ public class BasicProcessStatus { public static final int BASIC_THIRD_PRODUCTS = 4; //往来单位 public static final int BASIC_THIRD_CORP = 5; //往来单位 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 int IMPORT_LOG_TYPE_ORDER = 1;//单据 @@ -36,4 +41,8 @@ public class BasicProcessStatus { public static final int IMPORT_LOG_TYPE_INV = 4;//仓库字典 + public static final int SCHEDULE_NORMAL = 1; //常规任务 + public static final int SCHEDULE_TRANSFER = 2; //需要传递任务 + + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/constant/FileConstant.java b/api-admin/src/main/java/com/glxp/sale/admin/constant/FileConstant.java index 4612eab..1e4ab3b 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/constant/FileConstant.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/constant/FileConstant.java @@ -4,6 +4,7 @@ public class FileConstant { //上游通,等待拷贝 + public static String upWaitCopy_root ="/UpperOut/"; public static String upWaitCopy_order = "/UpperOut/Order/"; public static String upWaitCopy_order_back = "/UpperOut/Order/Completed/"; public static String upWaitCopy_order_error = "/UpperOut/Order/Error/"; @@ -12,6 +13,7 @@ public class FileConstant { public static String upWaitCopy_products_error = "/UpperOut/Dictionaries/Error/"; //上游通,等待上传 + public static String waitUpload_root ="/UpperIn/"; public static String waitUpload_order = "/UpperIn/Order/"; public static String waitUpload_order_back = "/UpperIn/Order/Completed"; public static String waitUpload_order_error = "/UpperIn/Order/Error/"; @@ -21,6 +23,7 @@ public class FileConstant { //下游通,下游上传后,等待拷贝 + public static String lowerWaitCopy_root ="/LowerOut/"; public static String lowerWaitCopy_order = "/LowerOut/Order/"; public static String lowerWaitCopy_order_back = "/LowerOut/Order/Completed/"; public static String lowerWaitCopy_order_error = "/LowerOut/Order/Error/"; @@ -30,6 +33,7 @@ public class FileConstant { //下游通,等待下载 + public static String waitDownload_root ="/LowerIn/"; public static String waitDownload_order = "/LowerIn/Order/"; public static String waitDownload_order_back = "/LowerIn/Order/Completed/"; public static String waitDownload_order_error = "/LowerIn/Order/Error/"; diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/param/SystemParamConfigController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/param/SystemParamConfigController.java index b920ce9..d6618d9 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/param/SystemParamConfigController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/param/SystemParamConfigController.java @@ -81,11 +81,17 @@ public class SystemParamConfigController { @AuthRuleAnnotation("system/param/config/update") @PostMapping("/system/param/config/update") public BaseResponse update(@RequestBody SystemParamConfigSaveRequest systemParamConfigSaveRequest) { -// systemParamConfigSaveRequest.setId(1); + + //共享目录配置 if (systemParamConfigSaveRequest.getParamKey().equals("share_folder")) { try { if (new File(systemParamConfigSaveRequest.getParamValue()).exists()) { - return ResultVOUtils.error(500, "文件目录已存在"); + + if (!systemParamConfigSaveRequest.isForce()) + return ResultVOUtils.error(530, "文件目录已存在,是否清空后继续创建?"); + else { + FileUtils.deleteDirectory(new File(systemParamConfigSaveRequest.getParamValue())); + } } if (!FileUtils.makeDirectory(new File(systemParamConfigSaveRequest.getParamValue()))) { return ResultVOUtils.error(500, "文件目录创建失败"); @@ -94,24 +100,36 @@ public class SystemParamConfigController { e.printStackTrace(); return ResultVOUtils.error(500, e.getMessage()); } - } else if (systemParamConfigSaveRequest.getParamKey().equals("sync_upstream_enable")) { + } + //设置上游 + else if (systemParamConfigSaveRequest.getParamKey().equals("sync_upstream_enable")) { + if (!"0".equals(systemParamConfigSaveRequest.getParamValue()) && !"1".equals(systemParamConfigSaveRequest.getParamValue())) { + return ResultVOUtils.error(500, "参数值只能为0或1"); + } + //设置上游不通 + if (systemParamConfigSaveRequest.getParamValue().equals("0")) { + + //判断下游是否为通,如果不通则报错 + SystemParamConfigEntity dowmConfig = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + if ("0".equals(dowmConfig.getParamValue())) { + return ResultVOUtils.error(500, "不允许上下游都不通"); + } - //下游如果联通 - if (systemParamConfigSaveRequest.getParamValue().equals("0")) { SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder"); String filePath = systemParamConfigEntity.getParamValue(); if (!new File(filePath).exists()) { return ResultVOUtils.error(500, "文件根目录不存在!"); } - - boolean b1 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_order)); - boolean b2 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_order_back)); - boolean b3 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_order_error)); + //配置文件夹,下游上传文件,等待拷贝至上游 +// boolean b1 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_order)); +// boolean b2 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_order_back)); +// boolean b3 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_order_error)); boolean b4 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_products)); boolean b5 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_products_back)); boolean b6 = FileUtils.makeDirectory(new File(filePath + FileConstant.lowerWaitCopy_products_error)); + //配置文件夹,上游拷贝下来得到文件,等待下游下载走 boolean b7 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitDownload_order)); boolean b8 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitDownload_order_back)); boolean b9 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitDownload_order_error)); @@ -119,11 +137,45 @@ public class SystemParamConfigController { boolean b11 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitDownload_products_back)); boolean b12 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitDownload_products_error)); +// //隐藏定时任务显示 +// systemParamConfigService.updateVisible("dl_order_status", 0); +// systemParamConfigService.updateVisible("dl_basic_udiinfo_status", 0); +// systemParamConfigService.updateVisible("sc_udiinfo_upload", 0); + + } + //上游如果联通 + else if ("1".equals(systemParamConfigSaveRequest.getParamValue())) { + if (systemParamConfigSaveRequest.isForce()) { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder"); + String filePath = systemParamConfigEntity.getParamValue(); + boolean b4 = FileUtils.deleteDirectory(new File(filePath + FileConstant.lowerWaitCopy_root)); + boolean b7 = FileUtils.deleteDirectory(new File(filePath + FileConstant.waitDownload_root)); +// systemParamConfigService.updateVisible("dl_order_status", 1); +// systemParamConfigService.updateVisible("dl_basic_udiinfo_status", 1); +// systemParamConfigService.updateVisible("sc_udiinfo_upload", 1); + + + } else { + return ResultVOUtils.error(510, "设置上游为通时将删除对应的目录文件,是否继续?"); + } } } else if (systemParamConfigSaveRequest.getParamKey().equals("sync_downstream_enable")) { - //上游如果联通 + + if (!"0".equals(systemParamConfigSaveRequest.getParamValue()) && !"1".equals(systemParamConfigSaveRequest.getParamValue())) { + return ResultVOUtils.error(500, "参数值只能为0或1"); + } + + //下游如果不通 if (systemParamConfigSaveRequest.getParamValue().equals("0")) { + + //判断上游为通,如果不通则报错 + SystemParamConfigEntity upConfig = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if ("0".equals(upConfig.getParamValue())) { + return ResultVOUtils.error(500, "不允许上下游都不通"); + } + + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder"); String filePath = systemParamConfigEntity.getParamValue(); if (!new File(filePath).exists()) { @@ -143,11 +195,55 @@ public class SystemParamConfigController { boolean b11 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_products_back)); boolean b12 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_products_error)); +// //隐藏定时任务显示 +// systemParamConfigService.updateVisible("sc_order_status", 0); +// systemParamConfigService.updateVisible("sc_udiinfo_status", 0); + + } - } + //下游如果联通 + else if ("1".equals(systemParamConfigSaveRequest.getParamValue())) { + if (systemParamConfigSaveRequest.isForce()) { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder"); + String filePath = systemParamConfigEntity.getParamValue(); + boolean b1 = FileUtils.deleteDirectory(new File(filePath + FileConstant.upWaitCopy_root)); + boolean b7 = FileUtils.deleteDirectory(new File(filePath + FileConstant.waitUpload_root)); + +// systemParamConfigService.updateVisible("sc_order_status", 1); +// systemParamConfigService.updateVisible("sc_udiinfo_status", 1); + } else { + return ResultVOUtils.error(510, "设置下游为通时将删除对应的目录文件,是否继续?"); + } + } + } systemParamConfigService.updateById(systemParamConfigSaveRequest); + + //控制设置显隐藏 + SystemParamConfigEntity upConfig = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + SystemParamConfigEntity dowmConfig = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + if ("1".equals(upConfig.getParamValue()) && "1".equals(dowmConfig.getParamValue())) { //全通 + systemParamConfigService.updateVisible("dl_order_status", 1); + systemParamConfigService.updateVisible("dl_basic_udiinfo_status", 1); + systemParamConfigService.updateVisible("sc_udiinfo_upload", 0); + systemParamConfigService.updateVisible("sc_order_status", 0); + systemParamConfigService.updateVisible("sc_udiinfo_status", 0); + } else if ("0".equals(upConfig.getParamValue()) && "1".equals(dowmConfig.getParamValue())) {//上不通下通 + systemParamConfigService.updateVisible("dl_order_status", 0); + systemParamConfigService.updateVisible("dl_basic_udiinfo_status", 0); + systemParamConfigService.updateVisible("sc_udiinfo_upload", 0); + systemParamConfigService.updateVisible("sc_order_status", 1); + systemParamConfigService.updateVisible("sc_udiinfo_status", 1); + } else if ("1".equals(upConfig.getParamValue()) && "0".equals(dowmConfig.getParamValue())) { + systemParamConfigService.updateVisible("dl_order_status", 1); + systemParamConfigService.updateVisible("dl_basic_udiinfo_status", 1); + systemParamConfigService.updateVisible("sc_udiinfo_upload", 1); + systemParamConfigService.updateVisible("sc_order_status", 0); + systemParamConfigService.updateVisible("sc_udiinfo_status", 0); + } + + if (systemParamConfigSaveRequest.getParentId() == 0) { SystemParamConfigSaveRequest systemParamConfigSaveRequest1 = new SystemParamConfigSaveRequest(); systemParamConfigSaveRequest1.setParentId(systemParamConfigSaveRequest.getId()); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/BasicDowmloadController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/BasicDowmloadController.java index 75b26ac..601d9a0 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/BasicDowmloadController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/BasicDowmloadController.java @@ -1,5 +1,6 @@ package com.glxp.sale.admin.controller.sync; +import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; @@ -9,9 +10,7 @@ import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity; import com.glxp.sale.admin.req.info.DeleteRequest; import com.glxp.sale.admin.req.sync.BasicExportStatusRequest; import com.glxp.sale.admin.req.sync.FilterUdiInfoRequest; -import com.glxp.sale.admin.res.sync.BasicUnitMaintainExportResponse; -import com.glxp.sale.admin.res.sync.InvWarehouseExportResponse; -import com.glxp.sale.admin.res.sync.UdiRelevanceExportJsonResponse; +import com.glxp.sale.admin.res.sync.*; import com.glxp.sale.admin.service.sync.BasicExportService; import com.glxp.sale.admin.util.RedisUtil; import com.glxp.sale.common.res.BaseResponse; @@ -37,6 +36,12 @@ public class BasicDowmloadController { @GetMapping("/spssync/basic/udiinfo/getStatus") public BaseResponse getStatus(BasicExportStatusRequest basicExportStatusRequest) { List basicExportStatusEntities = basicExportService.filterExportStatus(basicExportStatusRequest); + + if (CollUtil.isNotEmpty(basicExportStatusEntities)) { + for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) { + basicExportStatusEntity.setFromType(1); + } + } return ResultVOUtils.success(basicExportStatusEntities); } @@ -59,6 +64,15 @@ public class BasicDowmloadController { InvWarehouseExportResponse invWarehouseExportResponse = JSONObject.parseObject(data, new TypeReference() { }); return ResultVOUtils.success(invWarehouseExportResponse); + } else if (basicExportStatusRequest.getType() == BasicProcessStatus.NEW_ALL_DATA) {//基础信息下载 + SpsSyncDataResponse spsSyncDataResponse = (SpsSyncDataResponse) redisUtil.get(basicExportStatusRequest.getId() + ""); + return ResultVOUtils.success(spsSyncDataResponse); + } else if (basicExportStatusRequest.getType() == BasicProcessStatus.NEW_ALL_BUS) {//单据类型 + SpsSyncBusResponse spsSyncDataResponse = (SpsSyncBusResponse) redisUtil.get(basicExportStatusRequest.getId() + ""); + return ResultVOUtils.success(spsSyncDataResponse); + } else if (basicExportStatusRequest.getType() == BasicProcessStatus.NEW_ALL_ORDER) {//单据 + SpsSyncOrderResponse spsSyncDataResponse = (SpsSyncOrderResponse) redisUtil.get(basicExportStatusRequest.getId() + ""); + return ResultVOUtils.success(spsSyncDataResponse); } return ResultVOUtils.error(500, "数据不存在!"); @@ -75,4 +89,16 @@ public class BasicDowmloadController { else return ResultVOUtils.error(500, "删除失败!"); } + + + @PostMapping("/spssync/basic/udiinfo/updateStatus") + public BaseResponse updateStatus(@RequestBody BasicExportStatusEntity basicExportStatusEntity) { + + boolean b = basicExportService.updateExportStatus(basicExportStatusEntity); + if (b) + return ResultVOUtils.success("更新成功!"); + else + return ResultVOUtils.error(500, "更新成功!"); + } + } \ No newline at end of file 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 new file mode 100644 index 0000000..264f8b1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/sync/SpsSyncDataController.java @@ -0,0 +1,146 @@ +package com.glxp.sale.admin.controller.sync; + +import com.alibaba.fastjson.JSON; +import com.glxp.sale.admin.constant.FileConstant; +import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; +import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity; +import com.glxp.sale.admin.http.SpPostHttp; +import com.glxp.sale.admin.req.sync.SpsSyncDataRequest; +import com.glxp.sale.admin.res.sync.*; +import com.glxp.sale.admin.service.param.SystemParamConfigService; +import com.glxp.sale.admin.util.CustomUtil; +import com.glxp.sale.admin.util.DateUtil; +import com.glxp.sale.admin.util.FileUtils; +import com.glxp.sale.admin.util.RedisUtil; +import com.glxp.sale.common.enums.ResultEnum; +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.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Date; + +@RestController +public class SpsSyncDataController { + @Resource + RedisUtil redisUtil; + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + SpPostHttp spPostHttp; + private static final Logger logger = LoggerFactory.getLogger(SpsSyncDataController.class); + + public String getPath() { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder"); + String filePath = systemParamConfigEntity.getParamValue(); + return filePath; + } + + @GetMapping("sps/sync/basic") + public BaseResponse getProductInfo(SpsSyncDataRequest spsSyncDataRequest) { + SpsSyncDataResponse spsSyncDataResponse = (SpsSyncDataResponse) redisUtil.get(spsSyncDataRequest.getId() + ""); + return ResultVOUtils.success(spsSyncDataResponse); + } + + + @GetMapping("sps/sync/busType") + public BaseResponse getBusType(SpsSyncDataRequest spsSyncDataRequest) { + SpsSyncBusResponse spsSyncDataResponse = (SpsSyncBusResponse) redisUtil.get(spsSyncDataRequest.getId() + ""); + return ResultVOUtils.success(spsSyncDataResponse); + } + + + @GetMapping("sps/sync/order") + public BaseResponse getOrder(SpsSyncDataRequest spsSyncDataRequest) { + SpsSyncOrderResponse spsSyncDataResponse = (SpsSyncOrderResponse) redisUtil.get(spsSyncDataRequest.getId() + ""); + return ResultVOUtils.success(spsSyncDataResponse); + } + + + @PostMapping("/sps/sync/basic/upload") + public BaseResponse postAllBase(@RequestBody SpsSyncDataResponse syncDataResponse, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("0")) {//上游不通 + String path = getPath(); + String fileName = path + FileConstant.lowerWaitCopy_products + "BaseData_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".UpperIn"; + String datas = JSON.toJSONString(syncDataResponse); + FileUtils.SaveFileAs(datas, fileName); + return ResultVOUtils.success("文件上传成功,已保存,等待拷贝!"); + } else { + //上游通 + return spPostHttp.postAllDatas(syncDataResponse); + } + } + + @PostMapping("/sps/sync/order/upload") + public BaseResponse postAllOrders(@RequestBody SpsSyncOrderResponse spsSyncOrderResponse, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("0")) {//上游不通 + String path = getPath(); + String fileName = path + FileConstant.lowerWaitCopy_products + "order_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".UpperIn"; + String datas = JSON.toJSONString(spsSyncOrderResponse); + FileUtils.SaveFileAs(datas, fileName); + return ResultVOUtils.success("文件上传成功,已保存,等待拷贝!"); + } else { + //上游通 + return spPostHttp.postAllOrders(spsSyncOrderResponse); + } + } + + + @PostMapping("/sps/sync/busType/upload") + public BaseResponse postAllBus(@RequestBody SpsSyncBusResponse spsSyncBusResponse, + BindingResult bindingResult) { + + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("0")) {//上游不通 + String path = getPath(); + String fileName = path + FileConstant.lowerWaitCopy_products + "BusType_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".UpperIn"; + String datas = JSON.toJSONString(spsSyncBusResponse); + FileUtils.SaveFileAs(datas, fileName); + return ResultVOUtils.success("文件上传成功,已保存,等待拷贝!"); + } else { + //上游通 + return spPostHttp.postAllBus(spsSyncBusResponse); + } + } + + + @PostMapping("sps/sync/schedule/upload") + public BaseResponse dealSchedule(@RequestBody SpsSyncScheduleResponse spsSyncScheduleResponse) { + + + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("0")) {//上游不通 + String path = getPath(); + String fileName = path + FileConstant.lowerWaitCopy_products + "ScheduleList_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".UpperIn"; + String datas = JSON.toJSONString(spsSyncScheduleResponse); + FileUtils.SaveFileAs(datas, fileName); + return ResultVOUtils.success("文件上传成功,已保存,等待拷贝!"); + } else { + //上游通 + return spPostHttp.postAllSchedule(spsSyncScheduleResponse); + } + } + +} + diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/param/SystemParamConfigDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/param/SystemParamConfigDao.java index 667ca52..34eafba 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/dao/param/SystemParamConfigDao.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/param/SystemParamConfigDao.java @@ -20,7 +20,7 @@ public interface SystemParamConfigDao { SystemParamConfigEntity selectByParamKey(@Param("paramKey") String paramKey); - String selectValueByParamKey(String key); + String selectValueByParamKey(String key); boolean updateById(SystemParamConfigSaveRequest systemParamConfigSaveRequest); @@ -28,4 +28,7 @@ public interface SystemParamConfigDao { boolean insert(SystemParamConfigEntity systemParamConfigEntity); + boolean updateByKey(SystemParamConfigEntity systemParamConfigEntity); + + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicExportStatusEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicExportStatusEntity.java index dfcad06..6a08851 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicExportStatusEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicExportStatusEntity.java @@ -11,4 +11,6 @@ public class BasicExportStatusEntity { private Integer status; private Integer type; private Date updateTime; + private Integer scheduleType; + private int fromType; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicExportStatusTimeEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicExportStatusTimeEntity.java new file mode 100644 index 0000000..b3e21a1 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicExportStatusTimeEntity.java @@ -0,0 +1,13 @@ +package com.glxp.sale.admin.entity.sync; + +import lombok.Data; + +@Data +public class BasicExportStatusTimeEntity { + + private Integer id; + private String lastUpdateTime; + private String key; + private String remark; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicUnitMaintainEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicUnitMaintainEntity.java index 79bb52e..2fff893 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicUnitMaintainEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BasicUnitMaintainEntity.java @@ -32,6 +32,7 @@ public class BasicUnitMaintainEntity { private Date updateTime; private int corpType; + private int outType; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessLocalTypeEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessLocalTypeEntity.java new file mode 100644 index 0000000..6646891 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessLocalTypeEntity.java @@ -0,0 +1,26 @@ +package com.glxp.sale.admin.entity.sync; + +import lombok.Data; + +@Data +public class BussinessLocalTypeEntity { + + private Integer id; + private String action; + private String name; + private String localAction; + private String originAction; + private String mainAction; + private String localName; + private String remark; + private boolean checkEnable; + private boolean advanceType; + private boolean changeEnable; + private boolean spUse; + private String storageCode; + private int corpType; + private String defaultUnit; + private boolean genUnit; + private String thirdAction; + private String thirdSys; +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessOriginTypeEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessOriginTypeEntity.java new file mode 100644 index 0000000..149da32 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessOriginTypeEntity.java @@ -0,0 +1,16 @@ +package com.glxp.sale.admin.entity.sync; + +import lombok.Data; + +@Data +public class BussinessOriginTypeEntity { + private String id; + private String name; + private String action; + private String thirdSys; + private String thirdSysName; + private Boolean enable; + private String remark; + private String mainAction; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessTypeEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessTypeEntity.java new file mode 100644 index 0000000..86e9ef3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/BussinessTypeEntity.java @@ -0,0 +1,54 @@ +package com.glxp.sale.admin.entity.sync; + +import lombok.Data; + +@Data +public class BussinessTypeEntity { + private Integer id; + private String action; + private String name; + private Boolean enable; + private String remark; + private String mainAction; + private String thirdSysFk; + private String localAction; + private String localName; + private boolean checkEnable; + private boolean advanceType; + private boolean genUnit; + private boolean innerOrder; + private boolean secCheckEnable; + private Boolean spUse; + private String defaultUnit; + private Integer index; + private boolean checkUdims; + private boolean checkPdaEd; + private boolean checkPdaUn; + private boolean checkPc; + private boolean checkWebNew; + private boolean checkChange; + + + private boolean secCheckUdims; + private boolean secCheckPdaEd; + private boolean secCheckPdaUn; + private boolean secCheckPc; + private boolean secCheckWebNew; + private boolean secCheckChange; + + private boolean checkBalacne; + private boolean secCheckBalacne; + + private int corpType; + private String storageCode; + + //补单类型 + private String supplementOrderType; + private String thirdAction; + private String thirdSys; + private boolean useDyCount; + private boolean changeEnable; + + private boolean expireTip; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/CompanyProductRelevanceEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/CompanyProductRelevanceEntity.java new file mode 100644 index 0000000..5bdcdd8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/CompanyProductRelevanceEntity.java @@ -0,0 +1,24 @@ +package com.glxp.sale.admin.entity.sync; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class CompanyProductRelevanceEntity { + + private Integer id; + private Long customerId; + private Long productId; + private Long enterpriseId; + private Long registrationId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date create_time; + private Date update_time; + private String auditStatus; + private String productUuid; + private Integer udiRlIdFk; + private String unitFk; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ErpOrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ErpOrderEntity.java index 81c09b2..54466c7 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ErpOrderEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ErpOrderEntity.java @@ -2,6 +2,8 @@ package com.glxp.sale.admin.entity.sync; import lombok.Data; +import java.math.BigDecimal; + @Data public class ErpOrderEntity { @@ -40,6 +42,7 @@ public class ErpOrderEntity { private Integer reCount; private String uuidFk; private String supId; + private String supName; private Integer bindSupStatus; @@ -58,6 +61,13 @@ public class ErpOrderEntity { private Integer count; private Integer bindStatus; + private String ylqxzcrbarmc; + private String secSalesListNo; + private String firstSalesInvNo; + private String secSalesInvNo; + private String invoiceDate; + private BigDecimal price; + public Integer getBindStatus() { if (bindStatus == null) diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/InvWarehouseEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/InvWarehouseEntity.java index 642ba82..f022a50 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/InvWarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/InvWarehouseEntity.java @@ -19,6 +19,7 @@ public class InvWarehouseEntity { private String remark; private Integer level; private String pcode; + private String pName; /** * 第三方仓库ID diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/OrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/OrderEntity.java index 81b4430..84d00f1 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/OrderEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/OrderEntity.java @@ -2,6 +2,8 @@ package com.glxp.sale.admin.entity.sync; import lombok.Data; +import java.util.Date; + @Data public class OrderEntity { @@ -31,6 +33,19 @@ public class OrderEntity { private Integer exportStatus; private String exportFilePath; private Integer dlCount; + private String invStorageCode; + private String invWarehouseCode; + private String locStorageCode; + + //补单单号 + private String supplementNo; + private String ullageSupNo; + private Integer createUser; + private Integer reviewUser; + + private boolean isError; + private boolean outChangeEnable; + private String originUllageSupNo; diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ProductInfoEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ProductInfoEntity.java new file mode 100644 index 0000000..f2410aa --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ProductInfoEntity.java @@ -0,0 +1,61 @@ +package com.glxp.sale.admin.entity.sync; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class ProductInfoEntity { + private Integer id; + private String nameCode; + private String packRatio; + private String packLevel; + private Integer bhxjsl; + private Integer bhzxxsbzsl; + private Integer zxxsbzbhsydysl; + private String bhxjcpbm; + private String sjcpbm; // + private String bzcj; + private String thirdProductNo; + private String thirdProductName; + private String addType; + private String deviceRecordKey; + private Integer isUseDy; + private String cpmctymc; + private String cplb; + private String flbm; + private String ggxh; + private String qxlb; + private String tyshxydm; + private String ylqxzcrbarmc; + private String zczbhhzbapzbh; + private String ylqxzcrbarywmc; + private String sydycpbs; + private String uuid; + private Integer versionNumber; + private Integer diType; + + private String scbssfbhph; + private String scbssfbhxlh; + private String scbssfbhscrq; + private String scbssfbhsxrq; + + private String ybbm; + private String spmc; + private String cphhhbh; + private String cpms; + private String cpbsbmtxmc; + + private String batchNo; + private String produceDate; + private String expireDate; + + private Boolean isNewest; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date updateTime; + + private String cplx; + private String hchzsb; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrInvWarehouseEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrInvWarehouseEntity.java index 35838b6..58d69ee 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrInvWarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrInvWarehouseEntity.java @@ -21,12 +21,12 @@ public class ThrInvWarehouseEntity { private String remark; /** - * 仓库等级 - */ + * 仓库等级 + */ private Integer level; /** - * 父级仓库编码 - */ + * 父级仓库编码 + */ private String pcode; } \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrOrderDetailEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrOrderDetailEntity.java index 1a70d16..b102f1e 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrOrderDetailEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrOrderDetailEntity.java @@ -2,6 +2,7 @@ package com.glxp.sale.admin.entity.sync; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; @Data @@ -18,5 +19,10 @@ public class ThrOrderDetailEntity { private String orderIdFk; private String thirdSysFk; private Date updateTime; + private String relId; + + //增加字段 + private BigDecimal price; //单价 + private String corpName; //往来单位 } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrOrderEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrOrderEntity.java index 1d6dcfd..05f6867 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrOrderEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrOrderEntity.java @@ -17,5 +17,22 @@ public class ThrOrderEntity { private String thirdSysFk; private Date updateTime; private String originType; + private String unitIdFk; + private int type; + //增加字段 + private String startDate; //起始日期 + private String endDate; //结束日期 + private String createUser; //创建人 + private String reviewUser; //审核人 + private String address; //地址 + private String linkMan; //联系人 + private String linkTel; //联系电话 + private String remark; //备注 + private String remark1; //备注1 + private String remark2; //备注2 + private String remark3; //备注3 + + private String locStorageCode; + private Integer editStatus; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrProductsEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrProductsEntity.java index 32b3d94..414b813 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrProductsEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/ThrProductsEntity.java @@ -28,4 +28,14 @@ public class ThrProductsEntity { private String supName; private boolean isChecked; + //添加字段 + private String model; //型号 + private String standard; //规格型号,二合一字段 + private String qtbm; //其他编码 + private String zczyxqz; //注册有效期截止时间 + private String remark; //备注 + private String remark1; //备注1 + private String remark2; //备注2 + private String remark3; //备注3 + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiCompanyEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiCompanyEntity.java new file mode 100644 index 0000000..812009e --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiCompanyEntity.java @@ -0,0 +1,20 @@ +package com.glxp.sale.admin.entity.sync; + +import lombok.Data; + +import java.util.Date; + +@Data +public class UdiCompanyEntity { + + private int id; + private String tyshxydm; + private String ylqxzcrbarmc; + private String ylqxzcrbarywmc; + private String qylxrdh; + private String qylxrcz; + private String qylxryx; + private String deviceRecordKey; + private Date updateTime; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiInfoEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiInfoEntity.java index f6b64bb..e548a14 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiInfoEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiInfoEntity.java @@ -37,8 +37,13 @@ public class UdiInfoEntity { private String manufactory; private String measname; private Integer productType; - private Integer gid; + private String scbssfbhph; + private String scbssfbhxlh; + private String scbssfbhscrq; + private String scbssfbhsxrq; + private String cpms; + private Integer gid; //本地生成信息 private String batchNo; private String produceDate; diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiRelevanceEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiRelevanceEntity.java index 8f4cafb..8bff62a 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiRelevanceEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/UdiRelevanceEntity.java @@ -30,6 +30,7 @@ public class UdiRelevanceEntity { private Integer lockStatus; private String udplatCode; private Boolean isAdavence; + private String supName; private String genKeyFk; private Integer gid; diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/WarehouseEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/WarehouseEntity.java index 5742440..b2b0106 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/WarehouseEntity.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/sync/WarehouseEntity.java @@ -25,15 +25,32 @@ public class WarehouseEntity { private String customerId; private String nameCode; private String supId;//供应商ID - + private String supName; + private String invStorageCode; + private String invWarehouseCode; private String relId; private Integer status; + private String locStorageCode; + + + private String mySupId; public String getSupId() { if (supId == null) { - return fromCorpId; - } + return null; + } else if (supId.equals("")) + return null; return supId; } + + public Integer getCount() { + + if (count == null) { + return 1; + } + if (count == 0) + return 1; + return count; + } } 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 af15906..6a22e97 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 @@ -4,12 +4,10 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity; +import com.glxp.sale.admin.entity.sync.BasicExportStatusTimeEntity; import com.glxp.sale.admin.entity.sync.IOOrderStatusEntity; import com.glxp.sale.admin.entity.sync.OrderEntity; -import com.glxp.sale.admin.req.sync.BasicDataFilterRequest; -import com.glxp.sale.admin.req.sync.BasicStatusFilterRequest; -import com.glxp.sale.admin.req.sync.OrderStatusFilterRequest; -import com.glxp.sale.admin.req.sync.PostThrOrderRequest; +import com.glxp.sale.admin.req.sync.*; import com.glxp.sale.admin.res.PageSimpleResponse; import com.glxp.sale.admin.res.sync.*; import com.glxp.sale.common.res.BaseResponse; @@ -83,11 +81,33 @@ public class SpGetHttp { return response; } + public BaseResponse> getBasicStatus(BasicExportStatusRequest basicExportStatusRequest) { + Map paramMap = new HashMap<>(16); + if (basicExportStatusRequest.getType() != null) + paramMap.put("type", basicExportStatusRequest.getType() + ""); + if (basicExportStatusRequest.getStatus() != null) + paramMap.put("status", basicExportStatusRequest.getStatus() + ""); + if (basicExportStatusRequest.getId() != null) + paramMap.put("id", basicExportStatusRequest.getId()); + if (basicExportStatusRequest.getScheduleType() != null) + paramMap.put("scheduleType", basicExportStatusRequest.getScheduleType()); + String response = UHttpClient.mipsGetHead(spmsUrl + "/spssync/basic/udiinfo/getStatus", paramMap, getHeaders()); + try { + BaseResponse> data = + JSONObject.parseObject(response, new TypeReference>>() { + }); + return data; + + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "下载失败!"); + } + } public BaseResponse> getBasicStatus(String type) { Map paramMap = new HashMap<>(16); paramMap.put("type", type); - String response = UHttpClient.mipsGetHead(spmsUrl + "/udiwms/basic/udiinfo/getStatus", paramMap, getHeaders()); + String response = UHttpClient.mipsGetHead(spmsUrl + "/spssync/basic/udiinfo/getStatus", paramMap, getHeaders()); try { BaseResponse> data = JSONObject.parseObject(response, new TypeReference>>() { @@ -100,6 +120,35 @@ public class SpGetHttp { } } + //获取上一次更新时间 + public BaseResponse getLastUpdateTime(String key) { + Map paramMap = new HashMap<>(16); + paramMap.put("key", key); + String response = UHttpClient.mipsGetHead(spmsUrl + "/spssync/basic/schedule/lastTime", paramMap, getHeaders()); + try { + BaseResponse data = + JSONObject.parseObject(response, new TypeReference>() { + }); + return data; + + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "下载失败!"); + } + } + + //更新上一次更新时间 + public BaseResponse updateLastTime(String key, String time) { + BasicExportStatusTimeEntity basicExportStatusTimeEntity = new BasicExportStatusTimeEntity(); + basicExportStatusTimeEntity.setKey(key); + basicExportStatusTimeEntity.setLastUpdateTime(time); + String result = UHttpClient.postJson(spmsUrl + "/spssync/basic/schedule/updateLastTime", basicExportStatusTimeEntity, getHeaders()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + //获取耗材字典 public String getBasicUdiInfo(List ids) { @@ -137,15 +186,78 @@ public class SpGetHttp { return JSON.toJSON(response.getData()).toString(); } - public BaseResponse postBasicStatus(String id) { + public BaseResponse postDeleteBasicStatus(String id) { BasicStatusFilterRequest basicStatusFilterRequest = new BasicStatusFilterRequest(); basicStatusFilterRequest.setId(id); - basicStatusFilterRequest.setStatus(2); - String result = UHttpClient.postJson(spmsUrl + "/udiwms/basic/udiinfo/deleteByStatus", basicStatusFilterRequest, getHeaders()); + String result = UHttpClient.postJson(spmsUrl + "/spssync/basic/udiinfo/deleteByStatus", basicStatusFilterRequest, getHeaders()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + + public BaseResponse postUpdateBasicStatus(BasicExportStatusEntity basicExportStatusEntity) { + String result = UHttpClient.postJson(spmsUrl + "/spssync/basic/udiinfo/updateStatus", basicExportStatusEntity, getHeaders()); BaseResponse response = JSONObject.parseObject(result, new TypeReference>() { }); return response; } + + //获取所有基础信息 + public BaseResponse getAllNewData(SpsSyncDataRequest spsSyncDataRequest) { + Map paramMap = new HashMap<>(16); + if (spsSyncDataRequest.getLastUpdateTime() != null) + paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime()); + String response = UHttpClient.mipsGetHead(spmsUrl + "/sps/sync/basic", paramMap, getHeaders()); + try { + BaseResponse data = + JSONObject.parseObject(response, new TypeReference>() { + }); + return data; + + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "下载失败!"); + } + } + + + //获取所有单据信息 + public BaseResponse getAllOrder(SpsSyncDataRequest spsSyncDataRequest) { + Map paramMap = new HashMap<>(16); + if (spsSyncDataRequest.getLastUpdateTime() != null) + paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime()); + String response = UHttpClient.mipsGetHead(spmsUrl + "/sps/sync/order", paramMap, getHeaders()); + try { + BaseResponse data = + JSONObject.parseObject(response, new TypeReference>() { + }); + return data; + + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "下载失败!"); + } + } + + //获取所有单据类型 + public BaseResponse getAllBus(SpsSyncDataRequest spsSyncDataRequest) { + Map paramMap = new HashMap<>(16); + if (spsSyncDataRequest.getLastUpdateTime() != null) + paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime()); + String response = UHttpClient.mipsGetHead(spmsUrl + "/sps/sync/busType", paramMap, getHeaders()); + try { + BaseResponse data = + JSONObject.parseObject(response, new TypeReference>() { + }); + return data; + + } catch (Exception e) { + e.printStackTrace(); + return ResultVOUtils.error(500, "下载失败!"); + } + } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/http/SpPostHttp.java b/api-admin/src/main/java/com/glxp/sale/admin/http/SpPostHttp.java index 47f9a81..ee75ce6 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/http/SpPostHttp.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/http/SpPostHttp.java @@ -90,5 +90,38 @@ public class SpPostHttp { return response; } + public BaseResponse postAllDatas(SpsSyncDataResponse syncDataResponse) { + String result = UHttpClient.postJson(spmsUrl + "/sps/sync/basic/upload", syncDataResponse, getHeaders()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + + public BaseResponse postAllOrders(SpsSyncOrderResponse syncOrderResponse) { + String result = UHttpClient.postJson(spmsUrl + "/sps/sync/order/upload", syncOrderResponse, getHeaders()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + public BaseResponse postAllBus(SpsSyncBusResponse spsSyncBusResponse) { + String result = UHttpClient.postJson(spmsUrl + "/sps/sync/busType/upload", spsSyncBusResponse, getHeaders()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + + public BaseResponse postAllSchedule(SpsSyncScheduleResponse spsSyncScheduleResponse) { + String result = UHttpClient.postJson(spmsUrl + "/sps/sync/schedule/upload", spsSyncScheduleResponse, getHeaders()); + BaseResponse response = + JSONObject.parseObject(result, new TypeReference>() { + }); + return response; + } + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/http/UHttpClient.java b/api-admin/src/main/java/com/glxp/sale/admin/http/UHttpClient.java index a9a6763..6d60980 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/http/UHttpClient.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/http/UHttpClient.java @@ -25,7 +25,7 @@ public class UHttpClient { public static String post(String url, Object object) { SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(600000); - factory.setReadTimeout(100000); + factory.setReadTimeout(600000); RestTemplate restTemplate = new RestTemplate(); String json = JSONObject.toJSON(object).toString(); MultiValueMap postParameters = new LinkedMultiValueMap<>(); @@ -42,7 +42,7 @@ public class UHttpClient { public static String postJson(String url, Object object) { SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(600000); - factory.setReadTimeout(20000); + factory.setReadTimeout(600000); RestTemplate restTemplate = new RestTemplate(factory); String json = JSONObject.toJSON(object).toString(); logger.info(url + "\n" + json); @@ -57,7 +57,7 @@ public class UHttpClient { public static String postJson(String url, Object object, HttpHeaders headers) { SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(600000); - factory.setReadTimeout(20000); + factory.setReadTimeout(600000); RestTemplate restTemplate = new RestTemplate(factory); String json = JSONObject.toJSON(object).toString(); logger.info(url + "\n" + json); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/param/SystemParamConfigSaveRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/param/SystemParamConfigSaveRequest.java index f2e8d70..950c1c9 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/param/SystemParamConfigSaveRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/param/SystemParamConfigSaveRequest.java @@ -13,4 +13,5 @@ public class SystemParamConfigSaveRequest { private int paramStatus; private int paramType; private String paramExplain; + private boolean isForce; } \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/sync/BasicExportStatusRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/sync/BasicExportStatusRequest.java index a3ae2ff..7febd3e 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/req/sync/BasicExportStatusRequest.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/sync/BasicExportStatusRequest.java @@ -8,4 +8,6 @@ public class BasicExportStatusRequest extends ListPageRequest { private String id; private Integer status; private Integer type; + private Integer scheduleType; + private String idDatas; } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/sync/SpsSyncDataRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/sync/SpsSyncDataRequest.java new file mode 100644 index 0000000..cddb6fd --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/sync/SpsSyncDataRequest.java @@ -0,0 +1,10 @@ +package com.glxp.sale.admin.req.sync; + +import lombok.Data; + +@Data +public class SpsSyncDataRequest { + + private String lastUpdateTime; + private String id; +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncBusResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncBusResponse.java new file mode 100644 index 0000000..2e29bfd --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncBusResponse.java @@ -0,0 +1,16 @@ +package com.glxp.sale.admin.res.sync; + +import com.glxp.sale.admin.entity.sync.BussinessLocalTypeEntity; +import com.glxp.sale.admin.entity.sync.BussinessOriginTypeEntity; +import com.glxp.sale.admin.entity.sync.BussinessTypeEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncBusResponse { + + private List bussinessTypeEntities; + private List bussinessOriginTypeEntities; + private List bussinessLocalTypeEntities; +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncDataResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncDataResponse.java new file mode 100644 index 0000000..625d8ce --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncDataResponse.java @@ -0,0 +1,22 @@ +package com.glxp.sale.admin.res.sync; + +import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity; +import com.glxp.sale.admin.entity.sync.*; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncDataResponse { + + List invWarehouseEntities; + List udiInfoEntities; + List basicUnitMaintainEntities; + List thrInvWarehouseEntities; + List thrCorpEntities; + List thrProductsEntities; + List thrOrderDetailEntities; + List thrOrderEntities; + List companyProductRelevanceEntities; + List udiRelevanceEntities; +} 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 new file mode 100644 index 0000000..3c5d1d5 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncOrderResponse.java @@ -0,0 +1,16 @@ +package com.glxp.sale.admin.res.sync; + +import com.glxp.sale.admin.entity.sync.ErpOrderEntity; +import com.glxp.sale.admin.entity.sync.OrderEntity; +import com.glxp.sale.admin.entity.sync.WarehouseEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncOrderResponse { + + List orderEntities; + List orderDetailEntityList; + List warehouseEntityList; +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncScheduleResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncScheduleResponse.java new file mode 100644 index 0000000..ec4d9ee --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/sync/SpsSyncScheduleResponse.java @@ -0,0 +1,12 @@ +package com.glxp.sale.admin.res.sync; + +import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class SpsSyncScheduleResponse { + List basicExportStatusEntities; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/param/SystemParamConfigService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/param/SystemParamConfigService.java index fcb55e7..12c6fc4 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/param/SystemParamConfigService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/param/SystemParamConfigService.java @@ -21,11 +21,14 @@ public interface SystemParamConfigService { SystemParamConfigEntity selectByParamKey(String key); - String selectValueByParamKey(String key); + String selectValueByParamKey(String key); boolean updateById(SystemParamConfigSaveRequest systemParamConfigSaveRequest); boolean updateParentId(SystemParamConfigSaveRequest systemParamConfigSaveRequest); boolean insert(SystemParamConfigEntity systemParamConfigEntity); + + + boolean updateVisible(String key, int paramStatus); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/param/impl/SystemParamConfigServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/param/impl/SystemParamConfigServiceImpl.java index ccde086..20e4986 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/param/impl/SystemParamConfigServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/param/impl/SystemParamConfigServiceImpl.java @@ -54,7 +54,7 @@ public class SystemParamConfigServiceImpl implements SystemParamConfigService { @Override public String selectValueByParamKey(String key) { SystemParamConfigEntity systemParamConfigEntity = systemParamConfigDao.selectByParamKey(key); - if(systemParamConfigEntity!=null ){ + if (systemParamConfigEntity != null) { return systemParamConfigEntity.getParamValue(); } return null; @@ -76,4 +76,12 @@ public class SystemParamConfigServiceImpl implements SystemParamConfigService { public boolean insert(SystemParamConfigEntity systemParamConfigEntity) { return systemParamConfigDao.insert(systemParamConfigEntity); } + + @Override + public boolean updateVisible(String key, int paramStatus) { + SystemParamConfigEntity systemParamConfigEntity = new SystemParamConfigEntity(); + systemParamConfigEntity.setParamKey(key); + systemParamConfigEntity.setParamStatus(paramStatus); + return systemParamConfigDao.updateByKey(systemParamConfigEntity); + } } 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 new file mode 100644 index 0000000..5faddfb --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlAllDataService.java @@ -0,0 +1,290 @@ +package com.glxp.sale.admin.thread; + +import cn.hutool.core.collection.CollUtil; +import com.alibaba.fastjson.JSON; +import com.glxp.sale.admin.constant.BasicProcessStatus; +import com.glxp.sale.admin.constant.FileConstant; +import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; +import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity; +import com.glxp.sale.admin.entity.sync.ThrImportLogEntity; +import com.glxp.sale.admin.http.SpGetHttp; +import com.glxp.sale.admin.req.sync.BasicExportStatusRequest; +import com.glxp.sale.admin.req.sync.SpsSyncDataRequest; +import com.glxp.sale.admin.res.sync.SpsSyncBusResponse; +import com.glxp.sale.admin.res.sync.SpsSyncDataResponse; +import com.glxp.sale.admin.res.sync.SpsSyncOrderResponse; +import com.glxp.sale.admin.res.sync.SpsSyncScheduleResponse; +import com.glxp.sale.admin.service.param.SystemParamConfigService; +import com.glxp.sale.admin.service.sync.BasicExportService; +import com.glxp.sale.admin.service.sync.ThrImportLogService; +import com.glxp.sale.admin.util.CustomUtil; +import com.glxp.sale.admin.util.DateUtil; +import com.glxp.sale.admin.util.FileUtils; +import com.glxp.sale.admin.util.RedisUtil; +import com.glxp.sale.common.res.BaseResponse; +import org.springframework.beans.BeanUtils; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +@Service +public class DlAllDataService { + + @Resource + SpGetHttp spGetHttp; + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + BasicExportService basicExportService; + + @Resource + RedisUtil redisUtil; + + public void dllNewAllData() { + BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest(); + basicExportStatusRequest.setIdDatas("AutoDownloadAllData"); + basicExportStatusRequest.setStatus(0); + basicExportStatusRequest.setType(BasicProcessStatus.NEW_ALL_DATA); + basicExportStatusRequest.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + BaseResponse> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest); + if (CollUtil.isNotEmpty(basicStatuss.getData())) { + List basicExportStatusEntities = basicStatuss.getData(); + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("1")) { + SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) { + BaseResponse baseResponse = null; + SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); + if (basicExportStatusEntity.getFromType() == 0) { + BaseResponse response = spGetHttp.getLastUpdateTime("AutoDownloadAllData"); + String lastUpdateTime = response.getData(); + spsSyncDataRequest.setLastUpdateTime(lastUpdateTime); + baseResponse = spGetHttp.getAllNewData(spsSyncDataRequest); + } else { + spsSyncDataRequest.setId(basicExportStatusEntity.getId()); + baseResponse = spGetHttp.getAllNewData(spsSyncDataRequest); + } + if (baseResponse.getCode() == 20000) { + SpsSyncDataResponse syncOrderResponse = baseResponse.getData(); + if (syncOrderResponse != null && + (CollUtil.isNotEmpty(syncOrderResponse.getBasicUnitMaintainEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getInvWarehouseEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getThrCorpEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getCompanyProductRelevanceEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getThrOrderDetailEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getThrInvWarehouseEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getThrOrderEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getThrProductsEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getUdiInfoEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getUdiRelevanceEntities())) + ) { + if (downstream.getParamValue().equals("1")) { + String key = "BaseAllData" + System.currentTimeMillis(); + redisUtil.set(key, baseResponse.getData()); + BasicExportStatusEntity myEntity = new BasicExportStatusEntity(); + myEntity.setId(key); + myEntity.setStatus(0); + myEntity.setUpdateTime(new Date()); + myEntity.setType(BasicProcessStatus.NEW_ALL_DATA); + basicExportService.insertExportStatus(myEntity); + } else { + String path = getPath(); + String fileName = path + FileConstant.upWaitCopy_products + "BaseData_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + String datas = JSON.toJSONString(baseResponse.getData()); + FileUtils.SaveFileAs(datas, fileName); + } + } + + } + if (basicExportStatusEntity.getFromType() == 0) { + BasicExportStatusEntity basicExportStatusEntity1 = basicExportStatusEntities.get(0); + basicExportStatusEntity1.setStatus(1); + spGetHttp.postUpdateBasicStatus(basicExportStatusEntity1); + spGetHttp.updateLastTime("AutoDownloadAllData", DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); + } else { + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); + } + + + } + + } + } + } + + public void dllNewAllOrder() { + BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest(); + basicExportStatusRequest.setIdDatas("AutoDownloadOrder"); + basicExportStatusRequest.setStatus(0); + basicExportStatusRequest.setType(BasicProcessStatus.NEW_ALL_ORDER); + basicExportStatusRequest.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + BaseResponse> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest); + if (CollUtil.isNotEmpty(basicStatuss.getData())) { + List basicExportStatusEntities = basicStatuss.getData(); + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("1")) { + SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) { + + BaseResponse baseResponse = null; + SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); + if (basicExportStatusEntity.getFromType() == 0) { + BaseResponse response = spGetHttp.getLastUpdateTime("AutoDownloadOrder"); + String lastUpdateTime = response.getData(); + spsSyncDataRequest.setLastUpdateTime(lastUpdateTime); + baseResponse = spGetHttp.getAllOrder(spsSyncDataRequest); + } else { + spsSyncDataRequest.setId(basicExportStatusEntity.getId()); + baseResponse = spGetHttp.getAllOrder(spsSyncDataRequest); + } + + if (baseResponse.getCode() == 20000) { + SpsSyncOrderResponse syncOrderResponse = baseResponse.getData(); + if (syncOrderResponse != null && + (CollUtil.isNotEmpty(syncOrderResponse.getOrderEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getOrderDetailEntityList()) + || CollUtil.isNotEmpty(syncOrderResponse.getWarehouseEntityList())) + ) { + if (downstream.getParamValue().equals("1")) { + String key = "BaseAllOrder" + System.currentTimeMillis(); + redisUtil.set(key, baseResponse.getData()); + BasicExportStatusEntity myEntity = new BasicExportStatusEntity(); + myEntity.setId(key); + myEntity.setStatus(0); + myEntity.setUpdateTime(new Date()); + myEntity.setType(BasicProcessStatus.NEW_ALL_ORDER); + basicExportService.insertExportStatus(myEntity); + } else { + String path = getPath(); + String fileName = path + FileConstant.upWaitCopy_products + "order_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + String datas = JSON.toJSONString(baseResponse.getData()); + FileUtils.SaveFileAs(datas, fileName); + + } + } + } + if (basicExportStatusEntity.getFromType() == 0) { + BasicExportStatusEntity basicExportStatusEntity1 = basicExportStatusEntities.get(0); + basicExportStatusEntity1.setStatus(1); + spGetHttp.postUpdateBasicStatus(basicExportStatusEntity1); + spGetHttp.updateLastTime("AutoDownloadOrder", DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); + } else { + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); + } + } + + + } + + } + + + } + + public void dllNewAllBusType() { + + BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest(); + basicExportStatusRequest.setIdDatas("AutoDownloadBusType"); + basicExportStatusRequest.setStatus(0); + basicExportStatusRequest.setType(BasicProcessStatus.NEW_ALL_BUS); + basicExportStatusRequest.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + BaseResponse> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest); + if (CollUtil.isNotEmpty(basicStatuss.getData())) { + List basicExportStatusEntities = basicStatuss.getData(); + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("1")) { + SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) { + BaseResponse baseResponse = null; + SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); + if (basicExportStatusEntity.getFromType() == 0) { + BaseResponse response = spGetHttp.getLastUpdateTime("AutoDownloadBusType"); + String lastUpdateTime = response.getData(); + spsSyncDataRequest.setLastUpdateTime(lastUpdateTime); + baseResponse = spGetHttp.getAllBus(spsSyncDataRequest); + } else { + spsSyncDataRequest.setId(basicExportStatusEntity.getId()); + baseResponse = spGetHttp.getAllBus(spsSyncDataRequest); + } + if (baseResponse.getCode() == 20000) { + SpsSyncBusResponse syncOrderResponse = baseResponse.getData(); + if (syncOrderResponse != null && + (CollUtil.isNotEmpty(syncOrderResponse.getBussinessTypeEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getBussinessOriginTypeEntities()) + || CollUtil.isNotEmpty(syncOrderResponse.getBussinessLocalTypeEntities())) + ) { + if (downstream.getParamValue().equals("1")) { + String key = "BaseAllBusType" + System.currentTimeMillis(); + redisUtil.set(key, baseResponse.getData()); + BasicExportStatusEntity myEntity = new BasicExportStatusEntity(); + myEntity.setId(key); + myEntity.setStatus(0); + myEntity.setUpdateTime(new Date()); + myEntity.setType(BasicProcessStatus.NEW_ALL_BUS); + basicExportService.insertExportStatus(myEntity); + } else { + String path = getPath(); + String fileName = path + FileConstant.upWaitCopy_products + "BusType_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + String datas = JSON.toJSONString(baseResponse.getData()); + FileUtils.SaveFileAs(datas, fileName); + + } + } + if (basicExportStatusEntity.getFromType() == 0) { + BasicExportStatusEntity basicExportStatusEntity1 = basicExportStatusEntities.get(0); + basicExportStatusEntity1.setStatus(1); + spGetHttp.postUpdateBasicStatus(basicExportStatusEntity1); + spGetHttp.updateLastTime("AutoDownloadBusType", DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); + } else { + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); + } + + + } + } + + } + } + + + } + + public void dlScheduleStatus() { + BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest(); + basicExportStatusRequest.setScheduleType(BasicProcessStatus.SCHEDULE_TRANSFER); + BaseResponse> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest); + if (CollUtil.isNotEmpty(basicStatuss.getData())) { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("1")) { + SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + if (downstream.getParamValue().equals("1")) { + for (BasicExportStatusEntity basicExportStatusEntity : basicStatuss.getData()) { + basicExportService.insertExportStatus(basicExportStatusEntity); + } + } else { + String path = getPath(); + String fileName = path + FileConstant.upWaitCopy_products + "ScheduleList_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + SpsSyncScheduleResponse spsSyncScheduleResponse = new SpsSyncScheduleResponse(); + spsSyncScheduleResponse.setBasicExportStatusEntities(basicStatuss.getData()); + String datas = JSON.toJSONString(spsSyncScheduleResponse); + FileUtils.SaveFileAs(datas, fileName); + } + for (BasicExportStatusEntity basicExportStatusEntity : basicStatuss.getData()) { + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); + } + } + } + + } + + + public String getPath() { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder"); + String filePath = systemParamConfigEntity.getParamValue(); + return filePath; + } + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/DlBasicService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlBasicService.java index 7b60d59..f44036b 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/DlBasicService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlBasicService.java @@ -14,6 +14,7 @@ import com.glxp.sale.admin.res.sync.UdiRelevanceExportJsonResponse; import com.glxp.sale.admin.service.param.SystemParamConfigService; import com.glxp.sale.admin.service.sync.*; import com.glxp.sale.admin.util.CustomUtil; +import com.glxp.sale.admin.util.DateUtil; import com.glxp.sale.admin.util.FileUtils; import com.glxp.sale.admin.util.RedisUtil; import com.glxp.sale.common.res.BaseResponse; @@ -71,11 +72,16 @@ public class DlBasicService { BeanUtils.copyProperties(basicExportStatusEntity, myEntity); myEntity.setId(key); basicExportService.insertExportStatus(myEntity); - spGetHttp.postBasicStatus(basicExportStatusEntity.getId()); + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); } else { String path = getPath(); - String fileName = path + FileConstant.upWaitCopy_products + "耗材字典" + key + ".udi"; - String backFileName = path + FileConstant.upWaitCopy_products_back + "耗材字典" + key + ".udi"; +// String fileName = path + FileConstant.upWaitCopy_products + "耗材字典" + key + ".udi"; +// String backFileName = path + FileConstant.upWaitCopy_products_back + "耗材字典" + key + ".udi"; + + String fileName = path + FileConstant.upWaitCopy_products + "BaseProduct" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + String backFileName = path + FileConstant.upWaitCopy_products_back + "BaseProduct" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + + // FileUtils.makeDirectory(path); // FileUtils.makeDirectory(path + "/备份/"); FileUtils.SaveFileAs(datas, fileName); @@ -87,7 +93,7 @@ public class DlBasicService { thrImportLogEntity.setFilePath(fileName); thrImportLogEntity.setBackFilePath(backFileName); thrImportLogService.insertImportLog(thrImportLogEntity); - spGetHttp.postBasicStatus(basicExportStatusEntity.getId()); + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); } } @@ -122,11 +128,15 @@ public class DlBasicService { BeanUtils.copyProperties(basicExportStatusEntity, myEntity); myEntity.setId(key); basicExportService.insertExportStatus(myEntity); - spGetHttp.postBasicStatus(basicExportStatusEntity.getId()); + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); } else { String path = getPath(); - String fileName = path + FileConstant.upWaitCopy_products + "往来单位" + key + ".udi"; - String backFileName = path + FileConstant.upWaitCopy_products_back + "往来单位" + key + ".udi"; +// String fileName = path + FileConstant.upWaitCopy_products + "往来单位" + key + ".udi"; +// String backFileName = path + FileConstant.upWaitCopy_products_back + "往来单位" + key + ".udi"; + + String fileName = path + FileConstant.upWaitCopy_products + "BaseCorp" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + String backFileName = path + FileConstant.upWaitCopy_products_back + "BaseCorp" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + // FileUtils.makeDirectory(path); // FileUtils.makeDirectory(path + "备份"); FileUtils.SaveFileAs(datas, fileName); @@ -138,7 +148,7 @@ public class DlBasicService { thrImportLogEntity.setFilePath(fileName); thrImportLogEntity.setBackFilePath(backFileName); thrImportLogService.insertImportLog(thrImportLogEntity); - spGetHttp.postBasicStatus(basicExportStatusEntity.getId()); + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); } } @@ -170,11 +180,15 @@ public class DlBasicService { BeanUtils.copyProperties(basicExportStatusEntity, myEntity); myEntity.setId(key); basicExportService.insertExportStatus(myEntity); - spGetHttp.postBasicStatus(basicExportStatusEntity.getId()); + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); } else { String path = getPath(); - String fileName = path + FileConstant.upWaitCopy_products + "仓库字典" + key + ".udi"; - String backFileName = path + FileConstant.upWaitCopy_products_back + "仓库字典" + key + ".udi"; +// String fileName = path + FileConstant.upWaitCopy_products + "仓库字典" + key + ".udi"; +// String backFileName = path + FileConstant.upWaitCopy_products_back + "仓库字典" + key + ".udi"; + + String fileName = path + FileConstant.upWaitCopy_products + "BaseWarehouse" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + String backFileName = path + FileConstant.upWaitCopy_products_back + "BaseWarehouse" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + // FileUtils.makeDirectory(path); // FileUtils.makeDirectory(path + "/备份/"); FileUtils.SaveFileAs(datas, fileName); @@ -186,7 +200,7 @@ public class DlBasicService { thrImportLogEntity.setFilePath(fileName); thrImportLogEntity.setBackFilePath(backFileName); thrImportLogService.insertImportLog(thrImportLogEntity); - spGetHttp.postBasicStatus(basicExportStatusEntity.getId()); + spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId()); } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/DlSpOrderService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlSpOrderService.java index 37e37c7..c96582e 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/DlSpOrderService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/DlSpOrderService.java @@ -13,6 +13,7 @@ import com.glxp.sale.admin.service.sync.IOOrderStatusService; import com.glxp.sale.admin.service.sync.OrderService; import com.glxp.sale.admin.service.sync.ThrImportLogService; import com.glxp.sale.admin.util.CustomUtil; +import com.glxp.sale.admin.util.DateUtil; import com.glxp.sale.admin.util.FileUtils; import com.glxp.sale.common.res.BaseResponse; import org.springframework.beans.factory.annotation.Value; @@ -84,8 +85,8 @@ public class DlSpOrderService { codesService.insertWarehouses(codes); } else { - String fileName = path + FileConstant.upWaitCopy_order + "扫码单据" + orderEntity.getId() + ".json"; - String backFileName = path + FileConstant.upWaitCopy_order_back + "扫码单据" + orderEntity.getId() + ".json"; + String fileName = path + FileConstant.upWaitCopy_order + "Order" + orderEntity.getId() + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; + String backFileName = path + FileConstant.upWaitCopy_order_back + "Order" + orderEntity.getId() + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn"; List postOrders = new ArrayList<>(); PostOrderRequest postOrderRequest = new PostOrderRequest(); List warehouseEntityList = dlOrderResponse.getCodes(); 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 1a8604e..c83345b 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 @@ -7,6 +7,7 @@ import com.glxp.sale.admin.http.SpGetHttp; import com.glxp.sale.admin.req.info.ScheduledRequest; import com.glxp.sale.admin.service.param.SystemParamConfigService; import com.glxp.sale.admin.service.sync.IOOrderStatusService; +import com.glxp.sale.admin.util.DateUtil; import com.glxp.sale.admin.util.RedisUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,13 +31,13 @@ public class HeartTask implements SchedulingConfigurer { @Resource SystemParamConfigService systemParamConfigService; @Resource - DlUploadService dlUploadService; - @Resource RedisUtil redisUtil; @Resource ScanUploadService scanUploadService; @Resource ScanDownloadService scanDownloadService; + @Resource + DlAllDataService dlAllDataService; @Override public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { @@ -63,57 +64,54 @@ public class HeartTask implements SchedulingConfigurer { private void dlData() { SystemParamConfigEntity upConnect = systemParamConfigService.selectByParamKey("sync_upstream_enable"); if (upConnect.getParamValue().equals("1")) { - dlUploadService.dlOrder(); - dlUploadService.dlBasicUdiInfo(); + dlAllData(); + scanUpload(); } - scanUpload(); - scanDonwload(); + SystemParamConfigEntity donwConnect = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + if (donwConnect.getParamValue().equals("1")) { + scanDonwload(); + } + } private void scanUpload() { - SystemParamConfigEntity upConnect = systemParamConfigService.selectByParamKey("sync_upstream_enable"); - if (upConnect.getParamValue().equals("1")) { - SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sc_udiinfo_upload"); - long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000; - long curTime = System.currentTimeMillis(); - //任务一,定时下载供应商平台已完成单据 - Long lastTime = (Long) redisUtil.get("UPLOAD_UDIINFO_STATUS"); - if (lastTime == null) { - lastTime = System.currentTimeMillis(); - redisUtil.set("UPLOAD_UDIINFO_STATUS", lastTime); - } - if (curTime - lastTime > timeInterval) { - redisUtil.set("UPLOAD_UDIINFO_STATUS", curTime); - scanUploadService.scanCorp(); - scanUploadService.scanUdi(); - scanUploadService.scanInv(); - scanUploadService.scanThirdProducts(); - scanUploadService.scanThirdCorp(); - scanUploadService.scanThirdOrder(); - - } + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sc_udiinfo_upload"); + long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000; + long curTime = System.currentTimeMillis(); + //定时扫描 + Long lastTime = (Long) redisUtil.get("UPLOAD_UDIINFO_STATUS"); + if (lastTime == null) { + lastTime = System.currentTimeMillis(); + redisUtil.set("UPLOAD_UDIINFO_STATUS", lastTime); + } + if (curTime - lastTime > timeInterval) { + redisUtil.set("UPLOAD_UDIINFO_STATUS", curTime); + scanUploadService.scanAllDatas(); + scanUploadService.scanAllBus(); + scanUploadService.scanAllOrders(); + scanUploadService.scanAllSchedule(); } } private void scanDonwload() { SystemParamConfigEntity upConnect = systemParamConfigService.selectByParamKey("sync_downstream_enable"); - if (upConnect.getParamValue().equals("1")) { - SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sc_order_status"); - long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000; - long curTime = System.currentTimeMillis(); - //任务一,定时下载供应商平台已完成单据 - Long lastTime = (Long) redisUtil.get("SC_ORDER_DOWNLOAD_STATUS"); - if (lastTime == null) { - lastTime = System.currentTimeMillis(); - redisUtil.set("SC_ORDER_DOWNLOAD_STATUS", lastTime); - } - if (curTime - lastTime > timeInterval) { - redisUtil.set("SC_ORDER_DOWNLOAD_STATUS", curTime); - scanDownloadService.scanOrder(); - } - } +// if (upConnect.getParamValue().equals("1")) { +// SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sc_order_status"); +// long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000; +// long curTime = System.currentTimeMillis(); +// //任务一,定时下载供应商平台已完成单据 +// Long lastTime = (Long) redisUtil.get("SC_ORDER_DOWNLOAD_STATUS"); +// if (lastTime == null) { +// lastTime = System.currentTimeMillis(); +// redisUtil.set("SC_ORDER_DOWNLOAD_STATUS", lastTime); +// } +// if (curTime - lastTime > timeInterval) { +// redisUtil.set("SC_ORDER_DOWNLOAD_STATUS", curTime); +// scanDownloadService.scanOrder(); +// } +// } if (upConnect.getParamValue().equals("1")) { SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sc_udiinfo_status"); @@ -126,12 +124,35 @@ public class HeartTask implements SchedulingConfigurer { } if (curTime - lastTime > timeInterval) { redisUtil.set("SC_UDIINFO_DOWNLOAD_STATUS", curTime); - scanDownloadService.scanUdi(); - scanDownloadService.scanCorp(); - scanDownloadService.scanInv(); + scanDownloadService.scanAllData(); + scanDownloadService.scanAllBus(); + scanDownloadService.scanAllOrder(); + scanDownloadService.scanScheduleList(); + } + } + } + private void dlAllData() { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sc_udiinfo_status"); + long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000; + long curTime = System.currentTimeMillis(); + Long lastTime = (Long) redisUtil.get("SC_UDIINFO_DOWNLOAD_STATUS"); + if (lastTime == null) { + try { + lastTime = DateUtil.timeToStamp("1949-01-01 00:00:00"); + } catch (Exception e) { + e.printStackTrace(); } + redisUtil.set("SC_UDIINFO_DOWNLOAD_STATUS", lastTime); + } + if (curTime - lastTime > timeInterval) { + redisUtil.set("SC_UDIINFO_DOWNLOAD_STATUS", curTime); + dlAllDataService.dllNewAllData(); + dlAllDataService.dllNewAllOrder(); + dlAllDataService.dllNewAllBusType(); + dlAllDataService.dlScheduleStatus(); + } } 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 5877dd5..f489556 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 @@ -1,17 +1,25 @@ package com.glxp.sale.admin.thread; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; import com.glxp.sale.admin.constant.BasicProcessStatus; import com.glxp.sale.admin.constant.FileConstant; import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity; import com.glxp.sale.admin.entity.sync.IOOrderStatusEntity; +import com.glxp.sale.admin.entity.sync.UdiCompanyEntity; import com.glxp.sale.admin.entity.sync.WarehouseEntity; +import com.glxp.sale.admin.res.sync.SpsSyncBusResponse; +import com.glxp.sale.admin.res.sync.SpsSyncDataResponse; +import com.glxp.sale.admin.res.sync.SpsSyncOrderResponse; +import com.glxp.sale.admin.res.sync.SpsSyncScheduleResponse; import com.glxp.sale.admin.service.param.SystemParamConfigService; import com.glxp.sale.admin.service.sync.BasicExportService; import com.glxp.sale.admin.service.sync.IOOrderStatusService; import com.glxp.sale.admin.util.FileFilterImpl; import com.glxp.sale.admin.util.FileUtils; import com.glxp.sale.admin.util.RedisUtil; +import com.glxp.sale.common.res.BaseResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; @@ -61,7 +69,7 @@ public class ScanDownloadService { try { fileName = file.getName(); orderId = fileName.substring(4, fileName.length() - 4); - if (!fileName.contains(".udi")) { + if (!fileName.contains(".LowerIn")) { errorFile(file); continue; } @@ -100,7 +108,7 @@ public class ScanDownloadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("耗材字典")) { + if (file.getName().contains("BaseProduct") && file.getName().contains("LowerIn")) { String data = FileUtils.readFileAll(file.getPath()); BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); String fileName = file.getName(); @@ -129,7 +137,7 @@ public class ScanDownloadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("往来单位")) { + if (file.getName().contains("BaseCorp") && file.getName().contains("LowerIn")) { String data = FileUtils.readFileAll(file.getPath()); BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); String fileName = file.getName(); @@ -157,7 +165,7 @@ public class ScanDownloadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("仓库字典")) { + if (file.getName().contains("BaseWarehouse") && file.getName().contains("LowerIn")) { String data = FileUtils.readFileAll(file.getPath()); BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); String fileName = file.getName(); @@ -180,4 +188,124 @@ public class ScanDownloadService { } + public void scanAllData() { + logger.info("扫描基础信息文件生成状态表等待下载!"); + File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitDownload_products), new FileFilterImpl()); + if (files != null && files.length > 0) { + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.getName().contains("BaseData") && file.getName().contains("LowerIn")) { + String data = FileUtils.readFileAll(file.getPath()); + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + String fileName = file.getName(); + basicExportStatusEntity.setId(fileName); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setStatus(1); + basicExportStatusEntity.setIdDatas(file.getPath()); + basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_DATA); + basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(basicExportStatusEntity); + SpsSyncDataResponse baseResponse = + JSONObject.parseObject(data, new TypeReference() { + }); + redisUtil.set(fileName, baseResponse); + try { + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_products_back + file.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + + public void scanAllBus() { + logger.info("扫描单据类型文件生成状态表等待下载!"); + File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitDownload_products), new FileFilterImpl()); + if (files != null && files.length > 0) { + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.getName().contains("BusType") && file.getName().contains("LowerIn")) { + String data = FileUtils.readFileAll(file.getPath()); + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + String fileName = file.getName(); + basicExportStatusEntity.setId(fileName); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setStatus(1); + basicExportStatusEntity.setIdDatas(file.getPath()); + basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_BUS); + basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(basicExportStatusEntity); + SpsSyncBusResponse baseResponse = + JSONObject.parseObject(data, new TypeReference() { + }); + redisUtil.set(fileName, baseResponse); + try { + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_products_back + file.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + + public void scanAllOrder() { + logger.info("扫描单据文件生成状态表等待下载!"); + File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitDownload_products), new FileFilterImpl()); + if (files != null && files.length > 0) { + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.getName().contains("order") && file.getName().contains("LowerIn")) { + String data = FileUtils.readFileAll(file.getPath()); + BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity(); + String fileName = file.getName(); + basicExportStatusEntity.setId(fileName); + basicExportStatusEntity.setUpdateTime(new Date()); + basicExportStatusEntity.setStatus(1); + basicExportStatusEntity.setIdDatas(file.getPath()); + basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_ORDER); + basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); + basicExportService.insertExportStatus(basicExportStatusEntity); + SpsSyncOrderResponse baseResponse = + JSONObject.parseObject(data, new TypeReference() { + }); + redisUtil.set(fileName, baseResponse); + try { + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_products_back + file.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + + + public void scanScheduleList() { + logger.info("扫描任务文件生成状态表等待下载!"); + File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitDownload_products), new FileFilterImpl()); + if (files != null && files.length > 0) { + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.getName().contains("ScheduleList") && file.getName().contains("LowerIn")) { + String data = FileUtils.readFileAll(file.getPath()); + SpsSyncScheduleResponse baseResponse = + JSONObject.parseObject(data, new TypeReference() { + }); + + for (BasicExportStatusEntity basicExportStatusEntity : baseResponse.getBasicExportStatusEntities()) { + basicExportService.insertExportStatus(basicExportStatusEntity); + } + try { + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_products_back + file.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/ScanUploadService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/ScanUploadService.java index aea5fb4..e2b98d9 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/thread/ScanUploadService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/ScanUploadService.java @@ -56,7 +56,7 @@ public class ScanUploadService { BaseResponse baseResponse = spPostHttp.postOrder(dlOrderResponse); if (baseResponse.getCode() == 20000) {//上传成功 try { - FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_order_back + file.getName()); + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_order_back + file.getName()); } catch (Exception e) { e.printStackTrace(); } @@ -71,13 +71,13 @@ public class ScanUploadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("耗材字典")) { + if (file.getName().contains("BaseProduct") && file.getName().contains("UpperIn")) { String data = FileUtils.readFileAll(file.getPath()); UdiRelevanceExportJsonResponse udiRelevanceExportJsonResponse = JSON.parseObject(data, UdiRelevanceExportJsonResponse.class); BaseResponse baseResponse = spPostHttp.postUdiInfo(udiRelevanceExportJsonResponse); if (baseResponse.getCode() == 20000) {//上传成功 try { - FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); } catch (Exception e) { e.printStackTrace(); } @@ -93,7 +93,7 @@ public class ScanUploadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("往来单位")) { + if (file.getName().contains("BaseCorp") && file.getName().contains("UpperIn")) { String data = FileUtils.readFileAll(file.getPath()); BasicUnitMaintainExportResponse basicUnitMaintainExportResponse = JSON.parseObject(data, BasicUnitMaintainExportResponse.class); BaseResponse baseResponse = spPostHttp.postCorp(basicUnitMaintainExportResponse); @@ -114,7 +114,7 @@ public class ScanUploadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("仓库字典")) { + if (file.getName().contains("BaseWarehouse") && file.getName().contains("UpperIn")) { String data = FileUtils.readFileAll(file.getPath()); InvWarehouseExportResponse invWarehouseExportResponse = JSON.parseObject(data, InvWarehouseExportResponse.class); BaseResponse baseResponse = spPostHttp.postInv(invWarehouseExportResponse); @@ -135,7 +135,7 @@ public class ScanUploadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("第三方产品信息")) { + if (file.getName().contains("ThirdWarehouse") && file.getName().contains("UpperIn")) { String data = FileUtils.readFileAll(file.getPath()); PostThrProductsRequest postThrProductsRequest = JSON.parseObject(data, PostThrProductsRequest.class); BaseResponse baseResponse = spPostHttp.postThirdProducts(postThrProductsRequest); @@ -157,13 +157,13 @@ public class ScanUploadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("第三方往来单位")) { + if (file.getName().contains("ThirdCorp") && file.getName().contains("UpperIn")) { String data = FileUtils.readFileAll(file.getPath()); PostThrCorpRequest postThrCorpRequest = JSON.parseObject(data, PostThrCorpRequest.class); BaseResponse baseResponse = spPostHttp.postThirdCorps(postThrCorpRequest); if (baseResponse.getCode() == 20000) {//上传成功 try { - FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); } catch (Exception e) { e.printStackTrace(); } @@ -178,13 +178,100 @@ public class ScanUploadService { if (files != null && files.length > 0) { for (int i = 0; i < files.length; i++) { File file = files[i]; - if (file.getName().contains("第三方业务单据")) { + if (file.getName().contains("ThirdOrder") && file.getName().contains("UpperIn")) { String data = FileUtils.readFileAll(file.getPath()); ThrOrderExportJsonResponse thrOrderExportJsonResponse = JSON.parseObject(data, ThrOrderExportJsonResponse.class); BaseResponse baseResponse = spPostHttp.postThirdOrders(thrOrderExportJsonResponse); if (baseResponse.getCode() == 20000) {//上传成功 try { - FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + } + + + public void scanAllDatas() { + File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitUpload_products), new FileFilterImpl()); + if (files != null && files.length > 0) { + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.getName().contains("BaseData") && file.getName().contains("UpperIn")) { + String data = FileUtils.readFileAll(file.getPath()); + SpsSyncDataResponse syncDataResponse = JSON.parseObject(data, SpsSyncDataResponse.class); + BaseResponse baseResponse = spPostHttp.postAllDatas(syncDataResponse); + if (baseResponse.getCode() == 20000) {//上传成功 + try { + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + } + + + public void scanAllBus() { + File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitUpload_products), new FileFilterImpl()); + if (files != null && files.length > 0) { + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.getName().contains("BusType") && file.getName().contains("UpperIn")) { + String data = FileUtils.readFileAll(file.getPath()); + SpsSyncBusResponse spsSyncBusResponse = JSON.parseObject(data, SpsSyncBusResponse.class); + BaseResponse baseResponse = spPostHttp.postAllBus(spsSyncBusResponse); + if (baseResponse.getCode() == 20000) {//上传成功 + try { + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + } + + + public void scanAllOrders() { + File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitUpload_products), new FileFilterImpl()); + if (files != null && files.length > 0) { + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.getName().contains("order") && file.getName().contains("UpperIn")) { + String data = FileUtils.readFileAll(file.getPath()); + SpsSyncOrderResponse syncOrderResponse = JSON.parseObject(data, SpsSyncOrderResponse.class); + BaseResponse baseResponse = spPostHttp.postAllOrders(syncOrderResponse); + if (baseResponse.getCode() == 20000) {//上传成功 + try { + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + } + } + + public void scanAllSchedule() { + File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitUpload_products), new FileFilterImpl()); + if (files != null && files.length > 0) { + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.getName().contains("ScheduleList") && file.getName().contains("UpperIn")) { + String data = FileUtils.readFileAll(file.getPath()); + SpsSyncScheduleResponse syncOrderResponse = JSON.parseObject(data, SpsSyncScheduleResponse.class); + BaseResponse baseResponse = spPostHttp.postAllSchedule(syncOrderResponse); + if (baseResponse.getCode() == 20000) {//上传成功 + try { + FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName()); } catch (Exception e) { e.printStackTrace(); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncCompanyDlService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncCompanyDlService.java new file mode 100644 index 0000000..28dfbc3 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncCompanyDlService.java @@ -0,0 +1,82 @@ +package com.glxp.sale.admin.thread.didl; + +import com.alibaba.fastjson.JSON; +import com.glxp.sale.admin.constant.FileConstant; +import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; +import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity; +import com.glxp.sale.admin.entity.sync.UdiCompanyEntity; +import com.glxp.sale.admin.service.param.SystemParamConfigService; +import com.glxp.sale.admin.service.sync.BasicExportService; +import com.glxp.sale.admin.util.FileUtils; +import com.glxp.sale.admin.util.RedisUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Service +public class AsyncCompanyDlService { + + private static final Logger logger = LoggerFactory.getLogger(AsyncCompanyDlService.class); + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + RedisUtil redisUtil; + @Resource + BasicExportService basicExportService; + + public String getPath() { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder"); + String filePath = systemParamConfigEntity.getParamValue(); + return filePath; + } + + @Async + public void asyncDiByTime(String updateTime) { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("1")) { + + AsyncDiDlHelper asyncDiDlHelper = new AsyncDiDlHelper(); + List mUdiCompanyEntities = new ArrayList<>(); + int page = 1; + int limit = 300; + while (true) { + logger.info("更新时间:" + updateTime + "----" + page + "----" + limit); + List udiCompanyEntities = asyncDiDlHelper.dlCompanyByTime(null, page, limit, updateTime); + if (udiCompanyEntities != null && udiCompanyEntities.size() > 0) { + mUdiCompanyEntities.addAll(udiCompanyEntities); + if (udiCompanyEntities.size() < limit) { + break; + } else { + page++; + } + } else { + break; + } + } + logger.info("更新时间:" + updateTime + "----" + "下载结束"); + + SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + String key = "dlcompany" + System.currentTimeMillis(); + String datas = JSON.toJSON(mUdiCompanyEntities).toString(); + if (downstream.getParamValue().equals("1")) { + redisUtil.set(key, datas); + BasicExportStatusEntity myEntity = new BasicExportStatusEntity(); + myEntity.setId(key); + basicExportService.insertExportStatus(myEntity); + } else { + String path = getPath(); + String fileName = path + FileConstant.upWaitCopy_products + "同步库企业信息_" + key + ".udi"; + FileUtils.SaveFileAs(datas, fileName); + } + } + } + + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncCompanyDlTask.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncCompanyDlTask.java new file mode 100644 index 0000000..a7238eb --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncCompanyDlTask.java @@ -0,0 +1,57 @@ +package com.glxp.sale.admin.thread.didl; + +import com.glxp.sale.admin.dao.info.ScheduledDao; +import com.glxp.sale.admin.entity.info.ScheduledEntity; +import com.glxp.sale.admin.req.info.ScheduledRequest; +import com.glxp.sale.admin.util.DateUtil; +import com.glxp.sale.admin.util.RedisUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Date; + +@Component +@EnableScheduling +public class AsyncCompanyDlTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(AsyncDiDlTask.class); + @Resource + AsyncCompanyDlService udiCompanyTask; + @Resource + RedisUtil redisUtil; + + @Resource + private ScheduledDao scheduledDao; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("syncCompany"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron();//"0 55 5 * * ?"; + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + + String lastUpDiTime = (String) redisUtil.get("lastUpCompanyTime"); + if (lastUpDiTime == null) { + lastUpDiTime = DateUtil.getLastDayFormat(-10); + } + udiCompanyTask.asyncDiByTime(lastUpDiTime); + redisUtil.set("lastUpCompanyTime", DateUtil.formatDate(new Date())); + } + +} \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlHelper.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlHelper.java new file mode 100644 index 0000000..ad0888b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlHelper.java @@ -0,0 +1,64 @@ +package com.glxp.sale.admin.thread.didl; + +import com.alibaba.fastjson.JSONObject; +import com.glxp.sale.admin.entity.sync.ProductInfoEntity; +import com.glxp.sale.admin.entity.sync.UdiCompanyEntity; +import com.glxp.sale.admin.http.UHttpClient; +import com.glxp.sale.common.res.BaseResponse; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpHeaders; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class AsyncDiDlHelper { + @Value("${SPMS_IP}") + private String spmsUrl; + @Value("${API_KEY}") + private String apiKey; + @Value("${API_SECRET}") + private String apiSecret; + + public HttpHeaders getHeaders() { + HttpHeaders headers = new HttpHeaders(); + headers.add("Content-Type", "application/json"); + headers.add("api_key", apiKey); + headers.add("secret_key", apiSecret); + return headers; + } + + public List dlByTime(String udiUrl, int page, int limit, String updateTime) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", page); + paramMap.put("limit", limit); + paramMap.put("updateTime", updateTime); + String response = UHttpClient.mipsGetHead(spmsUrl + "/udidl/udiwms/syncUdi", paramMap, getHeaders()); + try { + BaseResponse> udiDlDeviceResponse = (BaseResponse>) JSONObject.parseObject(response, BaseResponse.class); + List udiInfoEntities = udiDlDeviceResponse.getData(); + return udiInfoEntities; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + + public List dlCompanyByTime(String udiUrl, int page, int limit, String updateTime) { + Map paramMap = new HashMap<>(16); + paramMap.put("page", page); + paramMap.put("limit", limit); + paramMap.put("updateTime", updateTime); + String response = UHttpClient.mipsGetHead(spmsUrl + "/udidl/udiwms/syncCompany", paramMap, getHeaders()); + try { + BaseResponse> baseResponse = (BaseResponse>) JSONObject.parseObject(response, BaseResponse.class); + List udiCompanyEntities = baseResponse.getData(); + return udiCompanyEntities; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlService.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlService.java new file mode 100644 index 0000000..b34e519 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlService.java @@ -0,0 +1,84 @@ +package com.glxp.sale.admin.thread.didl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.glxp.sale.admin.constant.FileConstant; +import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; +import com.glxp.sale.admin.entity.sync.BasicExportStatusEntity; +import com.glxp.sale.admin.entity.sync.ProductInfoEntity; +import com.glxp.sale.admin.entity.sync.ThrImportLogEntity; +import com.glxp.sale.admin.service.param.SystemParamConfigService; +import com.glxp.sale.admin.service.sync.BasicExportService; +import com.glxp.sale.admin.util.CustomUtil; +import com.glxp.sale.admin.util.FileUtils; +import com.glxp.sale.admin.util.RedisUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Service +public class AsyncDiDlService { + + + @Resource + SystemParamConfigService systemParamConfigService; + @Resource + RedisUtil redisUtil; + @Resource + BasicExportService basicExportService; + + private static final Logger logger = LoggerFactory.getLogger(AsyncDiDlService.class); + + @Async + public void asyncDiByTime(String updateTime) { + + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable"); + if (systemParamConfigEntity.getParamValue().equals("1")) { + AsyncDiDlHelper asyncDiDlHelper = new AsyncDiDlHelper(); + List mProductInfoEntities = new ArrayList<>(); + int page = 1; + int limit = 200; + while (true) { + logger.info("更新时间:" + updateTime + "----" + page + "----" + limit); + List productInfoEntityList = asyncDiDlHelper.dlByTime(null, page, limit, updateTime); + if (productInfoEntityList != null && productInfoEntityList.size() > 0) { + mProductInfoEntities.addAll(productInfoEntityList); + if (productInfoEntityList.size() < limit) { + break; + } else { + page++; + } + } else { + break; + } + } + SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable"); + String key = "dlDi" + System.currentTimeMillis(); + String datas = JSON.toJSON(mProductInfoEntities).toString(); + if (downstream.getParamValue().equals("1")) { + redisUtil.set(key, datas); + BasicExportStatusEntity myEntity = new BasicExportStatusEntity(); + myEntity.setId(key); + basicExportService.insertExportStatus(myEntity); + } else { + String path = getPath(); + String fileName = path + FileConstant.upWaitCopy_products + "同步库DI信息_" + key + ".udi"; + FileUtils.SaveFileAs(datas, fileName); + } + logger.info("更新时间:" + updateTime + "----" + "下载结束"); + } + + } + + public String getPath() { + SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder"); + String filePath = systemParamConfigEntity.getParamValue(); + return filePath; + } +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlTask.java b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlTask.java new file mode 100644 index 0000000..dfc6f5f --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/thread/didl/AsyncDiDlTask.java @@ -0,0 +1,60 @@ +package com.glxp.sale.admin.thread.didl; + +import com.glxp.sale.admin.dao.info.ScheduledDao; +import com.glxp.sale.admin.entity.info.ScheduledEntity; +import com.glxp.sale.admin.req.info.ScheduledRequest; +import com.glxp.sale.admin.util.DateUtil; +import com.glxp.sale.admin.util.RedisUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.SchedulingConfigurer; +import org.springframework.scheduling.config.ScheduledTaskRegistrar; +import org.springframework.scheduling.support.CronTrigger; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.Date; + +@Component +@EnableScheduling +public class AsyncDiDlTask implements SchedulingConfigurer { + + final Logger logger = LoggerFactory.getLogger(AsyncDiDlTask.class); + @Resource + RedisUtil redisUtil; + @Resource + private ScheduledDao scheduledDao; + @Resource + AsyncDiDlService asyncDiDlService; + + @Override + public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { + scheduledTaskRegistrar.addTriggerTask(() -> process(), + triggerContext -> { + ScheduledRequest scheduledRequest = new ScheduledRequest(); + scheduledRequest.setCronName("syncDi"); + ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); + String cron = scheduledEntity.getCron();//"0 55 5 * * ?"; + if (cron.isEmpty()) { + logger.error("cron is null"); + } + return new CronTrigger(cron).nextExecutionTime(triggerContext); + }); + } + + private void process() { + String day = DateUtil.getLastDayFormat(-1); + asyncDiDlService.asyncDiByTime(day); + + + String lastUpDiTime = (String) redisUtil.get("lastDiUpTime"); + if (lastUpDiTime == null) { + lastUpDiTime = DateUtil.getLastDayFormat(-10); + } + asyncDiDlService.asyncDiByTime(lastUpDiTime); + redisUtil.set("lastDiUpTime", DateUtil.formatDate(new Date())); + } + + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/util/DateUtil.java b/api-admin/src/main/java/com/glxp/sale/admin/util/DateUtil.java index af3cafe..a577eec 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/util/DateUtil.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/util/DateUtil.java @@ -489,6 +489,14 @@ public class DateUtil extends org.apache.commons.lang3.time.DateUtils { final long time = datetime.getTime(); System.out.println(mydate + "转换后是:" + time); return time; + } + public static String getLastDayFormat(int amount) { + SimpleDateFormat smdate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar calendar = new GregorianCalendar(); + calendar.setTime(new Date()); + calendar.add(calendar.DATE, amount); + String formatDate = smdate.format(calendar.getTime()); + return formatDate; } } \ No newline at end of file diff --git a/api-admin/src/main/java/com/glxp/sale/admin/util/FileUtils.java b/api-admin/src/main/java/com/glxp/sale/admin/util/FileUtils.java index ff7f56e..89c2cba 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/util/FileUtils.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/util/FileUtils.java @@ -238,8 +238,7 @@ public class FileUtils { */ public static boolean deleteDirectory(File dir) { if ((dir == null) || !dir.isDirectory()) { - throw new IllegalArgumentException("Argument " + dir + - " is not a directory. "); + return false; } File[] entries = dir.listFiles(); diff --git a/api-admin/src/main/resources/mybatis/mapper/param/SystemParamConfigDao.xml b/api-admin/src/main/resources/mybatis/mapper/param/SystemParamConfigDao.xml index b3ab279..709e196 100644 --- a/api-admin/src/main/resources/mybatis/mapper/param/SystemParamConfigDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/param/SystemParamConfigDao.xml @@ -18,18 +18,24 @@ @@ -45,6 +51,19 @@ WHERE id=#{id} + + UPDATE system_param_config + + paramName=#{paramName}, + paramValue=#{paramValue}, + paramStatus=#{paramStatus}, + paramType=#{paramType}, + paramExplain=#{paramExplain}, + + WHERE paramKey=#{paramKey} + + + UPDATE system_param_config @@ -54,17 +73,14 @@ - insert INTO system_param_config(paramName, - paramKey,paramValue,paramStatus,paramType,paramExplain - ) values - ( - #{paramName}, - #{paramKey}, - #{paramValue}, - #{paramStatus}, - #{paramType}, - #{paramExplain} - ) + insert INTO system_param_config(paramName, + paramKey, paramValue, paramStatus, paramType, paramExplain) + values (#{paramName}, + #{paramKey}, + #{paramValue}, + #{paramStatus}, + #{paramType}, + #{paramExplain}) diff --git a/api-admin/src/main/resources/mybatis/mapper/sync/BasicExportDao.xml b/api-admin/src/main/resources/mybatis/mapper/sync/BasicExportDao.xml index 7dc49c6..3d433b1 100644 --- a/api-admin/src/main/resources/mybatis/mapper/sync/BasicExportDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/sync/BasicExportDao.xml @@ -14,8 +14,12 @@ and status = #{status} - and type = #{type} + and `type` = #{type} + + and scheduleType = #{scheduleType} + + @@ -23,13 +27,14 @@ replace - INTO basic_export_status(id,idDatas,status,type,updateTime) + INTO basic_export_status(id,idDatas,status,`type`,updateTime,scheduleType) values( #{id}, #{idDatas}, #{status}, #{type}, - #{updateTime} + #{updateTime}, + #{scheduleType} ) @@ -38,10 +43,12 @@ idDatas=#{idDatas}, status=#{status}, - type=#{type}, + `type`=#{type}, updateTime=#{updateTime}, + scheduleType=#{scheduleType}, + - WHERE orderId = #{orderId} + WHERE id = #{id} DELETE