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.*; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.purchase.*; import com.glxp.api.entity.system.SyncDataBustypeEntity; import com.glxp.api.entity.system.SyncDataChangeBustypesEntity; import com.glxp.api.entity.system.SyncDataPurTypeEntity; 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.SpsSyncBusOrderResponse; import com.glxp.api.res.sync.SpsSyncBusResponse; import com.glxp.api.res.sync.SpsSyncDataResponse; 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.IBasicBusTypeChangeService; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.basic.impl.BasicBussinessTypeServiceImpl; import com.glxp.api.service.inout.*; import com.glxp.api.service.purchase.PurOrderDetailService; import com.glxp.api.service.purchase.PurOrderService; import com.glxp.api.service.thrsys.IThrBusTypeOriginService; import com.glxp.api.util.DateUtil; import org.springframework.beans.BeanUtils; import org.springframework.data.annotation.Reference; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @Service public class UpBasicService { @Resource SyncDataSetService syncDataSetService; //已完成扫码单据 @Resource IoOrderService orderService; @Resource IoCodeService codesService; @Resource IoOrderDetailBizService orderDetailBizService; @Resource IoOrderDetailCodeService orderDetailCodeService; @Resource IoOrderDetailResultService orderDetailResultService; @Resource PurOrderService purOrderService; @Resource PurOrderDetailService purOrderDetailService; @Resource IoOrderInvoiceService orderInvoiceService; //上传最近更新扫码单据 public SpsSyncOrderResponse upAllOrder(SpsSyncDataRequest spsSyncDataRequest) { SpsSyncOrderResponse syncOrderResponse = new SpsSyncOrderResponse(); //查询数据同步设置 SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); List orderEntities = new ArrayList<>(); FilterOrderRequest orderFilterRequest = new FilterOrderRequest(); BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest); if (CollUtil.isNotEmpty(syncDataSetEntity.getBusTypes())) { for (SyncDataBustypeEntity syncDataBustypeEntity : syncDataSetEntity.getBusTypes()) { List temps = orderService.findByStatus(syncDataBustypeEntity.getAction(), syncDataBustypeEntity.getOrderStatus(), DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); 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<>(); List orderInvoiceEntities = 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); } List invoiceEntities = orderInvoiceService.findByBillNo(orderEntity.getBillNo()); if (CollUtil.isNotEmpty(invoiceEntities)) { orderInvoiceEntities.addAll(invoiceEntities); } } } syncOrderResponse.setCodeEntities(codeEntities); syncOrderResponse.setOrderDetailBizEntities(orderDetailBizEntities); syncOrderResponse.setOrderDetailCodeEntities(orderDetailCodeEntities); syncOrderResponse.setOrderDetailResultEntities(orderDetailResultEntities); syncOrderResponse.setOrderInvoiceEntities(orderInvoiceEntities); return syncOrderResponse; } //上传最近更新业务单据 public SpsSyncBusOrderResponse upAllBusOrder(SpsSyncDataRequest spsSyncDataRequest) { SpsSyncBusOrderResponse syncOrderResponse = new SpsSyncBusOrderResponse(); //查询数据同步设置 SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); List purOrderEntities = new ArrayList<>(); FilterOrderRequest orderFilterRequest = new FilterOrderRequest(); BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest); if (CollUtil.isNotEmpty(syncDataSetEntity.getChangeBusTypes())) { for (SyncDataChangeBustypesEntity syncDataChangeBustypesEntity : syncDataSetEntity.getChangeBusTypes()) { if (syncDataChangeBustypesEntity.getAction().equals(ConstantStatus.BUS_ORDER_CGDD)) { List temps = purOrderService.findByStatus(syncDataChangeBustypesEntity.getAction(), syncDataChangeBustypesEntity.getOrderStatus(), DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); if (CollUtil.isNotEmpty(temps)) { purOrderEntities.addAll(temps); } } } } syncOrderResponse.setPurOrderEntities(purOrderEntities); List purOrderDetailEntities = new ArrayList<>(); if (CollUtil.isNotEmpty(purOrderEntities)) { for (PurOrderEntity orderEntity : purOrderEntities) { List detailResultEntities = purOrderDetailService.findByOrderId(orderEntity.getId() + ""); if (CollUtil.isNotEmpty(detailResultEntities)) { purOrderDetailEntities.addAll(detailResultEntities); } } } syncOrderResponse.setPurOrderDetailEntities(purOrderDetailEntities); return syncOrderResponse; } @Resource IBasicBussinessTypeService basicBussinessTypeService; @Resource IBasicBusTypeChangeService basicBusTypeChangeService; @Resource IThrBusTypeOriginService thrBusTypeOriginService; //上传最近更新单据类型 public SpsSyncBusResponse upAllBus(SpsSyncDataRequest spsSyncDataRequest) { SpsSyncBusResponse spsSyncBusResponse = new SpsSyncBusResponse(); SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); //扫码单据类型 if (syncDataSetEntity.getTypeScan() == 1) { List bussinessTypeEntities = basicBussinessTypeService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); spsSyncBusResponse.setBussinessTypeEntities(bussinessTypeEntities); } // 业务单据类型 if (syncDataSetEntity.getTypeBus() == 1) { List basicBusTypeChangeEntities = basicBusTypeChangeService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); spsSyncBusResponse.setBusTypeChangeEntities(basicBusTypeChangeEntities); } //第三方单据类型 if (syncDataSetEntity.getTypeThird() == 1) { List thrBusTypeOriginEntities = thrBusTypeOriginService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); spsSyncBusResponse.setThrBusTypeOriginEntities(thrBusTypeOriginEntities); } return spsSyncBusResponse; } @Resource InvWarehouseService invWarehouseService; @Resource WarehouseBussinessTypeService warehouseBussinessTypeService; @Resource WarehouseUserService warehouseUserService; @Resource InvBusUserService invBusUserService; @Resource AuthAdminService authAdminService; @Resource DeptService deptService; @Resource DeptUserService deptUserService; public SpsSyncDataResponse uploadAllUserData(SpsSyncDataRequest spsSyncDataRequest) { SpsSyncDataResponse syncDataResponse = new SpsSyncDataResponse(); SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); if (syncDataSetEntity.getBasicDept() == 1) { //获取部门信息 FilterInvWarehouseRequest filterDeptRequest = new FilterInvWarehouseRequest(); BeanUtils.copyProperties(spsSyncDataRequest, filterDeptRequest); List deptEntityList = deptService.filterGroupInvWarehouse(filterDeptRequest); syncDataResponse.setDeptEntityList(deptEntityList); List allDeptUserEntities = new ArrayList<>(); if (CollUtil.isNotEmpty(deptEntityList)) { for (DeptEntity deptEntity : deptEntityList) { FilterDeptUserReqeust filterDeptUserReqeust = new FilterDeptUserReqeust(); filterDeptUserReqeust.setDeptId(deptEntity.getId().longValue()); List deptUserEntities = deptUserService.selectDeptUser(filterDeptUserReqeust); allDeptUserEntities.addAll(deptUserEntities); } syncDataResponse.setDeptUserEntities(allDeptUserEntities); } } //仓库字典 if (syncDataSetEntity.getBasicInv() == 1) { //仓库字典 List invWarehouseEntities = invWarehouseService.findByLastTime(DateUtil.parseDate(spsSyncDataRequest.getLastUpdateTime())); syncDataResponse.setInvWarehouseEntities(invWarehouseEntities); if (CollUtil.isNotEmpty(invWarehouseEntities)) { List mWarehouseBussinessTypeEntities = new ArrayList<>(); List mWarehouseUserEntities = new ArrayList<>(); List mInvBusUserEntities = new ArrayList<>(); for (InvWarehouseEntity invWarehouseEntity : invWarehouseEntities) { //获取仓库关联单据类型 FilterInvBusTypeRequest filterInvBusTypeRequest = new FilterInvBusTypeRequest(); filterInvBusTypeRequest.setCode(invWarehouseEntity.getCode()); List warehouseBussinessTypeEntities = warehouseBussinessTypeService.filterList(filterInvBusTypeRequest); mWarehouseBussinessTypeEntities.addAll(warehouseBussinessTypeEntities); //获取仓库关联用户 FilterInvUserRequest filterInvUserRequest = new FilterInvUserRequest(); filterInvUserRequest.setCode(invWarehouseEntity.getCode()); List warehouseUserEntities = warehouseUserService.filterWarehouseUsers(filterInvUserRequest); mWarehouseUserEntities.addAll(warehouseUserEntities); if (CollUtil.isNotEmpty(warehouseUserEntities)) { for (WarehouseUserEntity warehouseUserEntity : warehouseUserEntities) { List invBusUserEntities = invBusUserService.selectByUnion(warehouseUserEntity.getUserid() + "", invWarehouseEntity.getCode()); mInvBusUserEntities.addAll(invBusUserEntities); } } } syncDataResponse.setInvBusUserEntities(mInvBusUserEntities); syncDataResponse.setWarehouseUserEntities(mWarehouseUserEntities); syncDataResponse.setWarehouseBussinessTypeEntities(mWarehouseBussinessTypeEntities); } } //系统用户信息 if (syncDataSetEntity.getSysUser() == 1) { FilterAuthUserRequest authAdminQueryRequest = new FilterAuthUserRequest(); BeanUtils.copyProperties(spsSyncDataRequest, authAdminQueryRequest); List authAdminList = authAdminService.listAdminPage(authAdminQueryRequest); syncDataResponse.setAuthAdminList(authAdminList); } return syncDataResponse; } }