1.添加UDI管理系统拉取数据立即生成同步任务接口

zhairh
x_z 3 years ago
parent 9dde72d2ee
commit b933e0e7e7

@ -1,18 +1,25 @@
package com.glxp.sale.admin.controller.basic;
import cn.hutool.core.collection.CollUtil;
import com.glxp.sale.admin.annotation.AuthRuleAnnotation;
import com.glxp.sale.admin.constant.ConstantStatus;
import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.req.basic.SpsSyncDataRequest;
import com.glxp.sale.admin.req.thrsys.PostDownloadInfo;
import com.glxp.sale.admin.res.basic.SpSyncUdiResponse;
import com.glxp.sale.admin.res.basic.SpsSyncBusResponse;
import com.glxp.sale.admin.res.basic.SpsSyncDataResponse;
import com.glxp.sale.admin.res.basic.SpsSyncOrderResponse;
import com.glxp.sale.admin.service.basic.BasicExportService;
import com.glxp.sale.admin.service.inout.OrderService;
import com.glxp.sale.common.enums.ResultEnum;
import com.glxp.sale.common.res.BaseResponse;
import com.glxp.sale.common.util.ResultVOUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@ -169,8 +176,23 @@ public class SpsSyncDownloadController {
baseResponse.setData(spSyncUdiResponse);
}
return baseResponse;
}
/**
*
*
* @param postDownloadInfo
* @param bindingResult
* @return
*/
@AuthRuleAnnotation("")
@PostMapping("/sps/sync/data/downloadNow")
public BaseResponse downloadNow(@RequestBody PostDownloadInfo postDownloadInfo, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
return spsSyncDownloadService.downloadNow(postDownloadInfo);
}
}

@ -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;
}
}

@ -0,0 +1,16 @@
package com.glxp.sale.admin.req.thrsys;
import lombok.Data;
/**
*
*/
@Data
public class PostDownloadInfo {
/**
*
*/
private Integer type;
}
Loading…
Cancel
Save