You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/service/sync/UpBasicService.java

225 lines
9.2 KiB
Java

package com.glxp.api.service.sync;
import cn.hutool.core.collection.CollUtil;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.auth.*;
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
import com.glxp.api.entity.basic.EntrustReceEntity;
import com.glxp.api.entity.basic.UdiRelevanceEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.purchase.SupCertEntity;
import com.glxp.api.entity.purchase.SupCompanyEntity;
import com.glxp.api.entity.purchase.SupManufacturerEntity;
import com.glxp.api.entity.purchase.SupProductEntity;
import com.glxp.api.entity.system.SyncDataBustypeEntity;
import com.glxp.api.entity.thrsys.*;
import com.glxp.api.req.auth.*;
import com.glxp.api.req.basic.BasicEntrustRecRequest;
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
import com.glxp.api.req.basic.FilterCompanyProductRelevanceRequest;
import com.glxp.api.req.basic.FilterUdiInfoRequest;
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.req.purchase.FilterPoductRequest;
import com.glxp.api.req.purchase.FilterSupCompanyRequest;
import com.glxp.api.req.purchase.FilterSupManufacturerRequest;
import com.glxp.api.req.sync.SpsSyncDataRequest;
import com.glxp.api.req.thrsys.*;
import com.glxp.api.res.sync.SpsSyncOrderResponse;
import com.glxp.api.res.system.SyncDataSetResponse;
import com.glxp.api.service.auth.*;
import com.glxp.api.service.basic.EntrustReceService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.purchase.SupCertService;
import com.glxp.api.service.purchase.SupCompanyService;
import com.glxp.api.service.purchase.SupManufacturerService;
import com.glxp.api.service.purchase.SupProductService;
import com.glxp.api.service.system.SyncDataSetService;
import com.glxp.api.service.thrsys.*;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Service
public class UpBasicService {
//基础信息
@Resource
InvWarehouseService invWarehouseService;
@Resource
UdiRelevanceService udiRelevanceService;
@Resource
ThrInvWarehouseService thrInvWarehouseService;
@Resource
ThrCorpService thrCorpService;
@Resource
ThrProductsService thrProductsService;
@Resource
ThrOrderService thrOrderService;
@Resource
ThrOrderDetailService thrOrderDetailService;
@Resource
SyncDataSetService syncDataSetService;
@Resource
AuthAdminService authAdminService;
@Resource
DeptService deptService;
@Resource
WarehouseBussinessTypeService warehouseBussinessTypeService;
@Resource
WarehouseUserService warehouseUserService;
@Resource
InvBusUserService invBusUserService;
@Resource
SupCompanyService supCompanyService;
@Resource
SupManufacturerService supManufacturerService;
@Resource
SupProductService supProductService;
@Resource
SupCertService supCertService;
//已完成扫码单据
@Resource
IoOrderService orderService;
@Resource
IoCodeService codesService;
@Resource
IoOrderDetailBizService orderDetailBizService;
@Resource
IoOrderDetailCodeService orderDetailCodeService;
@Resource
IoOrderDetailResultService orderDetailResultService;
public SpsSyncOrderResponse upAllOrder(SpsSyncDataRequest spsSyncDataRequest) {
SpsSyncOrderResponse syncOrderResponse = new SpsSyncOrderResponse();
//查询数据同步设置
SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet();
List<IoOrderEntity> orderEntities = new ArrayList<>();
//待校验
if (syncDataSetEntity.isOrderUnCheck()) {
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
List<String> filterList = new ArrayList<>();
filterList.add(syncDataBustypeEntity.getAction());
orderFilterRequest.setActions(filterList);
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK);
List<IoOrderEntity> temps = orderService.filterOrderList(orderFilterRequest);
if (CollUtil.isNotEmpty(temps)) {
orderEntities.addAll(temps);
}
}
}
}
//待核对
if (syncDataSetEntity.isOrderUnCheck()) {
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
List<String> filterList = new ArrayList<>();
filterList.add(syncDataBustypeEntity.getAction());
orderFilterRequest.setActions(filterList);
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS);
List<IoOrderEntity> temps = orderService.filterOrderList(orderFilterRequest);
if (CollUtil.isNotEmpty(temps)) {
orderEntities.addAll(temps);
}
}
}
}
//待审核
if (syncDataSetEntity.isOrderUnReceive()) {
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
List<String> filterList = new ArrayList<>();
filterList.add(syncDataBustypeEntity.getAction());
orderFilterRequest.setActions(filterList);
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW);
List<IoOrderEntity> temps = orderService.filterOrderList(orderFilterRequest);
if (CollUtil.isNotEmpty(temps)) {
orderEntities.addAll(temps);
}
}
}
}
//已完成
if (syncDataSetEntity.isOrderScanFinish()) {
FilterOrderRequest orderFilterRequest = new FilterOrderRequest();
BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest);
if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) {
for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) {
List<String> filterList = new ArrayList<>();
filterList.add(syncDataBustypeEntity.getAction());
orderFilterRequest.setActions(filterList);
orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_AUDITED);
List<IoOrderEntity> temps = orderService.filterOrderList(orderFilterRequest);
if (CollUtil.isNotEmpty(temps)) {
orderEntities.addAll(temps);
}
}
}
}
syncOrderResponse.setOrderEntities(orderEntities);
List<IoCodeEntity> codeEntities = new ArrayList<>();
List<IoOrderDetailBizEntity> orderDetailBizEntities = new ArrayList<>();
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = new ArrayList<>();
List<IoOrderDetailResultEntity> orderDetailResultEntities = new ArrayList<>();
if (CollUtil.isNotEmpty(orderEntities)) {
for (IoOrderEntity orderEntity : orderEntities) {
List<IoCodeEntity> codes = codesService.findByOrderId(orderEntity.getBillNo());
if (CollUtil.isNotEmpty(codes)) {
codeEntities.addAll(codes);
}
List<IoOrderDetailBizEntity> bizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo());
if (CollUtil.isNotEmpty(bizEntities)) {
orderDetailBizEntities.addAll(bizEntities);
}
List<IoOrderDetailCodeEntity> detailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo());
if (CollUtil.isNotEmpty(detailCodeEntities)) {
orderDetailCodeEntities.addAll(detailCodeEntities);
}
List<IoOrderDetailResultEntity> detailResultEntities = orderDetailResultService.findByOrderId(orderEntity.getBillNo());
if (CollUtil.isNotEmpty(detailResultEntities)) {
orderDetailResultEntities.addAll(detailResultEntities);
}
}
}
syncOrderResponse.setOrderDetailBizEntities(orderDetailBizEntities);
syncOrderResponse.setOrderDetailCodeEntities(orderDetailCodeEntities);
syncOrderResponse.setOrderDetailResultEntities(orderDetailResultEntities);
return syncOrderResponse;
}
}