单据同步

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.req.sync.BasicExportStatusRequest;
import com.glxp.sale.admin.res.sync.*; import com.glxp.sale.admin.res.sync.*;
import com.glxp.sale.admin.service.sync.BasicExportService; 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.admin.util.RedisUtil;
import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils; import com.glxp.sale.common.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j; 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.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -70,6 +72,8 @@ public class BasicDownloadController {
return ResultVOUtils.success("删除成功!"); return ResultVOUtils.success("删除成功!");
} }
@Value("${file_path}")
private String filePath;
@PostMapping("/spssync/basic/udiinfo/downloadByStatus") @PostMapping("/spssync/basic/udiinfo/downloadByStatus")
public BaseResponse downloadByStatus(@RequestBody BasicExportStatusRequest basicExportStatusRequest) { public BaseResponse downloadByStatus(@RequestBody BasicExportStatusRequest basicExportStatusRequest) {
@ -101,9 +105,11 @@ public class BasicDownloadController {
basicExportService.finished(basicExportStatusRequest.getId()); basicExportService.finished(basicExportStatusRequest.getId());
return ResultVOUtils.success(spsSyncDataResponse); return ResultVOUtils.success(spsSyncDataResponse);
} else if (basicExportStatusRequest.getType().equals(BasicProcessStatus.NEW_ALL_ORDER)) {//单据 } 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()); basicExportService.finished(basicExportStatusRequest.getId());
return ResultVOUtils.success(spsSyncDataResponse); return ResultVOUtils.success(json);
} else if (basicExportStatusRequest.getType().equals(BasicProcessStatus.NEW_ALL_UDIS)) {//国家库信息 } else if (basicExportStatusRequest.getType().equals(BasicProcessStatus.NEW_ALL_UDIS)) {//国家库信息
BasicExportStatusEntity basicExportStatusEntity = basicExportService.findById(basicExportStatusRequest.getId()); BasicExportStatusEntity basicExportStatusEntity = basicExportService.findById(basicExportStatusRequest.getId());
String data = (String) redisUtil.get(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 com.glxp.sale.common.util.ResultVOUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -41,6 +42,8 @@ public class SpsSyncDataController {
private BasicUploadService basicUploadService; private BasicUploadService basicUploadService;
@Resource @Resource
private GennerOrderUtils gennerOrderUtils; private GennerOrderUtils gennerOrderUtils;
@Value("${file_path}")
private String filePath;
private static final Logger logger = LoggerFactory.getLogger(SpsSyncDataController.class); private static final Logger logger = LoggerFactory.getLogger(SpsSyncDataController.class);
@ -72,8 +75,10 @@ public class SpsSyncDataController {
@GetMapping("sps/sync/order") @GetMapping("sps/sync/order")
public BaseResponse getOrder(SpsSyncDataRequest spsSyncDataRequest) { public BaseResponse getOrder(SpsSyncDataRequest spsSyncDataRequest) {
SpsSyncOrderResponse spsSyncDataResponse = (SpsSyncOrderResponse) redisUtil.get(spsSyncDataRequest.getId() + ""); String fileName = filePath + "upload/" + BasicProcessStatus.NEW_ALL_ORDER + "-" + spsSyncDataRequest.getId() + ".udi";
return ResultVOUtils.success(spsSyncDataResponse); 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/**") @RequestMapping("/orderApi/**")
public Object orderApi(HttpServletRequest request, HttpServletResponse httpServletResponse) { public Object orderApi(HttpServletRequest request, HttpServletResponse httpServletResponse) {
String uri = uriUtils.parseUri(request.getRequestURL().toString()); String uri = uriUtils.parseUri(request.getRequestURL().toString());
log.info(uri); 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); JSONObject jsonObject = redirect(request, uri, ConstantStatus.SYNC_SCAN_ORDER, BasicProcessStatus.NEW_ALL_ORDER);
return jsonObject; return jsonObject;
} }
@ -77,6 +86,14 @@ public class SyncController {
public Object busOrderApi(HttpServletRequest request, HttpServletResponse httpServletResponse) { public Object busOrderApi(HttpServletRequest request, HttpServletResponse httpServletResponse) {
String uri = uriUtils.parseUri(request.getRequestURL().toString()); String uri = uriUtils.parseUri(request.getRequestURL().toString());
log.info(uri); 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); JSONObject jsonObject = redirect(request, uri, ConstantStatus.SYNC_SCAN_ORDER, BasicProcessStatus.NEW_ALL_ORDER);
return jsonObject; 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); Map<String, Object> paramMap = new HashMap<>(16);
if (spsSyncDataRequest.getLastUpdateTime() != null) if (spsSyncDataRequest.getLastUpdateTime() != null)
paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime()); paramMap.put("lastUpdateTime", spsSyncDataRequest.getLastUpdateTime());
@ -263,8 +263,8 @@ public class SpGetHttp {
paramMap.put("id", spsSyncDataRequest.getId()); paramMap.put("id", spsSyncDataRequest.getId());
String response = UHttpClient.mipsGetHead(getSpmsUrl() + "/sps/sync/order", paramMap, getHeaders()); String response = UHttpClient.mipsGetHead(getSpmsUrl() + "/sps/sync/order", paramMap, getHeaders());
try { try {
BaseResponse<SpsSyncOrderResponse> data = BaseResponse<String> data =
JSONObject.parseObject(response, new TypeReference<BaseResponse<SpsSyncOrderResponse>>() { JSONObject.parseObject(response, new TypeReference<BaseResponse<String>>() {
}); });
return data; return data;

@ -140,7 +140,7 @@ public class IdcController {
if (StrUtil.isNotEmpty(isTopService) && isTopService.equals("1")) { if (StrUtil.isNotEmpty(isTopService) && isTopService.equals("1")) {
uri = uri.replace("mapi/", ""); uri = uri.replace("mapi/", "");
} }
String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_host"); String upperServerHost = systemParamConfigService.selectValueByParamKey("upper_server_ip");
if (StrUtil.isNotEmpty(upperServerHost)) { if (StrUtil.isNotEmpty(upperServerHost)) {
uri = upperServerHost + "/" + uri; uri = upperServerHost + "/" + uri;
} }

@ -1,10 +1,7 @@
package com.glxp.sale.admin.res.sync; package com.glxp.sale.admin.res.sync;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.glxp.sale.admin.entity.sync.ErpOrderEntity; import com.glxp.sale.admin.entity.sync.*;
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 lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@ -14,10 +11,11 @@ public class SpsSyncOrderResponse {
//同步任务ID //同步任务ID
private String taskId; private String taskId;
List<OrderEntity> orderEntities; List<IoOrderEntity> orderEntities;
List<ErpOrderEntity> orderDetailEntityList; List<IoCodeEntity> codeEntities;
List<WarehouseEntity> warehouseEntityList; List<IoOrderDetailBizEntity> orderDetailBizEntities;
List<StockOrderRemakEntity> stockOrderRemakEntities; List<IoOrderDetailCodeEntity> orderDetailCodeEntities;
List<IoOrderDetailResultEntity> orderDetailResultEntities;
@Override @Override
public String toString() { public String toString() {
@ -25,11 +23,11 @@ public class SpsSyncOrderResponse {
if (CollUtil.isNotEmpty(orderEntities)) { if (CollUtil.isNotEmpty(orderEntities)) {
remark.append("单据:").append(orderEntities.size()).append(" 条\n"); remark.append("单据:").append(orderEntities.size()).append(" 条\n");
} }
if (CollUtil.isNotEmpty(orderDetailEntityList)) { if (CollUtil.isNotEmpty(orderDetailResultEntities)) {
remark.append("单据详情:").append(orderDetailEntityList.size()).append(" 条\n"); remark.append("单据详情:").append(orderDetailResultEntities.size()).append(" 条\n");
} }
if (CollUtil.isNotEmpty(warehouseEntityList)) { if (CollUtil.isNotEmpty(codeEntities)) {
remark.append("单据条码信息:").append(warehouseEntityList.size()).append(" 条\n"); remark.append("单据条码信息:").append(codeEntities.size()).append(" 条\n");
} }
return remark.toString(); 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 cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.glxp.sale.admin.constant.BasicProcessStatus; import com.glxp.sale.admin.constant.BasicProcessStatus;
import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.constant.FileConstant; 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.admin.util.*;
import com.glxp.sale.common.res.BaseResponse; import com.glxp.sale.common.res.BaseResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -41,6 +43,9 @@ public class DlAllDataService {
RedisUtil redisUtil; RedisUtil redisUtil;
@Resource @Resource
GennerOrderUtils gennerOrderUtils; GennerOrderUtils gennerOrderUtils;
@Value("${file_path}")
private String filePath;
public void dllNewAllData() { public void dllNewAllData() {
log.info("下载所有基础信息---"); log.info("下载所有基础信息---");
@ -153,7 +158,7 @@ public class DlAllDataService {
SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable"); SystemParamConfigEntity downstream = systemParamConfigService.selectByParamKey("sync_downstream_enable");
for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) { for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) {
BaseResponse<SpsSyncOrderResponse> baseResponse = null; BaseResponse<String> baseResponse = null;
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
if (basicExportStatusEntity.getFromType() == 0) { if (basicExportStatusEntity.getFromType() == 0) {
BaseResponse<String> response = spGetHttp.getLastUpdateTime("AutoDownloadOrder"); BaseResponse<String> response = spGetHttp.getLastUpdateTime("AutoDownloadOrder");
@ -166,26 +171,27 @@ public class DlAllDataService {
} }
if (baseResponse.getCode() == 20000) { if (baseResponse.getCode() == 20000) {
SpsSyncOrderResponse syncOrderResponse = baseResponse.getData();
if (syncOrderResponse != null && JSONObject syncOrderResponse = JSON.parseObject(baseResponse.getData());
(CollUtil.isNotEmpty(syncOrderResponse.getOrderEntities()) if (syncOrderResponse != null) {
|| CollUtil.isNotEmpty(syncOrderResponse.getOrderDetailEntityList())
|| CollUtil.isNotEmpty(syncOrderResponse.getWarehouseEntityList()))
) {
String key = gennerOrderUtils.getOrders(); String key = gennerOrderUtils.getOrders();
BasicExportStatusEntity myEntity = new BasicExportStatusEntity(); BasicExportStatusEntity myEntity = new BasicExportStatusEntity();
myEntity.setId(key); myEntity.setId(key);
myEntity.setTaskId(syncOrderResponse.getTaskId()); String taskId = syncOrderResponse.getString("taskId");
myEntity.setTaskId(taskId);
myEntity.setStatus(0); myEntity.setStatus(0);
myEntity.setUpdateTime(new Date()); myEntity.setUpdateTime(new Date());
myEntity.setStartTime(DateUtil.getDateTime()); myEntity.setStartTime(DateUtil.getDateTime());
myEntity.setIdDatas(ConstantStatus.SYNC_SCAN_ORDER); myEntity.setIdDatas(ConstantStatus.SYNC_SCAN_ORDER);
myEntity.setType(BasicProcessStatus.NEW_ALL_ORDER); myEntity.setType(BasicProcessStatus.NEW_ALL_ORDER);
myEntity.setRemark(syncOrderResponse.toString()); // myEntity.setRemark(syncOrderResponse.toString());
basicExportService.insertExportStatus(myEntity); basicExportService.insertExportStatus(myEntity);
myEntity.setStatus(Constant.SYNC_STATUS_WAIT); myEntity.setStatus(Constant.SYNC_STATUS_WAIT);
if (downstream.getParamValue().equals("1")) { 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.setTransportType(BasicProcessStatus.INTERFACE_TYPE);
myEntity.setStatus(Constant.SYNC_STATUS_WAIT_DL); myEntity.setStatus(Constant.SYNC_STATUS_WAIT_DL);
basicExportService.updateExportStatus(myEntity); basicExportService.updateExportStatus(myEntity);

@ -143,11 +143,11 @@ public class HeartTask implements SchedulingConfigurer {
String doing = (String) redisUtil.get("is_doing_download"); String doing = (String) redisUtil.get("is_doing_download");
if (doing == null || doing.equals("false")) { if (doing == null || doing.equals("false")) {
redisUtil.set("is_doing_download", "true", 60); redisUtil.set("is_doing_download", "true", 60);
dlAllDataService.dllNewAllData(); // dlAllDataService.dllNewAllData();
dlAllDataService.dllNewAllOrder(); dlAllDataService.dllNewAllOrder();
dlAllDataService.dllNewAllBusType(); // dlAllDataService.dllNewAllBusType();
dlAllDataService.dlScheduleStatus(); // dlAllDataService.dlScheduleStatus();
dlAllDataService.dlAllDi(); // dlAllDataService.dlAllDi();
redisUtil.set("is_doing_download", "false"); redisUtil.set("is_doing_download", "false");
} }
} }

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

Loading…
Cancel
Save