yaozhixue hace 1 año
padre
commit
48d07755c7
Se han modificado 100 ficheros con 2493 adiciones y 154 borrados
  1. 1 1
      .idea/misc.xml
  2. BIN
      1658797306543124482.jpeg
  3. BIN
      1658797445961789441.jpeg
  4. BIN
      1659188897900429313.jpeg
  5. BIN
      1659188903197835266.jpeg
  6. 6 13
      pom.xml
  7. 18 0
      src/main/java/com/zfire/jiasm/syncdata/constant/GreeSynStatusEnum.java
  8. 2 2
      src/main/java/com/zfire/jiasm/syncdata/download/order/DetailDownloadInstallTask.java
  9. 0 11
      src/main/java/com/zfire/jiasm/syncdata/download/order/InstallBusiness.java
  10. 3 16
      src/main/java/com/zfire/jiasm/syncdata/download/order/InstallDownload.java
  11. 37 0
      src/main/java/com/zfire/jiasm/syncdata/download/order/RecycleDownload.java
  12. 16 3
      src/main/java/com/zfire/jiasm/syncdata/download/order/RepairBusiness.java
  13. 43 18
      src/main/java/com/zfire/jiasm/syncdata/download/order/RepairDownload.java
  14. 11 6
      src/main/java/com/zfire/jiasm/syncdata/download/worker/GLPPWXGQueryAdd.java
  15. 1 10
      src/main/java/com/zfire/jiasm/syncdata/download/worker/GLPPWXGQueryUpdate.java
  16. 13 0
      src/main/java/com/zfire/jiasm/syncdata/gree/helper/GreeResponseHelper.java
  17. 28 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/CheckBarcodeBean.java
  18. 516 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/GreeLogicT.java
  19. 18 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignBean.java
  20. 19 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignDetailDownloadBean.java
  21. 176 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignDownloadBean.java
  22. 25 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignDownloadEntity.java
  23. 38 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignFeedbackBean.java
  24. 18 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignFeedbackUploadBean.java
  25. 37 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignFkmxDownloadBean.java
  26. 1158 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignLogic.java
  27. 53 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignMxDownloadBean.java
  28. 16 0
      src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignParamBean.java
  29. 126 0
      src/main/java/com/zfire/jiasm/syncdata/helper/ResponseExHelper.java
  30. 44 4
      src/main/java/com/zfire/jiasm/syncdata/http/HttpUtils.java
  31. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminFastEntryPlusTempController.java
  32. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminFieldPlusTempController.java
  33. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminModuleFavoritesPlusTempController.java
  34. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminModulePlusTempController.java
  35. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminRolePlusTempController.java
  36. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminUserModuleRelaPlusTempController.java
  37. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminUserPlusTempController.java
  38. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminUserRoleRelaPlusTempController.java
  39. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminWebsitPlusTempController.java
  40. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminWebsitProductTypeRelaPlusTempController.java
  41. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminWebsitSlavePlusTempController.java
  42. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/AreaPlusTempController.java
  43. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/BrandLbsRelatePlusTempController.java
  44. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/BrandPlusTempController.java
  45. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/BrandWebsitPlusTempController.java
  46. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/CityPlusTempController.java
  47. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ComDetailLogPlusTempController.java
  48. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ComDetailPlusTempController.java
  49. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ComListPlusTempController.java
  50. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/CommonFilePlusTempController.java
  51. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/CompanyCaAuthPlusTempController.java
  52. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/CompanyRecordManagePlusTempController.java
  53. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ContractTemplatePlusTempController.java
  54. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/CustomerInformationCategoryPlusTempController.java
  55. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/CustomerInformationPlusTempController.java
  56. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/CustomerInformationWebsitPlusTempController.java
  57. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ImgCarouselManagePlusTempController.java
  58. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InstallChargeConfigPlusTempController.java
  59. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureAgreePlusTempController.java
  60. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureEmailPlusTempController.java
  61. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureEmailRecordPlusTempController.java
  62. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsurePlusTempController.java
  63. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureRangePlusTempController.java
  64. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureWorkerCommercialFilePlusTempController.java
  65. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureWorkerCommercialPlusTempController.java
  66. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureWorkerRecordPlusTempController.java
  67. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralDoublePlusTempController.java
  68. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralGradeConfigurePlusTempController.java
  69. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralGradeExplainPlusTempController.java
  70. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralGradeSkillPlusTempController.java
  71. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralOffsetPlusTempController.java
  72. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralScorePlusTempController.java
  73. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralSkillLabelPlusTempController.java
  74. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralWorkerApplyPlusTempController.java
  75. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignGzdmDowloadPlusTempController.java
  76. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignXqxlDowloadPlusTempController.java
  77. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignXxlbDowloadPlusTempController.java
  78. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignXxlyDowloadPlusTempController.java
  79. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignXxqdDowloadPlusTempController.java
  80. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignYhsxWxDowloadPlusTempController.java
  81. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAzAssignXslxDowloadPlusTempController.java
  82. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblCityDownloadPlusTempController.java
  83. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblCityJdxzDownloadPlusTempController.java
  84. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblCountyDownloadPlusTempController.java
  85. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblProvinceDownloadPlusTempController.java
  86. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblSplbDaleiDownloadPlusTempController.java
  87. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblSplbJixinDownloadPlusTempController.java
  88. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblSplbXiaoleiDownloadPlusTempController.java
  89. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblSplbXilieDownloadPlusTempController.java
  90. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblWangdianWxgDownloadPlusTempController.java
  91. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblXinWangdianDownloadPlusTempController.java
  92. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblYhsxViprankDowloadPlusTempController.java
  93. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/LabelCurrencyPlusTempController.java
  94. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/LabelPlusTempController.java
  95. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/LbsAmapPlusTempController.java
  96. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/NoticePlusTempController.java
  97. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/NoticeRecordPlusTempController.java
  98. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/OperationLogPlusTempController.java
  99. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ProductPlusTempController.java
  100. 1 1
      src/main/java/com/zfire/jiasm/syncdata/plus/controller/ProductSeriesPlusTempController.java

+ 1 - 1
.idea/misc.xml

@@ -7,5 +7,5 @@
       </list>
     </option>
   </component>
-  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
 </project>

BIN
1658797306543124482.jpeg


BIN
1658797445961789441.jpeg


BIN
1659188897900429313.jpeg


BIN
1659188903197835266.jpeg


+ 6 - 13
pom.xml

@@ -57,15 +57,16 @@
         </dependency>
 
         <dependency>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <version>3.8.1</version>
+        </dependency>
+
+        <dependency>
             <groupId>com.aliyun</groupId>
             <artifactId>aliyun-java-sdk-sts</artifactId>
             <version>3.0.0</version>
         </dependency>
-        <!--<dependency>
-            <groupId>cn.hutool</groupId>
-            <artifactId>hutool-all</artifactId>
-            <version>5.2.5</version>
-        </dependency>-->
 
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>
@@ -199,12 +200,6 @@
         </dependency>
 
         <dependency>
-            <groupId>com.aliyun.oss</groupId>
-            <artifactId>aliyun-sdk-oss</artifactId>
-            <version>3.8.1</version>
-        </dependency>
-
-        <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-mock</artifactId>
             <version>2.0.8</version>
@@ -229,7 +224,6 @@
         </dependency>
         <!--模板组件END-->
 
-        <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
         <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
@@ -290,7 +284,6 @@
             <artifactId>spring-boot-starter-websocket</artifactId>
         </dependency>
 
-        <!--freemarker制作Html邮件模板依赖包-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-freemarker</artifactId>

+ 18 - 0
src/main/java/com/zfire/jiasm/syncdata/constant/GreeSynStatusEnum.java

@@ -0,0 +1,18 @@
+package com.zfire.jiasm.syncdata.constant;
+
+import lombok.Getter;
+
+@Getter
+public enum GreeSynStatusEnum {
+//	未同步
+	UN_SYN(0),
+//	已同步
+	SYN(1),
+//	同步失败
+	FAIL(99);
+	
+	private Integer code;
+	private GreeSynStatusEnum(Integer code) {
+		this.code = code;
+	}
+}

+ 2 - 2
src/main/java/com/zfire/jiasm/syncdata/download/order/DetailDownloadInstallTask.java

@@ -33,9 +33,9 @@ public class DetailDownloadInstallTask {
 	@Scheduled(fixedDelay = 1 * 3 * 1000)
 	private void process() {
 		try {
-			if (1 == 1) {
+			/*if (1 == 1) {
 				return;
-			}
+			}*/
 
 			Token token = tokenCenter.getCurrentToken();
 			// 同步规则表中提取数据 itf_gree_to_fa_download_task_type

+ 0 - 11
src/main/java/com/zfire/jiasm/syncdata/download/order/InstallBusiness.java

@@ -12,7 +12,6 @@ import com.zfire.jiasm.syncdata.parameter.OrderPar;
 import com.zfire.jiasm.syncdata.plus.entity.*;
 import com.zfire.jiasm.syncdata.plus.service.*;
 import com.zfire.jiasm.syncdata.response.WebsitFWS;
-import com.zfire.jiasm.syncdata.response.WebsitSH;
 import com.zfire.jiasm.syncdata.service.OrderService;
 import com.zfire.jiasm.syncdata.service.PublicService;
 import lombok.extern.slf4j.Slf4j;
@@ -74,8 +73,6 @@ public class InstallBusiness {
     @Resource
     ItfTblAzAssignSatisfactionDownloadService itfTblAzAssignSatisfactionDownloadService;
     @Resource
-    WebsitService websitService;
-    @Resource
     OrderAppraiseService orderAppraiseService;
     @Resource
     OrderService orderService;
@@ -1133,14 +1130,6 @@ public class InstallBusiness {
                     oiol.setWebsitNumber(websitFWS.getWdmc());// 为操作人员所属网点
                 }
             }
-
-
-
-
-
-
-
-
             // 操作前工单状态,操作前派工状态,操作后工单状态,操作后派工状态 这些字段不处理
             oiolList.add(oiol);
         }

+ 3 - 16
src/main/java/com/zfire/jiasm/syncdata/download/order/InstallDownload.java

@@ -61,29 +61,16 @@ public class InstallDownload {
     ItfTblAzAssignSatisfactionDownloadService itfTblAzAssignSatisfactionDownloadService;
     @Resource
     ItfTblAzAssignPlatformDownloadService itfTblAzAssignPlatformDownloadService;
-    @Resource
-    OrderInstallService orderInstallService;
-    @Resource
-    SalesTypeService salesTypeService;
-    @Resource
-    OrderInstallOperatingLogService orderInstallOperatingLogService;
-    @Resource
-    OrderInstallDetailService orderInstallDetailService;
-    @Resource
-    OrderApplyDispatchService orderApplyDispatchService;
-    @Resource
-    BrandWebsitService brandWebsitService;
-    @Resource
-    ItfFxInstallReqService itfFxInstallReqService;
+
 
 
 
     // 1:下载安装工单数据
     @Scheduled(fixedDelay = 1 * 5 * 1000)
     public void download() throws Exception {
-        if (1 == 1) {
+        /*if (1 == 1) {
             return;
-        }
+        }*/
         List<ItfInstallBatchDownloadRec> rec = new ArrayList<>();
 
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

+ 37 - 0
src/main/java/com/zfire/jiasm/syncdata/download/order/RecycleDownload.java

@@ -0,0 +1,37 @@
+package com.zfire.jiasm.syncdata.download.order;
+
+
+import com.zfire.jiasm.syncdata.gree.recycle.RecycleAssignLogic;
+import com.zfire.jiasm.syncdata.gree.recycle.RecycleAssignParamBean;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * 格力品牌回收工单下载
+ */
+@Slf4j
+@Component
+public class RecycleDownload {
+    @Autowired
+    RecycleAssignLogic recycleAssignLogic;
+
+
+    // 1:下载回收工单数据
+    @Scheduled(fixedDelay = 1 * 5 * 1000)
+    public void download() throws Exception {
+        if (1 == 1) {
+            return;
+        }
+
+        RecycleAssignParamBean recycleAssignParamBean = new RecycleAssignParamBean();
+        // type说明: all--全量  active--获取未完工/未关闭/未作废的工单  getExtend--获取更新数据:
+        recycleAssignParamBean.setType("getExtend");
+        recycleAssignParamBean.setPage("1");
+        recycleAssignParamBean.setPageSize("100");
+        recycleAssignLogic.assign(recycleAssignParamBean);
+    }
+
+
+}

+ 16 - 3
src/main/java/com/zfire/jiasm/syncdata/download/order/RepairBusiness.java

@@ -93,9 +93,9 @@ public class RepairBusiness {
     // 1:工单落入本地表 TL_SynDataFrom_tbl_assign_batch
     @Scheduled(fixedDelay = 1 * 5 * 1000)
     public void inputOrder() {
-        if (1 == 1) {
+        /*if (1 == 1) {
             return;
-        }
+        }*/
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         List<ItfTblAssignDownload> repairRec = new ArrayList<>();
         List<Long> pgids = new ArrayList<>();
@@ -449,6 +449,8 @@ public class RepairBusiness {
 
     @NotNull
     private void getOrderBase(ItfTblAssignDownload item, OrderBase upOrder) {
+        WebsitFWS websitFWS = new WebsitFWS();
+
         if (StringUtils.isNotEmpty(item.getXxlb())){
             upOrder.setInfoType(item.getXxlb());
         } else {
@@ -479,6 +481,17 @@ public class RepairBusiness {
             upOrder.setReceWebsitId("");
             upOrder.setReceWebsitName("");
         }
+
+        // 结算主体
+        // (wxwdno、xjwdno)维修网点与派下级网点同时为空时  (cjwdno、xswdno)创建网点与销售网点都有值
+        if (StringUtils.isNotEmpty(upOrder.getWebsitId())){
+            websitFWS = publicService.shshwdToptshwd(wdno,upOrder.getMainId());
+        } else {
+            websitFWS = publicService.shxswdToptxswd(item.getXswdno(),upOrder.getMainId());
+        }
+        upOrder.setBrandId(websitFWS.getBrandId());
+        upOrder.setBrandName(websitFWS.getBrandName());
+
     }
 
     @NotNull
@@ -512,7 +525,7 @@ public class RepairBusiness {
         // 获取维修工单主表要修改的数据
         OrderBase upOrder = getUpOrderBase(brand, item, id,mainId);
         // 省市区单独处理
-        orderService.getPCAS(upOrder);
+        orderService.shPositionTopt(upOrder);
         orderBaseService.updateById(upOrder);
     }
 

+ 43 - 18
src/main/java/com/zfire/jiasm/syncdata/download/order/RepairDownload.java

@@ -52,9 +52,9 @@ public class RepairDownload {
     @Scheduled(fixedDelay = 1 * 5 * 1000)
     public void download() throws Exception {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        if (1 == 1) {
+        /*if (1 == 1) {
             return;
-        }
+        }*/
 
 
         try {
@@ -91,20 +91,25 @@ public class RepairDownload {
             log.info("维修工单下载了{}条数据",datas.size());
 
             for (int i = 0; i < datas.size(); i++) {
-
                 JSONObject sheet = datas.getJSONObject(i);
-
-                // 维修工单主表必须存在
-                JSONObject mainTableData = sheet.getJSONObject("tblAssign");
-                if (mainTableData != null) {
-                    String downloadTaskNo = UUID.randomUUID().toString();
-                    DataUtil.initLastModifiedDate(mainTableData,"last_modified_date");
-                    repairDownload.addRepairData(mainTableData, downloadBatchNo, downloadTaskNo, sheet,
-                            srcTabnameArray, srcTabColListArray, destTabNameArray, destTabColListArray,
-                            salesWebsitNumber);
-                } else {
-                    log.error("维修工单找不到主表数据,downloadBatchNo[" + downloadBatchNo + "]");
+                try{
+                    // 维修工单主表必须存在
+                    JSONObject mainTableData = sheet.getJSONObject("tblAssign");
+                    if (mainTableData != null) {
+                        String downloadTaskNo = UUID.randomUUID().toString();
+                        DataUtil.initLastModifiedDate(mainTableData,"last_modified_date");
+                        repairDownload.addRepairData(mainTableData, downloadBatchNo, downloadTaskNo, sheet,
+                                srcTabnameArray, srcTabColListArray, destTabNameArray, destTabColListArray,
+                                salesWebsitNumber);
+                    } else {
+                        log.error("维修工单找不到主表数据,downloadBatchNo[" + downloadBatchNo + "]");
+                    }
+                } catch (Exception ex) {
+                    log.info("维修工单下载落download表失败:{}" ,JSONObject.toJSONString(sheet));
+                    ex.printStackTrace();
                 }
+
+
             }
 
             log.info("维修工单同步下载状态");
@@ -173,7 +178,7 @@ public class RepairDownload {
 
         Token token = tokenCenter.getCurrentToken();
         String url = baseurl + "api/repair/batchsearch/repairorders?ssxsgs=" + salesWebsitNumber;
-        log.info("url[" + url + "],downloadBatchNo[" + downloadBatchNo + "],send[]");
+        // log.info("url[" + url + "],downloadBatchNo[" + downloadBatchNo + "],send[]");
         JSONObject jsonResult = HttpUtil.httpRequestGetPgid(url, "GET", token, downloadBatchNo,null);
 
         String statusCode = jsonResult.getString("statusCode");
@@ -298,9 +303,10 @@ public class RepairDownload {
         }
     }
 
-    private void parseAData(boolean isInstall, String downloadBatchNo, String downloadTaskNo, String destTabName,
+    public void parseAData(boolean isInstall, String downloadBatchNo, String downloadTaskNo, String destTabName,
                             String destTabColList, String[] arySrcTabCol, JSONObject aData) throws Exception {
         String table = "itf_tbl_az_assign_platform_download";
+        String daijian = "itf_tbl_assign_daijian_download";
 
         String[] arySrcTabColValue = new String[arySrcTabCol.length];
 
@@ -315,6 +321,26 @@ public class RepairDownload {
                 arySrcTabColValue[j] = DataUtil.findValue(DataUtil.fromDbName2ServiceName(arySrcTabCol[j].trim()),
                         aData);
             } else {
+                if (destTabName.equals(daijian)){
+                    //创建时间 cjdt
+                    DataUtil.initLastModifiedDate(aData,"cjdt");
+                    // 商品大类 splb
+                    DataUtil.initOther(aData,"splb");
+                    // 替换编码销售公司库存 thbmxsgsnum
+                    DataUtil.initOther(aData,"thbmxsgsnum");
+                    // 替换编码区域库存 thbmqynum
+                    DataUtil.initOther(aData,"thbmqynum");
+                    // 替换编码网点库存 thbmwdnum
+                    DataUtil.initOther(aData,"thbmwdnum");
+                    // 配件系统处理标识 pjxtflag
+                    DataUtil.initOther(aData,"pjxtflag");
+                    // 区域配件库存 djquyunum
+                    DataUtil.initOther(aData,"djquyunum");
+                    // 销售公司配件库存 djxsgsnum
+                    DataUtil.initOther(aData,"djxsgsnum");
+                    // 网点配件库存 djwdnum
+                    DataUtil.initOther(aData,"djwdnum");
+                }
                 String colName = arySrcTabCol[j].trim();
                 arySrcTabColValue[j] = DataUtil.findValue(colName, aData);
                 if (getNullColSet().contains(colName)) {
@@ -328,7 +354,7 @@ public class RepairDownload {
         insertAData(downloadBatchNo, downloadTaskNo, destTabName, destTabColList, arySrcTabColValue);
     }
 
-    private void insertAData(String downloadBatchNo, String downloadTaskNo, String destTabName, String destTabColList,
+    public void insertAData(String downloadBatchNo, String downloadTaskNo, String destTabName, String destTabColList,
                              Object[] arySrcTabColValue) throws Exception {
 
         StringBuffer mark = new StringBuffer();
@@ -346,7 +372,6 @@ public class RepairDownload {
         insertValue[0] = downloadBatchNo;
         insertValue[1] = downloadTaskNo;
         System.arraycopy(arySrcTabColValue, 0, insertValue, 2, arySrcTabColValue.length);
-
         jdbcTemplate.update(sql, insertValue);
 
     }

+ 11 - 6
src/main/java/com/zfire/jiasm/syncdata/download/worker/GLPPWXGQueryAdd.java

@@ -85,9 +85,9 @@ public class GLPPWXGQueryAdd {
      */
     @Scheduled(fixedDelay = 1 * 60 * 1000)
     public void wxgQueryAddCertInfo() throws Exception {
-        if (1==1){
+        /*if (1==1){
             return;
-        }
+        }*/
 
         WangdianWxgVos wvos = new WangdianWxgVos();
         List<WorkerCert> addList = new ArrayList<>();
@@ -169,9 +169,9 @@ public class GLPPWXGQueryAdd {
      */
     @Scheduled(fixedDelay = 1 * 60 * 1000)
     public void wxgQueryAddCategory() throws Exception {
-        if (1==1){
+        /*if (1==1){
             return;
-        }
+        }*/
 
         WangdianWxgVos wvos = new WangdianWxgVos();
         List<WorkerBrandAccount> wbarecs = new ArrayList<>();
@@ -329,6 +329,10 @@ public class GLPPWXGQueryAdd {
             return;
         }
 
+
+
+
+
         List<Worker> oldWorkerRec =  workerService.lambdaQuery()
                 .select(Worker::getWorkerId).list();
         List<String> oldWorkers = oldWorkerRec.stream().map(Worker::getWorkerId).collect(Collectors.toList());
@@ -451,9 +455,9 @@ public class GLPPWXGQueryAdd {
      */
     @Scheduled(fixedDelay = 1 * 60 * 1000)
     public void wxgQueryAddWXGInfo() throws Exception {
-        if (1 == 1) {
+        /*if (1 == 1) {
             return;
-        }
+        }*/
 
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Map<String,Object> req = new HashMap<>();
@@ -851,6 +855,7 @@ public class GLPPWXGQueryAdd {
             if (province !=null){
                 List<BrandLbsRelate> bra = brandLbsRelateService.lambdaQuery()
                         .eq(BrandLbsRelate::getProvinceId,province.getProvinceId())
+                        .eq(BrandLbsRelate::getDel,0)
                         .eq(BrandLbsRelate::getBrandId,brandId).list();
                 if (bra != null && bra.size()>0){
                     for (BrandLbsRelate br :bra){

+ 1 - 10
src/main/java/com/zfire/jiasm/syncdata/download/worker/GLPPWXGQueryUpdate.java

@@ -55,10 +55,6 @@ public class GLPPWXGQueryUpdate {
     @Resource
     WorkerStreetService workerStreetService;
     @Resource
-    ProvinceService provinceService;
-    @Resource
-    BrandLbsRelateService brandLbsRelateService;
-    @Resource
     WorkerServiceCategoryService workerServiceCategoryService;
     @Resource
     WorkerServiceCategoryDetailService workerServiceCategoryDetailService;
@@ -66,12 +62,7 @@ public class GLPPWXGQueryUpdate {
     SysDictRefService sysDictRefService;
     @Resource
     SysDictService sysDictService;
-    @Resource
-    CustomerInformationWebsitService customerInformationWebsitService;
-    @Resource
-    WebsitService websitService;
-    @Resource
-    WorkerService workerService;
+
 
 
     /** 只处理存在的-即师傅在商户网点信息已存本地数据中 WorkerBrandAccount   师傅地理位置不再处理

+ 13 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/helper/GreeResponseHelper.java

@@ -0,0 +1,13 @@
+package com.zfire.jiasm.syncdata.gree.helper;
+
+
+import lombok.Data;
+
+@Data
+public class GreeResponseHelper<T>  {
+
+    private T data;
+    private String msg;
+    private int status;
+
+}

+ 28 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/CheckBarcodeBean.java

@@ -0,0 +1,28 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class CheckBarcodeBean {
+
+    @ApiModelProperty("机型名称")
+    private String jxmc;
+    @ApiModelProperty("条码")
+    private String barcode;
+    @ApiModelProperty("条码头")
+    private String jxbh;
+    @ApiModelProperty("内外机标识")
+    private String nwbs;
+    @ApiModelProperty("结算单价")
+    private BigDecimal jsdj;
+    @ApiModelProperty("物料编号")
+    private String zjdm;
+    @ApiModelProperty("物料名称")
+    private String zjmc;
+
+}

+ 516 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/GreeLogicT.java

@@ -0,0 +1,516 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.utils.StringUtils;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.zfire.jiasm.syncdata.constant.Constant;
+import com.zfire.jiasm.syncdata.gree.CommonLogic;
+import com.zfire.jiasm.syncdata.gree.CommonParam;
+import com.zfire.jiasm.syncdata.gree.OutAppDefaultReq;
+import com.zfire.jiasm.syncdata.gree.helper.GreeResponseHelper;
+import com.zfire.jiasm.syncdata.helper.ResponseExHelper;
+import com.zfire.jiasm.syncdata.http.HttpUtils;
+import com.zfire.jiasm.syncdata.plus.service.ProductService;
+import com.zfire.jiasm.syncdata.utils.RedisUtil;
+import com.zfire.jiasm.syncdata.utils.RemoteServiceException;
+import com.zfire.jiasm.syncdata.utils.ResponseHelper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.HttpStatusCodeException;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 格力总部接口
+ */
+@Slf4j
+@Service
+public class GreeLogicT {
+    @Value("${gree.V3.gettoken}")
+    private String tokenUrl;
+    @Value("${gree.check.barcode}")
+    private String checkBarcodeUrl;
+    @Value("${gree.repair.settle.get}")
+    private String getRepairSettleUrl;
+    @Value("${gree.repair.settle.do}")
+    private String doRepairSettleUrl;
+    @Value("${gree.client.id}")
+    private String clientId;
+    @Value("${gree.V3.client.secert}")
+    private String clientSecert;
+    @Value("${gree.api.url}")
+    private String apiUrl;
+    @Value("${gree.gz.appid}")
+    private String gzAppId;
+    @Value("${gree.gz.appkey}")
+    private String gzAppKey;
+    @Value("${gree.fs.appid}")
+    private String fsAppId;
+    @Value("${gree.fs.appkey}")
+    private String fsAppKey;
+    @Value("${gree.V3.api.url}")
+    private String v3ApiUrl;
+    @Value("${gree.V3.gettoken}")
+    private String v3TokenUrl;
+    @Value("${gree.V3.client.secert}")
+    private String v3ClientSecert;
+    
+    /*@Autowired
+    ProductNewService productNewService;*/
+    @Autowired
+    ProductService productService;
+    /*@Autowired
+    RuleService ruleService;*/
+    @Autowired
+    RedisUtil redisUtil;
+    @Autowired
+    CommonLogic commonLogic;
+
+    public String getAppId(Integer belongType){
+        if(belongType == 1){
+            return gzAppId;
+        }else{
+            return fsAppId;
+        }
+    }
+
+    public String getAppKey(Integer belongType){
+        if(belongType == 1){
+            return gzAppKey;
+        }else{
+            return fsAppKey;
+        }
+    }
+    
+    /**
+     * 获取总部接口的请求token
+     * @return
+     * @throws RemoteServiceException
+     */
+    public String getAccessToken() throws RemoteServiceException {
+        String redisKey = Constant.RedisPrefix.TOKEN_GREE;
+        String token = (String)redisUtil.get(redisKey);
+        if(token != null){
+            return token;
+        }
+        MultiValueMap<String, String> forms= new LinkedMultiValueMap<String, String>();
+
+        forms.put("client_id", Collections.singletonList(clientId));
+        forms.put("client_secret", Collections.singletonList(clientSecert));
+        forms.put("grant_type", Collections.singletonList("client_credentials"));
+        String s = HttpUtils.requestXwww(tokenUrl, forms);
+        //String s = HttpUtils.requestPostForm(tokenUrl, map, null);
+        log.info("【获取总部token】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        String accessToken = jsonObject.getString("access_token");
+        if(StringUtils.isNotEmpty(accessToken)) {
+            redisUtil.set(Constant.RedisPrefix.TOKEN_GREE, accessToken, 2 * 60 * 60);
+        }
+        return accessToken;
+    }
+    
+    /**
+     * 获取总部接口的请求token
+     * @return
+     * @throws RemoteServiceException
+     */
+    public String getAccessTokenV3() throws RemoteServiceException {
+        String redisKey = Constant.RedisPrefix.TOKEN_GREE_V3;
+        String token = (String)redisUtil.get(redisKey);
+//        if(token != null){
+//            return token;
+//        }
+        MultiValueMap<String, String> forms= new LinkedMultiValueMap<String, String>();
+
+        forms.put("client_id", Collections.singletonList(clientId));
+        forms.put("client_secret", Collections.singletonList(v3ClientSecert));
+        
+        forms.put("grant_type", Collections.singletonList("client_credentials"));
+        String s = HttpUtils.requestXwww(v3TokenUrl, forms);
+        //String s = HttpUtils.requestPostForm(tokenUrl, map, null);
+        log.info("【获取总部token】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        String accessToken = jsonObject.getString("access_token");
+        if(StringUtils.isNotEmpty(accessToken)) {
+            redisUtil.set(Constant.RedisPrefix.TOKEN_GREE_V3, accessToken, 2 * 60 * 60);
+        }
+        return accessToken;
+    }
+
+    /**
+     *   获取机型名称
+     * @param objCode 内积条码 或者 外机条码
+     * @param mainNumber 大类id
+     * @return
+     * @throws RemoteServiceException
+     */
+    public CheckBarcodeBean getProductName(String objCode,Integer mainNumber){
+        try {
+            Map<String, Object> map = new HashMap<>();
+            map.put("clientid", clientId);
+            map.put("barcode", objCode);
+            map.put("spid", mainNumber);
+            JSONObject jsonObject = this.post(checkBarcodeUrl, map);
+            CheckBarcodeBean data = JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("data")), CheckBarcodeBean.class);
+            return data;
+        }catch(Exception e){
+            log.error("获取总部机型失败",e);
+            return null;
+        }
+    }
+
+
+    /**
+     *   获取销司结算标准
+     * @param jxbh 机型编号,条码前五位
+     * @param wxxmh 维修项目号
+     * @param gmrg 购买日期(yyyy-MM-dd)
+     * @param wxlx 维修类型
+     * @param spid 大类
+     */
+    public String getRepairSettle(String jxbh,String wxxmh,String gmrg,String wxlx,String spid){
+        try {
+            Map<String, Object> map = new HashMap<>();
+            map.put("jxbh", jxbh);
+            map.put("wxxmh", wxxmh);
+            map.put("gmrg", gmrg);
+            map.put("wxlx", wxlx);
+            map.put("spid", spid);
+            map.put("clientid", clientId);
+
+            JSONObject jsonObject = this.post(getRepairSettleUrl, map);
+            return JSONObject.toJSONString(jsonObject.get("data"));
+        }catch(Exception e){
+            log.error("获取销司结算标准失败",e);
+            return "";
+        }
+
+    }
+
+
+    /**
+     *   批量转结算
+     * @param ids 多个逗号隔开
+     */
+    public String doRepairSettle(String ids){
+        try {
+
+            Map<String,Object> map = new HashMap<>();
+            map.put("wxjsguids",ids);
+            map.put("clientid",clientId);
+
+            JSONObject jsonObject = this.post(doRepairSettleUrl, map);
+            return JSONObject.toJSONString(jsonObject.get("data"));
+        }catch(Exception e){
+            log.error("【对接总部】批量转结算失败",e.getMessage());
+        }
+        return null;
+    }
+
+    /**
+     * 请求总部接口
+     * @return
+     */
+    public String post(String apiPath,Map<String,Object> bizContent,Integer belongType) throws Exception {
+        CommonParam commonParam = new CommonParam();
+        commonParam.setAppId(this.getAppId(belongType));
+        commonParam.setAppKey(this.getAppKey(belongType));
+        commonParam.setAppPath(apiPath);
+        commonParam.setJson(JSONObject.toJSONString(bizContent));
+        OutAppDefaultReq outAppDefaultReq = commonLogic.supplyParam(commonParam);
+        Map<String,String> header = new HashMap<>();
+        header.put("authorization","Bearer "+this.getAccessToken());
+        //log.info("accessToken:{}", "Bearer "+this.getAccessToken());
+        
+        // log.info("【请求总部接口】request:{}",JSONObject.toJSONString(outAppDefaultReq));
+        String s = HttpUtils.requestPostBody(apiUrl, JSONObject.toJSONString(outAppDefaultReq), header);
+        // log.info("【请求总部接口】response:{}",s);
+        GreeResponseHelper greeResponseHelper = JSONObject.parseObject(s, GreeResponseHelper.class);
+        if(greeResponseHelper.getStatus() != 200){
+            throw new RemoteServiceException("对接失败总部接口失败:"+greeResponseHelper.getMsg());
+        }
+        return (String)greeResponseHelper.getData();
+    }
+    
+    public JSONObject post(String url,List param){
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessToken());
+        log.info("【总部接口对接】request:{}",  JSON.toJSONString(param));
+        String s = HttpUtils.requestPostBody(url, JSON.toJSONString(param), header);
+        log.info("【总部接口对接】response:{}",s);
+        
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("status");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+
+    /**
+     * post请求,用3.0的token
+     * @param url
+     * @param param
+     * @return
+     */
+    public JSONObject postV3(String url,List param){
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessTokenV3());
+        log.info("【总部接口对接】request:{}",  JSON.toJSONString(param));
+        String s = HttpUtils.requestPostBody(url, JSON.toJSONString(param), header);
+        log.info("【总部接口对接】response:{}",s);
+        
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("status");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+    
+    private JSONObject post(String url,Map<String,Object> map){
+        Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessToken());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+        String s = HttpUtils.requestPostBody(url, JSONObject.toJSONString(map), header);
+        log.info("【总部接口对接】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("statusCode");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+
+    public Object get(String url,Map<String,String> map) throws JsonMappingException, JsonProcessingException {
+    	final String apiPath = v3ApiUrl;
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessTokenV3());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+//        String s = HttpUtils.requestPostBody(url, JSONObject.toJSONString(map), header);
+        String s = HttpUtils.requestGet(apiPath+url, map, header);
+        log.info("【总部接口对接】response:{}",s);
+        ObjectMapper mapper = new ObjectMapper();
+		mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+        ResponseExHelper responseHelper = mapper.readValue(s, ResponseExHelper.class);
+        if(responseHelper.getStatusCode() != 200){
+            throw new RemoteServiceException("对接失败总部接口失败:"+responseHelper.getMessage());
+        }
+        return responseHelper.getData();
+    }
+    
+    public JSONObject getPub(String url,Map<String,String> map) {
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessToken());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+        String s = HttpUtils.requestGet(url, map, header);
+        log.info("【总部接口对接】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("status");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+    
+    
+    public JSONObject getPubV3(String url,Map<String,String> map) {
+    	Map<String, String> header = new HashMap<>();
+        header.put("authorization", "Bearer " + this.getAccessTokenV3());
+        log.info("【总部接口对接】request:{}",JSONObject.toJSONString(map));
+        String s = HttpUtils.requestGet(url, map, header);
+        log.info("【总部接口对接】response:{}",s);
+        JSONObject jsonObject = JSONObject.parseObject(s);
+        Integer statusCode = jsonObject.getInteger("status");
+        if (statusCode != 200) {
+            log.error("接口地址:{},对接总部接口失败",url);
+            return null;
+        }
+        return jsonObject;
+    }
+
+    /**
+     * 同步总部机型名称和单价
+     * @param outCode
+     * @param mainNumber
+     */
+    /*public void syncProduct(String insideCode,String outCode,String mainNumber,Rule rule){
+        try {
+            CheckBarcodeBean checkBarcodeBean = null;
+            if (StringUtils.isNotEmpty(insideCode)) {
+                String insideShortCode = insideCode.substring(0, 5);
+                Integer count = ruleService.lambdaQuery().eq(Rule::getInsideShortCode, insideShortCode).count();
+                if(count > 0){
+                    return;
+                }
+                checkBarcodeBean = this.getProductName(insideCode, Integer.parseInt(mainNumber));
+
+                this.saveProduct(mainNumber,insideShortCode,checkBarcodeBean);
+            }
+            CheckBarcodeBean checkBarcodeBean2 = null;
+            if (StringUtils.isNotEmpty(outCode)) {
+                checkBarcodeBean2 = this.getProductName(outCode, Integer.parseInt(mainNumber));
+            }
+            log.info("【同步总部机型】,code:{},mainNumber:{},返回结果:{}", insideCode, mainNumber, JSONObject.toJSONString(checkBarcodeBean));
+            if ((checkBarcodeBean != null  && mainNumber.equals(Constant.MAIN_NUMBER_101))
+                    || !mainNumber.equals(Constant.MAIN_NUMBER_101)) {
+
+                //生成新的结算规则
+                if(rule == null) {
+                   rule = new Rule();
+                }
+                if (checkBarcodeBean != null) {
+                    rule.setPrice(checkBarcodeBean.getJsdj());
+                    rule.setEnginPrice(checkBarcodeBean.getJsdj());
+                    rule.setInsideShortCode(checkBarcodeBean.getJxbh());
+                    rule.setInsideName(checkBarcodeBean.getJxmc());
+                }
+                if (checkBarcodeBean2 != null) {
+                    if (rule.getPrice() == null || rule.getPrice().doubleValue() == 0) {
+                        rule.setPrice(checkBarcodeBean2.getJsdj());
+                        rule.setEnginPrice(checkBarcodeBean2.getJsdj());
+                    }
+                    rule.setOutShortCode(checkBarcodeBean2.getJxbh());
+                    rule.setOutName(checkBarcodeBean2.getJxmc());
+                }
+                rule.setMainId(Integer.parseInt(mainNumber));
+                rule.setMainNumber(mainNumber);
+                rule.setInsideCode(insideCode);
+                rule.setOutCode(outCode);
+                rule.setCreateTime(new Date());
+                if(rule.getStlRuleId() != null){
+                    rule.updateById();
+                }else {
+                    rule.insert();
+                }
+            }
+        }catch(Exception e){
+            log.error("同步总部机型失败",e.getMessage());
+        }
+    }
+*/
+/*
+    public void saveProduct(String mainNumber,String insideShortCode,CheckBarcodeBean checkBarcodeBean){
+        if(StringUtils.isEmpty(mainNumber) || !mainNumber.equals(Constant.MAIN_NUMBER_101)){
+            return;
+        }
+        Integer count = productService.lambdaQuery().eq(Product::getProductCode, insideShortCode).count();
+        if(count > 0){
+            return;
+        }
+
+        Product product = new Product();
+        product.setMainNumber(mainNumber);
+        //product.setMainName(checkBarcodeBean.get);
+        product.setMaterialCode(checkBarcodeBean.getZjdm());
+        product.setMaterialName(checkBarcodeBean.getZjmc());
+        product.setNwbs("内机");
+        product.setPrice(checkBarcodeBean.getJsdj());
+        product.setProductCode(insideShortCode);
+        product.setCreateTime(new Date());
+        product.insert();
+
+    }*/
+
+    /*public void initProduct(){
+        log.info("【初始化套机数据】开始:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+        List<Rule> list = ruleService.lambdaQuery().ne(Rule::getInsideShortCode, "").eq(Rule::getMainNumber,Constant.MAIN_NUMBER_101).list();
+        for(Rule rule : list){
+            CheckBarcodeBean checkBarcodeBean = this.getProductName(rule.getInsideCode(), Integer.parseInt(rule.getMainNumber()));
+            if(checkBarcodeBean == null){
+                continue;
+            }
+            this.saveProduct(Constant.MAIN_NUMBER_101,rule.getInsideShortCode(),checkBarcodeBean);
+        }
+        log.info("【初始化套机数据】结束:"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
+    }*/
+
+
+    /**
+     * 初始化机型名称
+     */
+    /*public void init(){
+        List<ProductNew> list = productNewService.list();
+        for(ProductNew productNew : list){
+            String mainNumber = productNew.getMainNumber();
+            String insideCode = productNew.getInsideCode();
+
+            CheckBarcodeBean checkBarcodeBean = this.getProductName(insideCode, Integer.parseInt(mainNumber));
+            if(checkBarcodeBean == null){
+                productNew.setRemark("调取总部接口获取机型失败");
+                continue;
+            }
+            BeanUtils.copyProperties(checkBarcodeBean,productNew);
+            productNew.setProductName(checkBarcodeBean.getJxmc());
+            productNew.setPrice(checkBarcodeBean.getJsdj());
+        }
+        productNewService.updateBatchById(list);
+    }*/
+
+    /**
+     * 请求总部接口
+     * @return
+     */
+    public GreeResponseHelper greePost(String apiPath, Map<String,Object> bizContent, Integer belongType) throws Exception {
+        CommonParam commonParam = new CommonParam();
+        commonParam.setAppId(this.getAppId(belongType));
+        commonParam.setAppKey(this.getAppKey(belongType));
+        commonParam.setAppPath(apiPath);
+        commonParam.setJson(JSONObject.toJSONString(bizContent));
+        OutAppDefaultReq outAppDefaultReq = commonLogic.supplyParam(commonParam);
+        Map<String,String> header = new HashMap<>();
+        header.put("authorization","Bearer "+this.getAccessToken());
+
+        log.info("【请求总部接口】request:{}",JSONObject.toJSONString(outAppDefaultReq));
+//        String s = HttpUtils.post(apiUrl, JSONObject.toJSONString(outAppDefaultReq), header);
+        // 设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+
+        for(String str : header.keySet()){
+            headers.set(str,header.get(str));
+        }
+
+        RestTemplate restTemplate = new RestTemplate();
+        HttpEntity<String> httpEntity = new HttpEntity<>(JSONObject.toJSONString(outAppDefaultReq), headers);
+        //获取返回数据
+        try {
+            String body = restTemplate.postForObject(apiUrl, httpEntity, String.class);
+            log.info("【请求总部接口】response:{}",body);
+            return JSONObject.parseObject(body, GreeResponseHelper.class);
+        }catch(HttpStatusCodeException ex) {
+        	log.error("rawStatusCode = {}",ex.getRawStatusCode());
+        	GreeResponseHelper greeResponseHelper = new GreeResponseHelper();
+        	greeResponseHelper.setStatus(ex.getRawStatusCode());
+//        	greeResponseHelper.setMsg(GreeResponseCodeEnum.valueOf(ex.getRawStatusCode()));
+        	greeResponseHelper.setMsg(ex.getMessage().substring(0,100));
+        	ex.printStackTrace();
+        	return greeResponseHelper;
+        }catch(Exception e){
+        	GreeResponseHelper greeResponseHelper = new GreeResponseHelper();
+        	greeResponseHelper.setStatus(ResponseHelper.ResponseCode_COMMON);
+        	greeResponseHelper.setMsg("非法请求");
+        	e.printStackTrace();
+        	return greeResponseHelper;
+        }
+    }
+}

+ 18 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignBean.java

@@ -0,0 +1,18 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class RecycleAssignBean {
+	@ApiModelProperty(value = "下载批次号")
+    private String batchNo;
+
+    @ApiModelProperty(value = "任务号")
+    private String taskNo;
+
+    @ApiModelProperty(value = "主键")
+    private String pgguid;
+}

+ 19 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignDetailDownloadBean.java

@@ -0,0 +1,19 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel
+public class RecycleAssignDetailDownloadBean extends RecycleAssignBean {
+	
+	@ApiModelProperty("主表")
+	RecycleAssignDownloadBean assign;
+	@ApiModelProperty("回收工单反馈明细表(所有状态信息)")
+	List<RecycleAssignFkmxDownloadBean> fkmx;
+	@ApiModelProperty("产品明细")
+	List<RecycleAssignMxDownloadBean> mx;
+}

+ 176 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignDownloadBean.java

@@ -0,0 +1,176 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel
+public class RecycleAssignDownloadBean extends RecycleAssignBean {
+
+    @ApiModelProperty(value = "回收单号")
+    private String pgid;
+
+    @ApiModelProperty(value = "来源单号")
+    private String srcOrderNo;
+
+    private String createdBy;
+
+    private Date createdDate;
+
+    private String lastModifiedBy;
+
+    private Date lastModifiedDate;
+
+    @ApiModelProperty(value = "用户名称")
+    private String yhmc;
+
+    @ApiModelProperty(value = "手机号码(移动电话)")
+    private String yddh;
+
+    @ApiModelProperty(value = "区号 如020 广州")
+    private String quhao;
+
+    @ApiModelProperty(value = "电话号码")
+    private String dhhm;
+
+    @ApiModelProperty(value = "电子邮件")
+    private String email;
+
+    @ApiModelProperty(value = "品类名称拼接,空调、电视")
+    private String spmc;
+
+    @ApiModelProperty(value = "省份id")
+    private Long sfenid;
+
+    @ApiModelProperty(value = "省份")
+    private String sfen;
+
+    @ApiModelProperty(value = "城市id")
+    private Long cshiid;
+
+    @ApiModelProperty(value = "市")
+    private String cshi;
+
+    @ApiModelProperty(value = "县id")
+    private Long xianid;
+
+    @ApiModelProperty(value = "县")
+    private String xian;
+
+    @ApiModelProperty(value = "乡镇id")
+    private String xzhenid;
+
+    @ApiModelProperty(value = "街道办/乡镇")
+    private String xzhen;
+
+    @ApiModelProperty(value = "地址")
+    private String dizi;
+
+    @ApiModelProperty(value = "备注")
+    private String beiz;
+
+    @ApiModelProperty(value = "上一流程状态")
+    private Long qystat;
+
+    @ApiModelProperty(value = "派工状态")
+    private Long stat;
+
+    @ApiModelProperty(value = "最近操作网点")
+    private String zjczwd;
+
+    @ApiModelProperty(value = "系统网点编号")
+    private Long zjczwdxtbh;
+
+    @ApiModelProperty(value = "创建人")
+    private String cjren;
+
+    @ApiModelProperty(value = "创建人姓名")
+    private String cjrmc;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date cjdt;
+
+    @ApiModelProperty(value = "用户期望上门时间")
+    private Date yhqwsmsj;
+
+    @ApiModelProperty(value = "期望上门结束时间")
+    private Date qwsmjssj;
+
+    @ApiModelProperty(value = "所属维修区域")
+    private String ssqy;
+
+    @ApiModelProperty(value = "完成时间")
+    private Date wcsj;
+
+    @ApiModelProperty(value = "派工下级网点")
+    private String xjwdno;
+
+    @ApiModelProperty(value = "派工下级网点名称")
+    private String xjwdmc;
+
+    @ApiModelProperty(value = "维修人员")
+    private String wxren;
+
+    @ApiModelProperty(value = "维修人ID")
+    private Long wxrenid;
+
+    @ApiModelProperty(value = "维修网点")
+    private String wxwdno;
+
+    @ApiModelProperty(value = "维修网点名称")
+    private String wxwdmc;
+
+    @ApiModelProperty(value = "所属层级1")
+    private String lv1;
+
+    @ApiModelProperty(value = "所属层级2")
+    private String lv2;
+
+    @ApiModelProperty(value = "所属层级3")
+    private String lv3;
+
+    @ApiModelProperty(value = "所属层级4")
+    private String lv4;
+
+    @ApiModelProperty(value = "所属层级5")
+    private String lv5;
+
+    @ApiModelProperty(value = "所属层级6")
+    private String lv6;
+
+    @ApiModelProperty(value = "用户预约时间:开始时间")
+    private Date yhyykssj;
+
+    @ApiModelProperty(value = "用户预约时间:结束时间")
+    private Date yhyyjssj;
+
+    @ApiModelProperty(value = "创建网点编号")
+    private String cjwdno;
+
+    @ApiModelProperty(value = "创建网点名称")
+    private String cjwdmc;
+
+    @ApiModelProperty(value = "信息来源id")
+    private Long xxlyid;
+
+    @ApiModelProperty(value = "信息来源名称")
+    private String xxlymc;
+    
+    @ApiModelProperty(value = "更新flag,保存已更新的客户端")
+    private String updateFlag;
+    
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+    
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+	
+	@ApiModelProperty("最后更新的状态信息")
+	private RecycleAssignFkmxDownloadBean lastStep;
+	@ApiModelProperty("回收产品信息(数组)")
+	private List<RecycleAssignMxDownloadBean> hscpmx;
+}

+ 25 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignDownloadEntity.java

@@ -0,0 +1,25 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import com.zfire.jiasm.syncdata.plus.entity.ItfTblRecycleAssignBatchDownloadRec;
+import com.zfire.jiasm.syncdata.plus.entity.ItfTblRecycleAssignDownload;
+import com.zfire.jiasm.syncdata.plus.entity.ItfTblRecycleAssignFkmxDownload;
+import com.zfire.jiasm.syncdata.plus.entity.ItfTblRecycleAssignMxDownload;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+@Data
+@ApiModel
+public class RecycleAssignDownloadEntity {
+	@ApiModelProperty("回收工单批量下载记录")
+	private ItfTblRecycleAssignBatchDownloadRec rec;
+	@ApiModelProperty("回收工单主表")
+	private ItfTblRecycleAssignDownload tblRecycleAssignEntity;
+	@ApiModelProperty("回收工单反馈明细表")
+	private ItfTblRecycleAssignFkmxDownload lastStep;
+	@ApiModelProperty("回收工单产品明细表")
+	private List<ItfTblRecycleAssignMxDownload> hscpmx;
+}

+ 38 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignFeedbackBean.java

@@ -0,0 +1,38 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel
+public class RecycleAssignFeedbackBean {
+	@ApiModelProperty(value = "回收单id")
+    private String pgguid;
+
+    @ApiModelProperty(value = "反馈类别")
+    private String fklb;
+
+    @ApiModelProperty(value = "反馈结果")
+    private String fkjg;
+
+    @ApiModelProperty(value = "反馈内容")
+    private String fknr;
+
+    @ApiModelProperty(value = "反馈人")
+    private String fkren;
+
+    @ApiModelProperty(value = "反馈人姓名")
+    private String fkrenmc;
+
+    @ApiModelProperty(value = "反馈时间")
+    private Date fksj;
+
+    @ApiModelProperty(value = "反馈网点")
+    private String fkwdno;
+
+    @ApiModelProperty(value = "反馈网点名称")
+    private String fkwdmc;
+}

+ 18 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignFeedbackUploadBean.java

@@ -0,0 +1,18 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class RecycleAssignFeedbackUploadBean extends RecycleAssignFeedbackBean {
+	@ApiModelProperty("派工id")
+	private String pgid;
+	@ApiModelProperty("派工状态:1000=保存,1010=待分部派工,1030=待网点派工,1040=待审批改派,1050=待服务人员处理,1060=服务人员报完工,1070=已作废工单,1080=正常关闭")
+	private Long stat;
+	@ApiModelProperty("批次号")
+	private String batchNo;
+	@ApiModelProperty("任务号")
+	private String taskNo;
+}

+ 37 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignFkmxDownloadBean.java

@@ -0,0 +1,37 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel
+public class RecycleAssignFkmxDownloadBean extends RecycleAssignFeedbackBean {
+
+    private String fkid;
+
+    private String createdBy;
+
+    private Date createdDate;
+
+    private String lastModifiedBy;
+
+    private Date lastModifiedDate;
+
+    @ApiModelProperty(value = "附件ID")
+    private String scid;
+
+    @ApiModelProperty(value = "附件名称")
+    private String scwj;
+
+    @ApiModelProperty(value = "请求来源序号")
+    private String qqlyxh;
+
+    @ApiModelProperty(value = "反馈明细guid")
+    private String fkmxguid;
+
+    @ApiModelProperty(value = "文件名")
+    private String wjid;
+}

+ 1158 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignLogic.java

@@ -0,0 +1,1158 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.zfire.jiasm.syncdata.constant.Constant;
+import com.zfire.jiasm.syncdata.constant.GreeSynStatusEnum;
+import com.zfire.jiasm.syncdata.gree.helper.GreeResponseHelper;
+import com.zfire.jiasm.syncdata.plus.entity.*;
+import com.zfire.jiasm.syncdata.plus.service.*;
+import io.jsonwebtoken.lang.Collections;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class RecycleAssignLogic {
+	@Autowired
+	GreeLogicT greeLogic;
+	@Autowired
+	ItfTblRecycleAssignDownloadService recycleAssignService;
+	@Autowired
+	ItfTblRecycleAssignFkmxDownloadService recycleAssignFkmxDownloadService;
+	@Autowired
+	ItfTblRecycleAssignMxDownloadService recycleAssignMxDownloadService;
+	@Autowired
+	ItfTblRecycleAssignBatchDownloadRecService recycleAssignBatchDownloadRecService;
+	@Autowired
+	FaOrderRecycleUploadEventService orderRecycleUploadEventService;
+	@Autowired
+	ItfTblRecycleAssignFkmxUploadService recycleAssignFkmxUploadService;
+	@Autowired
+	ItfTblHsptJjcjUploadService hsptJjcjUploadService;
+	@Autowired
+	ItfTblHsptJjcjFjUploadService hsptJjcjFjUploadService;
+	@Autowired
+	ItfTblHsptJjcjTmmxUploadService hsptJjcjTmmxUploadService;
+	@Autowired
+	ItfTblRecycleHsptJjcjDownloadService recycleHsptJjcjDownloadService;
+	@Autowired
+	ItfTblRecycleHsptJjcjFjDownloadService recycleHsptJjcjFjDownloadService;
+	@Autowired
+	ItfTblRecycleHsptJjcjTmmxDownloadService recycleHsptJjcjTmmxDownloadService;
+
+
+	/*
+	@Autowired
+	FaOrderRecycleAssignFkmxService orderRecycleAssignFkmxService;
+	@Autowired
+	OrderRecycleAssignService orderRecycleAssignService;
+	@Autowired
+	OrderRecycleAssignMxService orderRecycleAssignMxService;
+	@Autowired
+	OrderWebsitItemService orderWebsitItemService;
+	@Autowired
+	WebsitWorkerService websitWorkerService;
+	@Autowired
+	OrderRecycleAssignWorkerService orderRecycleAssignWorkerService;
+	@Autowired
+	OrderRecycleAssignExpandService orderRecycleAssignExpandService;
+	@Autowired
+	OrderRecycleAssignCollectionService orderRecycleAssignCollectionService;*/
+	@Autowired
+	AreaService areaService;
+	@Autowired
+	WebsitService websitService;
+	
+	private ObjectMapper mapper;
+	@Autowired
+	public RecycleAssignLogic() {
+		this.mapper = new ObjectMapper();
+		SimpleDateFormat smt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		this.mapper.setDateFormat(smt);
+		this.mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+	}
+	
+	private static String genWorkerNo() {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSSSSS");
+//		for(int i=0;i<100;i++) {
+//			int r = (int)(Math.random()*999);
+//			System.out.println("r="+r);
+//		}
+		int r = (int)(Math.random()*999);
+		String result = "11"+sdf.format(new Date())+"000".substring(0, "000".length() - String.valueOf(r).length())+String.valueOf(r);
+	    return result;
+	}
+	
+	public List<RecycleAssignDownloadBean> assign(RecycleAssignParamBean param) throws Exception{
+		final String apiPath = Constant.GreeApiPath.RECYCLE_ASSIGN;
+		Map<String,Object> map = new HashMap<>();
+		map.put("page", param.getPage());
+		map.put("pageSize", param.getPageSize());
+		map.put("type", param.getType());
+		//回收工单请求
+		String dataStr = greeLogic.post(apiPath, map, 1);	
+//		ObjectMapper mapper = new ObjectMapper();
+//		SimpleDateFormat smt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//		mapper.setDateFormat(smt);
+		List<RecycleAssignDownloadBean> responseBeanList = mapper.readValue(dataStr, new TypeReference<List<RecycleAssignDownloadBean>>() {} );
+		if(null != responseBeanList && !responseBeanList.isEmpty()) {
+			LinkedHashSet<String> pguuidLhs = new LinkedHashSet<>(); 
+			responseBeanList.forEach(o->pguuidLhs.add(o.getPgguid()));
+			//要添加到新增任务列表的
+			List<RecycleAssignDownloadEntity> newTaskEntities = new ArrayList<>();
+			if(!pguuidLhs.isEmpty()) {
+				List<ItfTblRecycleAssignBatchDownloadRec> recList = recycleAssignBatchDownloadRecService.lambdaQuery().in(ItfTblRecycleAssignBatchDownloadRec::getPgguid, pguuidLhs)
+						.in(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus, 0, Constant.SynStatus.FAIL.getCode()).list();
+				if(null != recList && !recList.isEmpty()) {
+					Map<Integer, List<ItfTblRecycleAssignBatchDownloadRec>> recMap = recList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus));
+					List<ItfTblRecycleAssignBatchDownloadRec> zeroList = recMap.get(0);
+					//获取状态为0的任务,组装成map,方便后续查找
+					Map<String, List<ItfTblRecycleAssignBatchDownloadRec>> zeroMap = (null != zeroList && !zeroList.isEmpty()) ? (zeroList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignBatchDownloadRec::getPgguid))) : null;
+					List<ItfTblRecycleAssignBatchDownloadRec> nnList = recMap.get(Constant.SynStatus.FAIL.getCode());
+					//获取状态为99的任务,组装成map,方便后续查找
+					Map<String, List<ItfTblRecycleAssignBatchDownloadRec>> nnMap = (null != nnList && !nnList.isEmpty()) ? (nnList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignBatchDownloadRec::getPgguid))) : null;
+					
+					//不添加到新增任务列表的
+					responseBeanList.forEach(o->{
+						if(null == zeroMap || !zeroMap.containsKey(o.getPgguid())
+								|| null == zeroMap.get(o.getPgguid()) 
+								|| zeroMap.get(o.getPgguid()).isEmpty()) {//没有状态为0的任务
+							if(null == nnMap || !nnMap.containsKey(o.getPgguid())
+									|| null == nnMap.get(o.getPgguid()) 
+									|| nnMap.get(o.getPgguid()).isEmpty()) {//没有状态为99的任务
+								try {
+									RecycleAssignDownloadEntity entity = copyBean2Entity(o);
+									ItfTblRecycleAssignBatchDownloadRec rec = new ItfTblRecycleAssignBatchDownloadRec();
+									rec.setSynTimes(1);
+									rec.setGreeStatSynStatus(0);
+									rec.setCreatedDate(new Date());
+									rec.setLastModifiedDate(new Date());
+									entity.setRec(rec);
+									newTaskEntities.add(entity);
+								} catch (JsonProcessingException e) {
+									log.error("RecycleAssignDownload bean复制到RecycleAssignDownloadEntity异常:{}", e.getMessage());
+								}
+							}else {//含有请求失败过的任务(状态为99),若超过3次,则不再请求接口
+								ItfTblRecycleAssignBatchDownloadRec rec = nnMap.get(o.getPgguid()).get(0);
+								if( rec.getSynTimes() >= 3 ) {
+									rec.setGreeStatSynStatus(Constant.SynStatus.FAIL.getCode());
+									rec.setCreatedDate(new Date());
+									rec.setLastModifiedDate(new Date());
+									rec.setGreeStatSynErrMsg("请求次数大于3次,不再发送pgguid={}"+ rec.getPgguid());
+									RecycleAssignDownloadEntity entity = new RecycleAssignDownloadEntity();
+									entity.setRec(rec);
+									newTaskEntities.add(entity);
+								}else {
+									try {
+										RecycleAssignDownloadEntity entity = copyBean2Entity(o);
+										rec.setSynTimes(rec.getSynTimes()+1);
+										rec.setLastModifiedDate(new Date());
+										entity.setRec(rec);
+										newTaskEntities.add(entity);
+									} catch (JsonProcessingException e) {
+										log.error("RecycleAssignDownload bean复制到RecycleAssignDownloadEntity异常:{}", e.getMessage());
+									}
+								}
+							}
+						}
+					});
+				}else {//数据库没查到数据,直接新增任务
+					//要添加到新增任务列表的
+					responseBeanList.forEach(o->{
+						try {
+							RecycleAssignDownloadEntity entity = copyBean2Entity(o);
+							ItfTblRecycleAssignBatchDownloadRec rec = new ItfTblRecycleAssignBatchDownloadRec();
+							rec.setPgguid(o.getPgguid());
+							rec.setSynTimes(1);
+							rec.setGreeStatSynStatus(0);
+							rec.setCreatedDate(new Date());
+							rec.setLastModifiedDate(new Date());
+							entity.setRec(rec);
+							newTaskEntities.add(entity);
+						} catch (JsonProcessingException e) {
+							log.error("RecycleAssignDownload bean复制到RecycleAssignDownloadEntity异常:{}", e.getMessage());
+						}
+					});
+				}
+				if( null != newTaskEntities && !newTaskEntities.isEmpty()) {
+					batchAddDownloadTask(newTaskEntities );
+				}
+			}
+		}
+		return responseBeanList;
+	}
+	
+	/**
+	 * 批量添加回收工单任务
+	 * @param newTaskEntities
+	 */
+	@Transactional
+	public void batchAddDownloadTask(List<RecycleAssignDownloadEntity> newTaskEntities) {
+		List<ItfTblRecycleAssignBatchDownloadRec> recList = new ArrayList<>();
+		String batchNo = UUID.randomUUID().toString();
+		if(null != newTaskEntities && !newTaskEntities.isEmpty()) {
+			List<ItfTblRecycleAssignDownload> tblRecycleAssignEntity = new ArrayList<>();
+			List<ItfTblRecycleAssignFkmxDownload> lastStep = new ArrayList<>();
+			List<ItfTblRecycleAssignMxDownload> hscpmx = new ArrayList<>();
+			newTaskEntities.forEach(o->{
+				ItfTblRecycleAssignBatchDownloadRec rec = o.getRec();
+				rec.setDownloadTaskNo(UUID.randomUUID().toString());
+				rec.setDownloadBatchNo(batchNo);
+				rec.setSynReqTime(new Date());
+				rec.setCreatedDate(new Date());
+				rec.setLastModifiedDate(new Date());
+				recList.add(rec);
+				//把基础信息的状态更新到所有的明细里
+				if(!Objects.isNull(o.getTblRecycleAssignEntity())) {
+					tblRecycleAssignEntity.add(o.getTblRecycleAssignEntity().setSynStatus(rec.getSynStatus()).
+							setSynErrMsg(rec.getSynErrMsg()).setDownloadBatchNo(
+							rec.getDownloadBatchNo()).setDownloadTaskNo(rec.getDownloadTaskNo())
+							.setCreatedDate(new Date()).setLastModifiedDate(new Date()));
+				}
+				if( !Objects.isNull( o.getLastStep())) {
+					lastStep.add(o.getLastStep().setSynStatus(rec.getSynStatus()).
+							setSynErrMsg(rec.getSynErrMsg()).setDownloadBatchNo(rec.getDownloadBatchNo()).
+							setDownloadTaskNo(rec.getDownloadTaskNo()));
+				}
+				if(null != o.getHscpmx() && !o.getHscpmx().isEmpty()) {
+					o.getHscpmx().forEach(i->{
+						i.setSynStatus(
+								o.getTblRecycleAssignEntity().getSynStatus()).setSynErrMsg(
+										o.getTblRecycleAssignEntity().getSynErrMsg()).setDownloadBatchNo(rec.getDownloadBatchNo()).
+						setDownloadTaskNo(rec.getDownloadTaskNo())
+						.setCreatedDate(new Date()).setLastModifiedDate(new Date());
+						hscpmx.add(i);
+					});
+				}
+				
+				
+			});
+			if( null != tblRecycleAssignEntity  && !tblRecycleAssignEntity.isEmpty()) {
+				recycleAssignService.saveOrUpdateBatch(tblRecycleAssignEntity);
+			}
+			if(null != lastStep && !lastStep.isEmpty()) {
+				recycleAssignFkmxDownloadService.saveOrUpdateBatch(lastStep);
+			}
+			if(null != hscpmx && !hscpmx.isEmpty()) {
+				recycleAssignMxDownloadService.saveOrUpdateBatch(hscpmx);
+			}
+			if(null != recList && !recList.isEmpty()) {
+				recycleAssignBatchDownloadRecService.saveOrUpdateBatch(recList);
+			}
+		}
+		
+	}
+	
+	/**
+	 * 复制回收工单bean到entity
+	 * @param bean
+	 * @return
+	 * @throws JsonMappingException
+	 * @throws JsonProcessingException
+	 */
+	private RecycleAssignDownloadEntity copyBean2Entity(RecycleAssignDownloadBean bean) throws JsonMappingException, JsonProcessingException {
+//		ObjectMapper mapper = new ObjectMapper();
+//		SimpleDateFormat smt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//		mapper.setDateFormat(smt);
+//		mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+		RecycleAssignDownloadEntity entity = new RecycleAssignDownloadEntity();
+		entity.setTblRecycleAssignEntity(mapper.readValue(mapper.writeValueAsString(bean), ItfTblRecycleAssignDownload.class));
+		entity.setLastStep(mapper.readValue(mapper.writeValueAsString(bean.getLastStep()), ItfTblRecycleAssignFkmxDownload.class));
+		List<ItfTblRecycleAssignMxDownload>  mxList = new ArrayList<>();
+		bean.getHscpmx().forEach(o-> {
+				try {
+					ItfTblRecycleAssignMxDownload mxEntity = mapper.readValue(mapper.writeValueAsString(o), ItfTblRecycleAssignMxDownload.class);
+//					entity.getHscpmx().add(mxEntity);
+					mxList.add(mxEntity);
+				} catch (JsonProcessingException e) {
+					log.error("转换RecycleAssignMxDownload bean 到 RecycleAssignMxDownload 异常:{}", e.getOriginalMessage());
+				}
+			}
+		);
+		entity.setHscpmx(mxList);
+		return entity;
+	}
+	
+	
+	private List<RecycleAssignDownloadBean> copyEntities2Bean(List<ItfTblRecycleAssignBatchDownloadRec> recList){
+		if(null != recList && !recList.isEmpty()) {
+			List<RecycleAssignDownloadBean> resultList = new ArrayList<>();
+			LinkedHashSet<String> taskNos = new LinkedHashSet<>();
+			recList.forEach(o->{
+				taskNos.add(o.getDownloadTaskNo());
+			});
+			
+			//装载list
+			List<ItfTblRecycleAssignDownload> raList = recycleAssignService.lambdaQuery().in(ItfTblRecycleAssignDownload::getDownloadTaskNo, taskNos).list();
+			Map<String, List<ItfTblRecycleAssignDownload>> raMap = raList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignDownload::getDownloadTaskNo));
+			List<ItfTblRecycleAssignFkmxDownload> fkmxList = recycleAssignFkmxDownloadService.lambdaQuery().in(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo, taskNos).list();
+			Map<String, List<ItfTblRecycleAssignFkmxDownload>> fkmxMap = fkmxList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo));
+			List<ItfTblRecycleAssignMxDownload> mxList = recycleAssignMxDownloadService.lambdaQuery().in(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, taskNos).list();
+			Map<String, List<ItfTblRecycleAssignMxDownload>> mxMap = mxList.stream().collect(Collectors.groupingBy(ItfTblRecycleAssignMxDownload::getDownloadTaskNo));
+
+			recList.forEach(o->{
+				RecycleAssignDownloadBean bean = new RecycleAssignDownloadBean();
+				if(Objects.isNull(raMap)
+						|| !raMap.containsKey(o.getDownloadTaskNo())
+						||Collections.isEmpty(raMap.get(o.getDownloadTaskNo()))){
+					log.error("找不到任务号: downloadTaskNo={}", o.getDownloadTaskNo());
+				}else {
+					try {
+						bean = mapper.readValue(mapper.writeValueAsString(raMap.get(o.getDownloadTaskNo()).get(0)), RecycleAssignDownloadBean.class);
+						bean.setBatchNo(o.getDownloadBatchNo());
+						bean.setTaskNo(o.getDownloadTaskNo());
+						bean.setPgguid(o.getPgguid());
+					} catch (JsonProcessingException e) {
+						log.error("转换RecycleAssignDownloadEntity 到 RecycleAssignDownload bean 异常:{}", e.getOriginalMessage());
+					}
+				}
+				if(!Objects.isNull(fkmxMap) && fkmxMap.containsKey(o.getDownloadTaskNo())
+						&& !Collections.isEmpty(fkmxMap.get(o.getDownloadTaskNo()))
+						) {
+					try {
+						// bean.setLastStep(mapper.readValue(mapper.writeValueAsString(fkmxMap.get(o.getDownloadTaskNo()).get(0)), ItfTblRecycleAssignBatchDownloadRec.class));
+						RecycleAssignFkmxDownloadBean r = new RecycleAssignFkmxDownloadBean();
+						BeanUtils.copyProperties(fkmxMap.get(o.getDownloadTaskNo()).get(0),r);
+						bean.setLastStep(r);
+					} catch (Exception e) {
+						log.error("转换RecycleAssignFkmxDownloadEntity 到 RecycleAssignFkmxDownload bean 异常:{}", e.getMessage());
+					}
+				}
+				if(!Objects.isNull(mxMap)  && mxMap.containsKey(o.getDownloadTaskNo())
+						&& Collections.isEmpty(mxMap.get(o.getDownloadTaskNo()))
+						) {
+
+					List<RecycleAssignMxDownloadBean> hscpmx = new ArrayList<>();
+					mxMap.get(o.getDownloadTaskNo()).forEach(i->{
+						try {
+							hscpmx.add(mapper.readValue(mapper.writeValueAsString(i), RecycleAssignMxDownloadBean.class));
+						} catch (JsonProcessingException e) {
+							log.error("转换RecycleAssignMxDownloadEntities 到 RecycleAssignMxDownload bean 异常:{}", e.getOriginalMessage());
+						}
+					});
+					bean.setHscpmx(hscpmx);
+				}
+				resultList.add(bean);
+			});
+			return resultList;
+		}
+		return null;
+	}
+	
+	/**
+	 * 查询synstatus状态为0即未同步的数据,装载到RecycleAssignDownloadBean里
+	 * @return
+	 * @throws Exception
+	 */
+	private List<RecycleAssignDownloadBean> queryUnSynList() {
+		return copyEntities2Bean(recycleAssignBatchDownloadRecService.lambdaQuery().eq(ItfTblRecycleAssignBatchDownloadRec::getSynStatus, 66).eq(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus, 0).list());
+	}
+	
+	/**
+	 * 批量同步反馈明细
+	 * @return
+	 * @throws Exception
+	 */
+	public List<GreeResponseHelper> updateFeedback() throws Exception {
+		List<GreeResponseHelper> responseList = new ArrayList<>();
+		List<ItfTblRecycleAssignBatchDownloadRec> recList = recycleAssignBatchDownloadRecService.lambdaQuery().eq(ItfTblRecycleAssignBatchDownloadRec::getSynStatus, 0).eq(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus,0).list();
+		if( null != recList && !recList.isEmpty()) {
+			List<RecycleAssignDownloadBean> unSynList = copyEntities2Bean(recList);
+			for (RecycleAssignDownloadBean recycleAssignDownloadBean : unSynList) {
+				responseList.add(assignDetail(recycleAssignDownloadBean));
+			}
+		}
+		return responseList;
+	}
+	
+	
+	/**
+	 * 多线程请求
+	 * @param bean
+	 * @throws Exception 
+	 */
+	// @Async("taskExecutor")
+	@Transactional
+	public GreeResponseHelper updateExtendReq(RecycleAssignDownloadBean bean) throws Exception {
+		final String apiPath = Constant.GreeApiPath.RECYCLE_ASSIGN; 
+		Map<String, Object> map = new HashMap<>();
+		map.put("type", "updateExtend");
+		map.put("pgguid", bean.getPgguid());
+		map.put("taskNo", bean.getTaskNo());
+		map.put("batchNo", bean.getBatchNo());
+		GreeResponseHelper response = greeLogic.greePost(apiPath, map, 1);
+		if( 200 == response.getStatus()) {
+			RecycleAssignDownloadBean resultBean =  mapper.readValue(response.getData().toString(), RecycleAssignDownloadBean.class);
+			ItfTblRecycleAssignBatchDownloadRec rec = recycleAssignBatchDownloadRecService.lambdaQuery().eq(ItfTblRecycleAssignBatchDownloadRec::getDownloadTaskNo, resultBean.getTaskNo()).one();
+			ItfTblRecycleAssignDownload ra = recycleAssignService.lambdaQuery().eq(ItfTblRecycleAssignDownload::getDownloadTaskNo, resultBean.getTaskNo()).one();
+			//反馈明细已经在详情接口assignDetail获取下来,所以不必再获取了
+//			RecycleAssignFkmxDownload fkmx = recycleAssignFkmxDownloadService.lambdaQuery().eq(RecycleAssignFkmxDownload::getDownloadTaskNo, resultBean.getTaskNo()).one();
+			List<ItfTblRecycleAssignMxDownload> mxList = recycleAssignMxDownloadService.lambdaQuery().eq(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, resultBean.getTaskNo()).list();
+			//更新状态为已同步
+			rec.setGreeStatSynStatus(GreeSynStatusEnum.SYN.getCode());
+			rec.setGreeStatSynTime(new Date());
+			rec.setSynReqTime(new Date());
+			rec.setLastModifiedDate(new Date());
+			recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
+			ra.setGreeStatSynStatus(GreeSynStatusEnum.SYN.getCode());
+			ra.setGreeStatSynTime(new Date());
+			ra.setSynReqTime(new Date());
+			ra.setLastModifiedDate(new Date());
+			recycleAssignService.saveOrUpdate(ra);
+//			fkmx.setGreeStatSynStatus(GreeSynStatusEnum.SYN.getCode());
+//			fkmx.setGreeStatSynTime(new Date());
+//			fkmx.setSynReqTime(new Date());
+//			fkmx.setLastModifiedDate(new Date());
+//			recycleAssignFkmxDownloadService.saveOrUpdate(fkmx);
+			mxList.stream().forEach(o->{
+				o.setGreeStatSynStatus(GreeSynStatusEnum.SYN.getCode());
+				o.setGreeStatSynTime(new Date());
+				o.setSynReqTime(new Date());
+				o.setLastModifiedDate(new Date());
+			});
+			recycleAssignMxDownloadService.saveOrUpdateBatch(mxList);
+		}else {
+			ItfTblRecycleAssignBatchDownloadRec rec = recycleAssignBatchDownloadRecService.lambdaQuery().eq(ItfTblRecycleAssignBatchDownloadRec::getDownloadTaskNo, bean.getTaskNo()).one();
+			ItfTblRecycleAssignDownload ra = recycleAssignService.lambdaQuery().eq(ItfTblRecycleAssignDownload::getDownloadTaskNo, bean.getTaskNo()).one();
+//			RecycleAssignFkmxDownload fkmx = recycleAssignFkmxDownloadService.lambdaQuery().eq(RecycleAssignFkmxDownload::getDownloadTaskNo, bean.getTaskNo()).one();
+			List<ItfTblRecycleAssignMxDownload> mxList = recycleAssignMxDownloadService.lambdaQuery().eq(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, bean.getTaskNo()).list();
+			//更新状态为已同步
+			rec.setGreeStatSynStatus(GreeSynStatusEnum.FAIL.getCode());
+			rec.setGreeStatSynTime(new Date());
+			rec.setSynStatus(GreeSynStatusEnum.FAIL.getCode());
+			rec.setSynReqTime(new Date());
+			rec.setLastModifiedDate(new Date());
+			rec.setGreeStatSynErrMsg(response.getMsg());
+			recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
+			ra.setGreeStatSynStatus(1);
+			ra.setGreeStatSynTime(new Date());
+			ra.setSynReqTime(new Date());
+			ra.setLastModifiedDate(new Date());
+			ra.setSynErrMsg(response.getMsg());
+			recycleAssignService.saveOrUpdate(ra);
+//			fkmx.setGreeStatSynStatus(GreeSynStatusEnum.FAIL.getCode());
+//			fkmx.setGreeStatSynTime(new Date());
+//			fkmx.setSynReqTime(new Date());
+//			fkmx.setLastModifiedDate(new Date());
+//			recycleAssignFkmxDownloadService.saveOrUpdate(fkmx);
+			mxList.stream().forEach(o->{
+				o.setGreeStatSynStatus(GreeSynStatusEnum.FAIL.getCode());
+				o.setGreeStatSynTime(new Date());
+				o.setLastModifiedDate(new Date());
+				o.setSynErrMsg(response.getMsg());
+			});
+			recycleAssignMxDownloadService.saveOrUpdateBatch(mxList);
+		}
+		return response;
+	}
+	
+	/**
+	 * 批量上传更新过的数据pgguid
+	 * @throws Exception
+	 */
+	public List<GreeResponseHelper> updateExtend() throws Exception {
+		List<GreeResponseHelper> responseList = new ArrayList<>();
+		List<RecycleAssignDownloadBean> unSynList = queryUnSynList();
+		if( null != unSynList && !unSynList.isEmpty()) {
+			for (RecycleAssignDownloadBean recycleAssignDownloadBean : unSynList) {
+				responseList.add(updateExtendReq(recycleAssignDownloadBean));
+			}
+		}
+		return responseList;
+	}
+	
+	
+	/**
+	 * 多线程请求
+	 * @param bean
+	 * @throws Exception 
+	 */
+	@SuppressWarnings({ "unused", "unchecked" })
+	// @Async("taskExecutor")
+	@Transactional
+	public GreeResponseHelper assignDetail(RecycleAssignBean bean) throws Exception {
+		final String apiPath = Constant.GreeApiPath.RECYCLE_ASSIGN_DETAIL;
+//		ObjectMapper mapper = new ObjectMapper();
+//		SimpleDateFormat smt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//		mapper.setDateFormat(smt);
+//		mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+		Map<String, Object> param = mapper.readValue(mapper.writeValueAsString(bean), Map.class);
+		GreeResponseHelper response = greeLogic.greePost(apiPath, param, 1);
+		ItfTblRecycleAssignBatchDownloadRec rec = recycleAssignBatchDownloadRecService.lambdaQuery().eq(ItfTblRecycleAssignBatchDownloadRec::getDownloadTaskNo, bean.getTaskNo()).one();
+		if( 200 == response.getStatus()) {
+//			Map<String, Object> map = mapper.readValue( (String)response.getData(), Map.class);
+			RecycleAssignDetailDownloadBean responseBean = mapper.readValue((String)response.getData(), RecycleAssignDetailDownloadBean.class);
+			List<ItfTblRecycleAssignFkmxDownload> fkmxList= recycleAssignFkmxDownloadService.lambdaQuery()
+					.eq(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo, bean.getTaskNo())
+					.eq(ItfTblRecycleAssignFkmxDownload::getPgguid, bean.getPgguid()).list();
+			if(null != responseBean.getFkmx() && !responseBean.getFkmx().isEmpty()) {
+				for(RecycleAssignFkmxDownloadBean fkmxBean: responseBean.getFkmx()) {
+					if(!fkmxList.stream().filter(o->o.getFkid().equals(fkmxBean.getFkid())).findAny().isPresent()) {//若找不到数据,则添加
+						ItfTblRecycleAssignFkmxDownload newFkmx = mapper.readValue(mapper.writeValueAsString(fkmxBean), ItfTblRecycleAssignFkmxDownload.class);
+						newFkmx.setDownloadBatchNo(bean.getBatchNo());
+						newFkmx.setDownloadTaskNo(bean.getTaskNo());
+						fkmxList.add(newFkmx);
+					}
+				}
+				recycleAssignFkmxDownloadService.saveOrUpdateBatch(fkmxList);
+			}
+			//更新状态为已同步
+			rec.setSynStatus(Constant.SynStatus.SYN_FEEDBACK.getCode());//增加一个中间状态,代表反馈明细已更新
+			rec.setSynReqTime(new Date());
+			rec.setLastModifiedDate(new Date());
+			recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
+		}else {
+			rec.setSynStatus(Constant.SynStatus.FAIL.getCode());//增加一个中间状态,代表反馈明细已更新
+			rec.setSynErrMsg(response.getMsg());
+			rec.setSynReqTime(new Date());
+			rec.setLastModifiedDate(new Date());
+			recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
+			List<ItfTblRecycleAssignFkmxDownload> fkmxList = recycleAssignFkmxDownloadService.lambdaQuery().eq(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo, bean.getTaskNo()).list();
+			List<ItfTblRecycleAssignMxDownload> mxList = recycleAssignMxDownloadService.lambdaQuery().eq(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, bean.getTaskNo()).list();
+			if(null != fkmxList && !fkmxList.isEmpty()) {
+				fkmxList.stream().forEach(o->{
+						o.setSynStatus(rec.getSynStatus());
+						o.setSynErrMsg(rec.getSynErrMsg());
+						o.setLastModifiedDate(new Date());
+						o.setSynReqTime(new Date());
+					});
+				recycleAssignFkmxDownloadService.saveOrUpdateBatch(fkmxList);
+			}
+			if(null != mxList && !mxList.isEmpty()) {
+				mxList.stream().forEach(o->{
+						o.setSynStatus(rec.getSynStatus());
+						o.setSynErrMsg(rec.getSynErrMsg());
+						o.setLastModifiedDate(new Date());
+						o.setSynReqTime(new Date());
+					});
+				recycleAssignMxDownloadService.saveOrUpdateBatch(mxList);
+			}
+		}
+		return response;
+	}
+	
+	
+	public void processBusiness() {
+//		//查找未同步到广佛系统且已经和总部同步的数据
+//		//这里需要增加一个中间状态(反馈明细和采集明细是否已经同步),代表工单信息已同步,但反馈明细或采集信息还没同步的,这里因为反馈和采集信息量过大,不能同一个接口传回来,所以分开
+//		//44代表已同步反馈明细,66代表已经同步采集信息
+		List<ItfTblRecycleAssignBatchDownloadRec> recList = recycleAssignBatchDownloadRecService.lambdaQuery()
+				.eq(ItfTblRecycleAssignBatchDownloadRec::getSynStatus, Constant.SynStatus.SYN_ACQUISITION.getCode())
+				.eq(ItfTblRecycleAssignBatchDownloadRec::getGreeStatSynStatus,Constant.GreeSynStatus.SYN.getCode())
+				.orderByAsc(ItfTblRecycleAssignBatchDownloadRec::getSynReqId)
+				.list();
+		if(Collections.isEmpty(recList)) {
+			return;
+		}
+		for( ItfTblRecycleAssignBatchDownloadRec rec : recList ) {
+			List<ItfTblRecycleAssignBatchDownloadRec> lastTaskList = recycleAssignBatchDownloadRecService.lambdaQuery()
+					.in(ItfTblRecycleAssignBatchDownloadRec::getSynStatus,
+							new Integer[] { Constant.SynStatus.FAIL.getCode(),
+									Constant.SynStatus.UN_SYN.getCode() })
+					.lt(ItfTblRecycleAssignBatchDownloadRec::getSynReqId, rec.getSynReqId())
+					.eq(ItfTblRecycleAssignBatchDownloadRec::getPgguid, rec.getPgguid())
+					.orderByDesc(ItfTblRecycleAssignBatchDownloadRec::getSynReqId).list();
+
+			if (!Collections.isEmpty(lastTaskList)) {
+				ItfTblRecycleAssignBatchDownloadRec lastTask = lastTaskList.get(0);
+				if (Constant.SynStatus.UN_SYN.getCode().intValue() == lastTask.getSynStatus()) {// 若上一条未同步,则本条跳过
+					continue;
+				} else {// 若上一条失败,则本条也不允许上传
+					rec.setSynStatus(Constant.SynStatus.FAIL.getCode());
+					rec.setSynErrMsg("上一条数据没上传成功,本条数据不上传, id=" + rec.getSynReqId());
+					rec.setSynTime(new Date());
+					continue;
+				}
+			}
+			// 这里先不做处理
+			// processBusiness(rec);
+		}
+	}
+
+	/**
+	 * 增删改网点关联数据
+	 * @param type 类型:
+	 * @param wdno 网点编号 
+	 * @param recycleAssign 回收工单主表实体
+	 * @param websit 网点实体
+	 */
+	/*@Transactional
+	public void addOrUpdateOrderWebsitItem(Integer type, String wdno, OrderRecycleAssign recycleAssign, Websit websit){
+		if(StringUtils.isNullOrEmpty(wdno)) {
+			return;
+		}
+		//新增或修改的网点关联数据
+		List<OrderWebsitItem> orderWebsitItemList = new ArrayList<>();
+		//删除的网点关联数据
+		List<Integer> delOrderWebsitItemIdsList = new ArrayList<>();
+		//查询原来的维修网点编号
+		final List<OrderWebsitItem> oldWebsitItemList = orderWebsitItemService.lambdaQuery()
+				.eq(OrderWebsitItem::getOrderWebsitItemOrderId, recycleAssign.getId())
+				.eq(OrderWebsitItem::getOrderWebsitItemOrderType, "order_recycle_assign")
+				.eq(OrderWebsitItem::getOrderWebsitItemOrderWebsitType, type)
+				.list();
+		final Map<Integer, List<OrderWebsitItem>> oldWebsitItemMap = (Collections.isEmpty(oldWebsitItemList)) 
+				? null : oldWebsitItemList.stream().collect(Collectors.groupingBy(OrderWebsitItem::getOrderWebsitItemOrderId));
+		if(!StringUtil.isNullOrEmpty(wdno) ) {
+			if(!Collections.isEmpty(oldWebsitItemList)) {//旧数据不为空, 则对比更新
+				for( OrderWebsitItem oldWebsitItem : oldWebsitItemList) {
+					oldWebsitItem.setOrderWebsitItemWebsitNumber(wdno);
+					oldWebsitItem.setOrderWebsitItemWebsitBelongCompanyId(websit.getBelongCompanyId());
+					oldWebsitItem.setOrderWebsitItemWebsitBelongCompany(websit.getBelongCompany());
+					oldWebsitItem.setOrderWebsitItemWebsitId(websit.getId());
+					orderWebsitItemList.add(oldWebsitItem);
+				}
+			}else {//旧数据为空,直接添加
+				OrderWebsitItem orderWebsitItem = new OrderWebsitItem();
+				orderWebsitItem.setOrderWebsitItemOrderId(recycleAssign.getId());
+				orderWebsitItem.setOrderWebsitItemOrderWebsitType(type);
+				orderWebsitItem.setOrderWebsitItemPgId(recycleAssign.getPgid());
+				orderWebsitItem.setOrderWebsitItemOrderType("order_recycle_assign");
+				orderWebsitItem.setOrderWebsitItemWorkerOrderNo(recycleAssign.getWorkerOrderNo());
+				orderWebsitItem.setOrderWebsitItemWebsitNumber(wdno);
+				orderWebsitItem.setOrderWebsitItemWebsitBelongCompanyId(websit.getBelongCompanyId());
+				orderWebsitItem.setOrderWebsitItemWebsitBelongCompany(websit.getBelongCompany());
+				orderWebsitItem.setOrderWebsitItemWebsitId(websit.getId());
+				orderWebsitItemList.add(orderWebsitItem);
+			}
+		}else {//创建网点编号为空,删除原数据
+			for( OrderWebsitItem oldWebsitItem : oldWebsitItemList) {
+				delOrderWebsitItemIdsList.add(oldWebsitItem.getOrderWebsitItemId());
+			}
+		}
+		if(!Collections.isEmpty(orderWebsitItemList)) {
+			orderWebsitItemService.saveOrUpdateBatch(orderWebsitItemList);
+		}
+		if(!Collections.isEmpty(delOrderWebsitItemIdsList)) {
+			orderWebsitItemService.removeByIds(delOrderWebsitItemIdsList);
+		}
+	}
+	*/
+	/**
+	 * 批量处理同步状态
+	 * @param rec
+	 */
+	/*
+	public void batchProcessSynStatus(
+			ItfTblRecycleAssignBatchDownloadRec rec,
+			Integer synStatus,
+			String msg
+			) {
+		if(Objects.isNull(rec)) {
+			return ;
+		}
+		ItfTblRecycleAssignDownload recycleAssignDownload = recycleAssignService.lambdaQuery().eq(ItfTblRecycleAssignDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).one();
+		List<ItfTblRecycleAssignFkmxDownload> recycleAssignFkmxDownloadList = recycleAssignFkmxDownloadService.lambdaQuery().eq(ItfTblRecycleAssignFkmxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+		List<ItfTblRecycleAssignMxDownload> recycleAssignMxDownloadList = recycleAssignMxDownloadService.lambdaQuery().eq(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+		List<ItfTblRecycleHsptJjcjDownload> recycleHsptJjcjDownloadList= recycleHsptJjcjDownloadService.lambdaQuery()
+				.eq(ItfTblRecycleHsptJjcjDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+		List<ItfTblRecycleHsptJjcjFjDownload> recycleHsptJjcjFjDownloadList = recycleHsptJjcjFjDownloadService.lambdaQuery()
+				.eq(ItfTblRecycleHsptJjcjFjDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+		List<ItfTblRecycleHsptJjcjTmmxDownload> recycleHsptJjcjTmmxDownloadList = recycleHsptJjcjTmmxDownloadService.lambdaQuery()
+				.eq(ItfTblRecycleHsptJjcjTmmxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+		if(!Objects.isNull(recycleAssignDownload)) {
+			recycleAssignDownload.setSynStatus(rec.getSynStatus());
+			recycleAssignDownload.setSynErrMsg(rec.getSynErrMsg());
+			recycleAssignService.saveOrUpdate(recycleAssignDownload);
+		}
+		if(!Collections.isEmpty(recycleAssignFkmxDownloadList)) {
+			for(ItfTblRecycleHsptJjcjFjDownload recycleAssignFkmxDownload : recycleAssignFkmxDownloadList) {
+				recycleAssignFkmxDownload.setSynStatus(synStatus);
+				recycleAssignFkmxDownload.setSynErrMsg(msg);
+			}
+			recycleAssignFkmxDownloadService.saveOrUpdateBatch(recycleAssignFkmxDownloadList);
+		}
+		if(!Collections.isEmpty(recycleAssignMxDownloadList)) {
+			for(ItfTblRecycleAssignMxDownload recycleAssignMxDownload : recycleAssignMxDownloadList) {
+				recycleAssignMxDownload.setSynStatus(synStatus);
+				recycleAssignMxDownload.setSynErrMsg(msg);
+			}
+			recycleAssignMxDownloadService.saveOrUpdateBatch(recycleAssignMxDownloadList);
+		}
+		if(!Collections.isEmpty(recycleHsptJjcjDownloadList)) {
+			for(ItfTblRecycleHsptJjcjDownload recycleHsptJjcjDownload : recycleHsptJjcjDownloadList) {
+				recycleHsptJjcjDownload.setSynStatus(synStatus);
+				recycleHsptJjcjDownload.setSynErrMsg(msg);
+			}
+			recycleHsptJjcjDownloadService.saveOrUpdateBatch(recycleHsptJjcjDownloadList);
+		}
+		if(!Collections.isEmpty(recycleHsptJjcjFjDownloadList)) {
+			for(ItfTblRecycleHsptJjcjFjDownload recycleHsptJjcjFjDownload : recycleHsptJjcjFjDownloadList) {
+				recycleHsptJjcjFjDownload.setSynStatus(synStatus);
+				recycleHsptJjcjFjDownload.setSynErrMsg(msg);
+			}
+			recycleHsptJjcjFjDownloadService.saveOrUpdateBatch(recycleHsptJjcjFjDownloadList);
+		}
+		
+		if(!Collections.isEmpty(recycleHsptJjcjTmmxDownloadList)) {
+			for(ItfTblRecycleHsptJjcjTmmxDownload recycleHsptJjcjTmmxDownload : recycleHsptJjcjTmmxDownloadList) {
+				recycleHsptJjcjTmmxDownload.setSynStatus(synStatus);
+				recycleHsptJjcjTmmxDownload.setSynErrMsg(msg);
+			}
+			recycleHsptJjcjTmmxDownloadService.saveOrUpdateBatch(recycleHsptJjcjTmmxDownloadList);
+		}
+		return ;
+	}
+	*/
+	
+	/**
+	 * 更新接口表数据到业务表
+	 * @return
+	 */
+	/*
+	@Transactional(rollbackFor = Exception.class)
+	public void processBusiness(ItfTblRecycleAssignBatchDownloadRec rec) {
+		if(Objects.isNull(rec)) {
+			return ;
+		}
+		int synStatus = 1;
+		String msg = "";
+		try {
+			//查找未同步到广佛系统且已经和总部同步的数据
+			//这里需要增加一个中间状态(反馈明细和采集明细是否已经同步),代表工单信息已同步,但反馈明细或采集信息还没同步的,这里因为反馈和采集信息量过大,不能同一个接口传回来,所以分开
+			//44代表已同步反馈明细,66代表已经同步采集信息
+			ItfTblRecycleAssignDownload tblRecycleAssignEntity = recycleAssignService.lambdaQuery().eq(ItfTblRecycleAssignDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).one();
+			List<ItfTblRecycleHsptJjcjFjDownload> lastStep = recycleAssignFkmxDownloadService.lambdaQuery().eq(ItfTblRecycleHsptJjcjFjDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+			List<ItfTblRecycleAssignMxDownload> hscpmx = recycleAssignMxDownloadService.lambdaQuery().eq(ItfTblRecycleAssignMxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+			//采集 信息
+			List<ItfTblRecycleHsptJjcjDownload> jjcjList= recycleHsptJjcjDownloadService.lambdaQuery()
+					.eq(ItfTblRecycleHsptJjcjDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+			List<ItfTblRecycleHsptJjcjFjDownload> fjList = recycleHsptJjcjFjDownloadService.lambdaQuery()
+					.eq(ItfTblRecycleHsptJjcjFjDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+			List<ItfTblRecycleHsptJjcjTmmxDownload> tmmxList = recycleHsptJjcjTmmxDownloadService.lambdaQuery()
+					.eq(ItfTblRecycleHsptJjcjTmmxDownload::getDownloadTaskNo, rec.getDownloadTaskNo()).list();
+			
+			if(Objects.isNull(tblRecycleAssignEntity)) {
+				rec.setSynStatus(Constant.SynStatus.FAIL.getCode());
+				rec.setSynErrMsg("下载主表为空, taskNO = {}" + rec.getDownloadTaskNo());
+				rec.setSynTime(new Date());
+				recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
+				return;
+			}
+			
+			LinkedHashSet<String> webSitNums = new LinkedHashSet<>();
+			//用省,市,区获取省,市,区id
+			List<Area> provinceList = areaService.lambdaQuery().eq(Area::getName, tblRecycleAssignEntity.getSfen()).eq(Area::getLevel, 1).eq(Area::getStatus, 1).list();
+			List<Area> cityList = areaService.lambdaQuery().eq(Area::getName, tblRecycleAssignEntity.getCshi()).eq(Area::getLevel, 2).eq(Area::getStatus, 1).list();
+			List<Area> areaList = areaService.lambdaQuery().eq(Area::getName, tblRecycleAssignEntity.getXian()).eq(Area::getLevel, 3).eq(Area::getStatus, 1).list();
+			List<Area> streetList = areaService.lambdaQuery().eq(Area::getName, tblRecycleAssignEntity.getXzhen()).eq(Area::getLevel, 4).eq(Area::getStatus, 1).list();
+			//维修网点(接收网点编号)新map, pgguid主键对应
+			Map<Integer, Object> newWxWebsiteItemMap = new HashMap<>();
+			//派工下级网点编号新map, pgguid主键对应
+			Map<Integer, Object> newXjWebsiteItemMap = new HashMap<>();
+			OrderRecycleAssign recycleAssign = orderRecycleAssignService.lambdaQuery().eq(OrderRecycleAssign::getPgguid, tblRecycleAssignEntity.getPgguid()).one();
+			if( !Objects.isNull(recycleAssign)) {
+				BeanUtils.copyProperties(tblRecycleAssignEntity, recycleAssign, new String[] {"id","createTime","updateTime","deletetime"});
+			}else {
+				recycleAssign = mapper.readValue(mapper.writeValueAsString(tblRecycleAssignEntity), OrderRecycleAssign.class);
+				recycleAssign.setCreateTime(new Date());
+				//第一次下单状态为保存
+				recycleAssign.setAppointState(0);
+				recycleAssign.setLastAppointState(0);
+				recycleAssign.setWorkerOrderNo(genWorkerNo());
+			}
+			recycleAssign.setUpdateTime(new Date());
+			//设置经纬度
+			recycleAssign.setLat(new BigDecimal(tblRecycleAssignEntity.getLatitude()));
+			recycleAssign.setLng(new BigDecimal(tblRecycleAssignEntity.getLongitude()));
+			if(provinceList.stream().filter(province->province.getName().equals(tblRecycleAssignEntity.getSfen())).findAny().isPresent()) {//广佛和总部省份对照
+				recycleAssign.setProvinceId(provinceList.stream().filter(province->province.getName().equals(tblRecycleAssignEntity.getSfen())).collect(Collectors.toList()).get(0).getId());
+			}
+			if(cityList.stream().filter(city->city.getName().equals(tblRecycleAssignEntity.getCshi())).findAny().isPresent()) {//广佛和总部市对照
+				recycleAssign.setCityId(cityList.stream().filter(city->city.getName().equals(tblRecycleAssignEntity.getCshi())).collect(Collectors.toList()).get(0).getId());
+			}
+			if(areaList.stream().filter(area->area.getName().equals(tblRecycleAssignEntity.getXian())).findAny().isPresent()) {//广佛和总部区对照
+				recycleAssign.setAreaId(areaList.stream().filter(area->area.getName().equals(tblRecycleAssignEntity.getXian())).collect(Collectors.toList()).get(0).getId());
+			}
+			if(streetList.stream().filter(street->street.getName().equals(tblRecycleAssignEntity.getXzhen())).findAny().isPresent()) {//广佛和总部街道对照
+				recycleAssign.setStreetId(streetList.stream().filter(street->street.getName().equals(tblRecycleAssignEntity.getXzhen())).collect(Collectors.toList()).get(0).getId());
+			}
+			recycleAssign.setOrderState(RecycleOrderStateEnum.findCode(tblRecycleAssignEntity.getStat()));
+			recycleAssign.setLastOrderState(RecycleOrderStateEnum.findCode(tblRecycleAssignEntity.getQystat()));
+			
+			if( !StringUtil.isNullOrEmpty(recycleAssign.getCjwdno()) ) {//创建网点编号
+				webSitNums.add(recycleAssign.getCjwdno());
+			}
+			//维修网点(接收网点编号)
+			newWxWebsiteItemMap.put(recycleAssign.getId(),recycleAssign.getWxwdno() );
+			if( !StringUtil.isNullOrEmpty(recycleAssign.getWxwdno()) ) {
+				webSitNums.add(recycleAssign.getWxwdno());
+			}
+			//派工下级网点编号
+			newXjWebsiteItemMap.put(recycleAssign.getId(),recycleAssign.getXjwdno() );
+			if( !StringUtil.isNullOrEmpty(recycleAssign.getXjwdno()) ) {
+				webSitNums.add(recycleAssign.getXjwdno());
+			}
+			if( lastStep.stream().filter(last->last.getDownloadTaskNo().equals(tblRecycleAssignEntity.getDownloadTaskNo())).findAny().isPresent() ) {
+				RecycleAssignFkmxDownload fkmx = lastStep.stream().filter(last->last.getDownloadTaskNo().equals(tblRecycleAssignEntity.getDownloadTaskNo())).collect(Collectors.toList()).get(0);
+				if(!StringUtil.isNullOrEmpty( fkmx.getFknr())  
+						&&  (fkmx.getFknr().indexOf("派下级网点") > -1
+								||fkmx.getFknr().indexOf("改派网点") > -1)
+						&& fkmx.getFknr().indexOf("S21") > -1) {
+					recycleAssign.setAppointDatetime( fkmx.getFksj() );
+				}
+			}
+			
+			orderRecycleAssignService.saveOrUpdate(recycleAssign);
+			//插入和更新扩展表
+			OrderRecycleAssignExpand expand = orderRecycleAssignExpandService.lambdaQuery().eq(OrderRecycleAssignExpand::getOrderId, recycleAssign.getId()).one();
+			if(Objects.isNull(expand)) {
+				expand = new OrderRecycleAssignExpand();
+				expand.setOrderId(recycleAssign.getId());
+				expand.setCreatetime(Integer.valueOf(String.valueOf(new Date().getTime()/1000)));  
+			}
+			expand.setFirstReserveWay(2);
+			expand.setFirstReserveBegin(tblRecycleAssignEntity.getYhyykssj());
+			expand.setFirstReserveEnd(tblRecycleAssignEntity.getYhyyjssj());
+			expand.setFirstAppointDatetime(tblRecycleAssignEntity.getYhyykssj());
+			expand.setUpdatetime(Integer.valueOf(String.valueOf(new Date().getTime()/1000)));
+			
+			if(!Collections.isEmpty(lastStep)) {
+				RecycleAssignFkmxDownload fkmx = lastStep.get(0);
+				if(!StringUtil.isNullOrEmpty( fkmx.getFknr())  
+						&& "指派工程师".equals(fkmx.getFklb()) ) {
+//						firstAppointmentDateMap.put(o.getId(), fkmx.getFksj());
+					expand.setFirstAppointDatetime(fkmx.getFksj());
+				}
+			}
+			
+			orderRecycleAssignExpandService.saveOrUpdate(expand);
+			//反馈明细
+			List<OrderRecycleAssignFkmx> fkmxEntitiesList = orderRecycleAssignFkmxService.lambdaQuery().eq(OrderRecycleAssignFkmx::getOrderId, recycleAssign.getId()).list();
+			//明细
+			List<OrderRecycleAssignMx> mxEntitiesList = orderRecycleAssignMxService.lambdaQuery().eq(OrderRecycleAssignMx::getOrderId, recycleAssign.getId()).list();
+			//采集明细
+			List<OrderRecycleAssignCollection> collectionEntitiesList = orderRecycleAssignCollectionService.lambdaQuery().eq(OrderRecycleAssignCollection::getOrderId, recycleAssign.getId()).list();
+			List<OrderRecycleAssignWorker> newWorkList = new ArrayList<>();
+			
+			//查询网点元数据,不过滤state为0的
+			final List<Websit> websitList = websitService.lambdaQuery().in(Websit::getWebsitNumber, webSitNums).list();
+			final Map<String, List<Websit>> websitMap = websitList.stream().collect(Collectors.groupingBy(Websit::getWebsitNumber));
+			
+			if( !Objects.isNull(websitMap) ) {
+				//创建网点编号
+				if( websitMap.containsKey(recycleAssign.getCjwdno()) 
+						&& !Collections.isEmpty(websitMap.get(recycleAssign.getCjwdno()))){
+					addOrUpdateOrderWebsitItem(RecycleOrderWebsitItemOrderWebsitTypeEnum.CREATE.getCode()
+						, recycleAssign.getCjwdno()
+						, recycleAssign, websitMap.get(recycleAssign.getCjwdno()).get(0));
+				}
+				
+				//维修网点编号
+				if( websitMap.containsKey(recycleAssign.getWxwdno()) 
+						&& !Collections.isEmpty(websitMap.get(recycleAssign.getWxwdno()))){
+					addOrUpdateOrderWebsitItem(RecycleOrderWebsitItemOrderWebsitTypeEnum.RECEIVE.getCode()
+						, recycleAssign.getWxwdno()
+						, recycleAssign, websitMap.get(recycleAssign.getWxwdno()).get(0));
+				}
+				
+				if( websitMap.containsKey(recycleAssign.getXjwdno()) 
+						&& !Collections.isEmpty(websitMap.get(recycleAssign.getXjwdno()))){
+				//派送到下级网点编号
+					addOrUpdateOrderWebsitItem(RecycleOrderWebsitItemOrderWebsitTypeEnum.SERVICE.getCode()
+						, recycleAssign.getXjwdno()
+						, recycleAssign, websitMap.get(recycleAssign.getXjwdno()).get(0));
+				}
+			}
+			
+			
+			//新增师傅
+			if(!Objects.isNull(tblRecycleAssignEntity.getWxrenid()) ) {
+				Integer wxrenid = Integer.valueOf(tblRecycleAssignEntity.getWxrenid().toString()) ;
+				
+				List<WebsitWorker> websitWorkerList =  websitWorkerService.lambdaQuery().eq(WebsitWorker::getWorkerId, recycleAssign.getWxrenid()).list();
+				//师傅map,方便查找
+				List<OrderRecycleAssignWorker> workerList = orderRecycleAssignWorkerService.lambdaQuery().eq(OrderRecycleAssignWorker::getOrderId, recycleAssign.getId())
+						.eq(OrderRecycleAssignWorker::getWebsitWorkerType, 1).list();
+				if (!Collections.isEmpty(websitWorkerList) &&
+						Collections.isEmpty(workerList)
+							) {//维修人员
+					OrderRecycleAssignWorker worker = new OrderRecycleAssignWorker();
+					Date date = new Date();
+					worker.setCreatetime(Integer.valueOf(String.valueOf(date.getTime()/1000)));  
+					worker.setUpdatetime(Integer.valueOf(String.valueOf(date.getTime()/1000)));
+					worker.setOrderId(recycleAssign.getId());
+					worker.setWebsitWorkerId(wxrenid);
+					worker.setWebsitWorkerType(1);
+					newWorkList.add(worker);
+				}
+			}
+			
+			if(!Collections.isEmpty(lastStep)) {
+				List<OrderRecycleAssignFkmx> fkmxList = new ArrayList<>();
+				for( RecycleAssignFkmxDownload o : lastStep ) {
+					if(!Collections.isEmpty(fkmxEntitiesList) 
+							) {//找不到才新增数据
+						boolean isFkmxExsits = true;
+						for(OrderRecycleAssignFkmx fkmx : fkmxEntitiesList) {
+							if( (StringUtils.isNullOrEmpty(fkmx.getFkid()) ? "" : fkmx.getFkid()).equals(o.getFkid()) ) {
+								isFkmxExsits = false;
+								break;
+							}
+						}
+						if( !isFkmxExsits ) {
+							OrderRecycleAssignFkmx fkmx = mapper.readValue(mapper.writeValueAsString(o), OrderRecycleAssignFkmx.class);
+							fkmx.setCreateTime(new Date());
+							fkmx.setUpdateTime(new Date());
+							fkmx.setOrderId(recycleAssign.getId());
+							fkmxList.add(fkmx);
+						}
+					}else {
+						OrderRecycleAssignFkmx fkmx = mapper.readValue(mapper.writeValueAsString(o), OrderRecycleAssignFkmx.class);
+						fkmx.setCreateTime(new Date());
+						fkmx.setOrderId(recycleAssign.getId());
+						fkmxList.add(fkmx);
+					}
+				}
+				if(!fkmxList.isEmpty()) {
+					orderRecycleAssignFkmxService.saveOrUpdateBatch(fkmxList);
+				}
+			}
+			
+			if(!Collections.isEmpty(hscpmx)) {
+				List<OrderRecycleAssignMx> mxList = new ArrayList<>();
+				for( RecycleAssignMxDownload o : hscpmx ) {
+					if( !Collections.isEmpty(mxEntitiesList) 
+							) {//找不到才新增数据
+						boolean isMxExsists = true;
+						for(OrderRecycleAssignMx mx : mxEntitiesList) {
+							if((StringUtils.isNullOrEmpty(mx.getPgmxid()) ? "" : mx.getPgmxid()).equals(o.getPgmxid())) {
+								isMxExsists = false;
+								break;
+							}
+						}
+						if(!isMxExsists) {
+							OrderRecycleAssignMx mx = mapper.readValue(mapper.writeValueAsString(o), OrderRecycleAssignMx.class);
+							mx.setCreateTime(new Date());
+							mx.setUpdateTime(new Date());
+							mx.setOrderId(recycleAssign.getId());
+							mxList.add(mx);
+						}
+						
+					}else {
+						OrderRecycleAssignMx mx = mapper.readValue(mapper.writeValueAsString(o), OrderRecycleAssignMx.class);
+						mx.setCreateTime(new Date());
+						mx.setOrderId(recycleAssign.getId());
+						mxList.add(mx);
+					}
+				}
+				if(null !=mxList && !mxList.isEmpty()) {
+					orderRecycleAssignMxService.saveOrUpdateBatch(mxList);
+				}
+				
+			}
+			
+			//采集信息插入业务表
+			if(!Collections.isEmpty(jjcjList)) {
+				//采集表依赖与产品明细表,查找不到产品明细表则不插入
+				if(!Collections.isEmpty(mxEntitiesList)) {
+					//先循环一次获取师傅账号
+					LinkedHashSet<String> workerNos = new LinkedHashSet<>();
+					jjcjList.stream().forEach(o->{
+						workerNos.add(o.getCreatedBy());
+					});
+					//师傅账号找不到,记录到中间表
+					final List<WebsitWorker> websitWorkerByNosList = (workerNos.isEmpty()) ? null : (websitWorkerService.lambdaQuery().in(WebsitWorker::getNumber, workerNos)).list();
+					final Map<String, List<WebsitWorker>> websitWorkerByNosMap = Collections.isEmpty(websitWorkerByNosList) ?  
+							null : (websitWorkerByNosList.stream().collect(Collectors.groupingBy(WebsitWorker::getNumber)));
+					Map<String, List<OrderRecycleAssignMx>> mxMap = Collections.isEmpty(mxEntitiesList) ? null : mxEntitiesList.stream().collect(Collectors.groupingBy(OrderRecycleAssignMx::getPgmxid));
+					List<OrderRecycleAssignCollection> collectionList = new ArrayList<>();
+					for( RecycleHsptJjcjDownload o : jjcjList ) {
+						if(!Objects.isNull(mxMap) && mxMap.containsKey(o.getPgmxid()) 
+								&&!Collections.isEmpty(mxMap)){
+							//有该师傅账号,才添加数据
+							if(!Objects.isNull(websitWorkerByNosMap )
+									&& websitWorkerByNosMap.containsKey(o.getCreatedBy())
+									&& !Collections.isEmpty(websitWorkerByNosMap.get(o.getCreatedBy()))) {
+								if(!collectionEntitiesList.stream().filter(i->i.getPgwcmxid().equals(o.getPgwcmxid())).findAny().isPresent()) {//找不到才新增数据
+									OrderRecycleAssignCollection collectionEntity = mapper.readValue(mapper.writeValueAsString(o), OrderRecycleAssignCollection.class);
+									collectionEntity.setCreateTime(new Date());
+									collectionEntity.setUpdateTime(new Date());
+									collectionEntity.setOrderId(recycleAssign.getId());
+									collectionEntity.setMxId(mxMap.get(o.getPgmxid()).get(0).getId());
+									collectionEntity.setDismantle(o.getSfcj());
+									collectionEntity.setIdentificationResult(o.getJdjg());
+									collectionEntity.setMachineDefectData(o.getJjqsqk());
+									collectionEntity.setMachineLmx(o.getPshu());
+									if(null !=tmmxList && !tmmxList.isEmpty() && tmmxList.stream().filter(tmmx->tmmx.getDownloadTaskNo().equals(o.getDownloadTaskNo()))
+											.filter(tmmx->tmmx.getTmlx()==0).findAny().isPresent()) {//有内机条码
+										collectionEntity.setOutTempCode(tmmxList.stream().filter(tmmx->tmmx.getDownloadTaskNo().equals(o.getDownloadTaskNo()))
+												.filter(tmmx->tmmx.getTmlx()==0).collect(Collectors.toList()).get(0).getJqtm());
+									}
+									if(null !=tmmxList && !tmmxList.isEmpty() && tmmxList.stream().filter(tmmx->tmmx.getDownloadTaskNo().equals(o.getDownloadTaskNo()))
+											.filter(tmmx->tmmx.getTmlx()==1).findAny().isPresent()) {//有外机条码
+										collectionEntity.setInsideTempCode(tmmxList.stream().filter(tmmx->tmmx.getDownloadTaskNo().equals(o.getDownloadTaskNo()))
+												.filter(tmmx->tmmx.getTmlx()==1).collect(Collectors.toList()).get(0).getJqtm());
+									}
+									//状态设置为“已采集”
+									collectionEntity.setStatus(1);
+									collectionList.add(collectionEntity);
+								}
+							}else {
+								o.setSynStatus(Constant.SynStatus.FAIL.getCode());
+								o.setSynErrMsg("找不到师傅账号,添加采集信息失败: pgguid="+o.getPgguid()+", mxid="+o.getPgmxid()+", pgwcmxid="+o.getPgwcmxid()+", 师傅账号="+o.getCreatedBy());
+							}
+						}else {
+							synStatus = Constant.SynStatus.FAIL.getCode();
+							msg = "找不到产品明细信息,添加采集信息失败: pgguid="+o.getPgguid()+", mxid="+o.getPgmxid()+", pgwcmxid="+o.getPgwcmxid();
+						}
+					}
+					if(!collectionList.isEmpty()) {
+						orderRecycleAssignCollectionService.saveOrUpdateBatch(collectionList);
+					}
+				}
+			}
+			
+		}catch(Exception e) {
+			synStatus = Constant.SynStatus.FAIL.getCode();
+			msg = (Objects.isNull(e) || Objects.isNull( e.getMessage())) ? "" : e.getMessage().length() > 100 ? e.getMessage().substring(0, 99) : e.getMessage();
+		}
+		
+		
+		//更新任务表
+		if( Constant.SynStatus.SYN.getCode().intValue() == synStatus  ) {
+			rec.setSynStatus(Constant.SynStatus.SYN.getCode());
+			rec.setSynTime(new Date());
+		}else {
+			rec.setSynTimes(Objects.isNull(rec.getSynTimes()) ? 1 : rec.getSynTimes()+1);
+			//请求次数达到6次,不再请求
+			if(!Objects.isNull(rec.getSynTimes() ) && rec.getSynTimes() >= 6) {
+				rec.setSynStatus(Constant.SynStatus.FAIL.getCode());
+				rec.setSynErrMsg(msg);
+				rec.setSynTime(new Date());
+			}
+		}
+		recycleAssignBatchDownloadRecService.saveOrUpdate(rec);
+		//批量处理下载数据状态
+		batchProcessSynStatus(rec, synStatus, msg);
+	}
+	*/
+
+	
+	/**
+	 * 状态上传接口
+	 */
+	/*public void statusUpload() {
+		// 回收工单同步请求记录表提取数据
+		List<FaOrderRecycleUploadEvent> eventList = orderRecycleUploadEventService.lambdaQuery()
+				.eq(FaOrderRecycleUploadEvent::getOrderType, Constant.RecycleOrderType.RECYCLE_ASSIGN_FKMX)
+				.eq(FaOrderRecycleUploadEvent::getSynStatus, Constant.SynStatus.UN_SYN.getCode()).list();
+		if(null != eventList && !eventList.isEmpty()) {
+			final Map<Integer, List<FaOrderRecycleUploadEvent>> eventMap = eventList.stream().collect(Collectors.groupingBy(FaOrderRecycleUploadEvent::getId));
+			// 提取本次同步的反馈明细表对应的id
+			LinkedHashSet<Integer> ids = new LinkedHashSet<>();
+			eventList.stream().forEach(event->{
+				ids.add(event.getId());
+			});
+			if(!ids.isEmpty()) {
+				// 反馈明细表内根据id提取对应的数据
+				List<OrderRecycleAssignFkmx> feedbackList = orderRecycleAssignFkmxService.lambdaQuery().in(OrderRecycleAssignFkmx::getId, ids).list();
+				if( null != feedbackList &&  !feedbackList.isEmpty()) {
+					LinkedHashSet<Integer> orderIds = new LinkedHashSet<>();
+					// 提取回收单id
+					feedbackList.stream().forEach(feedback->{
+						orderIds.add(feedback.getOrderId());
+					});
+					// 提取对应的回收工单主表数据
+					List<OrderRecycleAssign> orderRecycleAssignList = orderRecycleAssignService.lambdaQuery().in(OrderRecycleAssign::getId, orderIds).list();
+					String batchNo = java.util.UUID.randomUUID().toString();
+					// 逐条处理反馈明细表数据同步
+					feedbackList.stream().forEach(feedback->{
+						try {
+							Boolean flag = Boolean.FALSE;
+							String xjwdno = "";
+							String xjwdmc = "";
+
+							// 反馈明细数据
+							OrderRecycleUploadEvent event =  eventMap.get(feedback.getId()).get(0);
+							// 组装请求参数
+							RecycleAssignFeedbackUploadBean feedbackUploadBean = mapper.readValue(mapper.writeValueAsString(feedback), RecycleAssignFeedbackUploadBean.class);
+							feedbackUploadBean.setBatchNo(batchNo);
+							feedbackUploadBean.setTaskNo(java.util.UUID.randomUUID().toString());
+							feedbackUploadBean.setStat(orderRecycleAssignList.stream().filter(orderRecycleAssign->orderRecycleAssign.getId().intValue() == feedback.getOrderId().intValue()).collect(Collectors.toList()).get(0).getStat());
+							feedbackUploadBean.setPgid(orderRecycleAssignList.stream().filter(orderRecycleAssign->orderRecycleAssign.getId().intValue() == feedback.getOrderId().intValue()).collect(Collectors.toList()).get(0).getPgid());
+
+							if (feedback.getFklb().equals("改派网点") ||
+									feedback.getFklb().equals("指派网点") ||
+									feedback.getFklb().equals("自动派工")){
+								flag = Boolean.TRUE;
+								xjwdno = orderRecycleAssignList.stream().filter(orderRecycleAssign->orderRecycleAssign.getId().intValue() == feedback.getOrderId().intValue()).collect(Collectors.toList()).get(0).getXjwdno();
+								xjwdmc = orderRecycleAssignList.stream().filter(orderRecycleAssign->orderRecycleAssign.getId().intValue() == feedback.getOrderId().intValue()).collect(Collectors.toList()).get(0).getXjwdmc();
+							}
+
+							GreeResponseHelper response = status(feedbackUploadBean,event,flag, xjwdno, xjwdmc);
+
+						} catch (JsonProcessingException e) {
+							log.error("statusUpload: 复制OrderRecycleAssignFkmx到RecycleAssignFeedbackUploadBean异常: {}", e.getMessage());
+						}
+					});
+				}
+			}
+		}
+	}*/
+	
+	// @Async("taskExecutor")
+	@Transactional
+	public GreeResponseHelper status(RecycleAssignFeedbackUploadBean feedbackUploadBean, FaOrderRecycleUploadEvent event,
+									 Boolean flag, String xjwdno, String xjwdmc){
+		if(null != feedbackUploadBean) {
+			final String apiPath = Constant.GreeApiPath.RECYCLE_STATUS;
+			ItfTblRecycleAssignFkmxUpload feedbackUpload = new ItfTblRecycleAssignFkmxUpload();
+			try {
+				feedbackUpload = mapper.readValue(mapper.writeValueAsString(feedbackUploadBean), ItfTblRecycleAssignFkmxUpload.class);
+				Map<String,Object> map = mapper.readValue(mapper.writeValueAsString(feedbackUpload), Map.class);
+				if (flag){
+					map.put("xjwdno",xjwdno);
+					map.put("xjwdmc",xjwdmc);
+				}
+//				JSONObject jsonObject = JSONObject.parseObject(mapper.writeValueAsString(feedbackUpload));
+				feedbackUpload.setSynStatus(Constant.SynStatus.SYN.getCode());
+				feedbackUpload.setSynTime(new Date());
+				feedbackUpload.setCreatedDate(new Date());
+				feedbackUpload.setLastModifiedDate(new Date());
+				feedbackUpload.setUploadBatchNo(feedbackUploadBean.getBatchNo());
+				feedbackUpload.setUploadTaskNo(UUID.randomUUID().toString());
+				feedbackUpload.setPgguid(feedbackUploadBean.getPgguid());
+				//回收工单请求
+				GreeResponseHelper response = greeLogic.greePost(apiPath, map, 1);
+				if( 200 == response.getStatus()) {
+					feedbackUpload.setGreeStatSynStatus(Constant.SynStatus.SYN.getCode());
+					feedbackUpload.setGreeStatSynTime(new Date());
+					event.setSynStatus(Constant.SynStatus.SYN.getCode());
+					event.setSynTime(new Date());
+				}else {
+					feedbackUpload.setGreeStatSynStatus(Constant.SynStatus.FAIL.getCode());
+					feedbackUpload.setGreeStatSynErrMsg(response.getMsg());
+					feedbackUpload.setGreeStatSynTime(new Date());
+					event.setSynStatus(Constant.SynStatus.FAIL.getCode());
+					event.setSynErrMsg(response.getMsg());
+					event.setSynTime(new Date());
+				}
+				recycleAssignFkmxUploadService.saveOrUpdate(feedbackUpload);
+				orderRecycleUploadEventService.saveOrUpdate(event);
+				return response;
+			}catch(Exception e) {
+				feedbackUpload.setGreeStatSynStatus(Constant.SynStatus.FAIL.getCode());
+				feedbackUpload.setGreeStatSynTime(new Date());
+				event.setSynStatus(Constant.SynStatus.FAIL.getCode());
+				event.setSynTime(new Date());
+				recycleAssignFkmxUploadService.saveOrUpdate(feedbackUpload);
+				orderRecycleUploadEventService.saveOrUpdate(event);
+			}
+			
+		}
+		return null;
+	}
+
+}

+ 53 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignMxDownloadBean.java

@@ -0,0 +1,53 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel
+public class RecycleAssignMxDownloadBean {
+    private String pgmxid;
+    @ApiModelProperty(value = "来源明细id")
+    private String srcMxNo;
+
+    private String createdBy;
+
+    private Date createdDate;
+
+    private String lastModifiedBy;
+
+    private Date lastModifiedDate;
+
+    @ApiModelProperty(value = "回收单主表id")
+    private String pgguid;
+
+    @ApiModelProperty(value = "回收产品大类 tbl_recycle_dalei id")
+    private Long spid;
+
+    @ApiModelProperty(value = "回收产品大类名称 tbl_recycle_dalei")
+    private String spmc;
+
+    @ApiModelProperty(value = "回收小类id tbl_recycle_xiaolei")
+    private Integer xlid;
+
+    @ApiModelProperty(value = "回收小类名称 tbl_recycle_xiaolei")
+    private String xlmc;
+
+    @ApiModelProperty(value = "机型编号 tbl_recycle_jixin")
+    private String xhno;
+
+    @ApiModelProperty(value = "机型名称 tbl_recycle_jixin")
+    private String xhmc;
+
+    @ApiModelProperty(value = "楼层 tbl_recycle_louceng_jg")
+    private String floor;
+
+    @ApiModelProperty(value = "是否拆机:是/否")
+    private String dismantle;
+
+    @ApiModelProperty(value = "回收数量")
+    private Integer hssl;
+}

+ 16 - 0
src/main/java/com/zfire/jiasm/syncdata/gree/recycle/RecycleAssignParamBean.java

@@ -0,0 +1,16 @@
+package com.zfire.jiasm.syncdata.gree.recycle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class RecycleAssignParamBean {
+	@ApiModelProperty(value = "获取数据类型: all-全量; active-获取未完工/未关闭/未作废的工单;getExtend-获取更新数据")
+	private String type;
+	@ApiModelProperty(value = "页数")
+	private String page;
+	@ApiModelProperty(value = "一页的数据条数")
+	private String pageSize;
+}

+ 126 - 0
src/main/java/com/zfire/jiasm/syncdata/helper/ResponseExHelper.java

@@ -0,0 +1,126 @@
+package com.zfire.jiasm.syncdata.helper;
+
+import io.swagger.annotations.ApiModel;
+
+@ApiModel
+//@Getter
+//@Setter
+//@NoArgsConstructor
+public class ResponseExHelper<T>  {
+
+	public static int ResponseCode_Success = 1; //成功
+    public static int ResponseCode_COMMON = 501;//通用拦截提示
+    public static int ResponseCode_AUTH_ERROR = 130;//非法请求
+	
+	private Integer statusCode;
+	
+	private Integer messageCode;
+	
+	private Integer total;
+	
+	private String exception;
+	
+	private String timestamp;
+	
+	private T data;
+    private String message;
+    private int code;
+    
+    public ResponseExHelper(String s) {
+    	
+    }
+    
+    public ResponseExHelper() {
+    	
+    }
+    
+    public static ResponseExHelper  success() {
+        ResponseExHelper  object = new ResponseExHelper (ResponseCode_Success, "success");
+        return object;
+    }
+
+    public static ResponseExHelper  success(Object data) {
+        ResponseExHelper  object = new ResponseExHelper (ResponseCode_Success, "success");
+        object.setData(data);
+        return object;
+    }
+
+    public static ResponseExHelper  error(String msg) {
+        ResponseExHelper  object = new ResponseExHelper (ResponseCode_COMMON, msg);
+        return object;
+    }
+
+    public static ResponseExHelper  error(int code, String msg) {
+        ResponseExHelper  object = new ResponseExHelper (code, msg);
+        return object;
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(Object data) {
+        this.data = (T)data;
+    }
+
+    public ResponseExHelper(int code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int status) {
+        this.code = status;
+    }
+
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+    
+    public Integer getStatusCode() {
+		return statusCode;
+	}
+
+	public void setStatusCode(Integer statusCode) {
+		this.statusCode = statusCode;
+	}
+
+	public Integer getMessageCode() {
+		return messageCode;
+	}
+
+	public void setMessageCode(Integer messageCode) {
+		this.messageCode = messageCode;
+	}
+
+	public Integer getTotal() {
+		return total;
+	}
+
+	public void setTotal(Integer total) {
+		this.total = total;
+	}
+
+	public String getException() {
+		return exception;
+	}
+
+	public void setException(String exception) {
+		this.exception = exception;
+	}
+
+	public String getTimestamp() {
+		return timestamp;
+	}
+
+	public void setTimestamp(String timestamp) {
+		this.timestamp = timestamp;
+	}
+}

+ 44 - 4
src/main/java/com/zfire/jiasm/syncdata/http/HttpUtils.java

@@ -4,10 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.zfire.jiasm.syncdata.exception.RemoteServiceException;
-import okhttp3.FormBody;
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import okhttp3.Response;
+import okhttp3.*;
 import org.apache.http.HttpStatus;
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.client.methods.CloseableHttpResponse;
@@ -55,6 +52,49 @@ public class HttpUtils {
     }
 
 
+    static private Request.Builder getGetBuilder(String url, Map<String, String> params, Map<String, String> heads) {
+        Request.Builder reqBuild = new Request.Builder();
+        HttpUrl.Builder urlBuilder = HttpUrl.parse(url).newBuilder();
+
+        if (params != null) {
+            for (String key : params.keySet()) {
+                urlBuilder.addQueryParameter(key, params.get(key));
+            }
+        }
+
+
+        reqBuild.url(urlBuilder.build());
+        if (heads != null) {
+            for (String key : heads.keySet()) {
+                reqBuild.addHeader(key, heads.get(key));
+            }
+        }
+
+        return reqBuild;
+    }
+
+    static public String requestGet(String url, Map<String, String> params, Map<String, String> heads) throws RemoteServiceException {
+        Request.Builder reqBuild = getGetBuilder(url, params, heads);
+        Request req = reqBuild.build();
+
+        try {
+            Response response = OkHttpUtil.execute(req);
+            //判断请求是否成功
+            if (response.isSuccessful()) {
+                String content = response.body().string();
+                return content;
+                //打印服务端返回结果
+            } else {
+                throw new RemoteServiceException(response.code(), response.message());
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            logger.error(HttpUtils.class.getName(), e);
+            throw new RemoteServiceException(505, e.getMessage());
+        }
+    }
+
     public static String requestPostBodyt(String url, String json, Map<String, String> heads) {
         // 设置请求头
         HttpHeaders headers = new HttpHeaders();

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminFastEntryPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-fast-entry")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminFieldPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-field")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminModuleFavoritesPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-module-favorites")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminModulePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-module")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminRolePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-role")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminUserModuleRelaPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-user-module-rela")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminUserPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-user")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminUserRoleRelaPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-user-role-rela")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminWebsitPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-websit")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminWebsitProductTypeRelaPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-websit-product-type-rela")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AdminWebsitSlavePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/admin-websit-slave")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/AreaPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/area")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/BrandLbsRelatePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/brand-lbs-relate")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/BrandPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/brand")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/BrandWebsitPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/brand-websit")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/CityPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/city")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ComDetailLogPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/com-detail-log")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ComDetailPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/com-detail")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ComListPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/com-list")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/CommonFilePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/common-file")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/CompanyCaAuthPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/company-ca-auth")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/CompanyRecordManagePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/company-record-manage")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ContractTemplatePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/contract-template")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/CustomerInformationCategoryPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/customer-information-category")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/CustomerInformationPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/customer-information")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/CustomerInformationWebsitPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/customer-information-websit")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ImgCarouselManagePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/img-carousel-manage")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InstallChargeConfigPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/install-charge-config")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureAgreePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/insure-agree")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureEmailPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/insure-email")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureEmailRecordPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/insure-email-record")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsurePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/insure")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureRangePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/insure-range")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureWorkerCommercialFilePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/insure-worker-commercial-file")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureWorkerCommercialPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/insure-worker-commercial")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/InsureWorkerRecordPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/insure-worker-record")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralDoublePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/integral-double")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralGradeConfigurePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/integral-grade-configure")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralGradeExplainPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/integral-grade-explain")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralGradeSkillPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/integral-grade-skill")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralOffsetPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/integral-offset")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralScorePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/integral-score")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralSkillLabelPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/integral-skill-label")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/IntegralWorkerApplyPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/integral-worker-apply")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignGzdmDowloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-assign-gzdm-dowload")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignXqxlDowloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-assign-xqxl-dowload")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignXxlbDowloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-assign-xxlb-dowload")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignXxlyDowloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-assign-xxly-dowload")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignXxqdDowloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-assign-xxqd-dowload")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAssignYhsxWxDowloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-assign-yhsx-wx-dowload")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblAzAssignXslxDowloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-az-assign-xslx-dowload")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblCityDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-city-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblCityJdxzDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-city-jdxz-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblCountyDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-county-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblProvinceDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-province-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblSplbDaleiDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-splb-dalei-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblSplbJixinDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-splb-jixin-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblSplbXiaoleiDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-splb-xiaolei-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblSplbXilieDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-splb-xilie-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblWangdianWxgDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-wangdian-wxg-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblXinWangdianDownloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-xin-wangdian-download")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ItfTblYhsxViprankDowloadPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/itf-tbl-yhsx-viprank-dowload")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/LabelCurrencyPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/label-currency")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/LabelPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/label")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/LbsAmapPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/lbs-amap")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/NoticePlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/notice")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/NoticeRecordPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/notice-record")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/OperationLogPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/operation-log")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ProductPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/product")

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/plus/controller/ProductSeriesPlusTempController.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Controller;
  * </p>
  *
  * @author gejiang
- * @since 2023-05-15
+ * @since 2023-05-18
  */
 @Controller
 @RequestMapping("/plus/product-series")

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio