diff --git a/code/db/pkg/TELSALER_TWR_UTILS.pck b/code/db/pkg/TELSALER_TWR_UTILS.pck new file mode 100644 index 0000000..43b19b4 --- /dev/null +++ b/code/db/pkg/TELSALER_TWR_UTILS.pck @@ -0,0 +1,28 @@ +CREATE OR REPLACE PACKAGE TELSALER_TWR_UTILS IS + + -- Author : KANE + -- Created : 2023/12/19 16:27:20 + -- Purpose : twr数据报表相关的工具函数 + + PROCEDURE 清理TWR坐席清单; + + PROCEDURE 清理TWR团队清单; + +END TELSALER_TWR_UTILS; +/ +CREATE OR REPLACE PACKAGE BODY TELSALER_TWR_UTILS IS + + PROCEDURE 清理TWR坐席清单 IS + BEGIN + EXECUTE IMMEDIATE 'truncate table twr_telsaler_dev'; + END; + + PROCEDURE 清理TWR团队清单 IS + BEGIN + EXECUTE IMMEDIATE 'truncate table twr_telsaler_team_dev'; + END; + +BEGIN + NULL; +END TELSALER_TWR_UTILS; +/ diff --git a/code/web/task_schedule/src/views/data/DataUploadView.vue b/code/web/task_schedule/src/views/data/DataUploadView.vue index fc1dc0a..c9ab99c 100644 --- a/code/web/task_schedule/src/views/data/DataUploadView.vue +++ b/code/web/task_schedule/src/views/data/DataUploadView.vue @@ -104,19 +104,19 @@ export default { selectedReportType: 0, reportType: [ { - reportTypeCode: 0, + reportTypeCode: 1, reportTypeName: "鍧愬腑杞﹂潪娓楅忕巼", }, { - reportTypeCode: 1, + reportTypeCode: 2, reportTypeName: "鍧愬腑缁繚鐜", }, { - reportTypeCode: 2, + reportTypeCode: 3, reportTypeName: "閮ㄩ棬杞﹂潪娓楅忕巼", }, { - reportTypeCode: 3, + reportTypeCode: 4, reportTypeName: "褰撴湀涓溅缁繚鐜囪窡韪姤琛ㄣ愭満鏋勩", }, { diff --git a/code/web/task_schedule/src/views/data/bi/DepartmentAttachingRateView.vue b/code/web/task_schedule/src/views/data/bi/DepartmentAttachingRateView.vue index a374d89..bef4c76 100644 --- a/code/web/task_schedule/src/views/data/bi/DepartmentAttachingRateView.vue +++ b/code/web/task_schedule/src/views/data/bi/DepartmentAttachingRateView.vue @@ -92,7 +92,7 @@ :close-on-press-escape="false" :show-close="true" > - + diff --git a/code/web/task_schedule/src/views/data/bi/DepartmentRenewalRateView.vue b/code/web/task_schedule/src/views/data/bi/DepartmentRenewalRateView.vue index bfa7780..d685247 100644 --- a/code/web/task_schedule/src/views/data/bi/DepartmentRenewalRateView.vue +++ b/code/web/task_schedule/src/views/data/bi/DepartmentRenewalRateView.vue @@ -108,7 +108,7 @@ :close-on-press-escape="false" :show-close="true" > - + diff --git a/code/web/task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue b/code/web/task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue index 641d445..2951dd2 100644 --- a/code/web/task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue +++ b/code/web/task_schedule/src/views/data/bi/TelsalerAttachingRateView.vue @@ -109,7 +109,7 @@ :close-on-press-escape="false" :show-close="true" > - + diff --git a/code/web/task_schedule/src/views/data/bi/TelsalerRenewalRateView.vue b/code/web/task_schedule/src/views/data/bi/TelsalerRenewalRateView.vue index 8300405..a714838 100644 --- a/code/web/task_schedule/src/views/data/bi/TelsalerRenewalRateView.vue +++ b/code/web/task_schedule/src/views/data/bi/TelsalerRenewalRateView.vue @@ -99,7 +99,7 @@ :close-on-press-escape="false" :show-close="true" > - + diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/TWrTelsalerMapper.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/TWrTelsalerMapper.java index 6b96998..641c96f 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/TWrTelsalerMapper.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/mybatis/mapper/TWrTelsalerMapper.java @@ -17,4 +17,8 @@ public interface TWrTelsalerMapper public TWrTelsalerRecord queryTWrTelsalerInfo( @Param("telsaler") String telsaler ); public void insertTWrTelsalerRecordToDB( TWrTelsalerRecord record ); + + public void cleanTWrTelsalerRecord(); + + public void cleanTWrTelsalerTeamRecord(); } \ No newline at end of file diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportTWRTelsalerData.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportTWRTelsalerData.java index a0f04a9..782d549 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportTWRTelsalerData.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/utils/data/ImportTWRTelsalerData.java @@ -32,7 +32,7 @@ public class ImportTWRTelsalerData "瀛﹀巻绫诲瀷", "鐢ㄥ伐鎬ц川鍚嶇О", "鍚堝悓绉嶇被", "鍚堝悓绫诲瀷", "鍚堝悓鎬ц川", "鍚堝悓绛捐娆℃暟", "鍚堝悓鐢熸晥鏃ユ湡", "鍚堝悓鍒版湡鏃ユ湡", "浜哄憳灞炴", "淇濅唬鍛樺伐鍙", "鑱屽満灞炴", "鍔炲叕鎬ц川", "淇濅唬浜哄憳灞炴", "浜哄憳鐘舵",}; - public static void importTWrTelsalerDataFromExcel( String filePath, int sheetIndex, + public static ArrayList importTWrTelsalerDataFromExcel( String filePath, int sheetIndex, int firstRow ) throws IOException, InvalidFormatException { ArrayList records = new ArrayList<>( 200 ); @@ -132,6 +132,8 @@ public class ImportTWRTelsalerData error.printStackTrace(); } } + + return records; } private static boolean checkExcelFormat( Sheet sheet, String caption, int captionRowIndex, diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/ReportType.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/ReportType.java new file mode 100644 index 0000000..2f4f546 --- /dev/null +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/ReportType.java @@ -0,0 +1,35 @@ +package com.cpic.xim.web.controllers.dataimport; + +public enum ReportType { + BiTelsalerAttachingRateReport(1,"鍧愬腑杞﹂潪娓楅忕巼"), + BiTelsalerRenewalRateReport(2,"鍧愬腑缁繚鐜"), + BiDepartmentAttachingRateReport(3,"閮ㄩ棬杞﹂潪娓楅忕巼"), + BiDepartmentRenewalRateReport(4,"褰撴湀涓溅缁繚鐜囪窡韪姤琛ㄣ愭満鏋勩"), + TWrTelsalerList(10,"TWr鍧愬腑娓呭崟"); // Twr鍧愬腑娓呭崟 + + private int reportTypeCode; + + private String reportTypeName; + private ReportType( final int code, final String name ) + { + this.reportTypeCode = code; + this.reportTypeName = name; + } + public int getReportTypeCode() + { + return reportTypeCode; + } + public void setReportTypeCode( int reportTypeCode ) + { + this.reportTypeCode = reportTypeCode; + } + + public String getReportTypeName() + { + return reportTypeName; + } + public void setReportTypeName( String reportTypeName ) + { + this.reportTypeName = reportTypeName; + } + } diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataController.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataController.java index 5a0c095..39abb36 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataController.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataController.java @@ -10,7 +10,6 @@ package com.cpic.xim.web.controllers.dataimport.bi; import java.io.IOException; -import java.time.LocalDate; import java.util.ArrayList; import org.apache.ibatis.exceptions.PersistenceException; import org.apache.ibatis.session.SqlSession; @@ -23,13 +22,16 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.cpic.xim.mybatis.mapper.ImportBIArchievementDataMapper; +import com.cpic.xim.mybatis.mapper.TWrTelsalerMapper; import com.cpic.xim.mybatis.pojo.BIDepartmentAttachingRateRecord; import com.cpic.xim.mybatis.pojo.BIDepartmentRenewalRateRecord; import com.cpic.xim.mybatis.pojo.BITelsalerAttachingRateRecord; import com.cpic.xim.mybatis.pojo.BITelsalerRenewalRateRecord; +import com.cpic.xim.mybatis.pojo.TWrTelsalerRecord; import com.cpic.xim.mybatis.utils.MybatisUtils; import com.cpic.xim.utils.data.ImportBIExcelData; -import com.cpic.xim.web.controllers.dataimport.bi.ImportBIDataRequest.ReportType; +import com.cpic.xim.utils.data.ImportTWRTelsalerData; +import com.cpic.xim.web.controllers.dataimport.ReportType;; @Controller @RequestMapping( method = RequestMethod.POST, path = "/import_bi_data" ) @@ -43,29 +45,33 @@ public class ImportBIDataController { ImportBIDataResponse response = new ImportBIDataResponse(); String filePath = request.getFilePath(); - ReportType type = request.getReportType(); + int type = request.getReportType(); int firstRow = request.getFirstRow(); int sheetIndex = request.getSheetIndex(); int importedCount = 0; try { - if ( type == ReportType.TelsalerAttachingRateReport ) + if ( type == ReportType.BiTelsalerAttachingRateReport.getReportTypeCode() ) { importedCount = importBITelsalerAttachingRate( filePath, sheetIndex, firstRow ); } - else if ( type == ReportType.TelsalerRenewalRateReport ) + else if ( type == ReportType.BiTelsalerRenewalRateReport.getReportTypeCode() ) { importedCount = importBITeslsalerRenewalRate( filePath, sheetIndex, firstRow ); } - else if ( type == ReportType.DepartmentAttachingRateReport ) + else if ( type == ReportType.BiDepartmentAttachingRateReport.getReportTypeCode() ) { importedCount = importBIDepartmentAttachingRate( filePath, sheetIndex, firstRow ); } - else if ( type == ReportType.DepartmentRenewalRateReport ) + else if ( type == ReportType.BiDepartmentRenewalRateReport.getReportTypeCode() ) { importedCount = importBIDepartmentRenewalRate( filePath, sheetIndex, firstRow ); } + else if ( type == ReportType.TWrTelsalerList.getReportTypeCode() ) + { + importedCount = importTWrTelsalerList( filePath, sheetIndex, firstRow ); + } response.setImportedCount( importedCount ); response.setSuccess( true ); @@ -254,4 +260,43 @@ public class ImportBIDataController return importedCount; } + + private static int importTWrTelsalerList( String filePath, int sheetIndex, int firstRow ) + throws PersistenceException, IOException, InvalidFormatException + { + + ArrayList records = null; + SqlSession session = null; + TWrTelsalerMapper mapper = null; + int importedCount = 0; + + try + { + records = ImportTWRTelsalerData.importTWrTelsalerDataFromExcel(filePath, sheetIndex, firstRow); + session = MybatisUtils.getSqlSessionBatch(); + mapper = session.getMapper(TWrTelsalerMapper.class); + + mapper.cleanTWrTelsalerTeamRecord(); + + for ( TWrTelsalerRecord record : records ) + { + mapper.insertTWrTelsalerRecordToDB(record); + + importedCount++; + } + + session.commit(); + } + catch ( Exception error) + { + if ( session != null ) + { + session.rollback(); + } + + throw error; + } + + return importedCount; + } } diff --git a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataRequest.java b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataRequest.java index 85d7322..842ddb0 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataRequest.java +++ b/code/鍚庣/desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataRequest.java @@ -3,78 +3,65 @@ * @Date: 2023-10-13 14:39:06 * @LastEditors: Kane * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/dataimport/bi/ImportBIDataRequest.java - * @Description: - * - * Copyright (c) ${2023} by Kane, All Rights Reserved. + * @Description: + * + * Copyright (c) ${2023} by Kane, All Rights Reserved. */ package com.cpic.xim.web.controllers.dataimport.bi; -import org.springframework.stereotype.Controller; import com.fasterxml.jackson.annotation.JsonProperty; +import org.springframework.stereotype.Controller; @Controller -public class ImportBIDataRequest -{ - public enum ReportType { - TelsalerAttachingRateReport, TelsalerRenewalRateReport, DepartmentAttachingRateReport, DepartmentRenewalRateReport - }; +public class ImportBIDataRequest { // 瀵煎叆鏂囦欢鐨勮矾寰 - @JsonProperty( "filePath" ) - private String filePath; + @JsonProperty("filePath") + private String filePath; // 鎶ヨ〃鍚嶇О - @JsonProperty( "reportType" ) - private ReportType reportType; + @JsonProperty("reportType") + private int reportType; // 鏄惁鏈夋爣棰樿 - @JsonProperty( "firstRow" ) - private int firstRow; + @JsonProperty("firstRow") + private int firstRow; // sheet绱㈠紩 - @JsonProperty( "sheetIndex" ) - private int sheetIndex; + @JsonProperty("sheetIndex") + private int sheetIndex; - public ImportBIDataRequest() - {} + public ImportBIDataRequest() {} - public int getFirstRow() - { + public int getFirstRow() { return firstRow; } - public void setFirstRow( int firstRow ) - { + public void setFirstRow(int firstRow) { this.firstRow = firstRow; } - public int getSheetIndex() - { + public int getSheetIndex() { return sheetIndex; } - public void setSheetIndex( int sheetIndex ) - { + public void setSheetIndex(int sheetIndex) { this.sheetIndex = sheetIndex; } - public String getFilePath() - { + public String getFilePath() { return filePath; } - public void setFilePath( String filePath ) - { + public void setFilePath(String filePath) { this.filePath = filePath; } - public ReportType getReportType() - { + public int getReportType() { return reportType; } - public void setReportType( ReportType reportType ) - { + public void setReportType(int reportType) { this.reportType = reportType; } @@ -84,7 +71,7 @@ public class ImportBIDataRequest final int prime = 31; int result = 1; result = prime * result + ((filePath == null) ? 0 : filePath.hashCode()); - result = prime * result + ((reportType == null) ? 0 : reportType.hashCode()); + result = prime * result + reportType; result = prime * result + firstRow; result = prime * result + sheetIndex; return result; @@ -117,11 +104,17 @@ public class ImportBIDataRequest } @Override - public String toString() - { - return "ImportBIDataRequest [filePath=" + filePath + ", reportType=" + reportType - + ", firstRow=" + firstRow + ", sheetIndex=" + sheetIndex + "]"; + public String toString() { + return ( + "ImportBIDataRequest [filePath=" + + filePath + + ", reportType=" + + reportType + + ", firstRow=" + + firstRow + + ", sheetIndex=" + + sheetIndex + + "]" + ); } - - } diff --git a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/TWrTelsalerMapper.xml b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/TWrTelsalerMapper.xml index 7d5fe47..ee55c6c 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/TWrTelsalerMapper.xml +++ b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mapper/TWrTelsalerMapper.xml @@ -79,6 +79,86 @@ - + + insert into TWR_TELSALER_DEV( + 浜哄憳濮撳悕, + 浜哄憳宸ュ彿, + 绫嶈疮, + 鍙傚姞宸ヤ綔鏃堕棿, + 鍏ヨ亴鏃ユ湡, + 鍏ュ徃鏃ユ湡, + 涓氬姟绫诲瀷, + 鍔炲叕鍦扮渷, + 鍔炲叕鍦板競, + 浜哄憳绫诲埆, + 鐜颁换宀椾綅, + 鐜颁换鑱岀骇, + 鏈烘瀯鍚嶇О, + 鑱屽満鍒嗙被, + 鐗囧尯鍚嶇О, + 鍥㈤槦鍚嶇О, + 瀵瑰彛鍒嗗叕鍙, + 灞曚笟鍦板尯, + 鎷涜仒娓犻亾, + 娓犻亾鏄庣粏, + 鍏ㄦ棩鍒舵渶楂樺鍘, + 瀛﹀巻绫诲瀷, + 鐢ㄥ伐鎬ц川鍚嶇О, + 鍚堝悓绉嶇被, + 鍚堝悓绫诲瀷, + 鍚堝悓鎬ц川, + 鍚堝悓绛捐娆℃暟, + 鍚堝悓鐢熸晥鏃ユ湡, + 鍚堝悓鍒版湡鏃ユ湡, + 浜哄憳灞炴, + 淇濅唬鍛樺伐鍙, + 鑱屽満灞炴, + 鍔炲叕鎬ц川, + 淇濅唬浜哄憳灞炴, + 浜哄憳鐘舵) + values ( + #{浜哄憳濮撳悕}, + #{浜哄憳宸ュ彿}, + #{绫嶈疮}, + #{鍙傚姞宸ヤ綔鏃堕棿}, + #{鍏ヨ亴鏃ユ湡}, + #{鍏ュ徃鏃ユ湡}, + #{涓氬姟绫诲瀷}, + #{鍔炲叕鍦扮渷}, + #{鍔炲叕鍦板競}, + #{浜哄憳绫诲埆}, + #{鐜颁换宀椾綅}, + #{鐜颁换鑱岀骇}, + #{鏈烘瀯鍚嶇О}, + #{鑱屽満鍒嗙被}, + #{鐗囧尯鍚嶇О}, + #{鍥㈤槦鍚嶇О}, + #{瀵瑰彛鍒嗗叕鍙竲, + #{灞曚笟鍦板尯}, + #{鎷涜仒娓犻亾}, + #{娓犻亾鏄庣粏}, + #{鍏ㄦ棩鍒舵渶楂樺鍘唥, + #{瀛﹀巻绫诲瀷}, + #{鐢ㄥ伐鎬ц川鍚嶇О}, + #{鍚堝悓绉嶇被}, + #{鍚堝悓绫诲瀷}, + #{鍚堝悓鎬ц川}, + #{鍚堝悓绛捐娆℃暟}, + #{鍚堝悓鐢熸晥鏃ユ湡}, + #{鍚堝悓鍒版湡鏃ユ湡}, + #{浜哄憳灞炴, + #{淇濅唬鍛樺伐鍙穧, + #{鑱屽満灞炴, + #{鍔炲叕鎬ц川}, + #{淇濅唬浜哄憳灞炴, + #{浜哄憳鐘舵亇 ) + + + + \ No newline at end of file diff --git a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml index 79d4042..39eba52 100644 --- a/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml +++ b/code/鍚庣/desktop_archievement_backend/src/main/resources/mybatis/mybatis-config.xml @@ -32,7 +32,8 @@ - + + \ No newline at end of file diff --git a/鏁版嵁/鍧愬腑/TWr涓氬姟鍛樹汉鍔涙煡璇 (1).xlsx b/鏁版嵁/鍧愬腑/TWr涓氬姟鍛樹汉鍔涙煡璇 (1).xlsx index 26b2dd5..efd105e 100644 Binary files a/鏁版嵁/鍧愬腑/TWr涓氬姟鍛樹汉鍔涙煡璇 (1).xlsx and b/鏁版嵁/鍧愬腑/TWr涓氬姟鍛樹汉鍔涙煡璇 (1).xlsx differ