yaozhixue 1 vuosi sitten
vanhempi
commit
bfa5922c06

+ 1 - 1
src/main/java/com/zfire/jiasm/syncdata/api/OrderAddBeanDTO.java

@@ -123,7 +123,7 @@ public class OrderAddBeanDTO {
     // 派工方式 A=自动派工 B=手动派工
     private String dispatchFlag;
     // 工程师,第一个为大工
-    private List<String> workerIds = new ArrayList<>();
+    private List<String> websitWorkerIds = new ArrayList<>();
     // 支架
     private String bracket;
     // 加长管

+ 3 - 0
src/main/java/com/zfire/jiasm/syncdata/service/PublicService.java

@@ -109,6 +109,9 @@ public interface PublicService {
     // 获取安装工单对应的师傅信息
     Worker getInstallOrderWorker(Long azrenid);
 
+    // 获取平台网点师傅信息
+    WebsitWorker getOrderWebsitWorker(String workerId,String websitId);
+
     // 安装工单的省市区对应关系
     void installOrderSSQJ(OrderBase orderBase);
 

+ 53 - 30
src/main/java/com/zfire/jiasm/syncdata/service/impl/AddInstallBusinessImpl.java

@@ -652,7 +652,7 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         if (orderWorker !=null){
             List<String> workerIds = new ArrayList<>();
             workerIds.add(orderWorker.getWorkerId());
-            createOrder.getWorkerIds().addAll(workerIds);
+            createOrder.getWebsitWorkerIds().addAll(workerIds);
         }
         createOrder.setLinkName(orderBase.getUserName());
     }
@@ -2690,14 +2690,7 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
 
         // 生成工单基础表 对象
         orderBase = azGDLcLsDownloadMapper.getOrderBase(orderPar);
-        // 赋值接收师傅信息
-        Worker worker= publicService.getInstallOrderWorker(item.getAzrenid());
-        if (worker !=null){
-            orderBase.setWorkerId(worker.getWorkerId());
-            orderBase.setWorkerName(worker.getWorkerName());
-            orderBase.setWorkerMobile(worker.getMobile());
-            orderBase.setWorkerIdcard(worker.getIdcard());
-        }
+
 
         orderBase.setId("33"+IdWorker.getIdStr());
         // 总部下来的工单新增时统一为待接收状态
@@ -2717,6 +2710,19 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         // 重置部分数据 + 采集数据下载
         orderService.setPar(item, orderBase,its);
 
+        // 赋值接收师傅信息
+        Worker worker= publicService.getInstallOrderWorker(item.getAzrenid());
+        if (worker !=null){
+            // 提取网点师傅ID
+            WebsitWorker ww = publicService.getOrderWebsitWorker(worker.getWorkerId(),orderBase.getWebsitId());
+            if (ww !=null ){
+                orderBase.setWorkerId(ww.getWebsitWorkerId());
+                orderBase.setWorkerName(worker.getWorkerName());
+                orderBase.setWorkerMobile(worker.getMobile());
+                orderBase.setWorkerIdcard(worker.getIdcard());
+            }
+        }
+
         return orderBase;
     }
 
@@ -2729,14 +2735,6 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
 
         // 生成工单基础表 对象
         orderBase = azGDLcLsDownloadMapper.getOrderBase(orderPar);
-        // 赋值接收师傅信息
-        Worker worker= publicService.getInstallOrderWorker(item.getAzrenid());
-        if (worker !=null){
-            orderBase.setWorkerId(worker.getWorkerId());
-            orderBase.setWorkerName(worker.getWorkerName());
-            orderBase.setWorkerMobile(worker.getMobile());
-            orderBase.setWorkerIdcard(worker.getIdcard());
-        }
 
         orderBase.setSource("GREE");
         orderBase.setId("G" + IdWorker.getIdStr());
@@ -2757,6 +2755,19 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         // 重置部分数据
         orderService.setParApi(item, orderBase,its);
 
+        // 赋值接收师傅信息
+        Worker worker= publicService.getInstallOrderWorker(item.getAzrenid());
+        if (worker !=null){
+            // 提取网点师傅ID
+            WebsitWorker ww = publicService.getOrderWebsitWorker(worker.getWorkerId(),orderBase.getWebsitId());
+            if (ww !=null ){
+                orderBase.setWorkerId(ww.getWebsitWorkerId());
+                orderBase.setWorkerName(worker.getWorkerName());
+                orderBase.setWorkerMobile(worker.getMobile());
+                orderBase.setWorkerIdcard(worker.getIdcard());
+            }
+        }
+
         return orderBase;
     }
 
@@ -2767,18 +2778,24 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         orderPar.setBrandId(brand.getBrandId());
         // 生成工单基础表 对象
         orderBase = azGDLcLsDownloadMapper.getOrderBase(orderPar);
+
+
+        // 重置部分数据
+        orderService.setParUp(item, orderBase,its);
+
         // 赋值接收师傅信息
         Worker worker= publicService.getInstallOrderWorker(item.getAzrenid());
         if (worker !=null){
-            orderBase.setWorkerId(worker.getWorkerId());
-            orderBase.setWorkerName(worker.getWorkerName());
-            orderBase.setWorkerMobile(worker.getMobile());
-            orderBase.setWorkerIdcard(worker.getIdcard());
+            // 提取网点师傅ID
+            WebsitWorker ww = publicService.getOrderWebsitWorker(worker.getWorkerId(),orderBase.getWebsitId());
+            if (ww !=null ){
+                orderBase.setWorkerId(ww.getWebsitWorkerId());
+                orderBase.setWorkerName(worker.getWorkerName());
+                orderBase.setWorkerMobile(worker.getMobile());
+                orderBase.setWorkerIdcard(worker.getIdcard());
+            }
         }
 
-        // 重置部分数据
-        orderService.setParUp(item, orderBase,its);
-
         return orderBase;
     }
 
@@ -2789,16 +2806,22 @@ public class AddInstallBusinessImpl implements AddInstallBusiness {
         orderPar.setBrandId(brand.getBrandId());
         // 生成工单基础表 对象
         orderBase = azGDLcLsDownloadMapper.getOrderBase(orderPar);
+
+        // 重置部分数据
+        orderService.setParUpApi(item, orderBase,its);
+
         // 赋值接收师傅信息
         Worker worker= publicService.getInstallOrderWorker(item.getAzrenid());
         if (worker !=null){
-            orderBase.setWorkerId(worker.getWorkerId());
-            orderBase.setWorkerName(worker.getWorkerName());
-            orderBase.setWorkerMobile(worker.getMobile());
-            orderBase.setWorkerIdcard(worker.getIdcard());
+            // 提取网点师傅ID
+            WebsitWorker ww = publicService.getOrderWebsitWorker(worker.getWorkerId(),orderBase.getWebsitId());
+            if (ww !=null ){
+                orderBase.setWorkerId(ww.getWebsitWorkerId());
+                orderBase.setWorkerName(worker.getWorkerName());
+                orderBase.setWorkerMobile(worker.getMobile());
+                orderBase.setWorkerIdcard(worker.getIdcard());
+            }
         }
-        // 重置部分数据
-        orderService.setParUpApi(item, orderBase,its);
 
         return orderBase;
     }

+ 43 - 19
src/main/java/com/zfire/jiasm/syncdata/service/impl/AddRepairBusinessServiceImpl.java

@@ -534,7 +534,7 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         if (orderWorker !=null){
             List<String> workerIds = new ArrayList<>();
             workerIds.add(orderWorker.getWorkerId());
-            createOrder.getWorkerIds().addAll(workerIds);
+            createOrder.getWebsitWorkerIds().addAll(workerIds);
         }
         createOrder.setLinkName(orderBase.getUserName());
     }
@@ -588,6 +588,20 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         }
         // 网点信息更新
         updateWebsit(sysDictRefDLMap, item, oldOrder);
+
+        // 赋值接收师傅信息 oldOrder
+        Worker worker= publicService.getInstallOrderWorker(item.getWxrenid());
+        if (worker !=null){
+            // 提取网点师傅ID
+            WebsitWorker ww = publicService.getOrderWebsitWorker(worker.getWorkerId(),oldOrder.getWebsitId());
+            if (ww !=null ){
+                oldOrder.setWorkerId(ww.getWebsitWorkerId());
+                oldOrder.setWorkerName(worker.getWorkerName());
+                oldOrder.setWorkerMobile(worker.getMobile());
+                oldOrder.setWorkerIdcard(worker.getIdcard());
+            }
+        }
+
         // 用户期望上门时间信息更新
         updateYhqwsmsj(item, oldOrder);
         // 状态信息更新
@@ -650,6 +664,20 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         }
         //2:网点信息更新
         updateWebsitApi(sysDictRefDLMap, item, oldOrder);
+
+        // 赋值接收师傅信息 oldOrder
+        Worker worker= publicService.getInstallOrderWorker(item.getWxrenid());
+        if (worker !=null){
+            // 提取网点师傅ID
+            WebsitWorker ww = publicService.getOrderWebsitWorker(worker.getWorkerId(),oldOrder.getWebsitId());
+            if (ww !=null ){
+                oldOrder.setWorkerId(ww.getWebsitWorkerId());
+                oldOrder.setWorkerName(worker.getWorkerName());
+                oldOrder.setWorkerMobile(worker.getMobile());
+                oldOrder.setWorkerIdcard(worker.getIdcard());
+            }
+        }
+
         // 3:用户期望上门时间信息更新
         updateYhqwsmsjApi(item, oldOrder);
         //4:状态信息更新
@@ -1050,15 +1078,6 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         }
         upOrder.setInfoSourceId(baseService.getxxly(upOrder.getInfoSource()));
 
-        // 赋值接收师傅信息
-        Worker worker= publicService.getInstallOrderWorker(item.getWxrenid());
-        if (worker !=null){
-            upOrder.setWorkerId(worker.getWorkerId());
-            upOrder.setWorkerName(worker.getWorkerName());
-            upOrder.setWorkerMobile(worker.getMobile());
-            upOrder.setWorkerIdcard(worker.getIdcard());
-        }
-
         upOrder.setId(oldOrder.getId());
         upOrder.setOutUpdateSynReqId(item.getSynReqId());
         upOrder.setOutUpdateSynReqTime(new Date());
@@ -2688,15 +2707,6 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
         orderPar.setSynReqId(item.getSynReqId());
         orderPar.setBrandId(brand.getBrandId());
         OrderBase order = repairDownloadMapper.getOrderBase(orderPar);
-        // 赋值接收师傅信息
-        Worker worker= publicService.getInstallOrderWorker(item.getWxrenid());
-        if (worker !=null){
-            order.setWorkerId(worker.getWorkerId());
-            order.setWorkerName(worker.getWorkerName());
-            order.setWorkerMobile(worker.getMobile());
-            order.setWorkerIdcard(worker.getIdcard());
-        }
-
         order.setId("G" + IdWorker.getIdStr());
         if (isChildInfo){
             order.setIsChildInfo("YES");
@@ -2710,6 +2720,20 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
 
         // 部分属性值重置
         orderService.setParame(brand, order, item);
+
+        // 赋值接收师傅信息
+        Worker worker= publicService.getInstallOrderWorker(item.getWxrenid());
+        if (worker !=null){
+            // 提取网点师傅ID
+            WebsitWorker ww = publicService.getOrderWebsitWorker(worker.getWorkerId(),order.getWebsitId());
+            if (ww !=null ){
+                order.setWorkerId(ww.getWebsitWorkerId());
+                order.setWorkerName(worker.getWorkerName());
+                order.setWorkerMobile(worker.getMobile());
+                order.setWorkerIdcard(worker.getIdcard());
+            }
+        }
+
         // 新增
         // orderBaseService.save(order);
         return order;

+ 10 - 0
src/main/java/com/zfire/jiasm/syncdata/service/impl/PublicServiceImpl.java

@@ -1140,6 +1140,16 @@ public class PublicServiceImpl implements PublicService {
         return null;
     }
 
+    // 获取平台网点师傅信息
+    @Override
+    public WebsitWorker getOrderWebsitWorker(String workerId,String websitId){
+        WebsitWorker wws = websitWorkerService.lambdaQuery()
+                .eq(WebsitWorker::getWorkerId,workerId)
+                .eq(WebsitWorker::getWebsitId,websitId)
+                .last("limit 1").one();
+        return wws;
+    }
+
 
     // SATISFACTION=好GENERAL=中DISPLEASURE=差 ELIMINATE=剔除 OTHER_APPRISE=其他
     // 评价状态 A=满意  B=一般  C=不满意

+ 54 - 5
src/main/java/com/zfire/jiasm/syncdata/service/impl/UploadWorkerTOGreeServiceImpl.java

@@ -14,6 +14,7 @@ import com.zfire.jiasm.syncdata.plus.service.*;
 import com.zfire.jiasm.syncdata.request.SignSplb;
 import com.zfire.jiasm.syncdata.request.WorkUploadInfo;
 import com.zfire.jiasm.syncdata.request.ZJInfo;
+import com.zfire.jiasm.syncdata.response.Geographicallocation;
 import com.zfire.jiasm.syncdata.response.WebsitQXLB;
 import com.zfire.jiasm.syncdata.response.WorkerUploadResponse;
 import com.zfire.jiasm.syncdata.service.PublicService;
@@ -65,7 +66,7 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
     @Resource
     InsureWorkerCommercialFileService insureWorkerCommercialFileService;
     @Resource
-    WorkerMrbxService workerMrbxService;
+    BrandWebsitService brandWebsitService;
     @Resource
     InsureWorkerRecordService insureWorkerRecordService;
 
@@ -139,10 +140,10 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
 
                 // 这里需要从对应的网点信息中提取师傅服务区域
                 // 查看师傅服务区域 规定随便取一个地址即可
-                /*workerStreet = getWorkerStreet(item, worker);
+                workerStreet = getWorkerStreet(item, worker);
                 if (workerStreet == null) {
                     continue;
-                }*/
+                }
 
                 // 验证师傅的保险证信息 所有网点都验证 这里只验证是否成功上传了图片
                 if (checkBXOutInsureCert(workerBrandAccount)) {
@@ -152,6 +153,11 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
                 // 按网点同步
                 for (WorkerBrandAccount dot: workerBrandAccount){
 
+                    // 必填参数 省份-城市-区县-乡镇 找一个即可
+                    if (getaddres(item, req, dot)) {
+                        continue;
+                    }
+
                     // 提取师傅证件信息,未同步时不处理
                     if (getCertificateInfo(workerCertificateInfo, worker.getWorkerId(),dot)){
                         break;
@@ -221,11 +227,12 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
                     // 服务人员编号(不填值为新增,填值为修改)
                     if (StringUtils.isNotEmpty(dot.getBrandWorkerNumber())){
                         req.setWxgno(dot.getBrandWorkerNumber());
-                        // 重部分数据 以格力门店数据为准
+                        // 重部分数据 以格力门店数据为准
                         resetParameter(wdwxgGlMap, req,workerStreet);
                     } else {
-                        // extractedPCAS(req, workerStreet);
+                        extractedPCAS(req, workerStreet);
                     }
+
                     // 所属网点
                     req.setWdno(dot.getBrandWebsitId());
 
@@ -252,6 +259,48 @@ public class UploadWorkerTOGreeServiceImpl implements UploadWorkerTOGreeService
         }
     }
 
+    private boolean getaddres(OutWorkerUpload item, WorkUploadInfo req, WorkerBrandAccount dot) {
+        WebsitWorker wwone = websitWorkerService.lambdaQuery()
+                .eq(WebsitWorker::getWebsitWorkerId, dot.getWebsitWorkerId()).one();
+        if (StringUtils.isNotEmpty(wwone.getLng()) && StringUtils.isNotEmpty(wwone.getLat())){
+            Geographicallocation ps = publicService.getRegionByAddress(wwone.getLng(),wwone.getLat());
+            if (ps != null){
+                req.setSfen(ps.getProvince());
+                req.setCshi(ps.getCity());
+                req.setCounty(ps.getArea());
+                req.setXzhen(ps.getStreet());
+            } else {
+                // 使用商户网点的位置
+                BrandWebsit bw = brandWebsitService.lambdaQuery()
+                        .eq(BrandWebsit::getBrandWebsitNumber, dot.getBrandWebsitId())
+                        .last("limit 1").one();
+                if (bw !=null && StringUtils.isNotEmpty(bw.getSfen()) &&
+                        StringUtils.isNotEmpty(bw.getCshi()) &&
+                        StringUtils.isNotEmpty(bw.getXian()) &&
+                        StringUtils.isNotEmpty(bw.getXzhen())){
+                    req.setSfen(ps.getProvince());
+                    req.setCshi(ps.getCity());
+                    req.setCounty(ps.getArea());
+                    req.setXzhen(ps.getStreet());
+                } else {
+                    if (bw !=null){
+                        Geographicallocation gs = publicService.getRegionByAddress(String.valueOf(bw.getJingdu()),String.valueOf(bw.getWeidu()));
+                        if (ps != null){
+                            req.setSfen(ps.getProvince());
+                            req.setCshi(ps.getCity());
+                            req.setCounty(ps.getArea());
+                            req.setXzhen(ps.getStreet());
+                        }
+                    } else {
+                        // 写入表备注信息
+                        updateWorkerUploadLag(item,"师傅服务区域信息不存在");
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
 
 
     // 商户网点与平台网点存在一对多,确保正确,所有平台网点的图片都必须生成