UDI管理系统定时上传,定时下载单据相关
							parent
							
								
									8d5501c7c1
								
							
						
					
					
						commit
						39baff10bf
					
				| @ -0,0 +1,10 @@ | |||||||
|  | package com.glxp.api.req.sync; | ||||||
|  | 
 | ||||||
|  | import com.glxp.api.util.page.ListPageRequest; | ||||||
|  | import lombok.Data; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | public class SpsSyncDataRequest extends ListPageRequest { | ||||||
|  | 
 | ||||||
|  |     private String lastUpdateTime; | ||||||
|  | } | ||||||
| @ -0,0 +1,22 @@ | |||||||
|  | package com.glxp.api.res.sync; | ||||||
|  | 
 | ||||||
|  | import com.glxp.api.entity.inout.*; | ||||||
|  | import lombok.Data; | ||||||
|  | 
 | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | @Data | ||||||
|  | public class SpsSyncOrderResponse { | ||||||
|  | 
 | ||||||
|  |     //同步任务ID
 | ||||||
|  |     private String taskId; | ||||||
|  |     List<IoOrderEntity> orderEntities; | ||||||
|  |     List<IoCodeEntity> codeEntities; | ||||||
|  |     List<IoOrderDetailBizEntity> orderDetailBizEntities; | ||||||
|  |     List<IoOrderDetailCodeEntity> orderDetailCodeEntities; | ||||||
|  |     List<IoOrderDetailResultEntity> orderDetailResultEntities; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,209 @@ | |||||||
|  | package com.glxp.api.service.sync; | ||||||
|  | 
 | ||||||
|  | import cn.hutool.core.collection.CollUtil; | ||||||
|  | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import com.alibaba.fastjson.TypeReference; | ||||||
|  | import com.glxp.api.common.res.BaseResponse; | ||||||
|  | import com.glxp.api.common.util.ResultVOUtils; | ||||||
|  | import com.glxp.api.constant.BasicProcessStatus; | ||||||
|  | import com.glxp.api.constant.ConstantStatus; | ||||||
|  | import com.glxp.api.dao.inout.*; | ||||||
|  | import com.glxp.api.entity.inout.*; | ||||||
|  | import com.glxp.api.entity.sync.BasicDownloadStatusEntity; | ||||||
|  | import com.glxp.api.entity.sync.BasicExportStatusEntity; | ||||||
|  | import com.glxp.api.entity.sync.BasicExportStatusTimeEntity; | ||||||
|  | import com.glxp.api.http.sync.SpGetHttpClient; | ||||||
|  | import com.glxp.api.req.sync.SpsSyncDataRequest; | ||||||
|  | import com.glxp.api.res.sync.SpsSyncOrderResponse; | ||||||
|  | import com.glxp.api.service.inout.IoOrderService; | ||||||
|  | import com.glxp.api.util.CustomUtil; | ||||||
|  | import com.glxp.api.util.DateUtil; | ||||||
|  | import org.apache.ibatis.session.ExecutorType; | ||||||
|  | import org.apache.ibatis.session.SqlSession; | ||||||
|  | import org.apache.ibatis.session.SqlSessionFactory; | ||||||
|  | import org.apache.ibatis.session.TransactionIsolationLevel; | ||||||
|  | import org.springframework.beans.BeanUtils; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  | 
 | ||||||
|  | import javax.annotation.Resource; | ||||||
|  | import java.util.Date; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | @Service | ||||||
|  | public class HeartService { | ||||||
|  |     @Resource | ||||||
|  |     BasicExportService basicExportService; | ||||||
|  |     @Resource | ||||||
|  |     UpBasicService upBasicService; | ||||||
|  |     @Resource | ||||||
|  |     SpGetHttpClient spGetHttp; | ||||||
|  |     @Resource | ||||||
|  |     BasicExportTimeService basicExportTimeService; | ||||||
|  |     @Resource | ||||||
|  |     BasicDownloadService basicDownloadService; | ||||||
|  |     @Resource | ||||||
|  |     SqlSessionFactory sqlSessionFactory; | ||||||
|  |     @Resource | ||||||
|  |     IoOrderService orderService; | ||||||
|  | 
 | ||||||
|  |     public BaseResponse uploadAllOrder(String syncTime) { | ||||||
|  |         SpsSyncDataRequest spsSyncDataRequest = new SpsSyncDataRequest(); | ||||||
|  |         if (syncTime == null) { | ||||||
|  |             BasicExportStatusTimeEntity basicExportStatusTimeEntity = basicExportTimeService.findByKey(ConstantStatus.SYNC_SCAN_ORDER); | ||||||
|  |             if (basicExportStatusTimeEntity == null) { | ||||||
|  |                 basicExportStatusTimeEntity = new BasicExportStatusTimeEntity(); | ||||||
|  |                 basicExportStatusTimeEntity.setLastUpdateTime("1949-10-01 09:00:00"); | ||||||
|  |             } | ||||||
|  |             spsSyncDataRequest.setLastUpdateTime(basicExportStatusTimeEntity.getLastUpdateTime()); | ||||||
|  |         } else { | ||||||
|  |             spsSyncDataRequest.setLastUpdateTime(syncTime); | ||||||
|  |         } | ||||||
|  |         SpsSyncOrderResponse spsSyncOrderResponse = upBasicService.upAllOrder(spsSyncDataRequest); | ||||||
|  |         if (CollUtil.isEmpty(spsSyncOrderResponse.getOrderEntities()) | ||||||
|  |                 && CollUtil.isEmpty(spsSyncOrderResponse.getCodeEntities())) { | ||||||
|  |             //无数据不记录日志
 | ||||||
|  |             return ResultVOUtils.success("无数据"); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         BasicExportStatusEntity basicExportStatusEntity1 = basicExportService.findByData(ConstantStatus.SYNC_SCAN_ORDER, 0); | ||||||
|  |         if (basicExportStatusEntity1 == null) { | ||||||
|  |             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.setStartTime(new Date()); | ||||||
|  |             orderStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_WAIT); | ||||||
|  |             orderStatusEntity.setScheduleType(BasicProcessStatus.SCHEDULE_NORMAL); | ||||||
|  |             basicExportService.insertExportStatus(orderStatusEntity); | ||||||
|  |             basicExportStatusEntity1 = orderStatusEntity; | ||||||
|  |         } | ||||||
|  |         BasicExportStatusTimeEntity basicExportStatusTimeEntity = new BasicExportStatusTimeEntity(); | ||||||
|  |         basicExportStatusTimeEntity.setLastUpdateTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss")); | ||||||
|  |         basicExportStatusTimeEntity.setKey(ConstantStatus.SYNC_SCAN_ORDER); | ||||||
|  |         spsSyncOrderResponse.setTaskId(basicExportStatusEntity1.getId()); | ||||||
|  |         BaseResponse<String> baseResponse1 = spGetHttp.postAllOrder(spsSyncOrderResponse); | ||||||
|  |         if (baseResponse1.getCode() == 20000) { | ||||||
|  |             basicExportStatusEntity1.setStatus(ConstantStatus.SYNC_STATUS_SUCCESS); | ||||||
|  |         } else { | ||||||
|  |             basicExportStatusEntity1.setStatus(ConstantStatus.SYNC_STATUS_FAIL); | ||||||
|  |         } | ||||||
|  |         basicExportStatusEntity1.setEndTime(new Date()); | ||||||
|  |         basicExportTimeService.insertExportStatus(basicExportStatusTimeEntity); | ||||||
|  | 
 | ||||||
|  |         //拼接日志
 | ||||||
|  |         String logs = ""; | ||||||
|  |         if (CollUtil.isNotEmpty(spsSyncOrderResponse.getOrderEntities())) | ||||||
|  |             logs = logs + "单据:" + spsSyncOrderResponse.getOrderEntities().size() + "条\n"; | ||||||
|  |         if (CollUtil.isNotEmpty(spsSyncOrderResponse.getOrderDetailBizEntities())) | ||||||
|  |             logs = logs + "单据详情:" + spsSyncOrderResponse.getOrderDetailBizEntities().size() + "条\n"; | ||||||
|  |         if (CollUtil.isNotEmpty(spsSyncOrderResponse.getCodeEntities())) | ||||||
|  |             logs = logs + "单据条码信息:" + spsSyncOrderResponse.getCodeEntities().size() + "条\n"; | ||||||
|  |         basicExportStatusEntity1.setRemark(logs); | ||||||
|  |         basicExportStatusEntity1.setUpdateTime(new Date()); | ||||||
|  |         basicExportService.updateExportStatus(basicExportStatusEntity1); | ||||||
|  |         return ResultVOUtils.success(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void dlAllOrder() { | ||||||
|  |         BaseResponse<List<BasicExportStatusEntity>> baseResponse = spGetHttp.getBasicStatus(BasicProcessStatus.NEW_ALL_ORDER + ""); | ||||||
|  |         List<BasicExportStatusEntity> pageSimpleResponse = baseResponse.getData(); | ||||||
|  |         if (pageSimpleResponse != null) { | ||||||
|  |             List<BasicExportStatusEntity> basicExportStatusEntities = pageSimpleResponse; | ||||||
|  |             if (basicExportStatusEntities != null && basicExportStatusEntities.size() > 0) { | ||||||
|  |                 for (BasicExportStatusEntity basicExportStatusEntity : basicExportStatusEntities) { | ||||||
|  |                     String datas = spGetHttp.getBasicData(basicExportStatusEntity.getId(), BasicProcessStatus.NEW_ALL_ORDER); | ||||||
|  |                     BaseResponse<SpsSyncOrderResponse> response = JSONObject.parseObject(datas, new TypeReference<BaseResponse<SpsSyncOrderResponse>>() { | ||||||
|  |                     }); | ||||||
|  |                     if (response.getCode() == 20000 && response.getData() != null) { | ||||||
|  |                         SpsSyncOrderResponse syncDataResponse = response.getData(); | ||||||
|  |                         BasicDownloadStatusEntity basicDownloadStatusEntity = new BasicDownloadStatusEntity(); | ||||||
|  |                         basicDownloadStatusEntity.setId(CustomUtil.getId()); | ||||||
|  |                         basicDownloadStatusEntity.setTaskId(syncDataResponse.getTaskId()); | ||||||
|  |                         basicDownloadStatusEntity.setStartTime(new Date()); | ||||||
|  |                         basicDownloadStatusEntity.setIdDatas(ConstantStatus.SYNC_DOWNLOAD_SCAN_ORDER); | ||||||
|  |                         basicDownloadStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_WAIT); //下载中
 | ||||||
|  |                         basicDownloadStatusEntity.setType(BasicProcessStatus.NEW_ALL_ORDER); | ||||||
|  |                         basicDownloadStatusEntity.setScheduleType(1); | ||||||
|  |                         basicDownloadService.insertDownloadStatus(basicDownloadStatusEntity); | ||||||
|  |                         StringBuffer remark = new StringBuffer(); | ||||||
|  | 
 | ||||||
|  |                         SqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH, TransactionIsolationLevel.READ_COMMITTED); | ||||||
|  |                         if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) { | ||||||
|  |                             try { | ||||||
|  |                                 List<IoOrderEntity> orderEntities = syncDataResponse.getOrderEntities(); | ||||||
|  |                                 IoOrderDao mapper = batchSession.getMapper(IoOrderDao.class); | ||||||
|  |                                 for (IoOrderEntity orderEntity : orderEntities) { | ||||||
|  |                                     orderEntity.setUpdateTime(null); | ||||||
|  |                                     orderEntity.setFromType(ConstantStatus.FROM_UDISP); | ||||||
|  |                                     orderEntity.setStatus(ConstantStatus.ORDER_STATUS_PROCESS); | ||||||
|  |                                     IoOrderEntity temp = orderService.findById(orderEntity.getBillNo()); | ||||||
|  |                                     if (temp == null) { | ||||||
|  |                                         orderEntity.setId(null); | ||||||
|  |                                         mapper.insert(orderEntity); | ||||||
|  |                                         if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { | ||||||
|  |                                             IoCodeTempDao codeMappert = batchSession.getMapper(IoCodeTempDao.class); | ||||||
|  |                                             List<IoCodeEntity> warehouseEntityList = syncDataResponse.getCodeEntities(); | ||||||
|  |                                             for (IoCodeEntity warehouseEntity : warehouseEntityList) { | ||||||
|  |                                                 if (warehouseEntity.getOrderId().equals(orderEntity.getBillNo())) { | ||||||
|  |                                                     IoCodeTempEntity codeTempEntity = new IoCodeTempEntity(); | ||||||
|  |                                                     BeanUtils.copyProperties(warehouseEntity, codeTempEntity); | ||||||
|  |                                                     codeTempEntity.setId(null); | ||||||
|  |                                                     codeMappert.insert(codeTempEntity); | ||||||
|  |                                                 } | ||||||
|  | 
 | ||||||
|  |                                             } | ||||||
|  |                                         } | ||||||
|  | 
 | ||||||
|  |                                         if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailBizEntities())) { | ||||||
|  |                                             IoOrderDetailBizDao orderDetailBizDao = batchSession.getMapper(IoOrderDetailBizDao.class); | ||||||
|  |                                             List<IoOrderDetailBizEntity> orderDetailBizEntities = syncDataResponse.getOrderDetailBizEntities(); | ||||||
|  |                                             for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { | ||||||
|  |                                                 if (bizEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { | ||||||
|  |                                                     orderDetailBizDao.insert(bizEntity); | ||||||
|  |                                                 } | ||||||
|  |                                             } | ||||||
|  |                                         } | ||||||
|  | 
 | ||||||
|  |                                         if (CollUtil.isNotEmpty(syncDataResponse.getOrderDetailCodeEntities())) { | ||||||
|  |                                             IoOrderDetailCodeDao orderDetailCodeDao = batchSession.getMapper(IoOrderDetailCodeDao.class); | ||||||
|  |                                             List<IoOrderDetailCodeEntity> orderDetailCodeEntities = syncDataResponse.getOrderDetailCodeEntities(); | ||||||
|  |                                             for (IoOrderDetailCodeEntity detailCodeEntity : orderDetailCodeEntities) { | ||||||
|  |                                                 if (detailCodeEntity.getOrderIdFk().equals(orderEntity.getBillNo())) { | ||||||
|  |                                                     orderDetailCodeDao.insert(detailCodeEntity); | ||||||
|  |                                                 } | ||||||
|  |                                             } | ||||||
|  |                                         } | ||||||
|  | 
 | ||||||
|  |                                         batchSession.commit(); | ||||||
|  |                                     } | ||||||
|  |                                 } | ||||||
|  |                                 batchSession.commit(); | ||||||
|  | 
 | ||||||
|  |                                 String logs = ""; | ||||||
|  |                                 if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) | ||||||
|  |                                     logs = logs + "单据:" + syncDataResponse.getOrderEntities().size() + "条\n"; | ||||||
|  |                                 if (CollUtil.isNotEmpty(syncDataResponse.getOrderEntities())) | ||||||
|  |                                     logs = logs + "单据详情:" + syncDataResponse.getOrderDetailBizEntities().size() + "条\n"; | ||||||
|  |                                 if (CollUtil.isNotEmpty(syncDataResponse.getCodeEntities())) | ||||||
|  |                                     logs = logs + "单据条码信息:" + syncDataResponse.getCodeEntities().size() + "条\n"; | ||||||
|  |                                 remark.append(logs); | ||||||
|  |                             } catch (Exception e) { | ||||||
|  |                                 e.printStackTrace(); | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                         batchSession.close(); | ||||||
|  |                         spGetHttp.postBasicStatus(basicExportStatusEntity.getId()); | ||||||
|  | 
 | ||||||
|  |                         basicDownloadStatusEntity.setUpdateTime(new Date()); | ||||||
|  |                         basicDownloadStatusEntity.setEndTime(new Date()); | ||||||
|  |                         basicDownloadStatusEntity.setRemark(remark.toString()); | ||||||
|  |                         basicDownloadStatusEntity.setStatus(ConstantStatus.SYNC_STATUS_SUCCESS); | ||||||
|  |                         basicDownloadService.updateDownloadStatus(basicDownloadStatusEntity); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,224 @@ | |||||||
|  | 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; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
| @ -0,0 +1,92 @@ | |||||||
|  | package com.glxp.api.task; | ||||||
|  | 
 | ||||||
|  | import com.glxp.api.dao.schedule.ScheduledDao; | ||||||
|  | import com.glxp.api.dao.system.SyncDataSetDao; | ||||||
|  | import com.glxp.api.entity.system.ScheduledEntity; | ||||||
|  | import com.glxp.api.entity.system.SyncDataSetEntity; | ||||||
|  | import com.glxp.api.req.system.ScheduledRequest; | ||||||
|  | import com.glxp.api.service.sync.HeartService; | ||||||
|  | import com.glxp.api.service.system.SystemParamConfigService; | ||||||
|  | import com.glxp.api.util.RedisUtil; | ||||||
|  | import org.slf4j.Logger; | ||||||
|  | import org.slf4j.LoggerFactory; | ||||||
|  | import org.springframework.scheduling.annotation.EnableScheduling; | ||||||
|  | import org.springframework.scheduling.annotation.SchedulingConfigurer; | ||||||
|  | import org.springframework.scheduling.config.ScheduledTaskRegistrar; | ||||||
|  | import org.springframework.scheduling.support.CronTrigger; | ||||||
|  | import org.springframework.stereotype.Component; | ||||||
|  | 
 | ||||||
|  | import javax.annotation.Resource; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @Component | ||||||
|  | @EnableScheduling | ||||||
|  | public class SyncHeartTask implements SchedulingConfigurer { | ||||||
|  | 
 | ||||||
|  |     final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class); | ||||||
|  |     @Resource | ||||||
|  |     protected ScheduledDao scheduledDao; | ||||||
|  |     @Resource | ||||||
|  |     RedisUtil redisUtil; | ||||||
|  |     @Resource | ||||||
|  |     HeartService heartService; | ||||||
|  |     @Resource | ||||||
|  |     private SyncDataSetDao syncDataSetDao; | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { | ||||||
|  | 
 | ||||||
|  |         scheduledTaskRegistrar.addTriggerTask(() -> process(), | ||||||
|  |                 triggerContext -> { | ||||||
|  |                     ScheduledRequest scheduledRequest = new ScheduledRequest(); | ||||||
|  |                     scheduledRequest.setCronName("heartTask"); | ||||||
|  |                     ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest); | ||||||
|  |                     String cron = scheduledEntity.getCron(); | ||||||
|  |                     if (cron.isEmpty()) { | ||||||
|  |                         logger.error("cron is null"); | ||||||
|  |                     } | ||||||
|  |                     return new CronTrigger(cron).nextExecutionTime(triggerContext); | ||||||
|  |                 }); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     private void process() { | ||||||
|  | 
 | ||||||
|  |         logger.info("数据同步心跳"); | ||||||
|  |         //查询数据同步设置
 | ||||||
|  |         SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet(); | ||||||
|  |         if (syncDataSetEntity.isDownstreamEnable()) { | ||||||
|  | 
 | ||||||
|  |             //定时上传最近更新单据数据至上游轮询时间
 | ||||||
|  |             long timeInterval2 = syncDataSetEntity.getOrderSyncTime() * 60 * 1000L; | ||||||
|  |             long curTime2 = System.currentTimeMillis(); | ||||||
|  |             Long lastTime2 = (Long) redisUtil.get("SPS_SYNC_UPLOAD_ORDER"); | ||||||
|  |             if (lastTime2 == null) { | ||||||
|  |                 lastTime2 = System.currentTimeMillis(); | ||||||
|  |                 redisUtil.set("SPS_SYNC_UPLOAD_ORDER", lastTime2); | ||||||
|  |             } | ||||||
|  |             if (curTime2 - lastTime2 > timeInterval2) { | ||||||
|  |                 heartService.uploadAllOrder(null); | ||||||
|  |                 redisUtil.set("SPS_SYNC_UPLOAD_ORDER", curTime2); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             //定时下载上游最近更新数据轮询时间
 | ||||||
|  |             long timeInterval = syncDataSetEntity.getSyncDownloadTime() * 60 * 1000; | ||||||
|  |             long curTime = System.currentTimeMillis(); | ||||||
|  |             Long lastTime = (Long) redisUtil.get("SPS_SYNC_DOWNLOAD_DATA"); | ||||||
|  |             if (lastTime == null) { | ||||||
|  |                 lastTime = System.currentTimeMillis(); | ||||||
|  |                 redisUtil.set("SPS_SYNC_DOWNLOAD_DATA", lastTime); | ||||||
|  |             } | ||||||
|  |             if (curTime - lastTime > timeInterval) { | ||||||
|  |                 heartService.dlAllOrder(); | ||||||
|  |                 redisUtil.set("SPS_SYNC_DOWNLOAD_DATA", curTime); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
					Loading…
					
					
				
		Reference in New Issue