소스 검색

v1.3 20230524

lifuquan 1 년 전
부모
커밋
3d49fb0e04

+ 12 - 0
README.md

@@ -0,0 +1,12 @@
+# REPORT_AUTO
+
+nohup java -jar tsl_data-1.3-exec.jar >output.log 2>&1 &
+
+nohup java -jar dingtalk_auto-1.1-exec.jar >output.log 2>&1 &
+
+## tsl_data版本说明
+
+### V1.3
+
+1. 新增了手动删除管理端和客户端数据的接口
+2. 调整了入库方式(尝试解决在生产中嵌套事务无法生效的问题)

+ 59 - 0
doc/开发文档/部署环境/手动入库数据.md

@@ -0,0 +1,59 @@
+# 手动入库数据
+
+## 数据手动入库
+
+- 两个表一起
+
+```http
+POST http://192.168.10.7:29100/tsl/task/warahouse HTTP/1.1
+Content-Type:application/json
+
+20230522
+```
+
+- report_auto.he_d_mobile_comp
+
+```http
+POST http://192.168.10.7:29100/tsl/task/warahouse/mobilecomp HTTP/1.1
+Content-Type:application/json
+
+20230520
+```
+
+- report_auto.he_d_high_quality
+
+```http
+POST http://192.168.10.7:29100/tsl/task/warahouse/highquality HTTP/1.1
+Content-Type:application/json
+
+20230522
+```
+
+## 查询数据
+
+```http
+POST http://192.168.10.7:29100/tsl/task/check/srcfile HTTP/1.1
+Content-Type:application/json
+
+20230502
+```
+
+## 删除数据
+
+- report_auto.he_d_mobile_comp
+
+```http
+POST http://192.168.10.7:29100/tsl/task/delete/mobilecomp HTTP/1.1
+Content-Type:application/json
+
+20230520
+```
+
+- report_auto.he_d_high_quality
+
+```http
+POST http://192.168.10.7:29100/tsl/task/delete/highquality HTTP/1.1
+Content-Type:application/json
+
+20230522
+```

+ 11 - 2
doc/开发文档/部署环境接口测试.md

@@ -8,13 +8,22 @@ nohup java -jar dingtalk_auto-1.1-exec.jar >output.log 2>&1 &
 
 关键字: `经查:`
 
+## 手动发送
+
+```http
+POST http://192.168.31.10:11111/tsl/task/send HTTP/1.1
+Content-Type:application/json
+
+20230522
+```
+
 ## 数据手动入库
 
 ```http
 POST http://192.168.10.7:29100/tsl/task/warahouse HTTP/1.1
 Content-Type:application/json
 
-20230502
+20230522
 ```
 
 ## 手动生成报表
@@ -23,7 +32,7 @@ Content-Type:application/json
 POST http://192.168.10.7:29100/tsl/task/report/generate HTTP/1.1
 Content-Type:application/json
 
-20230502
+20230522
 ```
 
 ## 查询数据

+ 1 - 1
tsl_data/pom.xml

@@ -13,7 +13,7 @@
 
     <groupId>com.nokia</groupId>
     <artifactId>tsl_data</artifactId>
-    <version>1.2</version>
+    <version>1.3</version>
 
     <packaging>jar</packaging>
 

+ 68 - 0
tsl_data/src/main/java/com/nokia/tsl_data/controller/TslTaskConroller.java

@@ -58,6 +58,74 @@ public class TslTaskConroller {
         }
     }
 
+    /**
+     * 手动入库HighQuality
+     * 
+     * @param day
+     * @return
+     */
+    @PostMapping("/warahouse/highquality")
+    public R warahouseHighQualityManually(@RequestBody String day) {
+        try {
+            tslWaraHouseService.waraHouseHighQuality(day);
+            return R.ok().message("入库成功");
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+            return R.error().message(String.format("文件缺失--%s", e.getMessage()));
+        } catch (IOException e) {
+            e.printStackTrace();
+            return R.error().message(String.format("文件IO错误--%s", e.getMessage()));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error().message(String.format("发生错误--%s", e.getMessage()));
+        }
+    }
+
+    /**
+     * 手动入库MobileComp
+     * 
+     * @param day
+     * @return
+     */
+    @PostMapping("/warahouse/mobilecomp")
+    public R warahouseMobileCompManually(@RequestBody String day) {
+        try {
+            tslWaraHouseService.waraHouseMobileComp(day);
+            return R.ok().message("入库成功");
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+            return R.error().message(String.format("文件缺失--%s", e.getMessage()));
+        } catch (IOException e) {
+            e.printStackTrace();
+            return R.error().message(String.format("文件IO错误--%s", e.getMessage()));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error().message(String.format("发生错误--%s", e.getMessage()));
+        }
+    }
+
+    @PostMapping("/delete/mobilecomp")
+    public R deleteMobileCompManually(@RequestBody String day) {
+        try {
+            tslWaraHouseService.deleteMobileCompForDay(day);
+            return R.ok().message("删除成功");
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error().message(String.format("发生错误--%s", e.getMessage()));
+        }
+    }
+
+    @PostMapping("/delete/highquality")
+    public R deleteHighQualityManually(@RequestBody String day) {
+        try {
+            tslWaraHouseService.deleteHighQualityForDay(day);
+            return R.ok().message("删除成功");
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error().message(String.format("发生错误--%s", e.getMessage()));
+        }
+    }
+
     @PostMapping("/check/srcfile")
     public R checkScrFile(@RequestBody String day) {
         String check = tslWaraHouseService.check(day);

+ 14 - 0
tsl_data/src/main/java/com/nokia/tsl_data/dao/TslDao.java

@@ -141,4 +141,18 @@ public interface TslDao {
      * @param map
      */
     void insertTargetTsRatio(@Param("map") Map<String, Object> map);
+
+    /**
+     * 删除某天的客户端数据
+     * 
+     * @param day 2023-05-21
+     */
+    void deleteHighQualityForDay(String day);
+
+    /**
+     * 删除某天的管理端投诉清单
+     * 
+     * @param day 20230522
+     */
+    void deleteMobileCompForDay(String day);
 }

+ 28 - 3
tsl_data/src/main/java/com/nokia/tsl_data/service/TslWaraHouseService.java

@@ -13,12 +13,15 @@ import java.util.List;
 import org.apache.commons.csv.CSVFormat;
 import org.apache.commons.csv.CSVParser;
 import org.apache.commons.csv.CSVRecord;
+import org.springframework.aop.framework.AopContext;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.nokia.tsl_data.dao.TslDao;
+
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -51,7 +54,7 @@ public class TslWaraHouseService {
     private int HIGH_QUALITY_FIELD_NUM;
 
     @Autowired
-    private TslWaraHouseService tslWaraHouseService;
+    private TslDao tslDao;
 
     public TslWaraHouseService(JdbcTemplate jdbcTemplate) {
         this.jdbcTemplate = jdbcTemplate;
@@ -148,7 +151,29 @@ public class TslWaraHouseService {
      */
     @Transactional(rollbackFor = Exception.class)
     public void dataWaraHouseTask(String day) throws FileNotFoundException, IOException {
-        tslWaraHouseService.waraHouseHighQuality(day);
-        tslWaraHouseService.waraHouseMobileComp(day);
+        ((TslWaraHouseService) AopContext.currentProxy()).waraHouseHighQuality(day);
+        ((TslWaraHouseService) AopContext.currentProxy()).waraHouseMobileComp(day);
+    }
+
+    /**
+     * 删除数据
+     * 
+     * @param day
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteHighQualityForDay(String day) {
+        // 20230521 -> 2023-05-21
+        day = day.substring(0, 4) + "-" + day.substring(4, 6) + "-" + day.substring(6);
+        tslDao.deleteHighQualityForDay(day);
+    }
+
+    /**
+     * 删除数据
+     * 
+     * @param day 20230521
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteMobileCompForDay(String day) {
+        tslDao.deleteMobileCompForDay(day);
     }
 }

+ 2 - 2
tsl_data/src/main/resources/application.properties

@@ -7,8 +7,8 @@ logging.level.com.nokia=debug
 
 tslTask.source.MOBILE_COMP_SQL=insert into report_auto.he_d_mobile_comp (month_id,day_id,acct_date,sheet_no,is_online_complete,contact_no,busi_no,serv_content,last_deal_content,deal_depart_name,deal_opinion,serv_type,bus_type,duty_reason,accept_channel,submit_channel,compl_area_local,duty_major,product_name,sp_product_code,pre_repair_name,pre_repair_charges,fault_location,cust_level,satisfaction_in_reply,is_ok_in_reply,accept_time,end_time,proce_time,cust_area,is_cust_serv_complete,is_send_sheet_complete,is_repeat,is_upgrade,is_timeout,gis_city,process_nums,deal_depart_name_1,deal_depart_name_2,deal_depart_name_3,first_call_back_time,proce_remark,duty_major_day,duty_reason_id_day,duty_major_month,duty_reason_id_month,voice_text) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);
 # 路径的配置最后一定要带上/
-tslTask.source.MOBILE_COMP_DIR=/data/nenglishangdian/HE_D_MOBILE_COMPLAINT_DETAILS_DAY/
-tslTask.source.MOBILE_COMP_PREFIX=HE_D_MOBILE_COMPLAINT_DETAILS_DAY_
+tslTask.source.MOBILE_COMP_DIR=/data/nenglishangdian/mobile_complaint/
+tslTask.source.MOBILE_COMP_PREFIX=HE_D_MOBILE_COMPLAINT_DETAILS_DAY_1087468015013851136_
 tslTask.source.MOBILE_COMP_FIELD_NUM=47
 
 tslTask.source.HIGH_QUALITY_SQL=insert into report_auto.he_d_high_quality (month_id,day_id,acct_date,businoareaname,profes_dep,big_type_name,small_type_name,total_complaints,hotline_complaints,other_complaint,litigation_volume,satisfaction_rate,satisfaction_count,total_evaluation,complaint_satisfied,complaint_satisfied_list,complaint_satisfied_count,complaint_resolution,complaint_resolution_list,complaint_resolution_count,complaint_response,complaint_response_list,complaint_response_count,complaint,fault_satisfaction_rate,fault_satisfaction_list,fault_satisfaction_count,fault_resolution_rate,fault_resolution_list,fault_resolution_count,fault_response_rate,fault_response_list,fault_response_count) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);

+ 6 - 0
tsl_data/src/main/resources/mapper/TslDao.xml

@@ -109,4 +109,10 @@
         (month_id, city_name, target_ts_ratio) VALUES(#{map.monthId}, #{map.cityName},
         #{map.targetTsRatio}); </insert>
 
+    <delete id="deleteHighQualityForDay" parameterType="string">delete from
+        report_auto.he_d_high_quality hdhq where acct_date = #{day}</delete>
+
+    <delete id="deleteMobileCompForDay" parameterType="string">delete from
+        report_auto.he_d_mobile_comp hdmc where acct_date = #{day}</delete>
+
 </mapper>

+ 0 - 26
tsl_data/src/test/java/com/nokia/tsl_data/TslDataApplicationTest.java

@@ -1,34 +1,8 @@
 package com.nokia.tsl_data;
 
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-
-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.TslDao;
-import com.nokia.tsl_data.service.TslTaskService;
-
 @SpringBootTest
 public class TslDataApplicationTest {
 
-    @Autowired
-    private TslTaskService taskService;
-
-    @Test
-    void test() throws IOException {
-        taskService.reportGenerateTask("20230502");
-        taskService.screenShotTask("20230502");
-    }
-
-    @Autowired
-    private TslDao tslDao;
-
-    @Test
-    void test1() {
-        List<Map<String, Object>> selectUserCountForMonth = tslDao.selectUserCountForMonth("202305");
-        System.out.println(selectUserCountForMonth);
-    }
 }