单据同步

master
anthonywj 2 years ago
parent 2e3a994425
commit 8789c38e39

@ -11,10 +11,12 @@ import com.glxp.sale.admin.req.info.DeleteRequest;
import com.glxp.sale.admin.req.sync.BasicExportStatusRequest;
import com.glxp.sale.admin.res.sync.*;
import com.glxp.sale.admin.service.sync.BasicExportService;
import com.glxp.sale.admin.util.FileUtils;
import com.glxp.sale.admin.util.RedisUtil;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -70,6 +72,8 @@ public class BasicDownloadController {
return ResultVOUtils.success("删除成功!");
}
@Value("${file_path}")
private String filePath;
@PostMapping("/spssync/basic/udiinfo/downloadByStatus")
public BaseResponse downloadByStatus(@RequestBody BasicExportStatusRequest basicExportStatusRequest) {
@ -101,9 +105,11 @@ public class BasicDownloadController {
basicExportService.finished(basicExportStatusRequest.getId());
return ResultVOUtils.success(spsSyncDataResponse);
} else if (basicExportStatusRequest.getType().equals(BasicProcessStatus.NEW_ALL_ORDER)) {//单据
SpsSyncOrderResponse spsSyncDataResponse = (SpsSyncOrderResponse) redisUtil.get(basicExportStatusRequest.getId() + "");
String fileName = filePath + "upload/" + BasicProcessStatus.NEW_ALL_ORDER + "-" + basicExportStatusRequest.getId() + ".udi";
String json = FileUtils.readFileAll(fileName);
// String spsSyncDataResponse = (String) redisUtil.get(spsSyncDataRequest.getId() + "");
basicExportService.finished(basicExportStatusRequest.getId());
return ResultVOUtils.success(spsSyncDataResponse);
return ResultVOUtils.success(json);
} else if (basicExportStatusRequest.getType().equals(BasicProcessStatus.NEW_ALL_UDIS)) {//国家库信息
BasicExportStatusEntity basicExportStatusEntity = basicExportService.findById(basicExportStatusRequest.getId());
String data = (String) redisUtil.get(basicExportStatusRequest.getId() + "");

@ -18,6 +18,7 @@ import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -41,6 +42,8 @@ public class SpsSyncDataController {
private BasicUploadService basicUploadService;
@Resource
private GennerOrderUtils gennerOrderUtils;
@Value("${file_path}")
private String filePath;
private static final Logger logger = LoggerFactory.getLogger(SpsSyncDataController.class);
@ -72,8 +75,10 @@ public class SpsSyncDataController {
@GetMapping("sps/sync/order")
public BaseResponse getOrder(SpsSyncDataRequest spsSyncDataRequest) {
SpsSyncOrderResponse spsSyncDataResponse = (SpsSyncOrderResponse) redisUtil.get(spsSyncDataRequest.getId() + "");
return ResultVOUtils.success(spsSyncDataResponse);
String fileName = filePath + "upload/" + BasicProcessStatus.NEW_ALL_ORDER + "-" + spsSyncDataRequest.getId() + ".udi";
String json = FileUtils.readFileAll(fileName);
// String spsSyncDataResponse = (String) redisUtil.get(spsSyncDataRequest.getId() + "");
return ResultVOUtils.success(json);
}

@ -67,7 +67,16 @@ public class SyncController {
@RequestMapping("/orderApi/**")
public Object orderApi(HttpServletRequest request, HttpServletResponse httpServletResponse) {
String uri = uriUtils.parseUri(request.getRequestURL().toString());
log.info(uri);
String isTopService = systemParamConfigService.selectValueByParamKey("is_top_service");
if (StrUtil.isNotEmpty(isTopService) && isTopService.equals("1")) {
uri = uri.replace("orderApi/", "");
}
String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_ip");
if (StrUtil.isNotEmpty(upperServerHost)) {
uri = upperServerHost + "/" + uri;
}
JSONObject jsonObject = redirect(request, uri, ConstantStatus.SYNC_SCAN_ORDER, BasicProcessStatus.NEW_ALL_ORDER);
return jsonObject;
}
@ -77,6 +86,14 @@ public class SyncController {
public Object busOrderApi(HttpServletRequest request, HttpServletResponse httpServletResponse) {
String uri = uriUtils.parseUri(request.getRequestURL().toString());
log.info(uri);
String isTopService = systemParamConfigService.selectValueByParamKey("is_top_service");
if (StrUtil.isNotEmpty(isTopService) && isTopService.equals("1")) {
uri = uri.replace("busOrderApi/", "");
}
String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_ip");
if (StrUtil.isNotEmpty(upperServerHost)) {
uri = upperServerHost + "/" + uri;
}
JSONObject jsonObject = redirect(request, uri, ConstantStatus.SYNC_SCAN_ORDER, BasicProcessStatus.NEW_ALL_ORDER);
return jsonObject;
}

@ -255,7 +255,7 @@ public class SpGetHttp {
//获取所有单据信息
public BaseResponse<SpsSyncOrderResponse> getAllOrder(SpsSyncDataRequest spsSyncDataRequest) {
public BaseResponse<String> getAllOrder(SpsSyncDataRequest spsSyncDataRequest) {
Map<String, Object> paramMap = new HashMap<>(16);
if (spsSyncDataRequest.getLastUpdateTime() != null)
paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime());
@ -263,8 +263,8 @@ public class SpGetHttp {
paramMap.put("id", spsSyncDataRequest.getId());
String response = UHttpClient.mipsGetHead(getSpmsUrl() + "/sps/sync/order", paramMap, getHeaders());
try {
BaseResponse<SpsSyncOrderResponse> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<SpsSyncOrderResponse>>() {
BaseResponse<String> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<String>>() {
});
return data;

@ -63,7 +63,7 @@ public class IdcController {
//
return idcService.receiveJson(request, params);
}
@RequestMapping(value = "/spssync/common/uploadFile")
public BaseResponse uploadFile(HttpServletRequest request,
@RequestParam("content") String content,
@ -93,7 +93,7 @@ public class IdcController {
return idcService.taskList(request, params);
}
//@Log("数据同步任务根据任务ID下载数据")
@RequestMapping(value = "/spssync/common/download")
@ResponseBody
@ -106,13 +106,13 @@ public class IdcController {
public BaseResponse uploadStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) {
return idcService.uploadStatus(request, params);
}
@RequestMapping(value = "/spssync/common/downloadStatus")
@ResponseBody
public BaseResponse downloadStatus(HttpServletRequest request, @RequestBody Map<String, Object> params) {
return idcService.downloadStatus(request, params);
}
//@Log("数据同步任务根据任务ID,返回下载成功标记")
@RequestMapping(value = "/spssync/common/success")
@ResponseBody
@ -127,10 +127,10 @@ public class IdcController {
response.setContentType("application/force-download");
idcService.downloadFile(fileName, response);
}
}
@RequestMapping("/mapi/**")
public Object mapi(HttpServletRequest request, HttpServletResponse httpServletResponse) {
String uri = uriUtils.parseUri(request.getRequestURL().toString());
@ -140,7 +140,7 @@ public class IdcController {
if (StrUtil.isNotEmpty(isTopService) && isTopService.equals("1")) {
uri = uri.replace("mapi/", "");
}
String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_host");
String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_ip");
if (StrUtil.isNotEmpty(upperServerHost)) {
uri = upperServerHost + "/" + uri;
}

@ -1,10 +1,7 @@
package com.glxp.sale.admin.res.sync;
import cn.hutool.core.collection.CollUtil;
import com.glxp.sale.admin.entity.sync.ErpOrderEntity;
import com.glxp.sale.admin.entity.sync.OrderEntity;
import com.glxp.sale.admin.entity.sync.StockOrderRemakEntity;
import com.glxp.sale.admin.entity.sync.WarehouseEntity;
import com.glxp.sale.admin.entity.sync.*;
import lombok.Data;
import java.util.List;
@ -14,10 +11,11 @@ public class SpsSyncOrderResponse {
//同步任务ID
private String taskId;
List<OrderEntity> orderEntities;
List<ErpOrderEntity> orderDetailEntityList;
List<WarehouseEntity> warehouseEntityList;
List<StockOrderRemakEntity> stockOrderRemakEntities;
List<IoOrderEntity> orderEntities;
List<IoCodeEntity> codeEntities;
List<IoOrderDetailBizEntity> orderDetailBizEntities;
List<IoOrderDetailCodeEntity> orderDetailCodeEntities;
List<IoOrderDetailResultEntity> orderDetailResultEntities;
@Override
public String toString() {
@ -25,11 +23,11 @@ public class SpsSyncOrderResponse {
if (CollUtil.isNotEmpty(orderEntities)) {
remark.append("单据:").append(orderEntities.size()).append(" 条\n");
}
if (CollUtil.isNotEmpty(orderDetailEntityList)) {
remark.append("单据详情:").append(orderDetailEntityList.size()).append(" 条\n");
if (CollUtil.isNotEmpty(orderDetailResultEntities)) {
remark.append("单据详情:").append(orderDetailResultEntities.size()).append(" 条\n");
}
if (CollUtil.isNotEmpty(warehouseEntityList)) {
remark.append("单据条码信息:").append(warehouseEntityList.size()).append(" 条\n");
if (CollUtil.isNotEmpty(codeEntities)) {
remark.append("单据条码信息:").append(codeEntities.size()).append(" 条\n");
}
return remark.toString();
}

@ -0,0 +1,4 @@
package com.glxp.sale.admin.res.sync;
public class SpsSyncResponse {
}

@ -2,6 +2,7 @@ package com.glxp.sale.admin.thread;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.glxp.sale.admin.constant.BasicProcessStatus;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.FileConstant;
@ -19,6 +20,7 @@ import com.glxp.sale.admin.thread.didl.AsyncDiDlHelper;
import com.glxp.sale.admin.util.*;
import com.glxp.sale.common.res.BaseResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -41,6 +43,9 @@ public class DlAllDataService {
RedisUtil redisUtil;
@Resource
GennerOrderUtils gennerOrderUtils;
@Value("${file_path}")
private String filePath;
public void dllNewAllData() {
log.info("下载所有基础信息---");
@ -153,7 +158,7 @@ public class DlAllDataService {
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) {
BaseResponse<SpsSyncOrderResponse> baseResponse = null;
BaseResponse<String> baseResponse = null;
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (basicExportStatusEntity.getFromType() == 0) {
BaseResponse<String> response = spGetHttp.getLastUpdateTime("AutoDownloadOrder");
@ -166,26 +171,27 @@ public class DlAllDataService {
}
if (baseResponse.getCode() == 20000) {
SpsSyncOrderResponse syncOrderResponse = baseResponse.getData();
if (syncOrderResponse != null &&
(CollUtil.isNotEmpty(syncOrderResponse.getOrderEntities())
|| CollUtil.isNotEmpty(syncOrderResponse.getOrderDetailEntityList())
|| CollUtil.isNotEmpty(syncOrderResponse.getWarehouseEntityList()))
) {
JSONObject syncOrderResponse = JSON.parseObject(baseResponse.getData());
if (syncOrderResponse != null) {
String key = gennerOrderUtils.getOrders();
BasicExportStatusEntity myEntity = new BasicExportStatusEntity();
myEntity.setId(key);
myEntity.setTaskId(syncOrderResponse.getTaskId());
String taskId = syncOrderResponse.getString("taskId");
myEntity.setTaskId(taskId);
myEntity.setStatus(0);
myEntity.setUpdateTime(new Date());
myEntity.setStartTime(DateUtil.getDateTime());
myEntity.setIdDatas(ConstantStatus.SYNC_SCAN_ORDER);
myEntity.setType(BasicProcessStatus.NEW_ALL_ORDER);
myEntity.setRemark(syncOrderResponse.toString());
// myEntity.setRemark(syncOrderResponse.toString());
basicExportService.insertExportStatus(myEntity);
myEntity.setStatus(Constant.SYNC_STATUS_WAIT);
if (downstream.getParamValue().equals("1")) {
redisUtil.set(key, baseResponse.getData());
// redisUtil.set(key, baseResponse.getData());
FileUtils.makeDirectory(filePath + "upload/");
String fileName = filePath + "upload/" + BasicProcessStatus.NEW_ALL_ORDER + "-" + key + ".udi";
FileUtils.SaveFileAs(baseResponse.getData(), fileName);
myEntity.setTransportType(BasicProcessStatus.INTERFACE_TYPE);
myEntity.setStatus(Constant.SYNC_STATUS_WAIT_DL);
basicExportService.updateExportStatus(myEntity);

@ -67,12 +67,12 @@ public class HeartTask implements SchedulingConfigurer {
//定时从上游下载数据
private void dlData() {
SystemParamConfigEntity upConnect = systemParamConfigService.selectByParamKey("sync_upstream_enable");
if (upConnect!=null&&upConnect.getParamValue().equals("1")) {
if (upConnect != null && upConnect.getParamValue().equals("1")) {
dlAllData();
scanUpload();
}
SystemParamConfigEntity donwConnect = systemParamConfigService.selectByParamKey("sync_downstream_enable");
if (donwConnect!=null&&donwConnect.getParamValue().equals("1")) {
if (donwConnect != null && donwConnect.getParamValue().equals("1")) {
scanDonwload();
}
@ -143,11 +143,11 @@ public class HeartTask implements SchedulingConfigurer {
String doing = (String) redisUtil.get("is_doing_download");
if (doing == null || doing.equals("false")) {
redisUtil.set("is_doing_download", "true", 60);
dlAllDataService.dllNewAllData();
// dlAllDataService.dllNewAllData();
dlAllDataService.dllNewAllOrder();
dlAllDataService.dllNewAllBusType();
dlAllDataService.dlScheduleStatus();
dlAllDataService.dlAllDi();
// dlAllDataService.dllNewAllBusType();
// dlAllDataService.dlScheduleStatus();
// dlAllDataService.dlAllDi();
redisUtil.set("is_doing_download", "false");
}
}

@ -124,7 +124,6 @@ public class ScanDownloadService {
String data = FileUtils.readFileAll(file.getPath());
BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity();
String fileName = file.getName();
SpsSyncOrderResponse baseResponse =
JSONObject.parseObject(data, new TypeReference<SpsSyncOrderResponse>() {
});

Loading…
Cancel
Save