Browse Source

完成了 20240611 提出的需求中的第一条

lifuquan 7 tháng trước cách đây
mục cha
commit
a7736d8eca

+ 3 - 1
README.md

@@ -1,3 +1,5 @@
 # tsl-data
 
-nohup java -jar /data/tsl-data/tsl-data-exec.jar >/dev/null 2>&1 &
+nohup java -jar /data/tsl-data/tsl-data-exec.jar >/dev/null 2>&1 &
+
+## v2.3 更新20240611提出的需求1

BIN
doc/数据订阅/能力商店/河北客户体验管理系统移网网络体验明细日信息/河北客户体验管理系统移网网络体验明细日信息_HE_D_CEM_MOBILE_EXPERIENCE_LIST.xlsx


+ 1 - 1
doc/部署环境/手动入库数据.md

@@ -17,7 +17,7 @@ Content-Type:application/json
 POST http://192.168.10.7:22222/tsl_data/report/generate/v3 HTTP/1.1
 Content-Type:application/json
 
-20240325
+20240601
 ```
 
 ## 数据手动入库

+ 19 - 0
doc/需求文档/20240611提出的需求/20240611提出的需求.md

@@ -0,0 +1,19 @@
+# 20240611提出的需求
+
+## 1. 在第一个sheet(管理端-移网感知类), 回退到去年的同口径,即删除无法被叫的投诉
+
+之前的口径变化如下:
+
+*2024年适配需求 统计数据在原有基础(河北_CEM移网质量投诉明细全量数据)上增加新订阅的 河北客户体验管理智能定责投诉明细月累计接口日 表中日定责问题分类(duty_reason_id_day) 字段值为 业务使用>>基础业务使用>>移网主被叫>>手机无法主被叫 的部分。*
+
+在之前修改时,增加了一个新表,用来把以上两个表的内容进行聚合,在新表中标识了数据来源。
+
+本次修改采用不改变流程,在从新表查询数据时添加限制的方式实现。
+
+5月份的目标值不做更改,更改6月之后的目标值。
+
+第一个需求要求尽快实现。
+
+## 2. 三率的计算要做修改,采用详表数据,按照自己的原则计算三率
+
+## 3. 集团对于超时工单会有数据直接生成,后续需要订阅集团超时工单相关数据,并修改超时工单通报数据源

BIN
doc/需求文档/20240611提出的需求/2024年移网质量投诉率目标值(1).xlsx


BIN
doc/需求文档/20240611提出的需求/目标按这个,无法主被叫的那一项投诉删除,回退到去年的同口径福全6月11日 1611.png


+ 1 - 1
pom.xml

@@ -13,7 +13,7 @@
 
     <groupId>com.nokia</groupId>
     <artifactId>tsl-data</artifactId>
-    <version>2.2</version>
+    <version>2.3</version>
 
     <packaging>jar</packaging>
 

+ 5 - 4
src/main/java/com/nokia/tsl_data/dao/ManagementDetailMapper.java

@@ -15,9 +15,10 @@ public interface ManagementDetailMapper {
         /**
          * 投诉清单分日期分地市计数 按账期查询
          */
+        // 20240611 更新,增加类型限制
         @Select("select compl_area_local, substring(acct_date from 7 for 2) as day_id, count(1) as num " + //
                         " from tsl_data.management_detail\r\n" + //
-                        " where stat_day_id = #{day} " + //
+                        " where stat_day_id = #{day}  and origin = 'mobile_complaint_day' " +
                         " group by compl_area_local, substring(acct_date from 7 for 2)\r\n" + //
                         " order by compl_area_local, substring(acct_date from 7 for 2)")
         List<Map<String, Object>> selectCityTslForMonth(@Param("day") String day);
@@ -27,7 +28,7 @@ public interface ManagementDetailMapper {
          */
         @Select("select substring(acct_date from 7 for 2) as day_id, count(1) as num" + //
                         " from tsl_data.management_detail\r\n" + //
-                        " where stat_day_id = #{day} " + //
+                        " where stat_day_id = #{day} and origin = 'mobile_complaint_day' " + //
                         " group by substring(acct_date from 7 for 2)\r\n" + //
                         " order by substring(acct_date from 7 for 2)")
         List<Map<String, Object>> selectAllTslForMonth(@Param("day") String day);
@@ -37,7 +38,7 @@ public interface ManagementDetailMapper {
          */
         @Select("select compl_area_local, count(1) as num " + //
                         " from tsl_data.management_detail\r\n" + //
-                        " where stat_day_id = #{day} " + //
+                        " where stat_day_id = #{day} and origin = 'mobile_complaint_day' " + //
                         " group by compl_area_local\r\n" + //
                         " order by compl_area_local")
         List<Map<String, Object>> selectCityAllForMonth(@Param("day") String day);
@@ -47,7 +48,7 @@ public interface ManagementDetailMapper {
          */
         @Select("select count(1) as num\r\n" + //
                         "from tsl_data.management_detail\r\n" + //
-                        "where stat_day_id = #{day} ")
+                        "where stat_day_id = #{day} and origin = 'mobile_complaint_day' ")
         int selectAllForMonth(@Param("day") String day);
 
         /**

+ 8 - 4
src/main/java/com/nokia/tsl_data/service/ManagementDetailService.java

@@ -204,14 +204,16 @@ public class ManagementDetailService {
         // 1. 初始化存储
         Map<String, List<Object>> result = new HashMap<>();
         // dayIndex 决定每个List需要初始化多少元素
-        // (确实存在某一个某个地市数量为0的情况,这种情况数据库取到的可能没值,通过初始化可以避免缺失)
         int dayIndex = Integer.parseInt(day.substring(6, 8));
+        // (确实存在某一个某个地市数量为0的情况,这种情况数据库取到的可能没值,通过初始化可以避免缺失)
         // 初始化每个地市(按固定顺序)每天的工单量
+        // 20240602 修改 同时初始化总工单量
         for (String area : sysDataDictionaryRepository.findAllCityName()) {
             List<Object> list = new ArrayList<>();
             for (int i = 0; i < dayIndex; i++) {
                 list.add(0);
             }
+            list.add(0);
             result.put(area, list);
         }
         // 初始化全省每天工作量
@@ -219,6 +221,7 @@ public class ManagementDetailService {
         for (int i = 0; i < dayIndex; i++) {
             list0.add(0);
         }
+        list0.add(0);
         result.put("全省", list0);
         // 2. 读取数据库数据(工单数量)并写入结果
         // 各地市每日投诉量
@@ -238,11 +241,12 @@ public class ManagementDetailService {
         List<Map<String, Object>> cityAllForMonth = mobileComplaintMapper.selectCityAll3GjwForMonth(day);
         // 各地市投诉总量
         for (Map<String, Object> map : cityAllForMonth) {
-            result.get(map.get("compl_area_local").toString()).add(map.get("num"));
+            // 20240602 修改为set
+            result.get(map.get("compl_area_local").toString()).set(dayIndex, map.get("num"));
         }
-        // 全省总量
+        // 全省总量,
         int total = mobileComplaintMapper.selectAll3GjwForMonth(day);
-        result.get("全省").add(total);
+        result.get("全省").set(dayIndex, total);
         return result;
     }
 

+ 24 - 3
src/test/java/com/nokia/tsl_data/TslDataApplicationTest.java

@@ -1,10 +1,12 @@
 package com.nokia.tsl_data;
 
+import java.util.Arrays;
 import java.util.List;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import com.nokia.tsl_data.dao.TargetTsRatioMapper;
 import com.nokia.tsl_data.service.TaskService;
 import com.nokia.tsl_data.service.UserCountService;
 import com.nokia.tsl_data.util.TextUtil;
@@ -17,7 +19,7 @@ class TslDataApplicationTest {
 
     @Test
     void test() {
-        taskService.generateReportV3("20240331");
+        taskService.generateReportV3("20240610");
     }
 
     @Autowired
@@ -26,11 +28,30 @@ class TslDataApplicationTest {
     @Test
     void test2() {
         String path = "D:/abc.txt";
-        List<String> lines = TextUtil.readLines(path, "gbk");
+        List<String> lines = TextUtil.readLines(path, "utf8");
         lines.forEach(line -> {
             String[] split = line.split("\t");
             System.out.println(split[0] + "==" + split[2]);
-            userCountService.updateManagementUserCount("202404", split[0], Double.parseDouble(split[2]));
+            userCountService.updateManagementUserCount("202405", split[0], Double.parseDouble(split[2]));
+        });
+    }
+
+    @Autowired
+    private TargetTsRatioMapper targetTsRatioMapper;
+
+    @Test
+    void test3() {
+        String path = "D:/abc.txt";
+        List<String> lines = TextUtil.readLines(path, "utf8");
+        lines.forEach(line -> {
+            String[] split = line.split("\t");
+            for (int i = 1; i < split.length; i++) {
+                String city = split[0];
+                String month = i < 5 ? "20240" + (i + 5) : "2024" + (i + 5);
+                Double target = Double.parseDouble(split[i]);
+                System.out.println("地市: " + city + "  月分: " + month + "  率值: " + target);
+                targetTsRatioMapper.updateManagementTargetRatio(month, city, target);
+            }
         });
     }