|
|
|
@ -2,7 +2,7 @@ package com.glxp.sale.admin.controller.basic;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import cn.hutool.db.sql.Order;
|
|
|
|
|
import com.glxp.sale.admin.constant.BasicProcessStatus;
|
|
|
|
|
import com.glxp.sale.admin.constant.ConstantStatus;
|
|
|
|
|
import com.glxp.sale.admin.dao.basic.UdiInfoDao;
|
|
|
|
|
import com.glxp.sale.admin.entity.auth.AuthAdmin;
|
|
|
|
@ -28,12 +28,10 @@ import com.glxp.sale.admin.req.inout.OrderFilterRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.inventory.FilterInvUserRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.inventory.FilterInvWarehouseRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.purchase.FilterPoductRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.purchase.FilterSupCertRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.purchase.FilterSupCompanyRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.purchase.FilterSupManufacturerRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.receipt.ProductInfoFilterRequest;
|
|
|
|
|
import com.glxp.sale.admin.req.thrsys.*;
|
|
|
|
|
import com.glxp.sale.admin.res.auth.AuthAdminRoleResponse;
|
|
|
|
|
import com.glxp.sale.admin.res.basic.SpSyncUdiResponse;
|
|
|
|
|
import com.glxp.sale.admin.res.basic.SpsSyncBusResponse;
|
|
|
|
|
import com.glxp.sale.admin.res.basic.SpsSyncDataResponse;
|
|
|
|
@ -55,13 +53,14 @@ import com.glxp.sale.admin.service.purchase.SupProductService;
|
|
|
|
|
import com.glxp.sale.admin.service.receipt.ProductInfoService;
|
|
|
|
|
import com.glxp.sale.admin.service.thrsys.*;
|
|
|
|
|
import com.glxp.sale.admin.util.BeanUtils;
|
|
|
|
|
import com.glxp.sale.admin.util.CustomUtil;
|
|
|
|
|
import com.glxp.sale.common.res.BaseResponse;
|
|
|
|
|
import com.glxp.sale.common.util.ResultVOUtils;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@ -120,6 +119,10 @@ public class SpsSyncDownloadService {
|
|
|
|
|
SupProductService supProductService;
|
|
|
|
|
@Resource
|
|
|
|
|
SupCertService supCertService;
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicExportTimeService basicExportTimeService;
|
|
|
|
|
@Resource
|
|
|
|
|
private BasicExportService basicExportService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public BaseResponse findProductInfo(SpsSyncDataRequest spsSyncDataRequest) {
|
|
|
|
@ -584,4 +587,131 @@ public class SpsSyncDownloadService {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据UDI管理系统的请求,创建同步任务
|
|
|
|
|
*
|
|
|
|
|
* @param postDownloadInfo
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public BaseResponse downloadNow(PostDownloadInfo postDownloadInfo) {
|
|
|
|
|
//根据请求类型,生成同步任务
|
|
|
|
|
if (postDownloadInfo.getType() == 1) {
|
|
|
|
|
//基础信息
|
|
|
|
|
BaseResponse<SpsSyncDataResponse> baseResponse = findProductInfo(getRequest(ConstantStatus.SYNC_BASIC_DATA, null));
|
|
|
|
|
SpsSyncDataResponse spsSyncDataResponse = baseResponse.getData();
|
|
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(spsSyncDataResponse.getThrOrderDetailEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getThrOrderEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getInvWarehouseEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getBasicUnitMaintainEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getCompanyProductRelevanceEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getThrCorpEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getUdiInfoEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getUdiRelevanceEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getThrProductsEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getThrInvWarehouseEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getAuthAdminList())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getDeptEntityList())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getNewUploadDiEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getSupCompanyEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getSupManufacturerEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncDataResponse.getSupProductEntities())
|
|
|
|
|
) {
|
|
|
|
|
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(ConstantStatus.SYNC_BASIC_DATA);
|
|
|
|
|
basicExportTimeService.updateExportStatus(basicExportStatusTimeEntity);
|
|
|
|
|
BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity();
|
|
|
|
|
basicExportStatusEntity.setId(CustomUtil.getId());
|
|
|
|
|
basicExportStatusEntity.setIdDatas(ConstantStatus.SYNC_BASIC_DATA);
|
|
|
|
|
basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_DATA);
|
|
|
|
|
basicExportStatusEntity.setUpdateTime(new Date());
|
|
|
|
|
basicExportStatusEntity.setStatus(0);
|
|
|
|
|
basicExportStatusEntity.setStartTime(new Date());
|
|
|
|
|
basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL);
|
|
|
|
|
basicExportService.insertExportStatus(basicExportStatusEntity);
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(501, "当前暂无更新数据需要同步!");
|
|
|
|
|
}
|
|
|
|
|
} else if (postDownloadInfo.getType() == 2) {
|
|
|
|
|
//单据类型
|
|
|
|
|
BaseResponse<SpsSyncBusResponse> baseResponse = findBusType(getRequest(ConstantStatus.SYNC_BUS_TYPE, null));
|
|
|
|
|
SpsSyncBusResponse spsSyncBusResponse = baseResponse.getData();
|
|
|
|
|
if (CollUtil.isNotEmpty(spsSyncBusResponse.getBussinessLocalTypeEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncBusResponse.getBussinessOriginTypeEntities())
|
|
|
|
|
|| CollUtil.isNotEmpty(spsSyncBusResponse.getBussinessTypeEntities()) || CollUtil.isNotEmpty(spsSyncBusResponse.getEntrustReceEntities())) {
|
|
|
|
|
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(ConstantStatus.SYNC_BUS_TYPE);
|
|
|
|
|
if (basicExportStatusTimeEntity != null) {
|
|
|
|
|
basicExportTimeService.updateExportStatus(basicExportStatusTimeEntity);
|
|
|
|
|
}
|
|
|
|
|
BasicExportStatusEntity busTypetatusEntity = new BasicExportStatusEntity();
|
|
|
|
|
busTypetatusEntity.setId(CustomUtil.getId());
|
|
|
|
|
busTypetatusEntity.setIdDatas(ConstantStatus.SYNC_BUS_TYPE);
|
|
|
|
|
busTypetatusEntity.setType(BasicProcessStatus.NEW_ALL_BUS);
|
|
|
|
|
busTypetatusEntity.setUpdateTime(new Date());
|
|
|
|
|
busTypetatusEntity.setStatus(0);
|
|
|
|
|
busTypetatusEntity.setStartTime(new Date());
|
|
|
|
|
busTypetatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL);
|
|
|
|
|
basicExportService.insertExportStatus(busTypetatusEntity);
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(501, "当前暂无更新数据需要同步!");
|
|
|
|
|
}
|
|
|
|
|
} else if (postDownloadInfo.getType() == 3) {
|
|
|
|
|
//扫码单据
|
|
|
|
|
BaseResponse<SpsSyncOrderResponse> baseResponse = findOrder(getRequest(ConstantStatus.SYNC_SCAN_ORDER, null));
|
|
|
|
|
SpsSyncOrderResponse syncOrderResponse = baseResponse.getData();
|
|
|
|
|
if (CollUtil.isNotEmpty(syncOrderResponse.getOrderEntities())) {
|
|
|
|
|
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(ConstantStatus.SYNC_SCAN_ORDER);
|
|
|
|
|
if (basicExportStatusTimeEntity != null) {
|
|
|
|
|
basicExportTimeService.updateExportStatus(basicExportStatusTimeEntity);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BasicExportStatusEntity orderStatusEntity = new BasicExportStatusEntity();
|
|
|
|
|
orderStatusEntity.setId(CustomUtil.getId());
|
|
|
|
|
orderStatusEntity.setIdDatas(ConstantStatus.SYNC_SCAN_ORDER);
|
|
|
|
|
orderStatusEntity.setType(BasicProcessStatus.NEW_ALL_ORDER);
|
|
|
|
|
orderStatusEntity.setUpdateTime(new Date());
|
|
|
|
|
orderStatusEntity.setStatus(0);
|
|
|
|
|
orderStatusEntity.setStartTime(new Date());
|
|
|
|
|
orderStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL);
|
|
|
|
|
basicExportService.insertExportStatus(orderStatusEntity);
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(501, "当前暂无更新数据需要同步!");
|
|
|
|
|
}
|
|
|
|
|
} else if (postDownloadInfo.getType() == 4) {
|
|
|
|
|
//国家库数据
|
|
|
|
|
BaseResponse<SpSyncUdiResponse> baseResponse = syncUdi(getRequest(ConstantStatus.SYNC_DI_PRODUCTS, null));
|
|
|
|
|
SpSyncUdiResponse spSyncUdiResponse = baseResponse.getData();
|
|
|
|
|
if (CollUtil.isNotEmpty(spSyncUdiResponse.getProductInfoEntityList())
|
|
|
|
|
|| CollUtil.isNotEmpty(spSyncUdiResponse.getUdiCompanyEntities())) {
|
|
|
|
|
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(ConstantStatus.SYNC_DI_PRODUCTS);
|
|
|
|
|
if (basicExportStatusTimeEntity != null) {
|
|
|
|
|
basicExportTimeService.updateExportStatus(basicExportStatusTimeEntity);
|
|
|
|
|
}
|
|
|
|
|
BasicExportStatusEntity basicExportStatusEntity = new BasicExportStatusEntity();
|
|
|
|
|
basicExportStatusEntity.setId(CustomUtil.getId());
|
|
|
|
|
basicExportStatusEntity.setIdDatas(ConstantStatus.SYNC_DI_PRODUCTS);
|
|
|
|
|
basicExportStatusEntity.setType(BasicProcessStatus.NEW_ALL_DI);
|
|
|
|
|
basicExportStatusEntity.setUpdateTime(new Date());
|
|
|
|
|
basicExportStatusEntity.setStatus(0);
|
|
|
|
|
basicExportStatusEntity.setStartTime(new Date());
|
|
|
|
|
basicExportStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL);
|
|
|
|
|
basicExportService.insertExportStatus(basicExportStatusEntity);
|
|
|
|
|
} else {
|
|
|
|
|
return ResultVOUtils.error(501, "当前暂无更新数据需要同步!");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ResultVOUtils.success("同步任务创建成功!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public SpsSyncDataRequest getRequest(String type, String syncTime) {
|
|
|
|
|
SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest();
|
|
|
|
|
spsSyncDataRequest.setPage(1);
|
|
|
|
|
spsSyncDataRequest.setLimit(1);
|
|
|
|
|
if (StrUtil.isEmpty(syncTime)) {
|
|
|
|
|
BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByType(type);
|
|
|
|
|
spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime());
|
|
|
|
|
} else {
|
|
|
|
|
spsSyncDataRequest.setLastUpdateTime(syncTime);
|
|
|
|
|
}
|
|
|
|
|
return spsSyncDataRequest;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|