‘linchangsheng’ 5 月之前
父節點
當前提交
379cc7d6c6

+ 1 - 1
mall-server-api/src/main/resources/bootstrap-test.properties

@@ -8,7 +8,7 @@ express.callback=${sys.url}/${server.servlet.context-path}/common/express/callba
 
 #定时器
 schedule.enable=true
-schedule.gongdan.enable=true
+schedule.gongdan.enable=false
 #分销商城商品接口
 gjmall.goods.url=http://121.43.111.127:10003/goods/outside/list
 

+ 301 - 2
mall-server-sync-api/src/main/java/com/gree/mall/manager/logic/SyncOrderInfoLogic.java

@@ -258,6 +258,7 @@ public class SyncOrderInfoLogic {
                     itfGreeSynDownloadRecs.stream().map(ItfGreeSynDownloadRec::getWorkOrderId)
                             .collect(Collectors.toList()))
                     .eq(ItfGreeSynDownloadRec::getGreeStatSynStatus, 0)
+                    .le(ItfGreeSynDownloadRec::getUpdatedTimestamp,new Date())
                     .set(ItfGreeSynDownloadRec::getGreeStatSynStatus, 9)
                     .update();
 
@@ -311,7 +312,7 @@ public class SyncOrderInfoLogic {
 
 
             List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecs = itfGreeSynDownloadRecService.lambdaQuery()
-                    .in(ItfGreeSynDownloadRec::getGreeStatSynStatus, 0, 99)
+                    .in(ItfGreeSynDownloadRec::getGreeStatSynStatus, 0)
                     .last("limit 20")
                     .orderByAsc(ItfGreeSynDownloadRec::getGreeStatSynStatus)
                     .list();
@@ -338,7 +339,7 @@ public class SyncOrderInfoLogic {
 
                 itfGreeSynDownloadRecService.lambdaUpdate()
                         .in(ItfGreeSynDownloadRec::getWorkOrderId, collect)
-                        .le(ItfGreeSynDownloadRec::getUpdatedTimestamp, new Date())
+                        .notIn(ItfGreeSynDownloadRec::getGreeStatSynStatus,1,9)
                         .set(ItfGreeSynDownloadRec::getGreeStatSynStatus, 1)
                         .set(ItfGreeSynDownloadRec::getDownloadBatchNo, batch)
                         .set(ItfGreeSynDownloadRec::getGreeStatSynTime, new Date())
@@ -650,4 +651,302 @@ public class SyncOrderInfoLogic {
 
 
     }
+
+    public void syncDetailFail() {
+
+        while (true) {
+
+
+            List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecs = itfGreeSynDownloadRecService.lambdaQuery()
+                    .in(ItfGreeSynDownloadRec::getGreeStatSynStatus, 99)
+                    .lt(ItfGreeSynDownloadRec::getSynTimes, 10)
+                    .last("limit 1")
+                    .orderByAsc(ItfGreeSynDownloadRec::getGreeStatSynStatus)
+                    .list();
+            if (CollectionUtils.isEmpty(itfGreeSynDownloadRecs))
+                return;
+
+
+            try {
+
+                String batch = IdWorker.getIdStr();
+
+                String accessToken = this.getAccessTokenV3();
+
+
+                Map<String, String> params = new HashMap<>();
+
+                Map<String, String> heard = new HashMap<>();
+                heard.put("authorization", "Bearer " + accessToken);
+
+                WorkOrderSearchReq workOrderSearchReq = new WorkOrderSearchReq();
+
+                List<String> collect = itfGreeSynDownloadRecs.stream().map(ItfGreeSynDownloadRec::getWorkOrderId).collect(Collectors.toList());
+                List<Long> syncIds = itfGreeSynDownloadRecs.stream().map(ItfGreeSynDownloadRec::getSynReqId).collect(Collectors.toList());
+
+                workOrderSearchReq.setWorkOrderIds(collect);
+
+                String json = JSONUtil.toJsonStr(workOrderSearchReq);
+
+
+
+                String body = HttpRequest.post(greeUrl + Constant.gree.POST_WORKER_ORDER_DETAIL)
+                        .headerMap(heard, false)
+                        .body(json).execute().body();
+
+                log.info("工单同步详情返回:" + body+"同步token"+heard.toString()+"请求参数"+json);
+
+                Map<String, Object> bodyMap = JSON.parseObject(body);
+                String s = bodyMap.get("data").toString();
+
+
+
+
+
+                JSONArray jsonArray = JSONUtil.parseArray(s);
+
+                List<WorkOrderRelationBean> itfGreeSynDownloadRecBeans = JSONUtil.toList(jsonArray, WorkOrderRelationBean.class);
+
+
+                List<ItfTblWorkOrderFeedback> feedbackRespList = new ArrayList<>();
+                List<ItfTblCollectionCharge> collectionChargeList = new ArrayList<>();
+                List<ItfTblCollectionChargeDetail> collectionChargeDetails = new ArrayList<>();
+                List<ItfTblOldProductOrderDetail> tblOldProductOrderDetailList = new ArrayList<>();
+                List<ItfTblWorkOrderAddComplain> tblWorkOrderAddComplainList = new ArrayList<>();
+                List<ItfTblWorkOrderAppoint> tblWorkOrderAppointList = new ArrayList<>();
+                List<ItfTblWorkOrderCancel> tblWorkOrderCancelList = new ArrayList<>();
+                List<ItfTblWorkOrderComplainFeedback> tblWorkOrderComplainFeedbackList = new ArrayList<>();
+                List<ItfTblWorkOrderComplain> tblWorkOrderComplainList = new ArrayList<>();
+                List<ItfTblWorkOrderCompleteInfo> tblWorkOrderCompleteInfoList = new ArrayList<>();
+                List<ItfTblWorkOrderConsult> tblWorkOrderConsultList = new ArrayList<>();
+                List<ItfTblWorkOrderDetailBarcode> tblWorkOrderDetailBarcodeList = new ArrayList<>();
+                List<ItfTblWorkOrderDetailRelocation> tblWorkOrderDetailRelocationList = new ArrayList<>();
+                List<ItfTblWorkOrderDispatchOutlets> tblWorkOrderDispatchOutletsList = new ArrayList<>();
+                List<ItfTblWorkOrderEngineer> tblWorkOrderEngineerList = new ArrayList<>();
+                List<ItfTblWorkOrderEvaluation> tblWorkOrderEvaluationList = new ArrayList<>();
+                List<ItfTblWorkOrderExt> tblWorkOrderExtList = new ArrayList<>();
+                List<ItfTblWorkOrderIndicators> tblWorkOrderIndicatorsList = new ArrayList<>();
+                List<ItfTblWorkOrderSign> tblWorkOrderSignList = new ArrayList<>();
+                List<ItfTblWorkOrderTag> tblWorkOrderTagList = new ArrayList<>();
+                List<ItfTblWorkOrderCharge> workOrderChargeList = new ArrayList<>();
+                List<ItfTblWorkOrderCollectionComplain> workOrderCollectionComplainList = new ArrayList<>();
+
+                List<ItfTblWorkOrderDispatchEngineer> tblWorkOrderDispatchEngineerList = new ArrayList<>();
+                List<ItfTblWorkOrderStatus> tblWorkOrderStatusList = new ArrayList<>();
+
+                List<ItfTblWorkOrderCollection> workOrderCollectionList = new ArrayList<>();
+                List<ItfTblCollectionRepair> collectionRepairList = new ArrayList<>();
+                List<ItfTblCollectionRepairPart> collectionRepairPartList = new ArrayList<>();
+                List<ItfTblCollectionRepairProject> collectionRepairProjectList = new ArrayList<>();
+                List<ItfTblCollectionRepairSymptomReason> collectionRepairSymptomReasonList = new ArrayList<>();
+                List<ItfTblWorkOrderDetail> tblWorkOrderDetailList = new ArrayList<>();
+
+                List<ItfTblWorkOrder> itfTblWorkOrders = new ArrayList<>();
+
+
+                for (WorkOrderRelationBean itfGreeSynDownloadRecBean : itfGreeSynDownloadRecBeans) {
+
+                    List<ItfGreeSynDownloadRec> itfGreeSynDownloadRecList = itfGreeSynDownloadRecs.stream()
+                            .filter(item -> item.getWorkOrderId().equals(itfGreeSynDownloadRecBean.getId())).collect(Collectors.toList());
+
+                    itfGreeSynDownloadRecBean.setDownloadBatchNo(batch);
+
+                    tblWorkOrderDetailList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDetailList());
+
+
+                    feedbackRespList.addAll(itfGreeSynDownloadRecBean.getFeedbackRespList());
+
+                    for (ItfTblCollectionChargeBean itfTblCollectionChargeBean : itfGreeSynDownloadRecBean.getCollectionChargeList()) {
+                        ItfTblCollectionCharge itfTblCollectionCharge = BeanUtil.toBean(itfTblCollectionChargeBean, ItfTblCollectionCharge.class);
+                        collectionChargeList.add(itfTblCollectionCharge);
+                        collectionChargeDetails.addAll(itfTblCollectionChargeBean.getCollectionChargeDetails());
+                    }
+
+                    tblOldProductOrderDetailList.addAll(itfGreeSynDownloadRecBean.getTblOldProductOrderDetailList());
+
+                    tblWorkOrderAddComplainList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderAddComplainList());
+
+                    tblWorkOrderAppointList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderAppointList());
+                    tblWorkOrderCancelList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderCancelList());
+                    tblWorkOrderComplainFeedbackList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderComplainFeedbackList());
+                    tblWorkOrderComplainList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderComplainList());
+                    tblWorkOrderCompleteInfoList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderCompleteInfoList());
+                    tblWorkOrderConsultList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderConsultList());
+                    tblWorkOrderDetailBarcodeList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDetailBarcodeList());
+                    tblWorkOrderDetailRelocationList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDetailRelocationList());
+                    tblWorkOrderDispatchOutletsList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDispatchOutletsList());
+                    tblWorkOrderEngineerList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderEngineerList());
+                    tblWorkOrderEvaluationList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderEvaluationList());
+                    tblWorkOrderExtList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderExtList());
+                    tblWorkOrderIndicatorsList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderIndicatorsList());
+                    tblWorkOrderSignList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderSignList());
+                    tblWorkOrderTagList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderTagList());
+                    workOrderCollectionComplainList.addAll(itfGreeSynDownloadRecBean.getWorkOrderCollectionComplainList());
+                    workOrderChargeList.addAll(itfGreeSynDownloadRecBean.getWorkOrderChargeList());
+
+
+                    for (ItfTblWorkOrderCollection0Bean itfTblWorkOrderCollectionBean : itfGreeSynDownloadRecBean.getWorkOrderCollectionList()) {
+
+                        ItfTblWorkOrderCollection itfTblWorkOrderCollection = BeanUtil.toBean(itfTblWorkOrderCollectionBean, ItfTblWorkOrderCollection.class);
+                        workOrderCollectionList.add(itfTblWorkOrderCollectionBean);
+
+                        collectionRepairList.addAll(itfTblWorkOrderCollectionBean.getCollectionRepairList());
+                        collectionRepairPartList.addAll(itfTblWorkOrderCollectionBean.getCollectionRepairPartList());
+                        collectionRepairProjectList.addAll(itfTblWorkOrderCollectionBean.getCollectionRepairProjectList());
+                        collectionRepairSymptomReasonList.addAll(itfTblWorkOrderCollectionBean.getCollectionRepairSymptomReasonList());
+                    }
+                    tblWorkOrderDispatchEngineerList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderDispatchEngineerList());
+                    tblWorkOrderStatusList.addAll(itfGreeSynDownloadRecBean.getTblWorkOrderStatusList());
+
+                    ItfTblWorkOrder itfTblWorkOrder = BeanUtil.toBean(itfGreeSynDownloadRecBean, ItfTblWorkOrder.class);
+                    itfTblWorkOrders.add(itfTblWorkOrder);
+
+                }
+
+                if (!CollectionUtils.isEmpty(feedbackRespList)) {
+                    feedbackRespList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderFeedbackService.saveBatch(feedbackRespList);
+                }
+
+                if (!CollectionUtils.isEmpty(tblWorkOrderDetailList)) {
+                    tblWorkOrderDetailList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderDetailService.saveBatch(tblWorkOrderDetailList);
+                }
+
+                if (!CollectionUtils.isEmpty(collectionChargeList)) {
+                    collectionChargeList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblCollectionChargeService.saveBatch(collectionChargeList);
+                }
+                if (!CollectionUtils.isEmpty(collectionChargeDetails)) {
+                    collectionChargeDetails.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblCollectionChargeDetailService.saveBatch(collectionChargeDetails);
+                }
+
+                if (!CollectionUtils.isEmpty(tblOldProductOrderDetailList)) {
+                    tblOldProductOrderDetailList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblOldProductOrderDetailService.saveBatch(tblOldProductOrderDetailList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderAddComplainList)) {
+                    tblWorkOrderAddComplainList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderAddComplainService.saveBatch(tblWorkOrderAddComplainList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderAppointList)) {
+                    tblWorkOrderAppointList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderAppointService.saveBatch(tblWorkOrderAppointList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderCancelList)) {
+                    tblWorkOrderCancelList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderCancelService.saveBatch(tblWorkOrderCancelList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderComplainList)) {
+                    tblWorkOrderComplainList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderComplainService.saveBatch(tblWorkOrderComplainList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderComplainFeedbackList)) {
+                    tblWorkOrderComplainFeedbackList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderComplainFeedbackService.saveBatch(tblWorkOrderComplainFeedbackList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderCompleteInfoList)) {
+                    tblWorkOrderCompleteInfoList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderCompleteInfoService.saveBatch(tblWorkOrderCompleteInfoList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderConsultList)) {
+                    tblWorkOrderConsultList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderConsultService.saveBatch(tblWorkOrderConsultList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderDetailBarcodeList)) {
+                    tblWorkOrderDetailBarcodeList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderDetailBarcodeService.saveBatch(tblWorkOrderDetailBarcodeList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderDetailRelocationList)) {
+                    tblWorkOrderDetailRelocationList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderDetailRelocationService.saveBatch(tblWorkOrderDetailRelocationList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderDispatchOutletsList)) {
+                    tblWorkOrderDispatchOutletsList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderDispatchOutletsService.saveBatch(tblWorkOrderDispatchOutletsList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderEngineerList)) {
+                    tblWorkOrderEngineerList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderEngineerService.saveBatch(tblWorkOrderEngineerList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderEvaluationList)) {
+                    tblWorkOrderEvaluationList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderEvaluationService.saveBatch(tblWorkOrderEvaluationList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderExtList)) {
+                    tblWorkOrderExtList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderExtService.saveBatch(tblWorkOrderExtList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderIndicatorsList)) {
+                    tblWorkOrderIndicatorsList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderIndicatorsService.saveBatch(tblWorkOrderIndicatorsList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderSignList)) {
+                    tblWorkOrderSignList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderSignService.saveBatch(tblWorkOrderSignList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderTagList)) {
+                    tblWorkOrderTagList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderTagService.saveBatch(tblWorkOrderTagList);
+                }
+                if (!CollectionUtils.isEmpty(workOrderChargeList)) {
+                    workOrderChargeList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderChargeService.saveBatch(workOrderChargeList);
+                }
+                if (!CollectionUtils.isEmpty(workOrderCollectionComplainList)) {
+                    workOrderCollectionComplainList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderCollectionComplainService.saveBatch(workOrderCollectionComplainList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderDispatchEngineerList)) {
+                    tblWorkOrderDispatchEngineerList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderDispatchEngineerService.saveBatch(tblWorkOrderDispatchEngineerList);
+                }
+                if (!CollectionUtils.isEmpty(tblWorkOrderStatusList)) {
+                    tblWorkOrderStatusList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderStatusService.saveBatch(tblWorkOrderStatusList);
+                }
+                if (!CollectionUtils.isEmpty(workOrderCollectionList)) {
+                    workOrderCollectionList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderCollectionService.saveBatch(workOrderCollectionList);
+                }
+                if (!CollectionUtils.isEmpty(collectionRepairList)) {
+                    collectionRepairList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblCollectionRepairService.saveBatch(collectionRepairList);
+                }
+                if (!CollectionUtils.isEmpty(collectionRepairPartList)) {
+                    collectionRepairPartList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblCollectionRepairPartService.saveBatch(collectionRepairPartList);
+                }
+                if (!CollectionUtils.isEmpty(collectionRepairProjectList)) {
+                    collectionRepairProjectList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblCollectionRepairProjectService.saveBatch(collectionRepairProjectList);
+                }
+                if (!CollectionUtils.isEmpty(collectionRepairSymptomReasonList)) {
+                    collectionRepairSymptomReasonList.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblCollectionRepairSymptomReasonService.saveBatch(collectionRepairSymptomReasonList);
+                }
+
+                if (!CollectionUtils.isEmpty(itfTblWorkOrders)) {
+                    itfTblWorkOrders.stream().forEach(item -> item.setDownloadBatchNo(batch));
+                    itfTblWorkOrderService.saveBatch(itfTblWorkOrders);
+                }
+
+
+            } catch (Exception e) {
+                List<Long> syncIds = itfGreeSynDownloadRecs.stream().map(ItfGreeSynDownloadRec::getSynReqId).collect(Collectors.toList());
+
+                log.error("工单同步错误" + e.getMessage());
+
+                itfGreeSynDownloadRecService.lambdaUpdate()
+                        .in(ItfGreeSynDownloadRec::getSynReqId, syncIds)
+                        .set(ItfGreeSynDownloadRec::getGreeStatSynErrMsg, e.getMessage())
+                        .set(ItfGreeSynDownloadRec::getGreeStatSynTime, new Date())
+                        .set(ItfGreeSynDownloadRec::getGreeStatSynStatus, 99).update();
+
+
+            }
+        }
+
+    }
 }

+ 6 - 0
mall-server-sync-api/src/main/java/com/gree/mall/manager/schedule/SyncSchedule.java

@@ -38,6 +38,12 @@ public class SyncSchedule {
         syncOrderInfoLogic.syncDetail();
     }
 
+    //同步失败工单数据
+    @Scheduled(fixedDelay = 10* 1000)
+    public void task4() throws IOException, MessagingException {
+        syncOrderInfoLogic.syncDetailFail();
+    }
+
 
 
     //同步工单数据