|
|
|
@ -1,29 +1,21 @@
|
|
|
|
|
package com.glxp.api.admin.thread;
|
|
|
|
|
|
|
|
|
|
import com.glxp.api.admin.config.WebSocketServer;
|
|
|
|
|
import com.glxp.api.admin.constant.UdiInfoImportStatus;
|
|
|
|
|
import com.glxp.api.admin.constant.BasicProcessStatus;
|
|
|
|
|
import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.inout.ErpOrderEntity;
|
|
|
|
|
import com.glxp.api.admin.entity.thrsys.*;
|
|
|
|
|
import com.glxp.api.admin.httpclient.ErpBasicClient;
|
|
|
|
|
import com.glxp.api.admin.httpclient.ErpInvClient;
|
|
|
|
|
import com.glxp.api.admin.httpclient.ErpOrderClient;
|
|
|
|
|
import com.glxp.api.admin.req.basic.BasicUnitMaintainFilterRequest;
|
|
|
|
|
import com.glxp.api.admin.req.inout.FilterOrderRequest;
|
|
|
|
|
import com.glxp.api.admin.req.inventory.ErpOnhandRequest;
|
|
|
|
|
import com.glxp.api.admin.req.thrsys.FilterThrInvProductsRequest;
|
|
|
|
|
import com.glxp.api.admin.req.thrsys.FilterThrOrderDetailRequest;
|
|
|
|
|
import com.glxp.api.admin.req.thrsys.FilterThrOrderRequest;
|
|
|
|
|
import com.glxp.api.admin.req.thrsys.PostThrOrderRequest;
|
|
|
|
|
import com.glxp.api.admin.req.thrsys.ThrOrderExportRequest;
|
|
|
|
|
import com.glxp.api.admin.res.PageSimpleResponse;
|
|
|
|
|
import com.glxp.api.admin.res.basic.ErpUnitsResponse;
|
|
|
|
|
import com.glxp.api.admin.res.inout.ErpOrderResponse;
|
|
|
|
|
import com.glxp.api.admin.res.inventory.ErpInvProductResponse;
|
|
|
|
|
import com.glxp.api.admin.service.basic.BasicThirdSysDetailService;
|
|
|
|
|
import com.glxp.api.admin.service.basic.BussinessTypeService;
|
|
|
|
|
import com.glxp.api.admin.service.thrsys.*;
|
|
|
|
|
import com.glxp.api.admin.util.Constant;
|
|
|
|
|
import com.glxp.api.admin.util.CustomUtil;
|
|
|
|
|
import com.glxp.api.admin.util.ExcelUtil;
|
|
|
|
|
import com.glxp.api.admin.util.RedisUtil;
|
|
|
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
|
|
@ -33,9 +25,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
public class ThrOrdersDlService {
|
|
|
|
@ -73,7 +63,7 @@ public class ThrOrdersDlService {
|
|
|
|
|
}
|
|
|
|
|
redisUtil.set(Constant.dlThrProducts, "false");
|
|
|
|
|
WebSocketServer.sendInfo("业务单据信息下载已完成,请刷新查看!", "sid");
|
|
|
|
|
// thrOrderImportLogEntity.setStatus(UdiInfoImportStatus.UDIINFO_IMPORT_SUCCESS);
|
|
|
|
|
// thrOrderImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
|
|
|
|
|
// thrOrderImportLogService.updateImportLog(thrOrderImportLogEntity);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -126,13 +116,13 @@ public class ThrOrdersDlService {
|
|
|
|
|
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey("orderQueryUrl", thrOrderExportRequest.getThirdSysFk());
|
|
|
|
|
if (basicThirdSysDetailEntity == null || basicThirdSysDetailEntity.getValue() == null) {
|
|
|
|
|
thrOrderExportLogEntity.setStatus(UdiInfoImportStatus.UDIINFO_IMPORT_FAIL);
|
|
|
|
|
thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
|
|
|
|
|
thrOrderExportLogEntity.setRemark("往来单位接口地址未定义");
|
|
|
|
|
thrOrderExportLogService.updateThrOrderExportLog(thrOrderExportLogEntity);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!basicThirdSysDetailEntity.getEnabled() ) {
|
|
|
|
|
thrOrderExportLogEntity.setStatus(UdiInfoImportStatus.UDIINFO_IMPORT_FAIL);
|
|
|
|
|
if (!basicThirdSysDetailEntity.getEnabled()) {
|
|
|
|
|
thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
|
|
|
|
|
thrOrderExportLogEntity.setRemark("第三方往来单位服务未启用");
|
|
|
|
|
thrOrderExportLogService.updateThrOrderExportLog(thrOrderExportLogEntity);
|
|
|
|
|
return;
|
|
|
|
@ -155,10 +145,73 @@ public class ThrOrdersDlService {
|
|
|
|
|
}
|
|
|
|
|
String sheetName = "业务单据";
|
|
|
|
|
new ExcelUtil().exportExcel(excelData, sheetName, thrOrderExportLogEntity.getFilePath(), 20);
|
|
|
|
|
thrOrderExportLogEntity.setStatus(UdiInfoImportStatus.UDIINFO_IMPORT_SUCCESS);
|
|
|
|
|
thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
|
|
|
|
|
thrOrderExportLogService.updateThrOrderExportLog(thrOrderExportLogEntity);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Async
|
|
|
|
|
public void uploadSmp(String genKey, ThrOrderExportRequest thrOrderExportRequest) {
|
|
|
|
|
|
|
|
|
|
ThrOrderExportLogEntity thrOrderExportLogEntity = thrOrderExportLogService.selectByGenKey(genKey);
|
|
|
|
|
PostThrOrderRequest postThrOrderRequest = new PostThrOrderRequest();
|
|
|
|
|
//选中导出
|
|
|
|
|
if (thrOrderExportRequest.getErpOrderResponses() != null && thrOrderExportRequest.getErpOrderResponses().size() > 0) {
|
|
|
|
|
List<ErpOrderResponse> erpOrderResponses = thrOrderExportRequest.getErpOrderResponses();
|
|
|
|
|
postThrOrderRequest.setDatas(erpOrderResponses);
|
|
|
|
|
} else {//一键导出
|
|
|
|
|
List<ErpOrderResponse> erpOrderResponses =new ArrayList<>();
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey("orderQueryUrl", thrOrderExportRequest.getThirdSysFk());
|
|
|
|
|
if (basicThirdSysDetailEntity == null || basicThirdSysDetailEntity.getValue() == null) {
|
|
|
|
|
thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
|
|
|
|
|
thrOrderExportLogEntity.setRemark("往来单位接口地址未定义");
|
|
|
|
|
thrOrderExportLogService.updateThrOrderExportLog(thrOrderExportLogEntity);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!basicThirdSysDetailEntity.getEnabled()) {
|
|
|
|
|
thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
|
|
|
|
|
thrOrderExportLogEntity.setRemark("第三方往来单位服务未启用");
|
|
|
|
|
thrOrderExportLogService.updateThrOrderExportLog(thrOrderExportLogEntity);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (basicThirdSysDetailEntity.getFromType() == 0 && !basicThirdSysDetailEntity.getItrCache()) {
|
|
|
|
|
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
|
|
|
|
|
BeanUtils.copyProperties(thrOrderExportRequest, filterThrOrderRequest);
|
|
|
|
|
List<ErpOrderResponse> datas = getThrOrders(filterThrOrderRequest);
|
|
|
|
|
erpOrderResponses.addAll(datas);
|
|
|
|
|
} else {
|
|
|
|
|
FilterThrOrderRequest filterThrOrderRequest = new FilterThrOrderRequest();
|
|
|
|
|
BeanUtils.copyProperties(thrOrderExportRequest, filterThrOrderRequest);
|
|
|
|
|
List<List<String>> excelData = new ArrayList<>();
|
|
|
|
|
List<ThrOrderEntity> thrOrderEntities = thrOrderService.filterThrOrder(filterThrOrderRequest);
|
|
|
|
|
for (ThrOrderEntity thrOrderEntity : thrOrderEntities) {
|
|
|
|
|
ErpOrderResponse erpOrderResponse = new ErpOrderResponse();
|
|
|
|
|
BeanUtils.copyProperties(thrOrderEntity,erpOrderResponse);
|
|
|
|
|
FilterThrOrderDetailRequest filterThrOrderDetailRequest = new FilterThrOrderDetailRequest();
|
|
|
|
|
filterThrOrderDetailRequest.setOrderIdFk(thrOrderEntity.getId() + "");
|
|
|
|
|
List<ThrOrderDetailEntity> thrOrderDetailEntities = thrOrderDetailService.filterThrOrderDetailDetail(filterThrOrderDetailRequest);
|
|
|
|
|
if (thrOrderDetailEntities != null) {
|
|
|
|
|
List<ErpOrderResponse.SubErpOrder > subErpOrders = new ArrayList<>();
|
|
|
|
|
for (ThrOrderDetailEntity thrOrderDetailEntity : thrOrderDetailEntities) {
|
|
|
|
|
ErpOrderResponse.SubErpOrder subErpOrder = new ErpOrderResponse.SubErpOrder();
|
|
|
|
|
BeanUtils.copyProperties(thrOrderDetailEntity,subErpOrder);
|
|
|
|
|
subErpOrders.add(subErpOrder);
|
|
|
|
|
}
|
|
|
|
|
erpOrderResponse.setSubErpOrders(subErpOrders);
|
|
|
|
|
}
|
|
|
|
|
erpOrderResponses.add(erpOrderResponse);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//toDo 上傳SMP
|
|
|
|
|
postThrOrderRequest.setGenKey(genKey);
|
|
|
|
|
postThrOrderRequest.setThirdSys(thrOrderExportRequest.getThirdSysFk());
|
|
|
|
|
thrOrderExportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
|
|
|
|
|
thrOrderExportLogService.updateThrOrderExportLog(thrOrderExportLogEntity);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public int getOrders(int page, int limit, String orderUrl, String thirdSys, ThrOrderImportLogEntity thrOrderImportLogEntity, String action) {
|
|
|
|
|
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
|
|
|
|
|
filterOrderRequest.setPage(page);
|
|
|
|
@ -189,7 +242,7 @@ public class ThrOrdersDlService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
thrOrderImportLogEntity.setStatus(UdiInfoImportStatus.UDIINFO_IMPORT_FAIL);
|
|
|
|
|
thrOrderImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_FAIL);
|
|
|
|
|
if (responseBaseResponse != null) {
|
|
|
|
|
thrOrderImportLogEntity.setRemark(responseBaseResponse.getMessage());
|
|
|
|
|
} else {
|
|
|
|
@ -198,7 +251,7 @@ public class ThrOrdersDlService {
|
|
|
|
|
thrOrderImportLogService.updateImportLog(thrOrderImportLogEntity);
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
thrOrderImportLogEntity.setStatus(UdiInfoImportStatus.UDIINFO_IMPORT_SUCCESS);
|
|
|
|
|
thrOrderImportLogEntity.setStatus(BasicProcessStatus.UDIINFO_IMPORT_SUCCESS);
|
|
|
|
|
thrOrderImportLogService.updateImportLog(thrOrderImportLogEntity);
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
@ -243,6 +296,26 @@ public class ThrOrdersDlService {
|
|
|
|
|
return excelData;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<ErpOrderResponse> getThrOrders(FilterThrOrderRequest filterThrOrderRequest) {
|
|
|
|
|
BasicThirdSysDetailEntity basicThirdSysDetailEntity = basicThirdSysDetailService.selectByKey("orderQueryUrl", filterThrOrderRequest.getThirdSysFk());
|
|
|
|
|
int page = 1;
|
|
|
|
|
int limit = 100;
|
|
|
|
|
List<ErpOrderResponse> erpOrderResponseList = new ArrayList<>();
|
|
|
|
|
while (true) {
|
|
|
|
|
List<ErpOrderResponse> datas = getThrOrders(page, limit, basicThirdSysDetailEntity.getValue(), filterThrOrderRequest);
|
|
|
|
|
if (datas != null && datas.size() >= limit) {
|
|
|
|
|
erpOrderResponseList.addAll(datas);
|
|
|
|
|
page++;
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
if (datas != null) {
|
|
|
|
|
erpOrderResponseList.addAll(datas);
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return erpOrderResponseList;
|
|
|
|
|
}
|
|
|
|
|
public List<ErpOrderResponse> getThrOrders(int page, int limit, String orderQueryUrl, FilterThrOrderRequest filterThrOrderRequest) {
|
|
|
|
|
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
|
|
|
|
|
BeanUtils.copyProperties(filterThrOrderRequest, filterOrderRequest);
|
|
|
|
|