yaozhixue 1 年之前
父节点
当前提交
65bbbb03e9

+ 18 - 0
src/main/java/com/zfire/jiasm/syncdata/download/basedata/GLPPGFWebsitWorker.java

@@ -39,6 +39,10 @@ public class GLPPGFWebsitWorker {
     private String fsswxgc = "";
     @Value("${gzswxgc}")
     private String gzswxgc = "";
+    @Value("${gfwwwc}")
+    private String gfwwwc = "";
+
+
 
     @Resource
     TokenCenter tokenCenter;
@@ -47,6 +51,7 @@ public class GLPPGFWebsitWorker {
 
 
 
+
     /**
      * X2300000 佛山销售网点维修工基础资料下载
      * @return
@@ -200,4 +205,17 @@ public class GLPPGFWebsitWorker {
     }
 
 
+    // 数据同步到本地表(worker:师傅信息表 + worker_brand_account:师傅网点对应品牌网点信息表 + websit_worker:网点师傅信息表)
+    // 师傅信息一定新增
+    // 品牌网点与平台网点有对应关系才会同步生成相应的网点数据
+    @Scheduled(fixedDelayString = "${gfwww}")
+    private void process() {
+        if (gfwwwc.equals(TaskConfigEnum.FALSE.getCode())){
+            return;
+        }
+
+        glppgfWebsitWorkerService.inputData();
+    }
+
+
 }

+ 2 - 0
src/main/java/com/zfire/jiasm/syncdata/service/GLPPGFWebsitWorkerService.java

@@ -11,4 +11,6 @@ public interface GLPPGFWebsitWorkerService {
     void extractedFSSH(JSONArray jsonArray);
 
     void extractedGZSH(JSONArray jsonArray);
+
+    void inputData();
 }

+ 170 - 32
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPGFWebsitWorkerServiceImpl.java

@@ -49,10 +49,6 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         // 数据同步落到同步信息表
         extractedAddOrUpdate(addRec, updateRec, jsonArray);
 
-        // 数据同步到本地表(worker:师傅信息表 + worker_brand_account:师傅网点对应品牌网点信息表 + websit_worker:网点师傅信息表)
-        // 师傅信息一定新增
-        // 品牌网点与平台网点有对应关系才会同步生成相应的网点数据
-        extractedLocalAddOrUpdate(addRec, updateRec);
     }
 
     @Override
@@ -63,9 +59,6 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
 
         // 数据同步落到同步信息表
         extractedAddOrUpdate(addRec, updateRec, jsonArray);
-
-        // 数据同步到本地表
-        extractedLocalAddOrUpdate(addRec, updateRec);
     }
 
     @Override
@@ -76,9 +69,6 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
 
         // 数据同步落到同步信息表
         extractedAddOrUpdate(addRec, updateRec, jsonArray);
-
-        // 数据同步到本地表
-         extractedLocalAddOrUpdate(addRec, updateRec);
     }
 
     @Override
@@ -89,11 +79,78 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
 
         // 数据同步落到同步信息表
         extractedAddOrUpdate(addRec, updateRec, jsonArray);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void inputData(){
+        // 提取所有的数据
+        List<ItfTblWangdianWxgDownload> recs = new ArrayList<>();
+        recs = itfTblWangdianWxgDownloadService.lambdaQuery().list();
+
+        // 新增或修改师傅数据 worker:师傅信息表
+        addWorker(recs);
 
-        // 数据同步到本地表
-        extractedLocalAddOrUpdate(addRec, updateRec);
+        // 新增网点师傅 websit_worker+商户网点师傅信息 存在修改,不存在新增
+        addWebsitWorkerBrandAccountsInfo(recs);
+        recs.clear();
     }
 
+    private void addWebsitWorkerBrandAccountsInfo(List<ItfTblWangdianWxgDownload> addRec) {
+        // 新增网点师傅 websit_worker+商户网点师傅信息 存在修改,不存在新增
+        Map<String,List<WebsitOrderSign>> websitOrderSignMap = new HashMap<>();
+        Map<String, List<Worker>> workerIdCardMap = new HashMap<>();
+        List<Websit> websitrec = new ArrayList<>();
+        Map<String,List<Websit>> websitMap = new HashMap<>();
+        List<WorkerBrandAccount> addwbas = new ArrayList<>();
+        List<WebsitWorker> websitWorkeradd = new ArrayList<>();
+        List<WorkerBrandAccount> upWorkerBrandAccount = new ArrayList<>();
+
+        // 提取平台师傅信息
+        List<Worker> oldWorkerRec =  workerService.lambdaQuery()
+                .select(Worker::getIdcard,Worker::getWorkerId,Worker::getWorkerName,Worker::getMobile).list();
+        if (CollectionUtils.isNotEmpty(oldWorkerRec)){
+            workerIdCardMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getIdcard));
+        }
+
+        websitrec = websitService.lambdaQuery()
+                .select(Websit::getWebsitId,Websit::getServiceId,Websit::getWebsitName).list();
+        if (CollectionUtils.isNotEmpty(websitrec)){
+            websitMap = websitrec.stream().collect(Collectors.groupingBy(Websit::getWebsitId));
+        }
+
+        // 查看品牌网点与平台网点是否存在对应关系 (存在品牌网点对应平台多网点)
+        List<WebsitOrderSign> wos = publicService.SyncshshwdToptshwd();
+        if (CollectionUtils.isNotEmpty(wos)){
+            websitOrderSignMap = wos.stream().collect(Collectors.groupingBy(WebsitOrderSign::getBrandWebsitId));
+        }
+
+        if (addRec.size()>0){
+            // 生成平台网点及品牌商网点师傅数据
+            getWebsitWorkerBrandAccounts(addRec, websitOrderSignMap, workerIdCardMap, websitMap, addwbas,
+                    websitWorkeradd, upWorkerBrandAccount);
+
+            // 修改品牌商网点师傅数据
+            if (upWorkerBrandAccount.size()>0){
+                workerBrandAccountService.updateBatchById(upWorkerBrandAccount);
+                upWorkerBrandAccount.clear();
+            }
+
+            // 新增品牌师傅网点信息
+            if (addwbas.size()>0){
+                workerBrandAccountService.saveBatch(addwbas);
+                addwbas.clear();
+            }
+
+            // 新增师傅所在平台网点信息
+            if (websitWorkeradd.size()>0){
+                websitWorkerService.saveBatch(websitWorkeradd);
+                websitWorkeradd.clear();
+            }
+        }
+    }
+
+
     private void addWebsitWorkerBrandAccounts(List<ItfTblWangdianWxgDownload> addRec, List<ItfTblWangdianWxgDownload> updateRec) {
         // 新增网点师傅 websit_worker+商户网点师傅信息 存在修改,不存在新增
         Map<String,List<WebsitOrderSign>> websitOrderSignMap = new HashMap<>();
@@ -150,7 +207,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
 
         if (updateRec.size()>0){
             // 生成平台网点及品牌商网点师傅数据
-            getWebsitWorkerBrandAccounts(updateRec, websitOrderSignMap, workerIdCardMap, websitMap, addwbas, websitWorkeradd, upWorkerBrandAccount);
+            getWebsitWorkerBrandAccounts(updateRec, websitOrderSignMap, workerIdCardMap, websitMap,
+                    addwbas, websitWorkeradd, upWorkerBrandAccount);
 
             // 修改品牌商网点师傅数据
             if (upWorkerBrandAccount.size()>0){
@@ -180,6 +238,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
                                                                   List<WorkerBrandAccount> addwbas,
                                                                   List<WebsitWorker> websitWorkeradd,
                                                                   List<WorkerBrandAccount> upWorkerBrandAccounts) {
+        List<String> WebsitWorkers = new ArrayList<>();
+
         for (ItfTblWangdianWxgDownload m : addRec){
             // 只有存在网点对应关系才可以新增师傅到网点信息中来 存在品牌网点对应平台多网点
             if (!websitOrderSignMap.containsKey(m.getWdno())){
@@ -205,26 +265,56 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
                 upWorkerBrandAccounts.addAll(oldwbas);
                 // 修改平台网点师傅信息 要求存在就不修改只新增
             } else {
-                // 新增师傅所在品牌、商网点信息
+                // 新增师傅所在品牌、商网点信息
                 List<WebsitOrderSign> wosrec = new ArrayList<>();
                 wosrec = websitOrderSignMap.get(m.getWdno());
                 // 存在品牌网点对应平台多网点 平台网点信息
                 for (WebsitOrderSign i : wosrec){
+                    // 若师傅身份证没找到说明师傅信息未同步到师傅信息表,不处理 等下次处理即可
+                    if (!workerIdCardMap.containsKey(m.getSfzen())){
+                        continue;
+                    }
                     // 生成品牌师傅网点信息对像
                     WorkerBrandAccount add = getWorkerBrandAccount(workerIdCardMap, websitMap, m, addwbas, i);
+                    // 主键: worker_id + websit_id  已添加过就不再添加
+                    if (WebsitWorkers.contains(add.getWorkerId()+add.getWebsitId())){
+                        continue;
+                    }
+                    WebsitWorkers.add(add.getWorkerId()+add.getWebsitId());
                     // 生成师傅所在平台网点信息对像(如已存在不再新增 即不修改平台网点师傅信息)
                     WebsitWorker ww = websitWorkerService.lambdaQuery()
-                            .eq(WebsitWorker::getWorkerId,workerIdCardMap.get(m.getSfzen()).get(0).getWorkerId())
+                            .eq(WebsitWorker::getWorkerId,add.getWorkerId())
                             .eq(WebsitWorker::getWebsitId,i.getWebsitId()).one();
+
                     if (ww == null){
                         getWebsitWorker(workerIdCardMap, websitMap, m, websitWorkeradd, i, add);
                     }
                 }
             }
+            // 修改品牌商网点师傅数据
+            if (upWorkerBrandAccounts.size()>3000){
+                workerBrandAccountService.updateBatchById(upWorkerBrandAccounts);
+                upWorkerBrandAccounts.clear();
+            }
+
+            // 新增品牌师傅网点信息
+            if (addwbas.size()>3000){
+                workerBrandAccountService.saveBatch(addwbas);
+                addwbas.clear();
+            }
+
+            // 新增师傅所在平台网点信息
+            if (websitWorkeradd.size()>3000){
+                websitWorkerService.saveBatch(websitWorkeradd);
+                websitWorkeradd.clear();
+            }
         }
+        WebsitWorkers.clear();
     }
 
-    private void getWebsitWorker(Map<String, List<Worker>> workerIdCardMap, Map<String, List<Websit>> websitrecMap, ItfTblWangdianWxgDownload m, List<WebsitWorker> websitWorkeradd, WebsitOrderSign i, WorkerBrandAccount add) {
+    private void getWebsitWorker(Map<String, List<Worker>> workerIdCardMap, Map<String, List<Websit>> websitrecMap,
+                                 ItfTblWangdianWxgDownload m, List<WebsitWorker> websitWorkeradd,
+                                 WebsitOrderSign i, WorkerBrandAccount add) {
         WebsitWorker v = new WebsitWorker();
         // 一定要与worker_brand_account.websit_worker_id相同
         v.setWebsitWorkerId(add.getWebsitWorkerId());
@@ -247,7 +337,15 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         if (m.getLastModifiedDate() != null){
             v.setUpdateTime(m.getLastModifiedDate());
         }
-        v.setWorkerName(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerName());
+
+        for (Worker w:workerIdCardMap.get(m.getSfzen())){
+            if (w.getMobile().equals(m.getYddh())){
+                v.setWorkerName(w.getWorkerName());
+                break;
+            }
+        }
+        // v.setWorkerName(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerName());
+
         v.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
         if (m.getFlag() != null){
             if (!m.getFlag().trim().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
@@ -329,11 +427,20 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
     }
 
     @NotNull
-    private WorkerBrandAccount getWorkerBrandAccount(Map<String, List<Worker>> workerIdCardMap, Map<String, List<Websit>> websitrecMap,
+    private WorkerBrandAccount getWorkerBrandAccount(Map<String, List<Worker>> workerIdCardMap,
+                                                     Map<String, List<Websit>> websitrecMap,
                                                      ItfTblWangdianWxgDownload m,
                                                      List<WorkerBrandAccount> addwbas, WebsitOrderSign i) {
         WorkerBrandAccount add = new WorkerBrandAccount();
-        add.setWorkerId(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerId());
+
+        for (Worker w:workerIdCardMap.get(m.getSfzen())){
+            if (w.getWorkerName().equals(m.getWxgmc()) && w.getMobile().equals(m.getYddh())){
+                add.setWorkerId(w.getWorkerId());
+                break;
+            }
+        }
+        // add.setWorkerId(workerIdCardMap.get(m.getSfzen()).get(0).getWorkerId());
+
         // 自生成 一定要与websit_worker.websit_worker_id相同
         add.setWebsitWorkerId(IdWorker.getIdStr());
         add.setGroupCompanyId(i.getGroupCompanyId());
@@ -373,12 +480,20 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
     }
 
     private void getWorker(List<Worker> addWorkerRec, List<String> sfzens, ItfTblWangdianWxgDownload m,
-                           Map<String, List<Worker>> oldRecMap) {
+                           Map<String, List<Worker>> workerIdcardMap) {
+        Boolean flag = Boolean.FALSE;
         Worker v = new Worker();
         v.setWorkerId(IdWorker.getIdStr());
-        // 师傅身份证已存在为修改
-        if (oldRecMap.containsKey(m.getSfzen())){
-            v.setWorkerId(oldRecMap.get(m.getSfzen()).get(0).getWorkerId());
+        // 师傅身份证,名称,电话 已存在为修改
+        if (workerIdcardMap.containsKey(m.getSfzen())){
+            // v.setWorkerId(workerIdcardMap.get(m.getSfzen()).get(0).getWorkerId());
+            for (Worker w:workerIdcardMap.get(m.getSfzen())){
+                if (w.getWorkerName().equals(m.getWxgmc()) && w.getMobile().equals(m.getYddh())){
+                    v.setWorkerId(w.getWorkerId());
+                    flag = Boolean.TRUE;
+                    break;
+                }
+            }
         }
         v.setWorkerName(m.getWxgmc());
         //v.setIsReal("YES");
@@ -462,28 +577,32 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         v.setCarNo(m.getCphm());
         v.setGpsMachineId(m.getGpsid());
         v.setVipFlag(m.getVipflag());
-        v.setSyncFlag(1);
+        // 修改时不变动来源
+        if (!flag){
+            v.setSyncFlag(1);
+        }
         addWorkerRec.add(v);
-        sfzens.add(m.getSfzen());
+        sfzens.add(m.getSfzen() + m.getWxgmc() + m.getYddh());
     }
 
     private void extractedWorkerAddNew(List<ItfTblWangdianWxgDownload> addRec, List<Worker> addWorkerRec) {
+        // 身份证 + 姓名 + 手机号
         List<String> sfzens = new ArrayList<>();
-        Map<String, List<Worker>> oldRecMap = new HashMap<>();
+        Map<String, List<Worker>> workerIdcardMap = new HashMap<>();
         // 提取原有的信息
         List<Worker> oldWorkerRec =  workerService.lambdaQuery()
-                .select(Worker::getIdcard,Worker::getWorkerId).list();
+                .select(Worker::getIdcard,Worker::getWorkerId,Worker::getWorkerName,Worker::getMobile).list();
         if (CollectionUtils.isNotEmpty(oldWorkerRec)){
-            oldRecMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getIdcard));
+            workerIdcardMap = oldWorkerRec.stream().collect(Collectors.groupingBy(Worker::getIdcard));
         }
 
         for (ItfTblWangdianWxgDownload m : addRec){
             // 已处理过不再处理 因为这里是网点师傅会存在重复数据
-            if (sfzens.contains(m.getSfzen())){
+            if (sfzens.contains(m.getSfzen() + m.getWxgmc() + m.getYddh())){
                 continue;
             }
             // 生成对象
-            getWorker(addWorkerRec, sfzens, m, oldRecMap);
+            getWorker(addWorkerRec, sfzens, m, workerIdcardMap);
 
             // 新增的插入到表
             if (addWorkerRec.size()>=3000){
@@ -492,6 +611,8 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
                 addWorkerRec.clear();
             }
         }
+
+        sfzens.clear();
     }
 
     private void addWorkerInfo(List<ItfTblWangdianWxgDownload> addRec, List<ItfTblWangdianWxgDownload> updateRec, List<Worker> addWorkerRec) {
@@ -520,7 +641,24 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
         }
     }
 
+    private void addWorker(List<ItfTblWangdianWxgDownload> Recs) {
+        List<Worker> addWorkerRec = new ArrayList<>();
+        // 新增的
+        if (Recs.size()>0){
+            // worker:师傅信息
+            extractedWorkerAddNew(Recs, addWorkerRec);
+
+            // 新增的插入到表
+            if (addWorkerRec.size()>0){
+                workerService.saveOrUpdateBatch(addWorkerRec);
+                log.info("本地网点维修工人员信息表新增插入了{}条数据", addWorkerRec.size());
+                addWorkerRec.clear();
+            }
+        }
+    }
+
     private void extractedLocalAddOrUpdate(List<ItfTblWangdianWxgDownload> addRec, List<ItfTblWangdianWxgDownload> updateRec) {
+
         List<Worker> addWorkerRec = new ArrayList<>();
 
         // 新增师傅数据 worker:师傅信息表
@@ -555,7 +693,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
                 ItfTblWangdianWxgDownload old = oldRecMap.get(item.getWxgid()).get(0);
                 MyBeanUtils.copyProperties(item,old);
                 update.add(old);
-                if (update.size()>2000){
+                if (update.size()>3000){
                     itfTblWangdianWxgDownloadService.updateBatchById(update);
                     log.info("网点维修工基础资料信息同步更新修改了{}条数据", update.size());
                     updateRec.addAll(update);
@@ -570,7 +708,7 @@ public class GLPPGFWebsitWorkerServiceImpl implements GLPPGFWebsitWorkerService
                 item.setSynTimes(0);
                 add.add(item);
 
-                if (add.size()>=2000){
+                if (add.size()>3000){
                     itfTblWangdianWxgDownloadService.saveBatch(add);
                     log.info("网点维修工基础资料信息同步新增插入了{}条数据", add.size());
                     addRec.addAll(add);

+ 13 - 11
src/main/resources/bootstrap-dev.properties

@@ -39,7 +39,7 @@ feign.client.config.default.connectTimeout=60000
 feign.client.config.default.readTimeout=60000
 
 ### log4j配置
-logging.config=classpath:logbackback.xml
+logging.config=classpath:logback.xml
 # 禁控制台输出日志
 #logging.pattern.console=
 #undertow_web容器配置
@@ -199,15 +199,16 @@ masterdownloadrate=10000
 masterrate=10000
 guzdm=3600000
 #网点 佛山销售网点|售后网点、广州销售网点|售后网点
-netfsx=10000
-netfss=10000
-netgzx=10000
-netgzs=10000
-#网点 维修工 佛山销售|售后、广州销售|售后
+netfsx=60000
+netfss=60000
+netgzx=60000
+netgzs=60000
+#网点维修工 佛山销售|售后、广州销售|售后
 fsxwxg=60000
-fsswxg=10000
-gzxwxg=10000
-gzswxg=10000
+fsswxg=60000
+gzxwxg=60000
+gzswxg=60000
+gfwww=60000
 #类别大类、小类、系列、机型
 lbdl=60000
 lbxl=60000
@@ -314,11 +315,12 @@ netfsxc=FALSE
 netfssc=FALSE
 netgzxc=FALSE
 netgzsc=FALSE
-#网点 维修工 佛山销售|售后、广州销售|售后
+#网点维修工 佛山销售|售后、广州销售|售后
 fsxwxgc=FALSE
-fsswxgc=TRUE
+fsswxgc=FALSE
 gzxwxgc=FALSE
 gzswxgc=FALSE
+gfwwwc=TRUE
 #类别大类、小类、系列、机型
 lbdlc=FALSE
 lbxlc=FALSE

+ 0 - 287
src/main/resources/bootstrap-devback.properties

@@ -1,287 +0,0 @@
-#常规设置
-server.port =10006
-server.servlet.context-path=
-spring.servlet.multipart.max-file-size=40MB
-spring.servlet.multipart.max-request-size=40MB
-spring.servlet.multipart.location=/tmp
-#是否直接web端打印错误信息
-spring.devtools.add-properties=true
-
-spring.datasource.druid.db-type=mysql
-spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
-spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-spring.datasource.url=jdbc:mysql://121.43.111.127:3306/jiasm?verifyServerCertificate=false&useSSL=false&requireSSL=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=utf8&rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai
-spring.datasource.username=root
-spring.datasource.password=xch!eCdvc124@
-
-spring.datasource.druid.connection-init-sqls=set names utf8mb4
-spring.datasource.druid.initial-size=5
-spring.datasource.druid.minIdle=5
-spring.datasource.druid.maxActive=20
-### 配置获取连接等待超时的时间,单位是毫秒
-spring.datasource.druid.maxWait=60000
-### 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
-spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
-### 配置一个连接在池中最小生存的时间,单位是毫秒
-spring.datasource.druid.minEvictableIdleTimeMillis=300000
-spring.datasource.druid.validationQuery=SELECT 1 FROM DUAL
-spring.datasource.druid.testWhileIdle=true
-spring.datasource.druid.testOnBorrow=false
-spring.datasource.druid.testOnReturn=false
-### 打开PSCache,并且指定每个连接上PSCache的大小
-spring.datasource.druid.poolPreparedStatements=true
-spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
-### 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
-spring.datasource.druid.filters=stat,wall
-### 通过connectProperties属性来打开mergeSql功能;慢SQL记录
-spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
-
-### log4j配置
-logging.config=classpath:logback.xml
-#undertow_web容器配置
-server.undertow.accesslog.dir=${user.dir}/logs/access
-server.undertow.accesslog.enabled=true
-server.undertow.accesslog.pattern=%h %l %u %t "%r" %s %b %D
-server.undertow.accesslog.prefix=access_log.
-server.undertow.accesslog.rotate=true
-server.undertow.accesslog.suffix=log
-server.undertow.max-http-post-size=10240000
-#swagger-login-account
-#spring.security.user.name=admin
-#spring.security.user.password=gree2021
-#mybatis-plus配置
-mybatis-plus.mapper-locations=classpath*:/mapper/**Mapper.xml
-#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
-mybatis-plus.global-config.db-config.id-type=id_worker_str
-feign.client.config.default.connectTimeout=60000
-feign.client.config.default.readTimeout=60000
-
-
-#开启sql日志
-#mybatis-plus.configuration.log-impl = org.apache.ibatis.logging.stdout.StdOutImpl
-#map-underscore-to-camel-case = true
-
-#jackson组件时区
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-spring.jackson.timeZone=GMT+08:00
-spring.jackson.serialization.write_dates_as_timestamps=false
-spring.mvc.date-format=yyyy-MM-dd HH:mm:ss
-
-#高德
-lbs.web.key=b772f8b0ace6bc96c04ae8e48f241e36
-#家盛茂创建工单
-jiasmorderurl=https://jiasm.zfire.top/pcapi/order/add
-
-#####################redis 单机版 start################
-spring.redis.port=6388
-spring.redis.host=121.43.111.127
-#redis密码
-spring.redis.password=private123@^
-spring.redis.lettuce.pool.max-active=300
-spring.redis.lettuce.pool.max-wait=1000ms
-spring.redis.lettuce.pool.max-idle=100
-spring.redis.lettuce.pool.min-idle=0
-spring.redis.timeout=100000ms
-
-#################### 阿里云配置 ######################
-ali.access.key.id=LTAI4GK1q4mnpCFbonMd1pji
-ali.access.key.secert=E5LW0V1H8HBxqjKkExIxaXUgSyex6C
-ali.oss.bucket.name=zfiresupply
-ali.oss.endpoint.ww=oss-cn-hangzhou.aliyuncs.com/
-ali.oss.endpoint=oss-cn-hangzhou-internal.aliyuncs.com/
-ali.oss.type.pic=uploadfile/
-ali.sms.msg.code=SMS_212320165
-
-######################## 下载 ##############################
-masterbaseurl=https://gateway.yshcs.gree.com:9635/api/sso/autoapp-default-server-guangzhou/
-#masterbaseurl=https://api-sms.gree.com/api/sso/autoapp-default-server-guangzhou/
-clientId=guangfoserver
-clientSecret=f81f5ac8-ad24-4212-9b2d-9cc78f982562
-tokenURL=https://idm.yshcs.gree.com:9635/auth/realms/fdp-shyun-test%20/protocol/openid-connect/token
-clientId4Pgid=guangfo
-clientSecret4Pgid=378ebb2e-cb56-44bc-8153-6c9c507574b8
-baseurl=https://gateway.yshcs.gree.com:9635/api/sso/autoapp-default-server-guangzhou/
-nullCols=wcsj,yhqwsmsj,qwsmjssj,fwrybwgsj,zjczsj,dqjdsj,yhyyczsj,qwsmjssj,fwrybwgsj,gmsj,czsj,fksj,xjwdsj,zjczsj,xjwdsj,bxdue,yblength,created_date,last_modified_date,ydsj,wwsl,jxid,tmjscount,bmysj,jssj,kssj
-######################## 上传 ##############################
-uploadbaseurl=https://gateway.yshcs.gree.com:9635/api/sso/autoapp-default-server-guangzhou/api/outapp/default/general
-gree.V3.gettoken=https://idm.yshcs.gree.com:9635/auth/realms/fdp-shyun-test/protocol/openid-connect/token
-
-gree.gz.appid=O921980101
-gree.fs.appid=O921980701
-gree.tm.appid=O932982901
-gree.gz.appkey=4Bx3m3fOMatutVv1u08kUdtIYZ4FsN4x
-gree.fs.appkey=4Bx3m3fOMatutVv1u08kUdtIYZ4FsN4x
-gree.client.id=guangfoserver
-gree.V3.client.secert=f81f5ac8-ad24-4212-9b2d-9cc78f982562
-baseurl4pgid=https://gateway.yshcs.gree.com:9635/api/sso/autoapp-default-server-greeshservice/
-
-######################## 上传格力总部文件 ##############################
-downfileurl=https://gateway.yshcs.gree.com:9635/api/pub/nts-foundation-attachmentmanager/api/v2/attachment/download?id=%s&access_token=%s
-sevefileurl=https://gateway.yshcs.gree.com:9635/api/sso/nts-foundation-attachmentmanager/api/v2/attachment/saveFileInfo
-imageurl=https://gateway.yshcs.gree.com:9635/api/sso/nts-foundation-attachmentmanager/api/v2/attachment/saveFileInfo
-imagesign=https://gateway.yshcs.gree.com:9635/api/sso/nts-foundation-attachmentmanager/api/v2/attachment/getSignWithWdno?wdno=%s
-gree.gettoken=https://idm.yshcs.gree.com:9635/auth/realms/fdp-shyun-test/protocol/openid-connect/token
-gree.file.client.id=guangfo
-gree.V3.client.file.secert=378ebb2e-cb56-44bc-8153-6c9c507574b8
-
-######################## 格力总部查询接口 ##############################
-clientid=guangfoserver
-otherurl=https://api-sms-pre-test.gree.com:9635/api/sso
-
-######################## 自建工单短信发送配置 ##############################
-SMSSelf_accountSID=8a216da880d67afb01814728462d130f_error
-SMSSelf_authToken=efe907d67dda4abd8e1351757b649682
-SMSSelf_softVersion=2013-12-26
-SMSSelf_baseURL=https://app.cloopen.com:8883
-SMSSelf_appId=8a216da880d67afb0181472847271316_error
-SMSSelf_smsType=0
-SMSSelf_templateId=1196771
-SMSSelf_startTime=07:00
-SMSSelf_endTime=24:00
-FAILURE_EXE_COUNT=10
-
-######################## 完工评价短信发送到格力总部 ###########################
-repaireMessageFinishTopicName=messageHuifangTopic
-installTopicName=azdatacollection
-repaireTopicName=WxDtoTopic
-
-
-########################  派工短信发送  ###########################
-repaireMessageDispatchTopicName=messageTopic
-
-######################## 完工结算滞后时间单位分 ########################
-finishlag=5
-
-######################## 旧机回收 ##############################
-gree.check.barcode=https://gateway.yshcs.gree.com:9635/api/sso/autoapp-default-server-installaccounts/api/ext/azwgmx/checkBarcode
-gree.repair.settle.get=https://gateway.yshcs.gree.com:9635/api/sso/autoapp-default-server-greerepairaccounts/api/JsBzController/xsGetJsbzByJxxmh
-gree.repair.settle.do=https://gateway.yshcs.gree.com:9635/api/sso/autoapp-default-server-greerepairaccounts/api/repairsettlement/gzBatchSettlement
-gree.url=https://gateway.yshcs.gree.com:9635
-gree.api.url=${gree.url}/api/sso/autoapp-default-server-guangzhou/api/outapp/default/general
-gree.V3.api.url=${gree.url}/api/sso/autoapp-default-server-greeshmobile/api/yunpaigong/accessories
-gree.web.url=${gree.url}/api/sso/autoapp-default-server-guangzhou
-
-######################## 京东 ########################
-jdueurl=https://gateway.yshcs.gree.com:9635/api/sso/autoapp-default-server-jingdongorderhandlerjob/
-
-######################## nacos ########################
-spring.cloud.nacos.config.server-addr=121.43.111.127:8848
-spring.cloud.nacos.config.namespace=a47fcffb-6156-4ab1-8e0b-1c5839a9f839
-spring.cloud.nacos.discovery.server-addr=121.43.111.127:8848
-spring.cloud.nacos.discovery.namespace=a47fcffb-6156-4ab1-8e0b-1c5839a9f839
-
-######################## 工单系统获取工单数据 ########################
-gdbaseurl=http://121.41.110.30:8112/
-
-######################## 同步定时任务时间隔 ########################
-#师傅 证件、师傅、工单子表信息
-workercertificate=5000
-workercerupload=5000
-detaildown=2000
-#安装工单下载 、入本地表
-installdown=5000
-installin=5000
-#维修工单下载、入本地表
-repairdown=5000
-repairin=5000
-#回收工单下载、获取工单的反馈明细数据、(获取对应的采集数据、附件数据、条码明细数据)、与总部进行确认下载完成、同步到业务表
-recycledown=60000
-recyclefkdown=60000
-recyclecjdown=60000
-recycleverifydown=60000
-recyclein=60000
-#以旧换新-获取所有驳回的鉴定单、修改鉴定单状态为驳回状态
-queryejectjdd=60000
-processbusiness=60000
-#安装家用空调、商用空调、生活电器
-installjy=10000
-installsy=10000
-installsh=10000
-#维修结算、数据预生成
-repairjs=10000
-repairone=5000
-#故障维修
-masterdownloadrate=10000
-masterrate=10000
-guzdm=3600000
-#网点 佛山销售网点|售后网点、广州销售网点|售后网点
-netfsx=10000
-netfss=10000
-netgzx=10000
-netgzs=10000
-#网点 维修工 佛山销售|售后、广州销售|售后
-fsxwxg=60000
-fsswxg=10000
-gzxwxg=10000
-gzswxg=10000
-#类别大类、小类、系列、机型
-lbdl=60000
-lbxl=60000
-lbxlt=60000
-lbjx=60000
-#销售类型
-azxslx=60000
-#需求类别 需求大类、小类
-xqdl=60000
-xqxl=60000
-#用户属性、用户等级、信息渠道、信息来源
-yhsx=60000
-yhdj=60000
-xxqd=60000
-xxly=60000
-#省、市、区、镇
-sx=60000
-ssx=60000
-qx=60000
-zx=60000
-#安装 配件查询、家用特殊安装申请新增、新增质量信息反馈、家用特殊安装查询、家用特殊安装申请更新、安装转结算、安装转结算查询最终结果
-pjcx=60000
-jytsazxz=60000
-xzzlfk=60000
-jytsazxzt=60000
-jytsazxzgx=60000
-azzjs=60000
-azzjscx=60000
-#退货 总部退换货录入、据采集、过程反馈、京东订单评价、根据工单号查询总部发送短信的详细信息、总部退换货总查询、故障机采集、总部退换货更新
-thlr=60000
-thcj=60000
-thfk=60000
-jdddpj=60000
-cxdxxq=60000
-ththhcx=60000
-thgzjcj=60000
-ththhgx=60000
-#维修转结算、维修转结算查询最终结果
-wxzjs=60000
-wxzjscx=60000
-#网点维修工 证件照,服务类目,位置、新增同步到本地、修改
-zjzxx=60000
-lmxx=60000
-wxgwz=60000
-wxgxg=60000
-#京东商城 预约改约、指派改派网点、作废取消、报完工、指派改派人员
-jdyygy=30000
-jdzpgpwd=30000
-jdzfqx=30000
-jdbwg=30000
-jdzpgpry=30000
-#格力商城
-glsc=2000
-#天猫商城
-tmsc=2000
-#安装工单上传  生成需要上传的数据、生成上传任务清单列表
-azuploadysc=2000
-azuploadsc=2000
-#维修工单上传  生成需要上传的数据、生成上传任务清单列表
-wxuploadysc=2000
-wxuploadsc=2000
-#以旧换新 鉴定单、生成条码、条码上传
-yjhxjdd=2000
-yjhxsctm=2000
-yjhxtmsc=20000
-#回收工单
-hsgdzttm=10000
-hsgdcjtm=10000
-#工单数据向上同步
-dataupload=2000

+ 5 - 3
src/main/resources/bootstrap-prd.properties

@@ -39,7 +39,7 @@ feign.client.config.default.connectTimeout=60000
 feign.client.config.default.readTimeout=60000
 
 ### log4j配置
-logging.config=classpath:logbackback.xml
+logging.config=classpath:logback.xml
 #undertow_web容器配置
 server.undertow.accesslog.dir=${user.dir}/logs/access
 server.undertow.accesslog.enabled=true
@@ -179,11 +179,12 @@ netfsx=10000
 netfss=10000
 netgzx=10000
 netgzs=10000
-#网点 维修工 佛山销售|售后、广州销售|售后
+#网点维修工 佛山销售|售后、广州销售|售后
 fsxwxg=60000
 fsswxg=10000
 gzxwxg=10000
 gzswxg=10000
+gfwww=60000
 #类别大类、小类、系列、机型
 lbdl=60000
 lbxl=60000
@@ -290,11 +291,12 @@ netfsxc=TRUE
 netfssc=TRUE
 netgzxc=TRUE
 netgzsc=TRUE
-#网点 维修工 佛山销售|售后、广州销售|售后
+#网点维修工 佛山销售|售后、广州销售|售后
 fsxwxgc=TRUE
 fsswxgc=TRUE
 gzxwxgc=TRUE
 gzswxgc=TRUE
+gfwwwc=TRUE
 #类别大类、小类、系列、机型
 lbdlc=TRUE
 lbxlc=TRUE

+ 4 - 2
src/main/resources/bootstrap-test.properties

@@ -39,7 +39,7 @@ feign.client.config.default.connectTimeout=60000
 feign.client.config.default.readTimeout=60000
 
 ### log4j配置
-logging.config=classpath:logbackback.xml
+logging.config=classpath:logback.xml
 # 禁控制台输出日志
 #logging.pattern.console=
 
@@ -254,6 +254,7 @@ zjzxx=60000
 lmxx=60000
 wxgwz=60000
 wxgxg=60000
+gfwww=60000
 #京东商城 预约改约、指派改派网点、作废取消、报完工、指派改派人员
 jdyygy=60000
 jdzpgpwd=60000
@@ -315,11 +316,12 @@ netfsxc=TRUE
 netfssc=TRUE
 netgzxc=TRUE
 netgzsc=TRUE
-#网点 维修工 佛山销售|售后、广州销售|售后
+#网点维修工 佛山销售|售后、广州销售|售后
 fsxwxgc=TRUE
 fsswxgc=TRUE
 gzxwxgc=TRUE
 gzswxgc=TRUE
+gfwwwc=TRUE
 #类别大类、小类、系列、机型
 lbdlc=TRUE
 lbxlc=TRUE

+ 53 - 103
src/main/resources/logback.xml

@@ -1,131 +1,81 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<configuration>
-    <jmxConfigurator/>
-
-    <property name="LOG_HOME" value="logs"/>
+<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
+<configuration scan="true" scanPeriod="2 seconds">
+    <property name="LOG_PATH" value="../logs" />
 
     <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
-                %msg%n
-            </pattern>
-        </layout>
+        <!-- 日志输出编码 -->
+        <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
     </appender>
 
-    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名-->
-            <FileNamePattern>${LOG_HOME}/syndata.log.%d{yyyy-MM-dd}.log</FileNamePattern>
-            <!--日志文件保留天数-->
-            <MaxHistory>30</MaxHistory>
-            <!--<maxFileSize>50MB</maxFileSize>-->
-        </rollingPolicy>
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
-                %msg%n
-            </Pattern>
-        </layout>
-    </appender>
 
-    <appender name="NETDATA" class="ch.qos.logback.core.rolling.RollingFileAppender">
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>logs/info.log</File>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名-->
-            <FileNamePattern>${LOG_HOME}/syndata_netdata.log.%d{yyyy-MM-dd}.log</FileNamePattern>
-            <!--日志文件保留天数-->
-            <MaxHistory>30</MaxHistory>
-            <!--<maxFileSize>50MB</maxFileSize>-->
+            <fileNamePattern>logs/info-%d{yyyyMMdd}.log.%i</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>500MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>2</maxHistory>
         </rollingPolicy>
         <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
-                %msg%n
-            </Pattern>
-        </layout>
-    </appender>
-
-    <appender name="UPLOADDATA" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名-->
-            <FileNamePattern>${LOG_HOME}/syndata_uploaddata.log.%d{yyyy-MM-dd}.log</FileNamePattern>
-            <!--日志文件保留天数-->
-            <MaxHistory>30</MaxHistory>
-            <!--<maxFileSize>50MB</maxFileSize>-->
-        </rollingPolicy>
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
-                %msg%n
-            </Pattern>
-        </layout>
-    </appender>
-
-    <appender name="PREPAREDATA" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名-->
-            <FileNamePattern>${LOG_HOME}/prepare.log.%d{yyyy-MM-dd}.log</FileNamePattern>
-            <!--日志文件保留天数-->
-            <MaxHistory>30</MaxHistory>
-            <!--<maxFileSize>50MB</maxFileSize>-->
-        </rollingPolicy>
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
-                %msg%n
+            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
             </Pattern>
         </layout>
     </appender>
 
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
 
-    <!-- ERROR级别日志 -->
-    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 RollingFileAppender-->
-    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
             <level>ERROR</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
         </filter>
+        <File>logs/error.log</File>
         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <!--日志文件输出的文件名-->
-            <FileNamePattern>${LOG_HOME}/error.log.%d{yyyy-MM-dd}.log</FileNamePattern>
-            <!--日志文件保留天数-->
-            <MaxHistory>30</MaxHistory>
-            <!--<maxFileSize>50MB</maxFileSize>-->
+            <fileNamePattern>logs/error-%d{yyyyMMdd}.log.%i
+            </fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>500MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>2</maxHistory>
         </rollingPolicy>
         <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
-                %msg%n
+            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
             </Pattern>
         </layout>
     </appender>
 
-    <logger name="com.gree.syndata.util.HttpUtil" additivity="false">
-        <level value="DEBUG"/>
-        <appender-ref ref="NETDATA"/>
-    </logger>
 
-    <logger name="com.gree.syndata.util.SMSSelfManager" additivity="false">
-        <level value="DEBUG"/>
-        <appender-ref ref="NETDATA"/>
-    </logger>
+    <!--日志归集-->
+    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
+        <destination>116.62.158.92:5044</destination>
+        <!-- encoder必须配置,有多种可选 -->
+        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
+            <customFields>{"server_name":"supply-service"}</customFields>
+        </encoder>
+    </appender>
 
-    <logger name="com.gree.syndata.task.UploadTask" additivity="false">
-        <level value="DEBUG"/>
-        <appender-ref ref="UPLOADDATA"/>
-    </logger>
 
-    <logger name="com.gree.syndata.util.PrepareTaskLog" additivity="false">
-        <level value="DEBUG"/>
-        <appender-ref ref="PREPAREDATA"/>
-    </logger>
+    <logger name="com.ibatis" level="INFO" />
+    <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="INFO" />
+    <logger name="com.ibatis.common.jdbc.ScriptRunner" level="INFO" />
+    <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="INFO" />
+    <logger name="java.sql.Connection" level="INFO" />
+    <logger name="java.sql.Statement" level="INFO" />
+    <logger name="java.sql.PreparedStatement" level="INFO" />
+    <logger name="me.chanjar.weixin.cp.api.impl.BaseWxCpServiceImpl" level="OFF" />
+    <logger name="me.chanjar.weixin.common.error.WxErrorException" level="OFF" />
 
-    <logger name="com.gree.syndata.util.DetailErrorLog" additivity="false">
-        <level value="ERROR"/>
-        <appender-ref ref="ERROR"/>
-    </logger>
 
-    <logger name="com.gree.syndata">
-        <level value="INFO"/>
-        <appender-ref ref="STDOUT"/>
-        <appender-ref ref="FILE"/>
-        <appender-ref ref="ERROR"/>
-    </logger>
+    <root level="INFO">
+        <appender-ref ref="INFO_FILE" />
+        <appender-ref ref="ERROR_FILE" />
+        <appender-ref ref="STDOUT" />
+        <springProfile name="test,prd">
+            <appender-ref ref="LOGSTASH" />
+        </springProfile>
+    </root>
 
-</configuration>
+</configuration>

+ 0 - 81
src/main/resources/logbackback.xml

@@ -1,81 +0,0 @@
-<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
-<configuration scan="true" scanPeriod="2 seconds">
-    <property name="LOG_PATH" value="../logs" />
-
-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-        <!-- 日志输出编码 -->
-            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
-            <encoder>
-                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
-                <charset>UTF-8</charset>
-            </encoder>
-    </appender>
-
-
-    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <File>logs/info.log</File>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>logs/info-%d{yyyyMMdd}.log.%i</fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>500MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <maxHistory>2</maxHistory>
-        </rollingPolicy>
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
-            </Pattern>
-        </layout>
-    </appender>
-
-    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-
-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-            <level>ERROR</level>
-        </filter>
-        <File>logs/error.log</File>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>logs/error-%d{yyyyMMdd}.log.%i
-            </fileNamePattern>
-            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
-                <maxFileSize>500MB</maxFileSize>
-            </timeBasedFileNamingAndTriggeringPolicy>
-            <maxHistory>2</maxHistory>
-        </rollingPolicy>
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n
-            </Pattern>
-        </layout>
-    </appender>
-
-
-    <!--日志归集-->
-        <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
-            <destination>116.62.158.92:5044</destination>
-            <!-- encoder必须配置,有多种可选 -->
-            <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" >
-                <customFields>{"server_name":"supply-service"}</customFields>
-            </encoder>
-        </appender>
-
-
-    <logger name="com.ibatis" level="INFO" />
-    <logger name="com.ibatis.common.jdbc.SimpleDataSource" level="INFO" />
-    <logger name="com.ibatis.common.jdbc.ScriptRunner" level="INFO" />
-    <logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="INFO" />
-    <logger name="java.sql.Connection" level="INFO" />
-    <logger name="java.sql.Statement" level="INFO" />
-    <logger name="java.sql.PreparedStatement" level="INFO" />
-    <logger name="me.chanjar.weixin.cp.api.impl.BaseWxCpServiceImpl" level="OFF" />
-    <logger name="me.chanjar.weixin.common.error.WxErrorException" level="OFF" />
-
-
-    <root level="INFO">
-        <appender-ref ref="INFO_FILE" />
-        <appender-ref ref="ERROR_FILE" />
-        <appender-ref ref="STDOUT" />
-        <springProfile name="test,prd">
-            <appender-ref ref="LOGSTASH" />
-        </springProfile>
-    </root>
-
-</configuration>