yaozhixue 1 year ago
parent
commit
a79ed749b7

+ 19 - 18
src/main/java/com/zfire/jiasm/syncdata/base/BaseService.java

@@ -1,13 +1,12 @@
 package com.zfire.jiasm.syncdata.base;
 
 import com.zfire.jiasm.syncdata.constant.RedisConstant;
+import com.zfire.jiasm.syncdata.plus.entity.Belongcompany;
 import com.zfire.jiasm.syncdata.plus.entity.Brand;
-import com.zfire.jiasm.syncdata.plus.service.BrandService;
-import com.zfire.jiasm.syncdata.plus.service.BrandWebsitService;
-import com.zfire.jiasm.syncdata.plus.service.CustomerInformationWebsitService;
-import com.zfire.jiasm.syncdata.plus.service.WebsitOrderSignService;
+import com.zfire.jiasm.syncdata.plus.service.*;
 import com.zfire.jiasm.syncdata.utils.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -35,24 +34,26 @@ public class BaseService {
 
 
 
-     public Brand getBrand() {
-         Brand brand = new Brand();
-         String gree = "格力";
 
-         if (redis.hasKey(RedisConstant.BRAND_CODE + gree)) {
-             brand = (Brand) redis.get(RedisConstant.BRAND_CODE + gree);
-         } else {
-             brand = brandService.lambdaQuery().eq(Brand::getBrand,gree)
-                     .last("limit 1")
-                     .one();
-             if (brand != null){
-                 redis.set(RedisConstant.BRAND_CODE + gree, brand,RedisConstant.BRAND_CODE_TIME_LENGTH);
-             }
-         }
+    public Brand getBrand() {
+        Brand brand = new Brand();
+        String gree = "格力";
 
-         return brand;
+        if (redis.hasKey(RedisConstant.BRAND_CODE + gree)) {
+            brand = (Brand) redis.get(RedisConstant.BRAND_CODE + gree);
+        } else {
+            brand = brandService.lambdaQuery().eq(Brand::getBrand,gree)
+                    .last("limit 1")
+                    .one();
+            if (brand != null){
+                redis.set(RedisConstant.BRAND_CODE + gree, brand,RedisConstant.BRAND_CODE_TIME_LENGTH);
+            }
+        }
+
+        return brand;
     }
 
+
     public void saveToFile(String desUrl,String id){
         FileOutputStream fos = null;
         BufferedInputStream bis = null ;

+ 6 - 0
src/main/java/com/zfire/jiasm/syncdata/constant/RedisConstant.java

@@ -14,6 +14,7 @@ public class RedisConstant {
 
     public static final Long ADDRES_TIME_LENGTH = 1 * 60 *60 *1000L;
 
+    public static final Long CENTER_CODE_TIME_LENGTH = 1 * 60 *60 *1000L;
 
 
     public static final String GREE = "GREE:";
@@ -21,6 +22,8 @@ public class RedisConstant {
 
 
 
+
+
     // 格力品牌
     public static final String BRAND_CODE = GREE + "CODE:";
 
@@ -30,6 +33,9 @@ public class RedisConstant {
     // 市信息
     public static final String CITY_ADDRE = ADDRE + "CITY:";
 
+    // 格力中心网点
+    public static final String CENTER_CODE = GREE + "CENTER:";
+
 
 
 

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

@@ -110,6 +110,9 @@ public interface PublicService {
     // 商户售后网点对应平台售后网点 category为平台内的大类 中心用
     WebsitFWS shshwdToptshwdZX(String websitNo, OrderBase order);
 
+    // 找中心网点数据 参数为格力售后中心网点编号
+    Belongcompany getBelongCompany(String bcp);
+
 
 
 }

+ 20 - 0
src/main/java/com/zfire/jiasm/syncdata/service/impl/AddRepairBusinessServiceImpl.java

@@ -89,6 +89,7 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
 
 
 
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void addRapairOrder(Brand brand, ItfTblAssignDownload item,
@@ -906,6 +907,25 @@ public class AddRepairBusinessServiceImpl implements AddRepairBusinessService {
             upOrder.setCreateWebsitName(websitFWS.getWdmc());
             upOrder.setReceWebsitId(websitFWS.getWebsitId());
             upOrder.setReceWebsitName(websitFWS.getWdmc());
+            upOrder.setWebsitId(websitFWS.getWebsitId());
+            upOrder.setWebsitName(websitFWS.getWdmc());
+
+            Belongcompany bc = publicService.getBelongCompany(item.getXjwdno());
+            websitFWS = publicService.shxswdToptxswd(bc.getBelongCompanySale(),upOrder);
+            upOrder.setBrandId(websitFWS.getBrandId());
+            upOrder.setBrandName(websitFWS.getBrandName());
+        }
+
+        // 结算主体重置 维修网点一般是不填销售单位的通过售后网点来查结算主体   (a.xjwdno,''),a.wxwdno) as websit_id
+        String wdnoq = item.getXjwdno();
+        if (StringUtils.isEmpty(wdno)){
+            wdnoq = item.getWxwdno();
+        }
+
+        if (StringUtils.isEmpty(upOrder.getBrandId())){
+            websitFWS = publicService.shshwdToptshwd(wdnoq,upOrder);
+            upOrder.setBrandId(websitFWS.getBrandId());
+            upOrder.setBrandName(websitFWS.getBrandName());
         }
 
     }

+ 23 - 0
src/main/java/com/zfire/jiasm/syncdata/service/impl/OrderServiceImpl.java

@@ -199,7 +199,16 @@ public class OrderServiceImpl extends ServiceImpl<OrderBaseMapper, OrderBase> im
             orderBase.setCreateWebsitName(websitFWS.getWdmc());
             orderBase.setReceWebsitId(websitFWS.getWebsitId());
             orderBase.setReceWebsitName(websitFWS.getWdmc());
+            orderBase.setWebsitId(websitFWS.getWebsitId());
+            orderBase.setWebsitName(websitFWS.getWdmc());
+
+            // 结算主体重置
+            Belongcompany bc = publicService.getBelongCompany(item.getJspgwdmc());
+            websitFWS = publicService.shxswdToptxswd(bc.getBelongCompanySale(),orderBase);
+            orderBase.setBrandId(websitFWS.getBrandId());
+            orderBase.setBrandName(websitFWS.getBrandName());
         }
+
     }
 
     private void extracted(ItfTblAzAssignLcLsDownload item, OrderBase orderBase, List<OrderApplyDispatch> oads, List<ItfGreeToFaDownloadTaskList> its) {
@@ -566,6 +575,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderBaseMapper, OrderBase> im
             orderBase.setCreateWebsitName(websitFWS.getWdmc());
             orderBase.setReceWebsitId(websitFWS.getWebsitId());
             orderBase.setReceWebsitName(websitFWS.getWdmc());
+            orderBase.setWebsitId(websitFWS.getWebsitId());
+            orderBase.setWebsitName(websitFWS.getWdmc());
+
+            Belongcompany bc = publicService.getBelongCompany(item.getXjwdno());
+            websitFWS = publicService.shxswdToptxswd(bc.getBelongCompanySale(),orderBase);
+            orderBase.setBrandId(websitFWS.getBrandId());
+            orderBase.setBrandName(websitFWS.getBrandName());
+        }
+
+        // 结算主体重置 维修网点一般是不填销售单位的通过售后网点来查结算主体   (a.xjwdno,''),a.wxwdno) as websit_id
+        if (StringUtils.isEmpty(orderBase.getBrandId())){
+            websitFWS = publicService.shshwdToptshwd(orderBase.getWebsitId(),orderBase);
+            orderBase.setBrandId(websitFWS.getBrandId());
+            orderBase.setBrandName(websitFWS.getBrandName());
         }
     }
 

+ 31 - 3
src/main/java/com/zfire/jiasm/syncdata/service/impl/PublicServiceImpl.java

@@ -92,6 +92,8 @@ public class PublicServiceImpl implements PublicService {
     LbsAmapService lbsAmapService;
     @Autowired
     AdminWebsitService adminWebsitService;
+    @Resource
+    BelongcompanyService belongcompanyService;
 
 
     private static String ALISMS_RESERVE = "尊敬的客户,您好!师傅上门时间为%s,服务网点电话:%s,如本次上门时间与您的安排有冲突,请拨打服务网点电话联系,我们将竭诚为您服务!";
@@ -1205,13 +1207,40 @@ public class PublicServiceImpl implements PublicService {
             return resultData;
         }
 
+        // 多网点里找下级网点
+        LinkedHashSet<String> websitNumbers = new LinkedHashSet<>();
+        aws.forEach(o->{
+            websitNumbers.add(o.getWebsitNumber());
+        });
+        List<AdminWebsit> awst = adminWebsitService.lambdaQuery()
+                .in(AdminWebsit::getParentId,websitNumbers)
+                .list();
+
         // 多网点时用大类过滤
-        AdminWebsit adminWebsit = websitCategoryZX(aws, order.getMainId(), tid,order.getOrderType());
+        AdminWebsit adminWebsit = websitCategoryZX(awst, order.getMainId(), tid,order.getOrderType());
         resultData.setWebsitId(adminWebsit.getWebsitNumber());
         resultData.setWdmc(adminWebsit.getName());
         return resultData;
     }
 
+    @Override
+    public Belongcompany getBelongCompany(String bcp) {
+        Belongcompany bcs = null;
+
+        if (redis.hasKey(RedisConstant.CENTER_CODE + bcp)) {
+            bcs = (Belongcompany) redis.get(RedisConstant.CENTER_CODE + bcp);
+        } else {
+            bcs = belongcompanyService.lambdaQuery()
+                    .eq(Belongcompany::getBelongCompanyProfession,bcp).one();
+
+            if (bcs != null){
+                redis.set(RedisConstant.CENTER_CODE + bcp, bcs,RedisConstant.CENTER_CODE_TIME_LENGTH);
+            }
+        }
+
+        return bcs;
+    }
+
     private void setLocationByAddress(OrderBase orderBase) {
         if (StringUtils.isEmpty(orderBase.getLng()) || StringUtils.isEmpty(orderBase.getLat())) {
             String add = "";
@@ -1580,8 +1609,7 @@ public class PublicServiceImpl implements PublicService {
     }
 
     // 平台网点服务的大类信息
-    private AdminWebsit websitCategoryZX(List<AdminWebsit> aws,
-                                             String categoryId,long tid,String type){
+    private AdminWebsit websitCategoryZX(List<AdminWebsit> aws,String categoryId,long tid,String type){
         String wd="";
         String wdh="";
         List<AdminWebsit> wosn = new ArrayList<>();