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 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 filterList = new ArrayList<>(); filterList.add(syncDataBustypeEntity.getAction()); orderFilterRequest.setActions(filterList); orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK); List 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 filterList = new ArrayList<>(); filterList.add(syncDataBustypeEntity.getAction()); orderFilterRequest.setActions(filterList); orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK_SUCCESS); List 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 filterList = new ArrayList<>(); filterList.add(syncDataBustypeEntity.getAction()); orderFilterRequest.setActions(filterList); orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_CHECK_REW); List 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 filterList = new ArrayList<>(); filterList.add(syncDataBustypeEntity.getAction()); orderFilterRequest.setActions(filterList); orderFilterRequest.setStatus(ConstantStatus.ORDER_STATUS_AUDITED); List temps = orderService.filterOrderList(orderFilterRequest); if (CollUtil.isNotEmpty(temps)) { orderEntities.addAll(temps); } } } } syncOrderResponse.setOrderEntities(orderEntities); List codeEntities = new ArrayList<>(); List orderDetailBizEntities = new ArrayList<>(); List orderDetailCodeEntities = new ArrayList<>(); List orderDetailResultEntities = new ArrayList<>(); if (CollUtil.isNotEmpty(orderEntities)) { for (IoOrderEntity orderEntity : orderEntities) { List codes = codesService.findByOrderId(orderEntity.getBillNo()); if (CollUtil.isNotEmpty(codes)) { codeEntities.addAll(codes); } List bizEntities = orderDetailBizService.findByOrderId(orderEntity.getBillNo()); if (CollUtil.isNotEmpty(bizEntities)) { orderDetailBizEntities.addAll(bizEntities); } List detailCodeEntities = orderDetailCodeService.findByOrderId(orderEntity.getBillNo()); if (CollUtil.isNotEmpty(detailCodeEntities)) { orderDetailCodeEntities.addAll(detailCodeEntities); } List detailResultEntities = orderDetailResultService.findByOrderId(orderEntity.getBillNo()); if (CollUtil.isNotEmpty(detailResultEntities)) { orderDetailResultEntities.addAll(detailResultEntities); } } } syncOrderResponse.setOrderDetailBizEntities(orderDetailBizEntities); syncOrderResponse.setOrderDetailCodeEntities(orderDetailCodeEntities); syncOrderResponse.setOrderDetailResultEntities(orderDetailResultEntities); return syncOrderResponse; } }