yaozhixue 1 year ago
parent
commit
5979cb43d2

+ 30 - 17
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPWXGQueryAddServiceImpl.java

@@ -350,12 +350,6 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         String workerId="";
         if (workerIdcardMap.containsKey(wxg.getSfzen())){
             workerId = workerIdcardMap.get(wxg.getSfzen()).get(0).getWorkerId();
-            /*for (Worker w: workerIdcardMap.get(wxg.getSfzen())){
-                if (w.getWorkerName().equals(wxg.getWxgmc().trim()) && w.getMobile().equals(wxg.getYddh())){
-                    workerId = w.getWorkerId();
-                    break;
-                }
-            }*/
         }
         return workerId;
     }
@@ -368,6 +362,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
         Map<String, List<SysDictRef>> sysDictRefMap = new HashMap<>();
         List<SysDictRef> sysDictRef = new ArrayList<>();
         List<WorkerServiceCategoryDetail> wxgCategoryRec = new ArrayList<>();
+        List<String> workerServiceCategoryDetailList = new ArrayList<>();
 
         // 提取品牌信息
         Brand brand = baseService.getBrand();
@@ -446,7 +441,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 continue;
             }
 
-            wxgCategoryQueryAdd(wxgDownload,workerBrandAccounts,workerServiceCategoryDetailMap,sysDict,sysDictRefMap);
+            wxgCategoryQueryAdd(wxgDownload,workerBrandAccounts,workerServiceCategoryDetailMap,sysDict,sysDictRefMap, workerServiceCategoryDetailList);
         }
     }
 
@@ -1332,7 +1327,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
     public void wxgCategoryQueryAdd(ItfTblWangdianWxgDownload wxgDownload,
                                     List<WorkerBrandAccount> workerBrandAccounts,
                                     Map<String,List<WorkerServiceCategoryDetail>> workerServiceCategoryDetailMap,
-                                    SysDict sysDict,Map<String, List<SysDictRef>> sysDictRefMap) throws Exception {
+                                    SysDict sysDict,Map<String, List<SysDictRef>> sysDictRefMap,
+                                    List<String> workerServiceCategoryDetailList) throws Exception {
         Map<String,Object> req = new HashMap<>();
         WangdianWxgVos wvos = new WangdianWxgVos();
         Map<String, List<WorkerServiceCategoryDetail>> wxgCategoryTypeRecs = new HashMap<>();
@@ -1351,6 +1347,11 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 continue;
             }
 
+            // 师傅对应的网点服务类目信息已存在不处理 只做插入
+            if (workerServiceCategoryDetailList.contains(workerBrandAccount.getWebsitWorkerId())){
+                continue;
+            }
+
             // 参数 获取网点维修工信息
             getParameter(wxgDownload.getWdno(), wxgDownload.getWxgno(), req);
             try {
@@ -1381,7 +1382,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                     }
 
                     // 同步-师傅服务的类目信息 无则插入
-                    getServiceCategory(wvos, wscList, wscdList, sysDict, wxgDownload, wxgCategoryTypeRecs, sysDictRefMap, workerBrandAccount);
+                    getServiceCategory(wvos, wscList, wscdList, sysDict, wxgDownload, wxgCategoryTypeRecs,
+                            sysDictRefMap, workerBrandAccount, workerServiceCategoryDetailList);
 
                     // 新增或修改(师傅服务的类目)
                     addDataCategory(wscList, wscdList);
@@ -1426,7 +1428,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
     private void getServiceCategory(WangdianWxgVos wvos, List<WorkerServiceCategory> wscList, List<WorkerServiceCategoryDetail> wscdList,
                                     SysDict sysDict, ItfTblWangdianWxgDownload wxg,
                                     Map<String,List<WorkerServiceCategoryDetail>> wxgCategoryTypeRecs,
-                                    Map<String, List<SysDictRef>> sysDictRefMap,WorkerBrandAccount workerBrandAccount) {
+                                    Map<String, List<SysDictRef>> sysDictRefMap,WorkerBrandAccount workerBrandAccount,
+                                    List<String> workerServiceCategoryDetailList) {
         List<String> complete = new ArrayList<>();
         // 先处理商用
         for (SignSplb syitem: wvos.getSySignSplbList()){
@@ -1434,7 +1437,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             for (String s :syitem.getFwlbList()){
                 // 师傅服务的大类中查看是否存在 不存在新增
                 extracted(wscList, wscdList, complete, sysDict, wxg, wxgCategoryTypeRecs,
-                        syitem, s, ServiceCategoryEnum.COMMERCIAL_TYPE.getCode(), sysDictRefMap, workerBrandAccount);
+                        syitem, s, ServiceCategoryEnum.COMMERCIAL_TYPE.getCode(), sysDictRefMap,
+                        workerBrandAccount, workerServiceCategoryDetailList);
             }
         }
         complete.clear();
@@ -1445,7 +1449,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
             for (String s :syitem.getFwlbList()){
                 // 师傅服务的大类中查看是否存在 不存在新增
                 extracted(wscList, wscdList, complete, sysDict, wxg, wxgCategoryTypeRecs,
-                        syitem, s,ServiceCategoryEnum.HOME_TYPE.getCode(), sysDictRefMap, workerBrandAccount);
+                        syitem, s,ServiceCategoryEnum.HOME_TYPE.getCode(), sysDictRefMap,
+                        workerBrandAccount, workerServiceCategoryDetailList);
             }
         }
     }
@@ -1475,20 +1480,24 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
     private void extracted(List<WorkerServiceCategory> wscList, List<WorkerServiceCategoryDetail> wscdList,
                            List<String> complete, SysDict sysDict, ItfTblWangdianWxgDownload wxg,
                            Map<String,List<WorkerServiceCategoryDetail>> wxgCategoryTypeRecs, SignSplb syitem,
-                           String s, String type,Map<String, List<SysDictRef>> sysDictRefMap, WorkerBrandAccount workerBrandAccount) {
+                           String s, String type,Map<String, List<SysDictRef>> sysDictRefMap,
+                           WorkerBrandAccount workerBrandAccount, List<String> workerServiceCategoryDetailList) {
         if ( !complete.contains(s + syitem.getSpdl())){
             // 提取品牌商对应的大类信息
             SysDictRef sysDictRef = sysDictRefMap.get(String.valueOf(syitem.getSpdl())).get(0);
 
             if (s.equals(ServiceCategoryEnum.INSTALL_TYPE.getText())){
                 getAddInfo(wscList, wscdList, sysDict, wxg, wxgCategoryTypeRecs,
-                        sysDictRef,ServiceCategoryEnum.INSTALL_TYPE.getCode(),type,workerBrandAccount);
+                        sysDictRef,ServiceCategoryEnum.INSTALL_TYPE.getCode(),
+                        type,workerBrandAccount,workerServiceCategoryDetailList);
             } else if (s.equals(ServiceCategoryEnum.REPAIR_TYPE.getText())){
                 getAddInfo(wscList, wscdList, sysDict, wxg, wxgCategoryTypeRecs,
-                        sysDictRef,ServiceCategoryEnum.REPAIR_TYPE.getCode(),type,workerBrandAccount);
+                        sysDictRef,ServiceCategoryEnum.REPAIR_TYPE.getCode(),
+                        type,workerBrandAccount,workerServiceCategoryDetailList);
             } else if (s.equals(ServiceCategoryEnum.DELIVERY_TYPE.getText())){
                 getAddInfo(wscList, wscdList, sysDict, wxg, wxgCategoryTypeRecs,
-                        sysDictRef,ServiceCategoryEnum.DELIVERY_TYPE.getCode(),type,workerBrandAccount);
+                        sysDictRef,ServiceCategoryEnum.DELIVERY_TYPE.getCode(),
+                        type,workerBrandAccount,workerServiceCategoryDetailList);
             }
             // 新增过的无需再次新增
             complete.add(s + syitem.getSpdl());
@@ -1497,7 +1506,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
 
     private void getAddInfo(List<WorkerServiceCategory> wscList, List<WorkerServiceCategoryDetail> wscdList, SysDict sysDict,
                             ItfTblWangdianWxgDownload wxg, Map<String, List<WorkerServiceCategoryDetail>> wxgCategoryTypeRecs,
-                            SysDictRef sysDictRef, String code, String type, WorkerBrandAccount workerBrandAccount) {
+                            SysDictRef sysDictRef, String code, String type, WorkerBrandAccount workerBrandAccount,
+                            List<String> workerServiceCategoryDetailList) {
         Boolean include = Boolean.FALSE;
         // 看师傅是否已有(服务类型 INSTALL=安装 REPAIR=维修  DELIVERY=配送)对应的大类信息 如有不做任何处理
         if (wxgCategoryTypeRecs !=null && wxgCategoryTypeRecs.size()>0){
@@ -1544,6 +1554,8 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
 
                 wscdList.add(wscd);
 
+                workerServiceCategoryDetailList.add(workerBrandAccount.getWebsitWorkerId());
+
             } else {
                 // WorkerServiceCategoryDetail 新增
                 WorkerServiceCategoryDetail wscd = new WorkerServiceCategoryDetail();
@@ -1560,6 +1572,7 @@ public class GLPPWXGQueryAddServiceImpl implements GLPPWXGQueryAddService {
                 wscd.setMainName(sysDictRef.getDictValue());
                 wscd.setCreateTime(new Date());
                 wscdList.add(wscd);
+                workerServiceCategoryDetailList.add(workerBrandAccount.getWebsitWorkerId());
             }
         }
     }