代码备份

version1
anthonyywj2 3 years ago
parent 9bca7f4729
commit 0409c47ca6

@ -33,6 +33,7 @@ public class BasicProcessStatus {
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 NEW_ALL_UDIS = 10;
public static final int IMPORT_LOG_TYPE_ORDER = 1;//单据

@ -4,42 +4,30 @@ 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/";
public static String upWaitCopy_products = "/UpperOut/Dictionaries/";
public static String upWaitCopy_products_back = "/UpperOut/Dictionaries/Completed/";
public static String upWaitCopy_products_error = "/UpperOut/Dictionaries/Error/";
public static String upWaitCopy_root = "/UpperOut/";
public static String upWaitCopy_products = "/UpperOut/Datas/";
public static String upWaitCopy_products_back = "/UpperOut/Datas/Completed/";
public static String upWaitCopy_products_error = "/UpperOut/Datas/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/";
public static String waitUpload_products = "/UpperIn/Dictionaries/";
public static String waitUpload_products_back = "/UpperIn/Dictionaries/Completed/";
public static String waitUpload_products_error = "/UpperIn/Dictionaries/Error/";
public static String waitUpload_root = "/UpperIn/";
public static String waitUpload_products = "/UpperIn/Datas/";
public static String waitUpload_products_back = "/UpperIn/Datas/Completed/";
public static String waitUpload_products_error = "/UpperIn/Datas/Error/";
//下游通,下游上传后,等待拷贝
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/";
public static String lowerWaitCopy_products = "/LowerOut/Dictionaries/";
public static String lowerWaitCopy_products_back = "/LowerOut/Dictionaries/Completed/";
public static String lowerWaitCopy_products_error = "/LowerOut/Dictionaries/Error/";
public static String lowerWaitCopy_root = "/LowerOut/";
public static String lowerWaitCopy_products = "/LowerOut/Datas/";
public static String lowerWaitCopy_products_back = "/LowerOut/Datas/Completed/";
public static String lowerWaitCopy_products_error = "/LowerOut/Datas/Error/";
//下游通,等待下载
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/";
public static String waitDownload_products = "/LowerIn/Dictionaries/";
public static String waitDownload_products_back = "/LowerIn/Dictionaries/Completed/";
public static String waitDownload_products_error = "/LowerIn/Dictionaries/Error/";
public static String waitDownload_root = "/LowerIn/";
public static String waitDownload_products = "/LowerIn/Datas/";
public static String waitDownload_products_back = "/LowerIn/Datas/Completed/";
public static String waitDownload_products_error = "/LowerIn/Datas/Error/";
}

@ -130,9 +130,9 @@ public class SystemParamConfigController {
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));
// 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));
boolean b10 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitDownload_products));
boolean b11 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitDownload_products_back));
boolean b12 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitDownload_products_error));
@ -181,16 +181,16 @@ public class SystemParamConfigController {
if (!new File(filePath).exists()) {
return ResultVOUtils.error(500, "文件根目录不存在!");
}
boolean b1 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_order));
boolean b2 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_order_back));
boolean b3 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_order_error));
// boolean b1 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_order));
// boolean b2 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_order_back));
// boolean b3 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_order_error));
boolean b4 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_products));
boolean b5 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_products_back));
boolean b6 = FileUtils.makeDirectory(new File(filePath + FileConstant.upWaitCopy_products_error));
boolean b7 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_order));
boolean b8 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_order_back));
boolean b9 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_order_error));
// boolean b7 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_order));
// boolean b8 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_order_back));
// boolean b9 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_order_error));
boolean b10 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_products));
boolean b11 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_products_back));
boolean b12 = FileUtils.makeDirectory(new File(filePath + FileConstant.waitUpload_products_error));

@ -63,6 +63,13 @@ public class SpsSyncDataController {
}
@GetMapping("sps/sync/syncUdi")
public BaseResponse getSyncUdi(SpsSyncDataRequest spsSyncDataRequest) {
SpSyncUdiResponse spsSyncDataResponse = (SpSyncUdiResponse) redisUtil.get(spsSyncDataRequest.getId() + "");
return ResultVOUtils.success(spsSyncDataResponse);
}
@PostMapping("/sps/sync/basic/upload")
public BaseResponse postAllBase(@RequestBody SpsSyncDataResponse syncDataResponse,
BindingResult bindingResult) {
@ -126,7 +133,7 @@ public class SpsSyncDataController {
@PostMapping("sps/sync/schedule/upload")
public BaseResponse dealSchedule(@RequestBody SpsSyncScheduleResponse spsSyncScheduleResponse) {
public BaseResponse postSchedule(@RequestBody SpsSyncScheduleResponse spsSyncScheduleResponse) {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable");

@ -21,4 +21,5 @@ public class CompanyProductRelevanceEntity {
private Integer udiRlIdFk;
private String genKeyFk;
private Integer gid;
private String unitFk;
}

@ -60,6 +60,7 @@ public class UdiInfoEntity {
private Boolean isCheck;
private String genKeyFk;
private String originUuid;
public Integer getId() {
return id;

@ -34,6 +34,11 @@ public class UdiRelevanceEntity {
private String genKeyFk;
private Integer gid;
private String originUuid;
private boolean allowNoBatch;
public Integer getLockStatus() {
if (lockStatus == null)
return 1;

@ -211,6 +211,8 @@ public class SpGetHttp {
Map<String, Object> paramMap = new HashMap<>(16);
if (spsSyncDataRequest.getLastUpdateTime() != null)
paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime());
if (spsSyncDataRequest.getId() != null)
paramMap.put("id", spsSyncDataRequest.getId());
String response = UHttpClient.mipsGetHead(spmsUrl + "/sps/sync/basic", paramMap, getHeaders());
try {
BaseResponse<SpsSyncDataResponse> data =
@ -230,6 +232,8 @@ public class SpGetHttp {
Map<String, Object> paramMap = new HashMap<>(16);
if (spsSyncDataRequest.getLastUpdateTime() != null)
paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime());
if (spsSyncDataRequest.getId() != null)
paramMap.put("id", spsSyncDataRequest.getId());
String response = UHttpClient.mipsGetHead(spmsUrl + "/sps/sync/order", paramMap, getHeaders());
try {
BaseResponse<SpsSyncOrderResponse> data =
@ -248,6 +252,8 @@ public class SpGetHttp {
Map<String, Object> paramMap = new HashMap<>(16);
if (spsSyncDataRequest.getLastUpdateTime() != null)
paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime());
if (spsSyncDataRequest.getId() != null)
paramMap.put("id", spsSyncDataRequest.getId());
String response = UHttpClient.mipsGetHead(spmsUrl + "/sps/sync/busType", paramMap, getHeaders());
try {
BaseResponse<SpsSyncBusResponse> data =
@ -260,4 +266,24 @@ public class SpGetHttp {
return ResultVOUtils.error(500, "下载失败!");
}
}
//获取所有UDI信息
public BaseResponse<SpSyncUdiResponse> getAllDi(SpsSyncDataRequest spsSyncDataRequest) {
Map<String, Object> paramMap = new HashMap<>(16);
if (spsSyncDataRequest.getLastUpdateTime() != null)
paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime());
if (spsSyncDataRequest.getId() != null)
paramMap.put("id", spsSyncDataRequest.getId());
String response = UHttpClient.mipsGetHead(spmsUrl + "/sps/sync/syncUdi", paramMap, getHeaders());
try {
BaseResponse<SpSyncUdiResponse> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<SpSyncUdiResponse>>() {
});
return data;
} catch (Exception e) {
e.printStackTrace();
return ResultVOUtils.error(500, "下载失败!");
}
}
}

@ -0,0 +1,14 @@
package com.glxp.sale.admin.res.sync;
import com.glxp.sale.admin.entity.sync.ProductInfoEntity;
import com.glxp.sale.admin.entity.sync.UdiCompanyEntity;
import lombok.Data;
import java.util.List;
@Data
public class SpSyncUdiResponse {
List<ProductInfoEntity> productInfoEntityList;
List<UdiCompanyEntity> udiCompanyEntities;
}

@ -6,30 +6,33 @@ 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.ProductInfoEntity;
import com.glxp.sale.admin.entity.sync.ThrImportLogEntity;
import com.glxp.sale.admin.entity.sync.UdiCompanyEntity;
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.res.sync.*;
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.thread.didl.AsyncDiDlHelper;
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 lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Slf4j
@Service
public class DlAllDataService {
@ -39,11 +42,13 @@ public class DlAllDataService {
SystemParamConfigService systemParamConfigService;
@Resource
BasicExportService basicExportService;
@Resource
AsyncDiDlHelper asyncDiDlHelper;
@Resource
RedisUtil redisUtil;
public void dllNewAllData() {
log.info("下载所有基础信息---");
BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest();
basicExportStatusRequest.setIdDatas("AutoDownloadAllData");
basicExportStatusRequest.setStatus(0);
@ -113,9 +118,11 @@ public class DlAllDataService {
}
}
log.info("下载所有基础信息---结束");
}
public void dllNewAllOrder() {
log.info("下载所有单据---");
BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest();
basicExportStatusRequest.setIdDatas("AutoDownloadOrder");
basicExportStatusRequest.setStatus(0);
@ -181,11 +188,11 @@ public class DlAllDataService {
}
log.info("下载所有单据---结束");
}
public void dllNewAllBusType() {
log.info("下载所有单据类型---");
BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest();
basicExportStatusRequest.setIdDatas("AutoDownloadBusType");
basicExportStatusRequest.setStatus(0);
@ -248,11 +255,13 @@ public class DlAllDataService {
}
}
log.info("下载所有单据类型---结束");
}
public void dlScheduleStatus() {
log.info("下载所有任务---");
BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest();
basicExportStatusRequest.setScheduleType(BasicProcessStatus.SCHEDULE_TRANSFER);
BaseResponse<List<BasicExportStatusEntity>> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest);
@ -277,7 +286,114 @@ public class DlAllDataService {
}
}
}
log.info("下载所有任务---结束");
}
public void dlAllDi() {
log.info("下载所有国家库DI信息--");
BasicExportStatusRequest basicExportStatusRequest = new BasicExportStatusRequest();
basicExportStatusRequest.setIdDatas("AutoDownloadDiProducts");
basicExportStatusRequest.setStatus(0);
basicExportStatusRequest.setType(BasicProcessStatus.NEW_ALL_UDIS);
basicExportStatusRequest.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL);
BaseResponse<List<BasicExportStatusEntity>> basicStatuss = spGetHttp.getBasicStatus(basicExportStatusRequest);
if (CollUtil.isNotEmpty(basicStatuss.getData())) {
List<BasicExportStatusEntity> basicExportStatusEntities = basicStatuss.getData();
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) {
if (basicExportStatusEntity.getFromType() == 0) {
BaseResponse<String> response = spGetHttp.getLastUpdateTime("AutoDownloadDiProducts");
String lastUpdateTime = response.getData();
if (lastUpdateTime.equals("1949-01-01 00:00:00")) {
lastUpdateTime = DateUtil.getBeforeDay(1);
}
List<ProductInfoEntity> mProductInfoEntities = new ArrayList<>();
int page = 1;
int limit = 300;
while (true) {
List<ProductInfoEntity> productInfoEntityList = asyncDiDlHelper.dlByTime(page, limit, lastUpdateTime);
if (productInfoEntityList != null && productInfoEntityList.size() > 0) {
mProductInfoEntities.addAll(productInfoEntityList);
if (productInfoEntityList.size() < limit) {
break;
} else {
page++;
}
} else {
break;
}
}
//更新企业信息
List<UdiCompanyEntity> mUdiCompanyEntities = new ArrayList<>();
int page1 = 1;
int limit1 = 300;
while (true) {
List<UdiCompanyEntity> udiCompanyEntities = asyncDiDlHelper.dlCompanyByTime(page1, limit1, lastUpdateTime);
if (udiCompanyEntities != null && udiCompanyEntities.size() > 0) {
mUdiCompanyEntities.addAll(udiCompanyEntities);
if (udiCompanyEntities.size() < limit1) {
break;
} else {
page1++;
}
} else {
break;
}
}
SpSyncUdiResponse spSyncUdiResponse = new SpSyncUdiResponse();
spSyncUdiResponse.setUdiCompanyEntities(mUdiCompanyEntities);
spSyncUdiResponse.setProductInfoEntityList(mProductInfoEntities);
String key = "UdiPrdoucts" + System.currentTimeMillis();
String datas = JSON.toJSON(spSyncUdiResponse).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 + "UdiPrdoucts_" + key + ".LowerIn";
FileUtils.SaveFileAs(datas, fileName);
}
BasicExportStatusEntity basicExportStatusEntity1 = basicExportStatusEntities.get(0);
basicExportStatusEntity1.setStatus(1);
spGetHttp.postUpdateBasicStatus(basicExportStatusEntity1);
spGetHttp.updateLastTime("AutoDownloadDiProducts", DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"));
} else {
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
spsSyncDataRequest.setId(basicExportStatusEntity.getId());
BaseResponse<SpSyncUdiResponse> baseResponse = spGetHttp.getAllDi(spsSyncDataRequest);
if (downstream.getParamValue().equals("1")) {
String key = "UdiPrdoucts" + 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_UDIS);
basicExportService.insertExportStatus(myEntity);
} else {
String path = getPath();
String fileName = path + FileConstant.upWaitCopy_products + "UdiPrdoucts_" + DateUtil.formatDate(new Date(), "yyyyMMddHHmmss") + ".LowerIn";
String datas = JSON.toJSONString(baseResponse.getData());
FileUtils.SaveFileAs(datas, fileName);
}
spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId());
}
}
}
log.info("下载所有国家库DI信息--结束");
}

@ -1,215 +0,0 @@
package com.glxp.sale.admin.thread;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.*;
import com.glxp.sale.admin.http.SpGetHttp;
import com.glxp.sale.admin.res.PageSimpleResponse;
import com.glxp.sale.admin.res.sync.DlOrderResponse;
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;
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.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
public class DlBasicService {
@Resource
SpGetHttp spGetHttp;
@Resource
SystemParamConfigService systemParamConfigService;
@Resource
private ThrImportLogService thrImportLogService;
@Resource
RedisUtil redisUtil;
@Resource
BasicExportService basicExportService;
public String getPath() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder");
String filePath = systemParamConfigEntity.getParamValue();
return filePath;
}
@Async
public void dlBasicUdiInfo() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable");
if (systemParamConfigEntity.getParamValue().equals("1")) {
BaseResponse<List<BasicExportStatusEntity>> baseResponse = spGetHttp.getBasicStatus(BasicProcessStatus.BASIC_UDI + "");
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
List<BasicExportStatusEntity> pageSimpleResponse = baseResponse.getData();
if (pageSimpleResponse != null) {
List<BasicExportStatusEntity> basicExportStatusEntities = pageSimpleResponse;
if (basicExportStatusEntities != null && basicExportStatusEntities.size() > 0) {
for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) {
if (!StrUtil.isEmpty(basicExportStatusEntity.getIdDatas())) {
if (basicExportStatusEntity.getType() == BasicProcessStatus.BASIC_UDI) {
List<String> ids = JSON.parseArray(basicExportStatusEntity.getIdDatas(), String.class);
String datas = spGetHttp.getBasicUdiInfo(ids);
String key = basicExportStatusEntity.getId() + "";
if (downstream.getParamValue().equals("1")) {
redisUtil.set(key, datas);
BasicExportStatusEntity myEntity = new BasicExportStatusEntity();
BeanUtils.copyProperties(basicExportStatusEntity, myEntity);
myEntity.setId(key);
basicExportService.insertExportStatus(myEntity);
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 + "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);
FileUtils.SaveFileAs(datas, backFileName);
ThrImportLogEntity thrImportLogEntity = new ThrImportLogEntity();
thrImportLogEntity.setGenKey(CustomUtil.getUUId());
thrImportLogEntity.setImportType(BasicProcessStatus.IMPORT_LOG_TYPE_UDIINFO);
thrImportLogEntity.setUpdateTime(new Date());
thrImportLogEntity.setFilePath(fileName);
thrImportLogEntity.setBackFilePath(backFileName);
thrImportLogService.insertImportLog(thrImportLogEntity);
spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId());
}
}
}
}
}
}
}
}
@Async
public void dlBasicCorp() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable");
if (systemParamConfigEntity.getParamValue().equals("1")) {
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
BaseResponse<List<BasicExportStatusEntity>> baseResponse = spGetHttp.getBasicStatus(BasicProcessStatus.BASIC_CORP + "");
List<BasicExportStatusEntity> pageSimpleResponse = baseResponse.getData();
if (pageSimpleResponse != null) {
List<BasicExportStatusEntity> basicExportStatusEntities = pageSimpleResponse;
if (basicExportStatusEntities != null && basicExportStatusEntities.size() > 0) {
for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) {
if (!StrUtil.isEmpty(basicExportStatusEntity.getIdDatas())) {
List<String> ids = JSON.parseArray(basicExportStatusEntity.getIdDatas(), String.class);
String datas = spGetHttp.getBasicCorps(ids);
String key = basicExportStatusEntity.getId() + "";
if (downstream.getParamValue().equals("1")) {
redisUtil.set(key, datas);
BasicExportStatusEntity myEntity = new BasicExportStatusEntity();
BeanUtils.copyProperties(basicExportStatusEntity, myEntity);
myEntity.setId(key);
basicExportService.insertExportStatus(myEntity);
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 + "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);
FileUtils.SaveFileAs(datas, backFileName);
ThrImportLogEntity thrImportLogEntity = new ThrImportLogEntity();
thrImportLogEntity.setGenKey(CustomUtil.getUUId());
thrImportLogEntity.setImportType(BasicProcessStatus.IMPORT_LOG_TYPE_CORP);
thrImportLogEntity.setUpdateTime(new Date());
thrImportLogEntity.setFilePath(fileName);
thrImportLogEntity.setBackFilePath(backFileName);
thrImportLogService.insertImportLog(thrImportLogEntity);
spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId());
}
}
}
}
}
}
}
@Async
public void dlBasicInv() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable");
if (systemParamConfigEntity.getParamValue().equals("1")) {
BaseResponse<List<BasicExportStatusEntity>> baseResponse = spGetHttp.getBasicStatus(BasicProcessStatus.BASIC_INV + "");
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
List<BasicExportStatusEntity> pageSimpleResponse = baseResponse.getData();
if (pageSimpleResponse != null) {
List<BasicExportStatusEntity> basicExportStatusEntities = pageSimpleResponse;
if (basicExportStatusEntities != null && basicExportStatusEntities.size() > 0) {
for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) {
if (!StrUtil.isEmpty(basicExportStatusEntity.getIdDatas())) {
List<String> ids = JSON.parseArray(basicExportStatusEntity.getIdDatas(), String.class);
String datas = spGetHttp.getBasicInv(ids);
String key = basicExportStatusEntity.getId() + "";
if (downstream.getParamValue().equals("1")) {
redisUtil.set(key, datas);
BasicExportStatusEntity myEntity = new BasicExportStatusEntity();
BeanUtils.copyProperties(basicExportStatusEntity, myEntity);
myEntity.setId(key);
basicExportService.insertExportStatus(myEntity);
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 + "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);
FileUtils.SaveFileAs(datas, backFileName);
ThrImportLogEntity thrImportLogEntity = new ThrImportLogEntity();
thrImportLogEntity.setGenKey(CustomUtil.getUUId());
thrImportLogEntity.setImportType(BasicProcessStatus.IMPORT_LOG_TYPE_INV);
thrImportLogEntity.setUpdateTime(new Date());
thrImportLogEntity.setFilePath(fileName);
thrImportLogEntity.setBackFilePath(backFileName);
thrImportLogService.insertImportLog(thrImportLogEntity);
spGetHttp.postDeleteBasicStatus(basicExportStatusEntity.getId());
}
}
}
}
}
}
}
}

@ -1,127 +0,0 @@
package com.glxp.sale.admin.thread;
import com.alibaba.fastjson.JSONObject;
import com.glxp.sale.admin.constant.FileConstant;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.entity.sync.*;
import com.glxp.sale.admin.http.SpGetHttp;
import com.glxp.sale.admin.res.PageSimpleResponse;
import com.glxp.sale.admin.res.sync.DlOrderResponse;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.service.sync.CodesService;
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;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
public class DlSpOrderService {
@Resource
SpGetHttp spGetHttp;
@Resource
CodesService codesService;
@Resource
OrderService orderService;
@Resource
SystemParamConfigService systemParamConfigService;
@Resource
IOOrderStatusService ioOrderStatusService;
@Resource
private ThrImportLogService thrImportLogService;
public String getPath() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("share_folder");
String filePath = systemParamConfigEntity.getParamValue();
return filePath;
}
@Async
public void dlOrdedrs() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable");
if (systemParamConfigEntity.getParamValue().equals("1")) {
String path = getPath();
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
BaseResponse<PageSimpleResponse<IOOrderStatusEntity>> baseResponse = spGetHttp.getOrderStatus();
PageSimpleResponse<IOOrderStatusEntity> pageSimpleResponse = baseResponse.getData();
// SystemParamConfigEntity folderConfig = systemParamConfigService.selectByParamKey("gen_order_folder");
// SystemParamConfigEntity stausConfig = systemParamConfigService.selectByParamKey("gen_order_status");
if (pageSimpleResponse != null) {
List<IOOrderStatusEntity> ioOrderStatusEntityList = pageSimpleResponse.getList();
if (ioOrderStatusEntityList != null && ioOrderStatusEntityList.size() > 0) {
for (IOOrderStatusEntity ioOrderStatusEntity : ioOrderStatusEntityList) {
BaseResponse<List<DlOrderResponse>> ordersRes = spGetHttp.getOrders(ioOrderStatusEntity.getOrderId());
List<DlOrderResponse> dlOrderResponses = ordersRes.getData();
if (dlOrderResponses != null && dlOrderResponses.size() > 0) {
for (DlOrderResponse dlOrderResponse : dlOrderResponses) {
OrderEntity orderEntity = dlOrderResponse.getOrderEntity();
if (orderEntity != null) {
IOOrderStatusEntity temp = ioOrderStatusService.findByOrderId(orderEntity.getId());
if (temp == null) {//避免重复操作插入
if (Integer.parseInt(downstream.getParamValue()) == 1) {
IOOrderStatusEntity orderStatusEntity = new IOOrderStatusEntity();
orderStatusEntity.setOrderId(orderEntity.getId());
orderStatusEntity.setUpdateTime(new Date());
orderStatusEntity.setStatus(1);
ioOrderStatusService.insertOrderStatus(orderStatusEntity);
List<WarehouseEntity> codes = dlOrderResponse.getCodes();
orderService.insertOrder(orderEntity);
codesService.insertWarehouses(codes);
} else {
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();
PostOrderRequest.PostOrder postOrder = new PostOrderRequest.PostOrder();
postOrder.setCodes(warehouseEntityList);
postOrder.setBillType(orderEntity.getAction());
postOrders.add(postOrder);
postOrderRequest.setPostOrders(postOrders);
String json = JSONObject.toJSON(postOrderRequest).toString();
// FileUtils.makeDirectory(path);
// FileUtils.makeDirectory(path + "/备份/");
FileUtils.SaveFileAs(json, fileName);
FileUtils.SaveFileAs(json, backFileName);
ThrImportLogEntity thrImportLogEntity = new ThrImportLogEntity();
thrImportLogEntity.setGenKey(CustomUtil.getUUId());
thrImportLogEntity.setImportType(1);
thrImportLogEntity.setUpdateTime(new Date());
thrImportLogEntity.setFilePath(fileName);
thrImportLogEntity.setBackFilePath(backFileName);
thrImportLogEntity.setOrderId(orderEntity.getId());
thrImportLogService.insertImportLog(thrImportLogEntity);
}
spGetHttp.postOrder(orderEntity.getId());
}
}
}
}
}
}
}
}
}
}

@ -1,132 +0,0 @@
package com.glxp.sale.admin.thread;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.util.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class DlUploadService {
@Resource
RedisUtil redisUtil;
@Resource
SystemParamConfigService systemParamConfigService;
@Resource
DlSpOrderService dlSpOrderService;
@Resource
DlBasicService dlBasicService;
final Logger logger = LoggerFactory.getLogger(DlUploadService.class);
//定时从上游下载数据----下载单据
public void dlOrder() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("dl_order_status");
long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000;
long curTime = System.currentTimeMillis();
//任务一,定时下载供应商平台已完成单据
Long lastTime = (Long) redisUtil.get("DL_ORDER_STATUS");
if (lastTime == null) {
lastTime = System.currentTimeMillis();
redisUtil.set("DL_ORDER_STATUS", lastTime);
}
if (curTime - lastTime > timeInterval) {
logger.info("每分钟执行一次单据下载");
redisUtil.set("DL_ORDER_STATUS", curTime);
dlSpOrderService.dlOrdedrs();
}
}
//定时从上游下载数据----下载基础信息
public void dlBasicUdiInfo() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("dl_basic_udiinfo_status");
long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000;
long curTime = System.currentTimeMillis();
Long lastTime = (Long) redisUtil.get("DL_BASIC_UDIINFO_STATUS");
if (lastTime == null) {
lastTime = System.currentTimeMillis();
redisUtil.set("DL_BASIC_UDIINFO_STATUS", lastTime);
} else if (curTime - lastTime > timeInterval) {
logger.info("每分钟执行一次基础信息下载");
redisUtil.set("DL_BASIC_UDIINFO_STATUS", curTime);
dlBasicService.dlBasicUdiInfo();
dlBasicService.dlBasicCorp();
dlBasicService.dlBasicInv();
}
}
//定时扫描本地共享文件夹---上传到上游
public void scanFolderUpload() {
SystemParamConfigEntity upConnect = systemParamConfigService.selectByParamKey("sync_upstream_enable");
if (upConnect.getParamValue().equals("1")) {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("dl_basic_udiinfo_status");
long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000;
long curTime = System.currentTimeMillis();
Long lastTime = (Long) redisUtil.get("DL_BASIC_UDIINFO_STATUS");
if (lastTime == null) {
redisUtil.set("DL_BASIC_UDIINFO_STATUS", System.currentTimeMillis());
} else if (curTime - lastTime > timeInterval) {
logger.info("每分钟执行一次基础信息下载");
redisUtil.set("DL_BASIC_UDIINFO_STATUS", curTime);
dlBasicService.dlBasicUdiInfo();
dlBasicService.dlBasicCorp();
dlBasicService.dlBasicInv();
}
}
}
//定时扫描本地共享文件夹---上传到上游
public void scanFolderDown() {
SystemParamConfigEntity upConnect = systemParamConfigService.selectByParamKey("sync_upstream_enable");
if (upConnect.getParamValue().equals("1")) {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("dl_basic_udiinfo_status");
long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000;
long curTime = System.currentTimeMillis();
Long lastTime = (Long) redisUtil.get("DL_BASIC_UDIINFO_STATUS");
if (lastTime == null) {
redisUtil.set("DL_BASIC_UDIINFO_STATUS", System.currentTimeMillis());
} else if (curTime - lastTime > timeInterval) {
logger.info("每分钟执行一次基础信息下载");
redisUtil.set("DL_BASIC_UDIINFO_STATUS", curTime);
dlBasicService.dlBasicUdiInfo();
dlBasicService.dlBasicCorp();
dlBasicService.dlBasicInv();
}
}
}
public void dlBasicCorp() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("dl_basic_corp_status");
long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000;
long curTime = System.currentTimeMillis();
//任务一,定时下载供应商平台已完成单据
Long lastTime = (Long) redisUtil.get("DL_BASIC_CORP_STATUS");
if (lastTime == null) {
redisUtil.set("DL_BASIC_CORP_STATUS", System.currentTimeMillis());
} else if (curTime - lastTime > timeInterval) {
logger.info("每分钟执行一次单据下载");
redisUtil.set("DL_BASIC_CORP_STATUS", curTime);
dlBasicService.dlBasicCorp();
}
}
public void dlBasicInv() {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("dl_basic_inv_status");
long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000;
long curTime = System.currentTimeMillis();
//任务一,定时下载供应商平台已完成单据
Long lastTime = (Long) redisUtil.get("DL_BASIC_INV_STATUS");
if (lastTime == null) {
redisUtil.set("DL_BASIC_INV_STATUS", System.currentTimeMillis());
} else if (curTime - lastTime > timeInterval) {
logger.info("每分钟执行一次单据下载");
redisUtil.set("DL_BASIC_INV_STATUS", curTime);
dlBasicService.dlBasicInv();
}
}
}

@ -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.thread.didl.AsyncDiDlService;
import com.glxp.sale.admin.util.DateUtil;
import com.glxp.sale.admin.util.RedisUtil;
import org.slf4j.Logger;
@ -38,6 +39,8 @@ public class HeartTask implements SchedulingConfigurer {
ScanDownloadService scanDownloadService;
@Resource
DlAllDataService dlAllDataService;
@Resource
AsyncDiDlService asyncDiDlService;
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
@ -83,7 +86,7 @@ public class HeartTask implements SchedulingConfigurer {
Long lastTime = (Long) redisUtil.get("UPLOAD_UDIINFO_STATUS");
if (lastTime == null) {
lastTime = System.currentTimeMillis();
redisUtil.set("UPLOAD_UDIINFO_STATUS", lastTime);
redisUtil.set("UPLOAD_UDIINFO_STATUS", lastTime, 30 * 60);
}
if (curTime - lastTime > timeInterval) {
redisUtil.set("UPLOAD_UDIINFO_STATUS", curTime);
@ -97,21 +100,6 @@ public class HeartTask implements SchedulingConfigurer {
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_udiinfo_status");
@ -128,12 +116,15 @@ public class HeartTask implements SchedulingConfigurer {
scanDownloadService.scanAllBus();
scanDownloadService.scanAllOrder();
scanDownloadService.scanScheduleList();
scanDownloadService.scanUdis();
}
}
}
private void dlAllData() {
logger.info("定时从上游下载全部据-----");
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sc_udiinfo_status");
long timeInterval = Long.parseLong(systemParamConfigEntity.getParamValue()) * 60 * 1000;
long curTime = System.currentTimeMillis();
@ -148,12 +139,18 @@ public class HeartTask implements SchedulingConfigurer {
}
if (curTime - lastTime > timeInterval) {
redisUtil.set("SC_UDIINFO_DOWNLOAD_STATUS", curTime);
dlAllDataService.dllNewAllData();
dlAllDataService.dllNewAllOrder();
dlAllDataService.dllNewAllBusType();
dlAllDataService.dlScheduleStatus();
String doing = (String) redisUtil.get("is_doing_download");
if (doing == null || doing.equals("false")) {
redisUtil.set("is_doing_download", "true", 60);
dlAllDataService.dllNewAllData();
dlAllDataService.dllNewAllOrder();
dlAllDataService.dllNewAllBusType();
dlAllDataService.dlScheduleStatus();
dlAllDataService.dlAllDi();
redisUtil.set("is_doing_download", "false");
}
}
logger.info("定时从上游下载全部据-----结束");
}
}

@ -38,8 +38,6 @@ import java.util.List;
@Service
public class ScanDownloadService {
@Resource
IOOrderStatusService ioOrderStatusService;
@Resource
RedisUtil redisUtil;
@Resource
@ -55,138 +53,6 @@ public class ScanDownloadService {
return filePath;
}
public void scanOrder() {
logger.info("扫描单据生成状态表等待下载!");
File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitDownload_order), new FileFilterImpl());
if (files != null && files.length > 0) {
for (int i = 0; i < files.length; i++) {
File file = files[i];
String data = FileUtils.readFileAll(file.getPath());
IOOrderStatusEntity orderStatusEntity = new IOOrderStatusEntity();
String fileName;
String orderId = null;
try {
fileName = file.getName();
orderId = fileName.substring(4, fileName.length() - 4);
if (!fileName.contains(".LowerIn")) {
errorFile(file);
continue;
}
} catch (Exception e) {
e.printStackTrace();
errorFile(file);
//文件格式异常
continue;
}
orderStatusEntity.setOrderId(orderId);
orderStatusEntity.setUpdateTime(new Date());
orderStatusEntity.setStatus(1);
ioOrderStatusService.insertOrderStatus(orderStatusEntity);
redisUtil.set(orderId, data);
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_order_back + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public void errorFile(File file) {
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_order_error + file.getName());
} catch (Exception e1) {
e1.printStackTrace();
}
}
public void scanUdi() {
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("BaseProduct") && file.getName().contains("LowerIn")) {
String data = FileUtils.readFileAll(file.getPath());
BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity();
String fileName = file.getName();
String id = fileName.substring(4, fileName.length() - 4);
basicExportStatusEntity.setId(id);
basicExportStatusEntity.setUpdateTime(new Date());
basicExportStatusEntity.setStatus(1);
basicExportStatusEntity.setIdDatas(file.getPath());
basicExportStatusEntity.setType(BasicProcessStatus.BASIC_UDI);
basicExportService.insertExportStatus(basicExportStatusEntity);
redisUtil.set(id, data);
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_products_back + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
public void scanCorp() {
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("BaseCorp") && file.getName().contains("LowerIn")) {
String data = FileUtils.readFileAll(file.getPath());
BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity();
String fileName = file.getName();
String id = fileName.substring(4, fileName.length() - 4);
basicExportStatusEntity.setId(id);
basicExportStatusEntity.setUpdateTime(new Date());
basicExportStatusEntity.setStatus(1);
basicExportStatusEntity.setIdDatas(file.getPath());
basicExportStatusEntity.setType(BasicProcessStatus.BASIC_CORP);
basicExportService.insertExportStatus(basicExportStatusEntity);
redisUtil.set(id, data);
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_products_back + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
public void scanInv() {
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("BaseWarehouse") && file.getName().contains("LowerIn")) {
String data = FileUtils.readFileAll(file.getPath());
BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity();
String fileName = file.getName();
String id = fileName.substring(4, fileName.length() - 4);
basicExportStatusEntity.setId(id);
basicExportStatusEntity.setUpdateTime(new Date());
basicExportStatusEntity.setStatus(1);
basicExportStatusEntity.setIdDatas(file.getPath());
basicExportStatusEntity.setType(BasicProcessStatus.BASIC_INV);
basicExportService.insertExportStatus(basicExportStatusEntity);
redisUtil.set(id, data);
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitDownload_products_back + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
public void scanAllData() {
logger.info("扫描基础信息文件生成状态表等待下载!");
@ -307,5 +173,36 @@ public class ScanDownloadService {
}
}
public void scanUdis() {
logger.info("扫描UDI数据生成状态表等待下载");
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("UdiPrdoucts") && 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_UDIS);
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();
}
}
}
}
}
}

@ -46,154 +46,6 @@ public class ScanUploadService {
return filePath;
}
public void scanOrder() {
File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitUpload_order), new FileFilterImpl());
if (files != null && files.length > 0) {
for (int i = 0; i < files.length; i++) {
File file = files[i];
String data = FileUtils.readFileAll(file.getPath());
DlOrderResponse dlOrderResponse = JSON.parseObject(data, DlOrderResponse.class);
BaseResponse<String> baseResponse = spPostHttp.postOrder(dlOrderResponse);
if (baseResponse.getCode() == 20000) {//上传成功
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_order_back + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
public void scanUdi() {
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("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());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
public void scanCorp() {
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("BaseCorp") && file.getName().contains("UpperIn")) {
String data = FileUtils.readFileAll(file.getPath());
BasicUnitMaintainExportResponse basicUnitMaintainExportResponse = JSON.parseObject(data, BasicUnitMaintainExportResponse.class);
BaseResponse<String> baseResponse = spPostHttp.postCorp(basicUnitMaintainExportResponse);
if (baseResponse.getCode() == 20000) {//上传成功
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
public void scanInv() {
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("BaseWarehouse") && file.getName().contains("UpperIn")) {
String data = FileUtils.readFileAll(file.getPath());
InvWarehouseExportResponse invWarehouseExportResponse = JSON.parseObject(data, InvWarehouseExportResponse.class);
BaseResponse<String> baseResponse = spPostHttp.postInv(invWarehouseExportResponse);
if (baseResponse.getCode() == 20000) {//上传成功
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
public void scanThirdProducts() {
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("ThirdWarehouse") && file.getName().contains("UpperIn")) {
String data = FileUtils.readFileAll(file.getPath());
PostThrProductsRequest postThrProductsRequest = JSON.parseObject(data, PostThrProductsRequest.class);
BaseResponse<String> baseResponse = spPostHttp.postThirdProducts(postThrProductsRequest);
if (baseResponse.getCode() == 20000) {//上传成功
try {
FileUtils.CutFile(file.getPath(), getPath() + FileConstant.waitUpload_products_back + file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
public void scanThirdCorp() {
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("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());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
public void scanThirdOrder() {
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("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());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}
public void scanAllDatas() {
File[] files = FileUtils.listCurentAll(new File(getPath() + FileConstant.waitUpload_products), new FileFilterImpl());

@ -48,7 +48,7 @@ public class AsyncCompanyDlService {
int limit = 300;
while (true) {
logger.info("更新时间:" + updateTime + "----" + page + "----" + limit);
List<UdiCompanyEntity> udiCompanyEntities = asyncDiDlHelper.dlCompanyByTime(null, page, limit, updateTime);
List<UdiCompanyEntity> udiCompanyEntities = asyncDiDlHelper.dlCompanyByTime(page, limit, updateTime);
if (udiCompanyEntities != null && udiCompanyEntities.size() > 0) {
mUdiCompanyEntities.addAll(udiCompanyEntities);
if (udiCompanyEntities.size() < limit) {
@ -63,7 +63,7 @@ public class AsyncCompanyDlService {
logger.info("更新时间:" + updateTime + "----" + "下载结束");
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
String key = "dlcompany" + System.currentTimeMillis();
String key = "UdiCompanys" + System.currentTimeMillis();
String datas = JSON.toJSON(mUdiCompanyEntities).toString();
if (downstream.getParamValue().equals("1")) {
redisUtil.set(key, datas);
@ -72,7 +72,7 @@ public class AsyncCompanyDlService {
basicExportService.insertExportStatus(myEntity);
} else {
String path = getPath();
String fileName = path + FileConstant.upWaitCopy_products + "同步库企业信息_" + key + ".udi";
String fileName = path + FileConstant.upWaitCopy_products + "UdiCompanys_" + key + ".LowerIn";
FileUtils.SaveFileAs(datas, fileName);
}
}

@ -7,11 +7,13 @@ 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 org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class AsyncDiDlHelper {
@Value("${SPMS_IP}")
private String spmsUrl;
@ -28,7 +30,7 @@ public class AsyncDiDlHelper {
return headers;
}
public List<ProductInfoEntity> dlByTime(String udiUrl, int page, int limit, String updateTime) {
public List<ProductInfoEntity> dlByTime(int page, int limit, String updateTime) {
Map<String, Object> paramMap = new HashMap<>(16);
paramMap.put("page", page);
paramMap.put("limit", limit);
@ -45,7 +47,7 @@ public class AsyncDiDlHelper {
}
public List<UdiCompanyEntity> dlCompanyByTime(String udiUrl, int page, int limit, String updateTime) {
public List<UdiCompanyEntity> dlCompanyByTime(int page, int limit, String updateTime) {
Map<String, Object> paramMap = new HashMap<>(16);
paramMap.put("page", page);
paramMap.put("limit", limit);

@ -7,6 +7,8 @@ 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.entity.sync.UdiCompanyEntity;
import com.glxp.sale.admin.res.sync.SpSyncUdiResponse;
import com.glxp.sale.admin.service.param.SystemParamConfigService;
import com.glxp.sale.admin.service.sync.BasicExportService;
import com.glxp.sale.admin.util.CustomUtil;
@ -35,18 +37,19 @@ public class AsyncDiDlService {
private static final Logger logger = LoggerFactory.getLogger(AsyncDiDlService.class);
@Async
public void asyncDiByTime(String updateTime) {
public void dlSyncUdi(String updateTime) {
SystemParamConfigEntity systemParamConfigEntity = systemParamConfigService.selectByParamKey("sync_upstream_enable");
//更新DI信息
if (systemParamConfigEntity.getParamValue().equals("1")) {
AsyncDiDlHelper asyncDiDlHelper = new AsyncDiDlHelper();
List<ProductInfoEntity> mProductInfoEntities = new ArrayList<>();
int page = 1;
int limit = 200;
int limit = 300;
while (true) {
logger.info("更新时间:" + updateTime + "----" + page + "----" + limit);
List<ProductInfoEntity> productInfoEntityList = asyncDiDlHelper.dlByTime(null, page, limit, updateTime);
List<ProductInfoEntity> productInfoEntityList = asyncDiDlHelper.dlByTime(page, limit, updateTime);
if (productInfoEntityList != null && productInfoEntityList.size() > 0) {
mProductInfoEntities.addAll(productInfoEntityList);
if (productInfoEntityList.size() < limit) {
@ -58,9 +61,33 @@ public class AsyncDiDlService {
break;
}
}
//更新企业信息
List<UdiCompanyEntity> mUdiCompanyEntities = new ArrayList<>();
int page1 = 1;
int limit1 = 300;
while (true) {
logger.info("更新时间:" + updateTime + "----" + page1 + "----" + limit1);
List<UdiCompanyEntity> udiCompanyEntities = asyncDiDlHelper.dlCompanyByTime(page1, limit1, updateTime);
if (udiCompanyEntities != null && udiCompanyEntities.size() > 0) {
mUdiCompanyEntities.addAll(udiCompanyEntities);
if (udiCompanyEntities.size() < limit1) {
break;
} else {
page1++;
}
} else {
break;
}
}
SpSyncUdiResponse spSyncUdiResponse = new SpSyncUdiResponse();
spSyncUdiResponse.setUdiCompanyEntities(mUdiCompanyEntities);
spSyncUdiResponse.setProductInfoEntityList(mProductInfoEntities);
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
String key = "dlDi" + System.currentTimeMillis();
String datas = JSON.toJSON(mProductInfoEntities).toString();
String key = "UdiPrdoucts" + System.currentTimeMillis();
String datas = JSON.toJSON(spSyncUdiResponse).toString();
if (downstream.getParamValue().equals("1")) {
redisUtil.set(key, datas);
BasicExportStatusEntity myEntity = new BasicExportStatusEntity();
@ -68,7 +95,7 @@ public class AsyncDiDlService {
basicExportService.insertExportStatus(myEntity);
} else {
String path = getPath();
String fileName = path + FileConstant.upWaitCopy_products + "同步库DI信息_" + key + ".udi";
String fileName = path + FileConstant.upWaitCopy_products + "UdiPrdoucts_" + key + ".LowerIn";
FileUtils.SaveFileAs(datas, fileName);
}
logger.info("更新时间:" + updateTime + "----" + "下载结束");

@ -42,18 +42,17 @@ public class AsyncDiDlTask implements SchedulingConfigurer {
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()));
// 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()));
}

@ -499,4 +499,20 @@ public class DateUtil extends org.apache.commons.lang3.time.DateUtils {
String formatDate = smdate.format(calendar.getTime());
return formatDate;
}
public static String getBeforeDay(int day) {
try {
long time = new Date().getTime();
long move = day * 24 * 1000 * 60 * 60;
time = time - move;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date(time);
String res = simpleDateFormat.format(date);
return res;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

@ -31,11 +31,12 @@ back_file_path=D:/share/udisps/back/
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
#UDIWMS_IP=http://139.159.187.130:8080/UDI_WMS_MC
#UDI管理系统地址
UDIWMS_IP=http://127.0.0.1:9991
UDIWMS_IP=http://139.9.178.73:8080/UDI_WMS_MC
#UDIWMS_IP=http://127.0.0.1:9991
#自助平台地址
SPMS_IP=http://127.0.0.1:9996
#SPMS_IP=http://139.9.178.73:8080/SPMS_SERVER
API_KEY=1101
API_SECRET=zBITspLNvuoEd4FaamlSoqxRHmNsmQ9L
#SPMS_IP=http://139.159.187.130:8080/SPMS_SERVER

@ -40,7 +40,7 @@
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天一归档 -->
<fileNamePattern>/www/glxpdata/spsync/logs/${LOG_INFO_HOME}//%d{yyyy-MM-dd}_%i.log
<fileNamePattern>d://wmslog/SP_SYNC_SERVER/logs/${LOG_INFO_HOME}//%d{yyyy-MM-dd}_%i.log
</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
@ -61,7 +61,7 @@
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天一归档 -->
<fileNamePattern>/www/glxpdata/spsync/logs/${LOG_ERROR_HOME}//%d{yyyy-MM-dd}_%i.log
<fileNamePattern>d://wmslog/SP_SYNC_SERVER/logs/${LOG_ERROR_HOME}//%d{yyyy-MM-dd}_%i.log
</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy

Loading…
Cancel
Save