代码备份。。

version1
anthonyywj2 3 years ago
parent 0fd194c2f3
commit 9bca7f4729

@ -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; //需要传递任务
}

@ -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/";

@ -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());

@ -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<BasicExportStatusEntity> 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<InvWarehouseExportResponse>() {
});
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, "更新成功!");
}
}

@ -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);
}
}
}

@ -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);
}

@ -11,4 +11,6 @@ public class BasicExportStatusEntity {
private Integer status;
private Integer type;
private Date updateTime;
private Integer scheduleType;
private int fromType;
}

@ -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;
}

@ -32,6 +32,7 @@ public class BasicUnitMaintainEntity {
private Date updateTime;
private int corpType;
private int outType;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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;
}

@ -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)

@ -19,6 +19,7 @@ public class InvWarehouseEntity {
private String remark;
private Integer level;
private String pcode;
private String pName;
/**
* ID

@ -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;

@ -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;
}

@ -21,12 +21,12 @@ public class ThrInvWarehouseEntity {
private String remark;
/**
*
*/
*
*/
private Integer level;
/**
*
*/
*
*/
private String pcode;
}

@ -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; //往来单位
}

@ -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;
}

@ -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
}

@ -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;
}

@ -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;

@ -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;

@ -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;
}
}

@ -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<List<BasicExportStatusEntity>> getBasicStatus(BasicExportStatusRequest basicExportStatusRequest) {
Map<String, Object> 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<List<BasicExportStatusEntity>> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<List<BasicExportStatusEntity>>>() {
});
return data;
} catch (Exception e) {
e.printStackTrace();
return ResultVOUtils.error(500, "下载失败!");
}
}
public BaseResponse<List<BasicExportStatusEntity>> getBasicStatus(String type) {
Map<String, Object> 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<List<BasicExportStatusEntity>> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<List<BasicExportStatusEntity>>>() {
@ -100,6 +120,35 @@ public class SpGetHttp {
}
}
//获取上一次更新时间
public BaseResponse<String> getLastUpdateTime(String key) {
Map<String, Object> paramMap = new HashMap<>(16);
paramMap.put("key", key);
String response = UHttpClient.mipsGetHead(spmsUrl + "/spssync/basic/schedule/lastTime", paramMap, getHeaders());
try {
BaseResponse<String> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<String>>() {
});
return data;
} catch (Exception e) {
e.printStackTrace();
return ResultVOUtils.error(500, "下载失败!");
}
}
//更新上一次更新时间
public BaseResponse<String> 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<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
//获取耗材字典
public String getBasicUdiInfo(List<String> ids) {
@ -137,15 +186,78 @@ public class SpGetHttp {
return JSON.toJSON(response.getData()).toString();
}
public BaseResponse<String> postBasicStatus(String id) {
public BaseResponse<String> 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<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
public BaseResponse<String> postUpdateBasicStatus(BasicExportStatusEntity basicExportStatusEntity) {
String result = UHttpClient.postJson(spmsUrl + "/spssync/basic/udiinfo/updateStatus", basicExportStatusEntity, getHeaders());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
//获取所有基础信息
public BaseResponse<SpsSyncDataResponse> getAllNewData(SpsSyncDataRequest spsSyncDataRequest) {
Map<String, Object> 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<SpsSyncDataResponse> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<SpsSyncDataResponse>>() {
});
return data;
} catch (Exception e) {
e.printStackTrace();
return ResultVOUtils.error(500, "下载失败!");
}
}
//获取所有单据信息
public BaseResponse<SpsSyncOrderResponse> getAllOrder(SpsSyncDataRequest spsSyncDataRequest) {
Map<String, Object> 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<SpsSyncOrderResponse> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<SpsSyncOrderResponse>>() {
});
return data;
} catch (Exception e) {
e.printStackTrace();
return ResultVOUtils.error(500, "下载失败!");
}
}
//获取所有单据类型
public BaseResponse<SpsSyncBusResponse> getAllBus(SpsSyncDataRequest spsSyncDataRequest) {
Map<String, Object> 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<SpsSyncBusResponse> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<SpsSyncBusResponse>>() {
});
return data;
} catch (Exception e) {
e.printStackTrace();
return ResultVOUtils.error(500, "下载失败!");
}
}
}

@ -90,5 +90,38 @@ public class SpPostHttp {
return response;
}
public BaseResponse<String> postAllDatas(SpsSyncDataResponse syncDataResponse) {
String result = UHttpClient.postJson(spmsUrl + "/sps/sync/basic/upload", syncDataResponse, getHeaders());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
public BaseResponse<String> postAllOrders(SpsSyncOrderResponse syncOrderResponse) {
String result = UHttpClient.postJson(spmsUrl + "/sps/sync/order/upload", syncOrderResponse, getHeaders());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
public BaseResponse<String> postAllBus(SpsSyncBusResponse spsSyncBusResponse) {
String result = UHttpClient.postJson(spmsUrl + "/sps/sync/busType/upload", spsSyncBusResponse, getHeaders());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
public BaseResponse<String> postAllSchedule(SpsSyncScheduleResponse spsSyncScheduleResponse) {
String result = UHttpClient.postJson(spmsUrl + "/sps/sync/schedule/upload", spsSyncScheduleResponse, getHeaders());
BaseResponse<String> response =
JSONObject.parseObject(result, new TypeReference<BaseResponse<String>>() {
});
return response;
}
}

@ -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<String, Object> 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);

@ -13,4 +13,5 @@ public class SystemParamConfigSaveRequest {
private int paramStatus;
private int paramType;
private String paramExplain;
private boolean isForce;
}

@ -8,4 +8,6 @@ public class BasicExportStatusRequest extends ListPageRequest {
private String id;
private Integer status;
private Integer type;
private Integer scheduleType;
private String idDatas;
}

@ -0,0 +1,10 @@
package com.glxp.sale.admin.req.sync;
import lombok.Data;
@Data
public class SpsSyncDataRequest {
private String lastUpdateTime;
private String id;
}

@ -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<BussinessTypeEntity> bussinessTypeEntities;
private List<BussinessOriginTypeEntity> bussinessOriginTypeEntities;
private List<BussinessLocalTypeEntity> bussinessLocalTypeEntities;
}

@ -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<InvWarehouseEntity> invWarehouseEntities;
List<UdiInfoEntity> udiInfoEntities;
List<BasicUnitMaintainEntity> basicUnitMaintainEntities;
List<ThrInvWarehouseEntity> thrInvWarehouseEntities;
List<ThrCorpEntity> thrCorpEntities;
List<ThrProductsEntity> thrProductsEntities;
List<ThrOrderDetailEntity> thrOrderDetailEntities;
List<ThrOrderEntity> thrOrderEntities;
List<CompanyProductRelevanceEntity> companyProductRelevanceEntities;
List<UdiRelevanceEntity> udiRelevanceEntities;
}

@ -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<OrderEntity> orderEntities;
List<ErpOrderEntity> orderDetailEntityList;
List<WarehouseEntity> warehouseEntityList;
}

@ -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<BasicExportStatusEntity> basicExportStatusEntities;
}

@ -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);
}

@ -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);
}
}

@ -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<List<BasicExportStatusEntity>> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest);
if (CollUtil.isNotEmpty(basicStatuss.getData())) {
List<BasicExportStatusEntity> 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<SpsSyncDataResponse> baseResponse = null;
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (basicExportStatusEntity.getFromType() == 0) {
BaseResponse<String> 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<List<BasicExportStatusEntity>> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest);
if (CollUtil.isNotEmpty(basicStatuss.getData())) {
List<BasicExportStatusEntity> 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<SpsSyncOrderResponse> baseResponse = null;
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (basicExportStatusEntity.getFromType() == 0) {
BaseResponse<String> 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<List<BasicExportStatusEntity>> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest);
if (CollUtil.isNotEmpty(basicStatuss.getData())) {
List<BasicExportStatusEntity> 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<SpsSyncBusResponse> baseResponse = null;
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (basicExportStatusEntity.getFromType() == 0) {
BaseResponse<String> 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<List<BasicExportStatusEntity>> 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;
}
}

@ -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());
}
}

@ -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<PostOrderRequest.PostOrder> postOrders = new ArrayList<>();
PostOrderRequest postOrderRequest = new PostOrderRequest();
List<WarehouseEntity> warehouseEntityList = dlOrderResponse.getCodes();

@ -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();
}
}

@ -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<SpsSyncDataResponse>() {
});
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<SpsSyncBusResponse>() {
});
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<SpsSyncOrderResponse>() {
});
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<SpsSyncScheduleResponse>() {
});
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();
}
}
}
}
}
}

@ -56,7 +56,7 @@ public class ScanUploadService {
BaseResponse<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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<String> 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();
}

@ -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<UdiCompanyEntity> mUdiCompanyEntities = new ArrayList<>();
int page = 1;
int limit = 300;
while (true) {
logger.info("更新时间:" + updateTime + "----" + page + "----" + limit);
List<UdiCompanyEntity> 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);
}
}
}
}

@ -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()));
}
}

@ -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<ProductInfoEntity> dlByTime(String udiUrl, int page, int limit, String updateTime) {
Map<String, Object> 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<List<ProductInfoEntity>> udiDlDeviceResponse = (BaseResponse<List<ProductInfoEntity>>) JSONObject.parseObject(response, BaseResponse.class);
List<ProductInfoEntity> udiInfoEntities = udiDlDeviceResponse.getData();
return udiInfoEntities;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public List<UdiCompanyEntity> dlCompanyByTime(String udiUrl, int page, int limit, String updateTime) {
Map<String, Object> 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<List<UdiCompanyEntity>> baseResponse = (BaseResponse<List<UdiCompanyEntity>>) JSONObject.parseObject(response, BaseResponse.class);
List<UdiCompanyEntity> udiCompanyEntities = baseResponse.getData();
return udiCompanyEntities;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}

@ -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<ProductInfoEntity> mProductInfoEntities = new ArrayList<>();
int page = 1;
int limit = 200;
while (true) {
logger.info("更新时间:" + updateTime + "----" + page + "----" + limit);
List<ProductInfoEntity> 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;
}
}

@ -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()));
}
}

@ -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;
}
}

@ -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();

@ -18,18 +18,24 @@
<select id="findSystemParamConfig" parameterType="com.glxp.sale.admin.req.param.SystemParamConfigRequest"
resultType="com.glxp.sale.admin.entity.param.SystemParamConfigEntity">
SELECT * FROM system_param_config WHERE id=#{id}
SELECT *
FROM system_param_config
WHERE id = #{id}
</select>
<select id="selectByParamName" parameterType="com.glxp.sale.admin.req.param.SystemParamConfigRequest"
resultType="com.glxp.sale.admin.entity.param.SystemParamConfigEntity">
SELECT * FROM system_param_config WHERE paramName=#{paramName}
SELECT *
FROM system_param_config
WHERE paramName = #{paramName}
</select>
<select id="selectByParamKey" parameterType="com.glxp.sale.admin.req.param.SystemParamConfigRequest"
resultType="com.glxp.sale.admin.entity.param.SystemParamConfigEntity">
SELECT * FROM system_param_config WHERE paramKey=#{paramKey}
SELECT *
FROM system_param_config
WHERE paramKey = #{paramKey}
</select>
<update id="updateById" parameterType="com.glxp.sale.admin.entity.param.SystemParamConfigEntity">
@ -45,6 +51,19 @@
WHERE id=#{id}
</update>
<update id="updateByKey" parameterType="com.glxp.sale.admin.entity.param.SystemParamConfigEntity">
UPDATE system_param_config
<set>
<if test="paramName != null">paramName=#{paramName},</if>
<if test="paramValue != null">paramValue=#{paramValue},</if>
<if test="paramStatus != null">paramStatus=#{paramStatus},</if>
<if test="paramType != null">paramType=#{paramType},</if>
<if test="paramExplain != null">paramExplain=#{paramExplain},</if>
</set>
WHERE paramKey=#{paramKey}
</update>
<update id="updateParentId" parameterType="com.glxp.sale.admin.entity.param.SystemParamConfigEntity">
UPDATE system_param_config
<set>
@ -54,17 +73,14 @@
</update>
<insert id="insert" parameterType="com.glxp.sale.admin.entity.param.SystemParamConfigEntity">
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})
</insert>

@ -14,8 +14,12 @@
and status = #{status}
</if>
<if test="type != '' and type!=null">
and type = #{type}
and `type` = #{type}
</if>
<if test="scheduleType != '' and scheduleType!=null">
and scheduleType = #{scheduleType}
</if>
</where>
</select>
@ -23,13 +27,14 @@
<insert id="insertExportStatus" keyProperty="id"
parameterType="com.glxp.sale.admin.entity.sync.BasicExportStatusEntity">
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}
)
</insert>
@ -38,10 +43,12 @@
<trim prefix="set" suffixOverrides=",">
<if test="idDatas != null">idDatas=#{idDatas},</if>
<if test="status != null">status=#{status},</if>
<if test="type != null">type=#{type},</if>
<if test="type != null">`type`=#{type},</if>
<if test="updateTime != null">updateTime=#{updateTime},</if>
<if test="scheduleType != null">scheduleType=#{scheduleType},</if>
</trim>
WHERE orderId = #{orderId}
WHERE id = #{id}
</update>
<delete id="deleteById" parameterType="Map">
DELETE

Loading…
Cancel
Save