添加改变部门指标颜色的代码
This commit is contained in:
		
							
								
								
									
										285
									
								
								code/db/pkg/telsale_archievement_dev_pkg.pck
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										285
									
								
								code/db/pkg/telsale_archievement_dev_pkg.pck
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,285 @@
 | 
				
			|||||||
 | 
					CREATE OR REPLACE PACKAGE TELSALE_ARCHIEVEMENT_DEV_PKG IS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -- Author  : WANGWEI-202
 | 
				
			||||||
 | 
					    -- Created : 2023/3/10 15:13:34
 | 
				
			||||||
 | 
					    -- Purpose : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɰ<EFBFBD>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    TYPE CUR_TYPE IS REF CURSOR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -- <20>쳣
 | 
				
			||||||
 | 
					    DEPARTMENTCODE_EXCEPTION_CODE CONSTANT INTEGER := -20000;
 | 
				
			||||||
 | 
					    DEPARTMENTCODE_EXCEPTION_MSG  CONSTANT VARCHAR2(100) := '<27><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CALLERCODE_EXCEPTION_CODE CONSTANT INTEGER := -20001;
 | 
				
			||||||
 | 
					    CALLERCODE_EXCEPTION_MSG  CONSTANT VARCHAR2(100) := '<27><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PROCEDURE DEPARTMENT_ARCHIEVEMENT
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        A_DEPARTMENT_CODE       IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_ATTACHING_RATE        OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_ATTACHING_RATE_TARGET OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_RENEWAL_RATE          OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_RENEWAL_RATE_TARGET   OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_TOTAL                 OUT INTEGER,
 | 
				
			||||||
 | 
					        A_MENSUAL_CUR           OUT CUR_TYPE
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PROCEDURE CALLER_ARCHIEVEMENT
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        A_CALLER_CODE    IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_ATTACHING_RATE OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_RENEWAL_RATE   OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_TOTAL          OUT INTEGER,
 | 
				
			||||||
 | 
					        A_PRESENT_MONTH  OUT NUMBER,
 | 
				
			||||||
 | 
					        A_MENSUAL_CUR    OUT CUR_TYPE
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    PROCEDURE CALLER_ARCH_RANKING_LIST
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        A_DEPARTMENT_CODE        IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_YEAR                   IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_MONTH                  IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_ATTACHING_RANKING_LIST OUT CUR_TYPE,
 | 
				
			||||||
 | 
					        A_RENEWAL_RANKING_LIST   OUT CUR_TYPE
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					END TELSALE_ARCHIEVEMENT_DEV_PKG;
 | 
				
			||||||
 | 
					/
 | 
				
			||||||
 | 
					CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_DEV_PKG IS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    -- <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>
 | 
				
			||||||
 | 
					    PROCEDURE DEPARTMENT_ARCHIEVEMENT
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        A_DEPARTMENT_CODE       IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_ATTACHING_RATE        OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_ATTACHING_RATE_TARGET OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_RENEWAL_RATE          OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_RENEWAL_RATE_TARGET   OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_TOTAL                 OUT INTEGER,
 | 
				
			||||||
 | 
					        A_MENSUAL_CUR           OUT CUR_TYPE
 | 
				
			||||||
 | 
					    ) IS
 | 
				
			||||||
 | 
					        L_FIRSTDAY        DATE;
 | 
				
			||||||
 | 
					        L_DEPARTMENT_NAME VARCHAR2(100);
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        L_FIRSTDAY := TO_DATE(TO_CHAR(SYSDATE,
 | 
				
			||||||
 | 
					                                      'yyyy') || '-01-01 00:00:00',
 | 
				
			||||||
 | 
					                              'yyyy-mm-dd hh24:mi:ss');
 | 
				
			||||||
 | 
					        -- <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            SELECT DEPARTMENT_NAME
 | 
				
			||||||
 | 
					              INTO L_DEPARTMENT_NAME
 | 
				
			||||||
 | 
					              FROM IDST0.BM_T BM
 | 
				
			||||||
 | 
					             WHERE BM.DEPARTMENT_CODE = A_DEPARTMENT_CODE;
 | 
				
			||||||
 | 
					        EXCEPTION
 | 
				
			||||||
 | 
					            -- <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3>쳣
 | 
				
			||||||
 | 
					            WHEN NO_DATA_FOUND THEN
 | 
				
			||||||
 | 
					                RAISE_APPLICATION_ERROR(DEPARTMENTCODE_EXCEPTION_CODE,
 | 
				
			||||||
 | 
					                                        DEPARTMENTCODE_EXCEPTION_MSG);
 | 
				
			||||||
 | 
					        END;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>&Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            SELECT ROUND(DEPT.<2E><><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>,
 | 
				
			||||||
 | 
					                         2),
 | 
				
			||||||
 | 
					                   ROUND(DEPT.Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
 | 
				
			||||||
 | 
					                         2)
 | 
				
			||||||
 | 
					              INTO A_ATTACHING_RATE,
 | 
				
			||||||
 | 
					                   A_ATTACHING_RATE_TARGET
 | 
				
			||||||
 | 
					              FROM DESKTOP_ARCHIEVEMENT_ADMIN.BI<42><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ٱ<EFBFBD> DEPT
 | 
				
			||||||
 | 
					             WHERE DEPT.<2E><><EFBFBD><EFBFBD> = L_DEPARTMENT_NAME;
 | 
				
			||||||
 | 
					        EXCEPTION
 | 
				
			||||||
 | 
					            WHEN NO_DATA_FOUND THEN
 | 
				
			||||||
 | 
					                A_ATTACHING_RATE := '0.0';
 | 
				
			||||||
 | 
					        END;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            SELECT ROUND(t."<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>ȫ<EFBFBD>£<EFBFBD>(%)",
 | 
				
			||||||
 | 
					                         2)
 | 
				
			||||||
 | 
					              INTO A_RENEWAL_RATE
 | 
				
			||||||
 | 
					              FROM BI<42><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¸<EFBFBD><C2B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ٱ<EFBFBD> T
 | 
				
			||||||
 | 
					             WHERE T.<2E><><EFBFBD>β<EFBFBD><CEB2><EFBFBD> = L_DEPARTMENT_NAME;
 | 
				
			||||||
 | 
					        EXCEPTION
 | 
				
			||||||
 | 
					            WHEN NO_DATA_FOUND THEN
 | 
				
			||||||
 | 
					                A_RENEWAL_RATE := '0.0';
 | 
				
			||||||
 | 
					        END;
 | 
				
			||||||
 | 
					        -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ֵ
 | 
				
			||||||
 | 
					        A_RENEWAL_RATE_TARGET := '0.0';
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        --<2D><>ҵ<EFBFBD><D2B5>
 | 
				
			||||||
 | 
					        A_TOTAL := 0;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        --ÿ<><C3BF>ҵ<EFBFBD><D2B5>
 | 
				
			||||||
 | 
					        OPEN A_MENSUAL_CUR FOR
 | 
				
			||||||
 | 
					            SELECT CF.<2E>·<EFBFBD> MM,
 | 
				
			||||||
 | 
					                   ROUND(NVL(SUM(CF.<2E><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD> + CF.<2E><><EFBFBD><EFBFBD><EFBFBD>ںϱ<DABA><CFB1><EFBFBD>) / 10000,
 | 
				
			||||||
 | 
					                             0),
 | 
				
			||||||
 | 
					                         0) BF
 | 
				
			||||||
 | 
					              FROM <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD> CF
 | 
				
			||||||
 | 
					             WHERE <20><><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD> = A_DEPARTMENT_CODE
 | 
				
			||||||
 | 
					               AND ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >= TO_DATE(TO_CHAR(SYSDATE,
 | 
				
			||||||
 | 
					                                           'yyyy') || '-01-01 00:00:00',
 | 
				
			||||||
 | 
					                                   'yyyy-mm-dd hh24:mi:ss')
 | 
				
			||||||
 | 
					               AND ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> < TO_DATE(TO_CHAR(SYSDATE,
 | 
				
			||||||
 | 
					                                          'yyyy-mm') || '-01 00:00:00',
 | 
				
			||||||
 | 
					                                  'yyyy-mm-dd hh24:mi:ss')
 | 
				
			||||||
 | 
					             GROUP BY CF.<2E>·<EFBFBD>
 | 
				
			||||||
 | 
					             ORDER BY CF.<2E>·<EFBFBD>;
 | 
				
			||||||
 | 
					    END;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*******************************************************/
 | 
				
			||||||
 | 
					    -- <20><>ϯҵ<CFAF><D2B5>
 | 
				
			||||||
 | 
					    PROCEDURE CALLER_ARCHIEVEMENT
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        A_CALLER_CODE    IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_ATTACHING_RATE OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_RENEWAL_RATE   OUT VARCHAR2,
 | 
				
			||||||
 | 
					        A_TOTAL          OUT INTEGER,
 | 
				
			||||||
 | 
					        A_PRESENT_MONTH  OUT NUMBER,
 | 
				
			||||||
 | 
					        A_MENSUAL_CUR    OUT CUR_TYPE
 | 
				
			||||||
 | 
					    ) IS
 | 
				
			||||||
 | 
					        L_CALLER_NAME     VARCHAR2(100);
 | 
				
			||||||
 | 
					        L_DEPARTMENT_NAME VARCHAR2(100);
 | 
				
			||||||
 | 
					        L_THIS_YEAR       VARCHAR2(4);
 | 
				
			||||||
 | 
					        L_ROWNUM          INTEGER;
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        --<2D><>ѯ<EFBFBD><D1AF>ϯ<EFBFBD><CFAF><EFBFBD>ƣ<EFBFBD><C6A3>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            SELECT ZX.<2E><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>,
 | 
				
			||||||
 | 
					                   BM.DEPARTMENT_NAME
 | 
				
			||||||
 | 
					              INTO L_CALLER_NAME,
 | 
				
			||||||
 | 
					                   L_DEPARTMENT_NAME
 | 
				
			||||||
 | 
					              FROM TWR_TELSALER      ZX,
 | 
				
			||||||
 | 
					                   TWR_TELSALER_TEAM T,
 | 
				
			||||||
 | 
					                   IDST0.BM_T        BM
 | 
				
			||||||
 | 
					             WHERE ZX.<2E><>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD> = A_CALLER_CODE
 | 
				
			||||||
 | 
					               AND ZX.<2E>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD> = T.TEAM_NAME
 | 
				
			||||||
 | 
					               AND T.DEPARTMENT_CODE = BM.DEPARTMENT_CODE;
 | 
				
			||||||
 | 
					        EXCEPTION
 | 
				
			||||||
 | 
					            -- <20><><EFBFBD><EFBFBD>û<EFBFBD>в<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD>ƣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3>쳣
 | 
				
			||||||
 | 
					            WHEN NO_DATA_FOUND THEN
 | 
				
			||||||
 | 
					                RAISE_APPLICATION_ERROR(CALLERCODE_EXCEPTION_CODE,
 | 
				
			||||||
 | 
					                                        CALLERCODE_EXCEPTION_MSG);
 | 
				
			||||||
 | 
					        END;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        L_THIS_YEAR := TO_CHAR(SYSDATE,
 | 
				
			||||||
 | 
					                               'yyyy');
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        --<2D>ܳ<EFBFBD><DCB3>ձ<EFBFBD><D5B1><EFBFBD>
 | 
				
			||||||
 | 
					        SELECT ROUND(NVL(SUM(CF.<2E><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD>),
 | 
				
			||||||
 | 
					                         0),
 | 
				
			||||||
 | 
					                     2) BF
 | 
				
			||||||
 | 
					          INTO A_TOTAL
 | 
				
			||||||
 | 
					          FROM <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD> CF
 | 
				
			||||||
 | 
					         WHERE CF.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD> = L_CALLER_NAME
 | 
				
			||||||
 | 
					           AND CF.<2E><><EFBFBD><EFBFBD> = L_DEPARTMENT_NAME
 | 
				
			||||||
 | 
					           AND CF.<2E><><EFBFBD><EFBFBD> = L_THIS_YEAR;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        --<2D><><EFBFBD><CDB8>
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            SELECT ROWNUM,
 | 
				
			||||||
 | 
					                   ROUND(NVL(T.<2E><><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>,
 | 
				
			||||||
 | 
					                             0),
 | 
				
			||||||
 | 
					                         2),
 | 
				
			||||||
 | 
					                   ROUND(NVL(t."<22><><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>(<28><>)" * 10000,
 | 
				
			||||||
 | 
					                             0),
 | 
				
			||||||
 | 
					                         2)
 | 
				
			||||||
 | 
					              INTO L_ROWNUM,
 | 
				
			||||||
 | 
					                   A_ATTACHING_RATE,
 | 
				
			||||||
 | 
					                   A_PRESENT_MONTH
 | 
				
			||||||
 | 
					              FROM BI<42><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ٱ<EFBFBD> T
 | 
				
			||||||
 | 
					             WHERE T.<2E><><EFBFBD><EFBFBD> = L_CALLER_NAME
 | 
				
			||||||
 | 
					               AND ROWNUM = 1;
 | 
				
			||||||
 | 
					        EXCEPTION
 | 
				
			||||||
 | 
					            WHEN NO_DATA_FOUND THEN
 | 
				
			||||||
 | 
					                L_ROWNUM         := 1;
 | 
				
			||||||
 | 
					                A_ATTACHING_RATE := 0.0;
 | 
				
			||||||
 | 
					                A_PRESENT_MONTH  := 0.0;
 | 
				
			||||||
 | 
					        END;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            SELECT ROWNUM,
 | 
				
			||||||
 | 
					                   ROUND(NVL(t."<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>ȫ<EFBFBD>£<EFBFBD>(%)",
 | 
				
			||||||
 | 
					                             0),
 | 
				
			||||||
 | 
					                         2)
 | 
				
			||||||
 | 
					              INTO L_ROWNUM,
 | 
				
			||||||
 | 
					                   A_RENEWAL_RATE
 | 
				
			||||||
 | 
					              FROM BI<42><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ٱ<EFBFBD> T
 | 
				
			||||||
 | 
					             WHERE T.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = L_CALLER_NAME
 | 
				
			||||||
 | 
					               AND ROWNUM = 1;
 | 
				
			||||||
 | 
					        EXCEPTION
 | 
				
			||||||
 | 
					            WHEN NO_DATA_FOUND THEN
 | 
				
			||||||
 | 
					                L_ROWNUM       := 1;
 | 
				
			||||||
 | 
					                A_RENEWAL_RATE := 0.0;
 | 
				
			||||||
 | 
					        END;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        --ÿ<><C3BF>ҵ<EFBFBD><D2B5>
 | 
				
			||||||
 | 
					        OPEN A_MENSUAL_CUR FOR
 | 
				
			||||||
 | 
					            SELECT CF.<2E>·<EFBFBD> MM,
 | 
				
			||||||
 | 
					                   ROUND(NVL(SUM(CF.<2E><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD>),
 | 
				
			||||||
 | 
					                             0),
 | 
				
			||||||
 | 
					                         0) BF
 | 
				
			||||||
 | 
					              FROM <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD> CF
 | 
				
			||||||
 | 
					             WHERE CF.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD> = L_CALLER_NAME
 | 
				
			||||||
 | 
					               AND CF.<2E><><EFBFBD><EFBFBD> = L_DEPARTMENT_NAME
 | 
				
			||||||
 | 
					               AND ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >= TO_DATE(TO_CHAR(SYSDATE,
 | 
				
			||||||
 | 
					                                           'yyyy') || '-01-01 00:00:00',
 | 
				
			||||||
 | 
					                                   'yyyy-mm-dd hh24:mi:ss')
 | 
				
			||||||
 | 
					               AND ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <= SYSDATE
 | 
				
			||||||
 | 
					             GROUP BY CF.<2E>·<EFBFBD>
 | 
				
			||||||
 | 
					             ORDER BY CF.<2E>·<EFBFBD>;
 | 
				
			||||||
 | 
					    END;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*******************************************************/
 | 
				
			||||||
 | 
					    -- <20><>ϯ<EFBFBD><CFAF><EFBFBD>а<EFBFBD>
 | 
				
			||||||
 | 
					    PROCEDURE CALLER_ARCH_RANKING_LIST
 | 
				
			||||||
 | 
					    (
 | 
				
			||||||
 | 
					        A_DEPARTMENT_CODE        IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_YEAR                   IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_MONTH                  IN VARCHAR2,
 | 
				
			||||||
 | 
					        A_ATTACHING_RANKING_LIST OUT CUR_TYPE,
 | 
				
			||||||
 | 
					        A_RENEWAL_RANKING_LIST   OUT CUR_TYPE
 | 
				
			||||||
 | 
					    ) IS
 | 
				
			||||||
 | 
					        L_DEPARTMENT_NAME VARCHAR2(100);
 | 
				
			||||||
 | 
					    BEGIN
 | 
				
			||||||
 | 
					        -- <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
				
			||||||
 | 
					        BEGIN
 | 
				
			||||||
 | 
					            SELECT DEPARTMENT_NAME
 | 
				
			||||||
 | 
					              INTO L_DEPARTMENT_NAME
 | 
				
			||||||
 | 
					              FROM IDST0.BM_T BM
 | 
				
			||||||
 | 
					             WHERE BM.DEPARTMENT_CODE = A_DEPARTMENT_CODE;
 | 
				
			||||||
 | 
					        EXCEPTION
 | 
				
			||||||
 | 
					            -- <20><><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3>쳣
 | 
				
			||||||
 | 
					            WHEN NO_DATA_FOUND THEN
 | 
				
			||||||
 | 
					                RAISE_APPLICATION_ERROR(DEPARTMENTCODE_EXCEPTION_CODE,
 | 
				
			||||||
 | 
					                                        DEPARTMENTCODE_EXCEPTION_MSG);
 | 
				
			||||||
 | 
					        END;
 | 
				
			||||||
 | 
					        -- <20><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD>
 | 
				
			||||||
 | 
					        OPEN A_ATTACHING_RANKING_LIST FOR
 | 
				
			||||||
 | 
					            SELECT ROWNUM,
 | 
				
			||||||
 | 
					                   PAIHANG.<2E><><EFBFBD><EFBFBD> AS CALLER_NAME,
 | 
				
			||||||
 | 
					                   PAIHANG.XBL  AS ATTACHING_RATE
 | 
				
			||||||
 | 
					              FROM (SELECT T.<2E><><EFBFBD><EFBFBD>,
 | 
				
			||||||
 | 
					                           ROUND(T.<2E><><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>,
 | 
				
			||||||
 | 
					                                 2) XBL
 | 
				
			||||||
 | 
					                      FROM BI<42><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ٱ<EFBFBD> T
 | 
				
			||||||
 | 
					                     WHERE T.<2E><><EFBFBD><EFBFBD> = L_DEPARTMENT_NAME
 | 
				
			||||||
 | 
					                     ORDER BY T.<2E><><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8> DESC) PAIHANG;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					        -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD>
 | 
				
			||||||
 | 
					        OPEN A_RENEWAL_RANKING_LIST FOR
 | 
				
			||||||
 | 
					            SELECT ROWNUM,
 | 
				
			||||||
 | 
					                   PAIHANG.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS CALLER_NAME,
 | 
				
			||||||
 | 
					                   PAIHANG.XBL    AS RENEWAL_RATE
 | 
				
			||||||
 | 
					              FROM (SELECT T.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
 | 
				
			||||||
 | 
					                           ROUND(t."<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>ȫ<EFBFBD>£<EFBFBD>(%)",
 | 
				
			||||||
 | 
					                                 2) XBL
 | 
				
			||||||
 | 
					                      FROM BI<42><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ٱ<EFBFBD> T
 | 
				
			||||||
 | 
					                     WHERE T.<2E><><EFBFBD>β<EFBFBD><CEB2><EFBFBD> = L_DEPARTMENT_NAME
 | 
				
			||||||
 | 
					                     ORDER BY XBL DESC) PAIHANG;
 | 
				
			||||||
 | 
					    END;
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					    NULL;
 | 
				
			||||||
 | 
					END TELSALE_ARCHIEVEMENT_DEV_PKG;
 | 
				
			||||||
 | 
					/
 | 
				
			||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS
 | 
					CREATE OR REPLACE PACKAGE telsale_archievement_dev_pkg IS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -- Author  : WANGWEI-202
 | 
					    -- Author  : WANGWEI-202
 | 
				
			||||||
    -- Created : 2023/3/10 15:13:34
 | 
					    -- Created : 2023/3/10 15:13:34
 | 
				
			||||||
@@ -32,16 +32,6 @@ CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS
 | 
				
			|||||||
        a_mensual_cur    OUT cur_type
 | 
					        a_mensual_cur    OUT cur_type
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PROCEDURE caller_archievement2
 | 
					 | 
				
			||||||
    (
 | 
					 | 
				
			||||||
        a_caller_code    IN VARCHAR2,
 | 
					 | 
				
			||||||
        a_attaching_rate OUT VARCHAR2,
 | 
					 | 
				
			||||||
        a_renewal_rate   OUT VARCHAR2,
 | 
					 | 
				
			||||||
        a_total          OUT INTEGER,
 | 
					 | 
				
			||||||
        a_present_month  OUT NUMBER,
 | 
					 | 
				
			||||||
        a_mensual_cur    OUT cur_type
 | 
					 | 
				
			||||||
    );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    PROCEDURE caller_arch_ranking_list
 | 
					    PROCEDURE caller_arch_ranking_list
 | 
				
			||||||
    (
 | 
					    (
 | 
				
			||||||
        a_department_code        IN VARCHAR2,
 | 
					        a_department_code        IN VARCHAR2,
 | 
				
			||||||
@@ -53,7 +43,7 @@ CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
END telsale_archievement_pkg;
 | 
					END telsale_archievement_pkg;
 | 
				
			||||||
/
 | 
					/
 | 
				
			||||||
CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS
 | 
					CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_dev_PKG IS
 | 
				
			||||||
    -- <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>
 | 
					    -- <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>
 | 
				
			||||||
    PROCEDURE DEPARTMENT_ARCHIEVEMENT
 | 
					    PROCEDURE DEPARTMENT_ARCHIEVEMENT
 | 
				
			||||||
    (
 | 
					    (
 | 
				
			||||||
@@ -258,104 +248,6 @@ CREATE OR REPLACE PACKAGE BODY TELSALE_ARCHIEVEMENT_PKG IS
 | 
				
			|||||||
             ORDER BY CF.<2E>·<EFBFBD>;
 | 
					             ORDER BY CF.<2E>·<EFBFBD>;
 | 
				
			||||||
    END;
 | 
					    END;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    PROCEDURE caller_archievement2
 | 
					 | 
				
			||||||
    (
 | 
					 | 
				
			||||||
        a_caller_code    IN VARCHAR2,
 | 
					 | 
				
			||||||
        a_attaching_rate OUT VARCHAR2,
 | 
					 | 
				
			||||||
        a_renewal_rate   OUT VARCHAR2,
 | 
					 | 
				
			||||||
        a_total          OUT INTEGER,
 | 
					 | 
				
			||||||
        a_present_month  OUT NUMBER,
 | 
					 | 
				
			||||||
        a_mensual_cur    OUT cur_type
 | 
					 | 
				
			||||||
    ) IS
 | 
					 | 
				
			||||||
        l_caller_name     VARCHAR2(100);
 | 
					 | 
				
			||||||
        l_department_name VARCHAR2(100);
 | 
					 | 
				
			||||||
        --l_this_month      VARCHAR2(4);
 | 
					 | 
				
			||||||
        l_this_year VARCHAR2(4);
 | 
					 | 
				
			||||||
        --l_firstday        DATE;
 | 
					 | 
				
			||||||
        l_rownum INTEGER;
 | 
					 | 
				
			||||||
    BEGIN
 | 
					 | 
				
			||||||
        --<2D><>ѯ<EFBFBD><D1AF>ϯ<EFBFBD><CFAF><EFBFBD>ƣ<EFBFBD><C6A3>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>
 | 
					 | 
				
			||||||
        BEGIN
 | 
					 | 
				
			||||||
            SELECT zx.saler_name,
 | 
					 | 
				
			||||||
                   bm.department_name
 | 
					 | 
				
			||||||
              INTO l_caller_name,
 | 
					 | 
				
			||||||
                   l_department_name
 | 
					 | 
				
			||||||
              FROM tele_saler      zx,
 | 
					 | 
				
			||||||
                   tele_saler_team team,
 | 
					 | 
				
			||||||
                   idst0.bm_t      bm
 | 
					 | 
				
			||||||
             WHERE zx.saler_code = a_caller_code
 | 
					 | 
				
			||||||
               AND zx.team_code = team.team_code
 | 
					 | 
				
			||||||
               AND team.department_code = bm.department_code;
 | 
					 | 
				
			||||||
            /* SELECT saler_name
 | 
					 | 
				
			||||||
             INTO l_caller_name
 | 
					 | 
				
			||||||
             FROM tele_saler
 | 
					 | 
				
			||||||
            WHERE saler_code = a_caller_code;*/
 | 
					 | 
				
			||||||
        EXCEPTION
 | 
					 | 
				
			||||||
            -- <20><><EFBFBD><EFBFBD>û<EFBFBD>в<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD>ƣ<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׳<EFBFBD><D7B3>쳣
 | 
					 | 
				
			||||||
            WHEN no_data_found THEN
 | 
					 | 
				
			||||||
                raise_application_error(CALLERCODE_EXCEPTION_CODE,
 | 
					 | 
				
			||||||
                                        CALLERCODE_EXCEPTION_MSG);
 | 
					 | 
				
			||||||
        END;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
        --l_this_month := to_char(SYSDATE,
 | 
					 | 
				
			||||||
        --                        'mm');
 | 
					 | 
				
			||||||
        l_this_year := to_char(SYSDATE,
 | 
					 | 
				
			||||||
                               'yyyy');
 | 
					 | 
				
			||||||
        --l_firstday   := to_date(l_this_year || '-01-01 00:00:00',
 | 
					 | 
				
			||||||
        --                        'yyyy-mm-dd hh24:mi:ss');
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
        --<2D>ܳ<EFBFBD><DCB3>ձ<EFBFBD><D5B1><EFBFBD>
 | 
					 | 
				
			||||||
        SELECT round(nvl(SUM(cf.<2E><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD>),
 | 
					 | 
				
			||||||
                         0),
 | 
					 | 
				
			||||||
                     2) bf
 | 
					 | 
				
			||||||
          INTO a_total
 | 
					 | 
				
			||||||
          FROM <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD> cf
 | 
					 | 
				
			||||||
         WHERE cf.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD> = l_caller_name
 | 
					 | 
				
			||||||
           AND cf.<2E><><EFBFBD><EFBFBD> = l_department_name
 | 
					 | 
				
			||||||
           AND cf.<2E><><EFBFBD><EFBFBD> = l_this_year;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
        --<2D><><EFBFBD><CDB8>
 | 
					 | 
				
			||||||
        SELECT rownum,
 | 
					 | 
				
			||||||
               round(nvl(t.<2E><><EFBFBD>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8>,
 | 
					 | 
				
			||||||
                         0),
 | 
					 | 
				
			||||||
                     2),
 | 
					 | 
				
			||||||
               round(nvl(t."<22><><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>(<28><>)" * 10000,
 | 
					 | 
				
			||||||
                         0),
 | 
					 | 
				
			||||||
                     2)
 | 
					 | 
				
			||||||
          INTO l_rownum,
 | 
					 | 
				
			||||||
               a_attaching_rate,
 | 
					 | 
				
			||||||
               a_present_month
 | 
					 | 
				
			||||||
          FROM BI<42><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ٱ<EFBFBD> t
 | 
					 | 
				
			||||||
         WHERE t.<2E><><EFBFBD><EFBFBD> = l_caller_name
 | 
					 | 
				
			||||||
           AND rownum = 1;
 | 
					 | 
				
			||||||
        --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					 | 
				
			||||||
        SELECT rownum,
 | 
					 | 
				
			||||||
               round(nvl(t."<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʣ<EFBFBD>ȫ<EFBFBD>£<EFBFBD>(%)",
 | 
					 | 
				
			||||||
                         0),
 | 
					 | 
				
			||||||
                     2)
 | 
					 | 
				
			||||||
          INTO l_rownum,
 | 
					 | 
				
			||||||
               a_renewal_rate
 | 
					 | 
				
			||||||
          FROM BI<42><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD><EFBFBD>ʸ<EFBFBD><CAB8>ٱ<EFBFBD> t
 | 
					 | 
				
			||||||
         WHERE t.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = l_caller_name
 | 
					 | 
				
			||||||
           AND rownum = 1;
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
        --ÿ<><C3BF>ҵ<EFBFBD><D2B5>
 | 
					 | 
				
			||||||
        OPEN A_MENSUAL_CUR FOR
 | 
					 | 
				
			||||||
            SELECT CF.<2E>·<EFBFBD> MM,
 | 
					 | 
				
			||||||
                   ROUND(NVL(SUM(CF.<2E><><EFBFBD>ո<EFBFBD><D5B8>˿ͻ<CBBF><CDBB><EFBFBD><EFBFBD><EFBFBD>),
 | 
					 | 
				
			||||||
                             0),
 | 
					 | 
				
			||||||
                         0) BF
 | 
					 | 
				
			||||||
              FROM <20><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD> CF
 | 
					 | 
				
			||||||
             WHERE cf.<2E><>ϯ<EFBFBD><CFAF><EFBFBD><EFBFBD> = l_caller_name
 | 
					 | 
				
			||||||
               AND cf.<2E><><EFBFBD><EFBFBD> = l_department_name
 | 
					 | 
				
			||||||
               AND ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> >= TO_DATE(TO_CHAR(SYSDATE,
 | 
					 | 
				
			||||||
                                           'yyyy') || '-01-01 00:00:00',
 | 
					 | 
				
			||||||
                                   'yyyy-mm-dd hh24:mi:ss')
 | 
					 | 
				
			||||||
               AND ǩ<><C7A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <= SYSDATE
 | 
					 | 
				
			||||||
             GROUP BY CF.<2E>·<EFBFBD>
 | 
					 | 
				
			||||||
             ORDER BY CF.<2E>·<EFBFBD>;
 | 
					 | 
				
			||||||
    END;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /*******************************************************/
 | 
					    /*******************************************************/
 | 
				
			||||||
    -- <20><>ϯ<EFBFBD><CFAF><EFBFBD>а<EFBFBD>
 | 
					    -- <20><>ϯ<EFBFBD><CFAF><EFBFBD>а<EFBFBD>
 | 
				
			||||||
    PROCEDURE CALLER_ARCH_RANKING_LIST
 | 
					    PROCEDURE CALLER_ARCH_RANKING_LIST
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								code/web/task_schedule/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								code/web/task_schedule/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -10,7 +10,7 @@
 | 
				
			|||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@element-plus/icons-vue": "^2.3.1",
 | 
					        "@element-plus/icons-vue": "^2.3.1",
 | 
				
			||||||
        "echarts": "^5.4.3",
 | 
					        "echarts": "^5.4.3",
 | 
				
			||||||
        "element-plus": "^2.4.3",
 | 
					        "element-plus": "^2.4.4",
 | 
				
			||||||
        "mitt": "^3.0.1",
 | 
					        "mitt": "^3.0.1",
 | 
				
			||||||
        "moment": "^2.29.4",
 | 
					        "moment": "^2.29.4",
 | 
				
			||||||
        "sass-loader": "^13.3.2",
 | 
					        "sass-loader": "^13.3.2",
 | 
				
			||||||
@@ -4962,9 +4962,9 @@
 | 
				
			|||||||
      "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA=="
 | 
					      "integrity": "sha512-UdREXMXzLkREF4jA8t89FQjA8WHI6ssP38PMY4/4KhXFQbtImnghh4GkCgrtiZwLKUKVD2iTVXvDVQjfomEQuA=="
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node_modules/element-plus": {
 | 
					    "node_modules/element-plus": {
 | 
				
			||||||
      "version": "2.4.3",
 | 
					      "version": "2.4.4",
 | 
				
			||||||
      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.3.tgz",
 | 
					      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-b3q26j+lM4SBqiyzw8HybybGnP2pk4MWgrnzzzYW5qKQUgV6EG1Zg7nMCfgCVccI8tNvZoTiUHb2mFaiB9qT8w==",
 | 
					      "integrity": "sha512-TlKubXJgxwhER0dw+8ULn9hr9kZjraV4R6Q/eidwWUwCKxwXYPBGmMKsZ/85tlxlhMYbcLZd/YZh6G3QkHX4fg==",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@ctrl/tinycolor": "^3.4.1",
 | 
					        "@ctrl/tinycolor": "^3.4.1",
 | 
				
			||||||
        "@element-plus/icons-vue": "^2.3.1",
 | 
					        "@element-plus/icons-vue": "^2.3.1",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
        <el-progress
 | 
					        <el-progress
 | 
				
			||||||
            type="circle"
 | 
					            type="circle"
 | 
				
			||||||
            :percentage="ui.percentage"
 | 
					            :percentage="ui.percentage"
 | 
				
			||||||
            status="success"
 | 
					            :status="ui.color"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
            <template #default>
 | 
					            <template #default>
 | 
				
			||||||
                <span class="percentage-label">{{ ui.indicator }}</span>
 | 
					                <span class="percentage-label">{{ ui.indicator }}</span>
 | 
				
			||||||
@@ -36,6 +36,10 @@ export default {
 | 
				
			|||||||
            type: String,
 | 
					            type: String,
 | 
				
			||||||
            default: "",
 | 
					            default: "",
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
 | 
					        color: {
 | 
				
			||||||
 | 
					            type: String,
 | 
				
			||||||
 | 
					            default: "success",
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    setup( props )
 | 
					    setup( props )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -44,6 +48,7 @@ export default {
 | 
				
			|||||||
        const ui = reactive({
 | 
					        const ui = reactive({
 | 
				
			||||||
            percentage,
 | 
					            percentage,
 | 
				
			||||||
            indicator: props.indicator,
 | 
					            indicator: props.indicator,
 | 
				
			||||||
 | 
					            color: props.color,
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return { ui, };
 | 
					        return { ui, };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,7 +20,9 @@ interface DepartmentArchievement // 定义业绩对象的结构
 | 
				
			|||||||
    total_archievement: number;
 | 
					    total_archievement: number;
 | 
				
			||||||
    mensual_archievement_list: number[];
 | 
					    mensual_archievement_list: number[];
 | 
				
			||||||
    insurance_renewal_rate: string;
 | 
					    insurance_renewal_rate: string;
 | 
				
			||||||
 | 
					    insurance_renewal_rate_target: string;
 | 
				
			||||||
    attaching_rate: string;
 | 
					    attaching_rate: string;
 | 
				
			||||||
 | 
					    attaching_rate_target: string;
 | 
				
			||||||
    leading_reward_gainers: string[];
 | 
					    leading_reward_gainers: string[];
 | 
				
			||||||
    advance_reward_gainers: string[];
 | 
					    advance_reward_gainers: string[];
 | 
				
			||||||
    backward_list: string[];
 | 
					    backward_list: string[];
 | 
				
			||||||
@@ -57,7 +59,9 @@ function queryDepartmentArchievement( departmentInfo: Department, render: any ):
 | 
				
			|||||||
        total_archievement: 0,
 | 
					        total_archievement: 0,
 | 
				
			||||||
        mensual_archievement_list: [],
 | 
					        mensual_archievement_list: [],
 | 
				
			||||||
        insurance_renewal_rate: "",
 | 
					        insurance_renewal_rate: "",
 | 
				
			||||||
 | 
					        insurance_renewal_rate_target: "",
 | 
				
			||||||
        attaching_rate: "",
 | 
					        attaching_rate: "",
 | 
				
			||||||
 | 
					        attaching_rate_target: "",
 | 
				
			||||||
        leading_reward_gainers: [],
 | 
					        leading_reward_gainers: [],
 | 
				
			||||||
        advance_reward_gainers: [],
 | 
					        advance_reward_gainers: [],
 | 
				
			||||||
        backward_list: [],
 | 
					        backward_list: [],
 | 
				
			||||||
@@ -78,7 +82,9 @@ function queryDepartmentArchievement( departmentInfo: Department, render: any ):
 | 
				
			|||||||
            archievement.total_archievement = data.total_archievement;
 | 
					            archievement.total_archievement = data.total_archievement;
 | 
				
			||||||
            archievement.mensual_archievement_list = [];
 | 
					            archievement.mensual_archievement_list = [];
 | 
				
			||||||
            archievement.insurance_renewal_rate = data.insurance_renewal_rate ?? "0.0";
 | 
					            archievement.insurance_renewal_rate = data.insurance_renewal_rate ?? "0.0";
 | 
				
			||||||
 | 
					            archievement.insurance_renewal_rate_target = data.insurance_renewal_rate_target ?? "0.0";
 | 
				
			||||||
            archievement.attaching_rate = data.attaching_rate ?? "0.0";
 | 
					            archievement.attaching_rate = data.attaching_rate ?? "0.0";
 | 
				
			||||||
 | 
					            archievement.attaching_rate_target = data.attaching_rate_target ?? "0.0";
 | 
				
			||||||
            archievement.leading_reward_gainers = data.leading_reward_gainers ?? [];
 | 
					            archievement.leading_reward_gainers = data.leading_reward_gainers ?? [];
 | 
				
			||||||
            archievement.advance_reward_gainers = data.advance_reward_gainers ?? [];
 | 
					            archievement.advance_reward_gainers = data.advance_reward_gainers ?? [];
 | 
				
			||||||
            archievement.backward_list = data.backward_list ?? [];
 | 
					            archievement.backward_list = data.backward_list ?? [];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,36 +25,6 @@ public class DepartmentArchievement
 | 
				
			|||||||
    // log4j2
 | 
					    // log4j2
 | 
				
			||||||
    private static Logger logger = LoggerFactory.getLogger(DepartmentArchievement.class);
 | 
					    private static Logger logger = LoggerFactory.getLogger(DepartmentArchievement.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * 默认的构造函数,提供给json使用。
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public DepartmentArchievement()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.totalArchievement = 0;
 | 
					 | 
				
			||||||
        this.mensualArchievementList = null;
 | 
					 | 
				
			||||||
        this.insuranceRenewalRate = "";
 | 
					 | 
				
			||||||
        this.attachingRate = "";
 | 
					 | 
				
			||||||
        this.departmentCode = "";
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * @brief 构造函数,提供所有成员对象的值。
 | 
					 | 
				
			||||||
     * @param departmentCode 部门代码
 | 
					 | 
				
			||||||
     * @param totalArchievement 总业绩
 | 
					 | 
				
			||||||
     * @param mensualArchievementList 每月业绩表
 | 
					 | 
				
			||||||
     * @param insuranceRenewalRate 续保率
 | 
					 | 
				
			||||||
     * @param attachingRate 车非渗透率
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public DepartmentArchievement( String departmentCode, long totalArchievement,
 | 
					 | 
				
			||||||
            ArrayList<MensualArchievementItem> mensualArchievementList, String insuranceRenewalRate, String attachingRate)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        this.departmentCode = departmentCode;
 | 
					 | 
				
			||||||
        this.totalArchievement = totalArchievement;
 | 
					 | 
				
			||||||
        this.mensualArchievementList = mensualArchievementList;
 | 
					 | 
				
			||||||
        this.insuranceRenewalRate = insuranceRenewalRate;
 | 
					 | 
				
			||||||
        this.attachingRate = attachingRate;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 静态方法,用于根据部门代码,查询部门业绩,生成一个 DepartmentArchievement 对象。
 | 
					     * 静态方法,用于根据部门代码,查询部门业绩,生成一个 DepartmentArchievement 对象。
 | 
				
			||||||
     * @param departmentCode 部门代码
 | 
					     * @param departmentCode 部门代码
 | 
				
			||||||
@@ -82,15 +52,17 @@ public class DepartmentArchievement
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            Integer totalArchievement = (Integer)params.get("a_total");
 | 
					            Integer totalArchievement = (Integer)params.get("a_total");
 | 
				
			||||||
            String attachingRate = (String)params.get("a_attaching_rate");
 | 
					            String attachingRate = (String)params.get("a_attaching_rate");
 | 
				
			||||||
 | 
					            String attachingRateTarget = (String)params.get("a_attaching_rate_target");
 | 
				
			||||||
            String renewalRate = (String)params.get("a_renewal_rate");
 | 
					            String renewalRate = (String)params.get("a_renewal_rate");
 | 
				
			||||||
 | 
					            String renewalRateTarget = (String)params.get("a_renewal_rate_target");
 | 
				
			||||||
            ArrayList<MensualArchievementItem> mensual = (ArrayList<MensualArchievementItem>)params.get("a_mensual_cur");
 | 
					            ArrayList<MensualArchievementItem> mensual = (ArrayList<MensualArchievementItem>)params.get("a_mensual_cur");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            archievement = new DepartmentArchievement(
 | 
					            archievement = new DepartmentArchievement(
 | 
				
			||||||
                departmentCode, 
 | 
					                departmentCode, 
 | 
				
			||||||
                totalArchievement.intValue(), 
 | 
					                totalArchievement.intValue(), 
 | 
				
			||||||
                mensual, 
 | 
					                mensual, 
 | 
				
			||||||
                renewalRate, 
 | 
					                renewalRate, renewalRateTarget,
 | 
				
			||||||
                attachingRate);
 | 
					                attachingRate, attachingRateTarget);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        catch ( IOException error )
 | 
					        catch ( IOException error )
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@@ -104,6 +76,67 @@ public class DepartmentArchievement
 | 
				
			|||||||
        return archievement;
 | 
					        return archievement;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "department_code" )
 | 
				
			||||||
 | 
					    private String departmentCode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "total_archievement" )
 | 
				
			||||||
 | 
					    private long totalArchievement; // 总业绩
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 每月业绩列表
 | 
				
			||||||
 | 
					    // 要保证数据是按照月份排序。
 | 
				
			||||||
 | 
					    @JsonProperty( "mensual_archievement_list" )
 | 
				
			||||||
 | 
					    private ArrayList<MensualArchievementItem> mensualArchievementList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "insurance_renewal_rate" )
 | 
				
			||||||
 | 
					    private String insuranceRenewalRate; // 续保率
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "insurance_renewal_rate_target" )
 | 
				
			||||||
 | 
					    private String insuranceRenewalRateTarget; // 续保率目标值
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "attaching_rate" )
 | 
				
			||||||
 | 
					    private String attachingRate; // 车非渗透率
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "attaching_rate_target" )
 | 
				
			||||||
 | 
					    private String attachingRateTarget; // 车非渗透率目标值
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 默认的构造函数,提供给json使用。
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public DepartmentArchievement()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this.totalArchievement = 0;
 | 
				
			||||||
 | 
					        this.mensualArchievementList = null;
 | 
				
			||||||
 | 
					        this.insuranceRenewalRate = "";
 | 
				
			||||||
 | 
					        this.attachingRate = "";
 | 
				
			||||||
 | 
					        this.insuranceRenewalRateTarget = "";
 | 
				
			||||||
 | 
					        this.attachingRateTarget = "";
 | 
				
			||||||
 | 
					        this.departmentCode = "";
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * @brief 构造函数,提供所有成员对象的值。
 | 
				
			||||||
 | 
					     * @param departmentCode 部门代码
 | 
				
			||||||
 | 
					     * @param totalArchievement 总业绩
 | 
				
			||||||
 | 
					     * @param mensualArchievementList 每月业绩表
 | 
				
			||||||
 | 
					     * @param insuranceRenewalRate 续保率
 | 
				
			||||||
 | 
					     * @param insuranceRenewalRateTarget 续保率目标值
 | 
				
			||||||
 | 
					     * @param attachingRate 车非渗透率
 | 
				
			||||||
 | 
					     * @param attachingRateTarget 车非渗透率目标值
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public DepartmentArchievement( String departmentCode, long totalArchievement,
 | 
				
			||||||
 | 
					            ArrayList<MensualArchievementItem> mensualArchievementList, String insuranceRenewalRate,
 | 
				
			||||||
 | 
					            String insuranceRenewalRateTarget, String attachingRate, String attachingRateTarget )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this.departmentCode = departmentCode;
 | 
				
			||||||
 | 
					        this.totalArchievement = totalArchievement;
 | 
				
			||||||
 | 
					        this.mensualArchievementList = mensualArchievementList;
 | 
				
			||||||
 | 
					        this.insuranceRenewalRate = insuranceRenewalRate;
 | 
				
			||||||
 | 
					        this.insuranceRenewalRateTarget = insuranceRenewalRateTarget;
 | 
				
			||||||
 | 
					        this.attachingRate = attachingRate;
 | 
				
			||||||
 | 
					        this.attachingRateTarget = attachingRateTarget;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public long getTotalArchievement()
 | 
					    public long getTotalArchievement()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return totalArchievement;
 | 
					        return totalArchievement;
 | 
				
			||||||
@@ -139,11 +172,117 @@ public class DepartmentArchievement
 | 
				
			|||||||
        return attachingRate;
 | 
					        return attachingRate;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public String toString()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return "DepartmentArchievement [departmentCode=" + departmentCode + ", totalArchievement="
 | 
				
			||||||
 | 
					                + totalArchievement + ", mensualArchievementList=" + mensualArchievementList
 | 
				
			||||||
 | 
					                + ", insuranceRenewalRate=" + insuranceRenewalRate + ", insuranceRenewalRateTarget="
 | 
				
			||||||
 | 
					                + insuranceRenewalRateTarget + ", attachingRate=" + attachingRate
 | 
				
			||||||
 | 
					                + ", attachingRateTarget=" + attachingRateTarget + "]";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int hashCode()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        final int prime = 31;
 | 
				
			||||||
 | 
					        int result = 1;
 | 
				
			||||||
 | 
					        result = prime * result + ((departmentCode == null) ? 0 : departmentCode.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result + (int) (totalArchievement ^ (totalArchievement >>> 32));
 | 
				
			||||||
 | 
					        result = prime * result
 | 
				
			||||||
 | 
					                + ((mensualArchievementList == null) ? 0 : mensualArchievementList.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result
 | 
				
			||||||
 | 
					                + ((insuranceRenewalRate == null) ? 0 : insuranceRenewalRate.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result + ((insuranceRenewalRateTarget == null) ? 0
 | 
				
			||||||
 | 
					                : insuranceRenewalRateTarget.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result + ((attachingRate == null) ? 0 : attachingRate.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result
 | 
				
			||||||
 | 
					                + ((attachingRateTarget == null) ? 0 : attachingRateTarget.hashCode());
 | 
				
			||||||
 | 
					        return result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean equals( Object obj )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ( this == obj )
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        if ( obj == null )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( getClass() != obj.getClass() )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        DepartmentArchievement other = (DepartmentArchievement) obj;
 | 
				
			||||||
 | 
					        if ( departmentCode == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.departmentCode != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !departmentCode.equals( other.departmentCode ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( totalArchievement != other.totalArchievement )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( mensualArchievementList == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.mensualArchievementList != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !mensualArchievementList.equals( other.mensualArchievementList ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( insuranceRenewalRate == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.insuranceRenewalRate != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !insuranceRenewalRate.equals( other.insuranceRenewalRate ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( insuranceRenewalRateTarget == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.insuranceRenewalRateTarget != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !insuranceRenewalRateTarget.equals( other.insuranceRenewalRateTarget ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( attachingRate == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.attachingRate != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !attachingRate.equals( other.attachingRate ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( attachingRateTarget == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.attachingRateTarget != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !attachingRateTarget.equals( other.attachingRateTarget ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setAttachingRate( String attachingRate )
 | 
					    public void setAttachingRate( String attachingRate )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        this.attachingRate = attachingRate;
 | 
					        this.attachingRate = attachingRate;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getInsuranceRenewalRateTarget()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return insuranceRenewalRateTarget;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setInsuranceRenewalRateTarget( String insuranceRenewalRateTarget )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this.insuranceRenewalRateTarget = insuranceRenewalRateTarget;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public String getAttachingRateTarget()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return attachingRateTarget;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setAttachingRateTarget( String attachingRateTarget )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        this.attachingRateTarget = attachingRateTarget;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getDepartmentCode()
 | 
					    public String getDepartmentCode()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return departmentCode;
 | 
					        return departmentCode;
 | 
				
			||||||
@@ -153,21 +292,4 @@ public class DepartmentArchievement
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        this.departmentCode = departmentCode;
 | 
					        this.departmentCode = departmentCode;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty( "department_code" )
 | 
					 | 
				
			||||||
    private String departmentCode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty( "total_archievement" )
 | 
					 | 
				
			||||||
    private long totalArchievement; // 总业绩
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // 每月业绩列表
 | 
					 | 
				
			||||||
    // 要保证数据是按照月份排序。
 | 
					 | 
				
			||||||
    @JsonProperty( "mensual_archievement_list" )
 | 
					 | 
				
			||||||
    private ArrayList<MensualArchievementItem> mensualArchievementList;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty( "insurance_renewal_rate" )
 | 
					 | 
				
			||||||
    private String insuranceRenewalRate; // 续保率
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @JsonProperty( "attaching_rate" )
 | 
					 | 
				
			||||||
    private String attachingRate; // 车非渗透率
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -70,11 +70,10 @@ public class ArchievementQueryController
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            result.setTotalArchievement( departmentArch.getTotalArchievement() );
 | 
					            result.setTotalArchievement( departmentArch.getTotalArchievement() );
 | 
				
			||||||
            result.setInsuranceRenewalRate( departmentArch.getInsuranceRenewalRate() );
 | 
					            result.setInsuranceRenewalRate( departmentArch.getInsuranceRenewalRate() );
 | 
				
			||||||
 | 
					            result.setInsuranceRenewalRateTarget( departmentArch.getInsuranceRenewalRateTarget() );
 | 
				
			||||||
            result.setAttachingRate( departmentArch.getAttachingRate() );
 | 
					            result.setAttachingRate( departmentArch.getAttachingRate() );
 | 
				
			||||||
            // result.addAdvanceRewardGainer( "沈群" );
 | 
					            result.setAttachingRateTarget( departmentArch.getAttachingRateTarget() );
 | 
				
			||||||
            // result.addLeadingRewardGainer( "王鸿津" );
 | 
					
 | 
				
			||||||
            // result.addLeadingRewardGainer( "林宗泽" );
 | 
					 | 
				
			||||||
            // result.addBackwardStaff( "王炜" );
 | 
					 | 
				
			||||||
            result.setMensualArchievementList( departmentArch.getMensualArchievementList() );
 | 
					            result.setMensualArchievementList( departmentArch.getMensualArchievementList() );
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        catch ( IOException error )
 | 
					        catch ( IOException error )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,7 +7,6 @@
 | 
				
			|||||||
 * 
 | 
					 * 
 | 
				
			||||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
					 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					 | 
				
			||||||
package com.cpic.xim.web.controllers.archievement.department;
 | 
					package com.cpic.xim.web.controllers.archievement.department;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
@@ -23,6 +22,35 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
public class DepartmentArchievementQueryResult extends QueryResponse
 | 
					public class DepartmentArchievementQueryResult extends QueryResponse
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					    @JsonProperty( "total_archievement" )
 | 
				
			||||||
 | 
					    private long totalArchievement; // 总业绩
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 每月业绩列表
 | 
				
			||||||
 | 
					    // 要保证数据是按照月份排序。
 | 
				
			||||||
 | 
					    @JsonProperty( "mensual_archievement_list" )
 | 
				
			||||||
 | 
					    private ArrayList<MensualArchievementItem> mensualArchievementList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "insurance_renewal_rate" )
 | 
				
			||||||
 | 
					    private String insuranceRenewalRate; // 续保率
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "insurance_renewal_rate_target" )
 | 
				
			||||||
 | 
					    private String insuranceRenewalRateTarget; // 续保率目标值
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "attaching_rate" )
 | 
				
			||||||
 | 
					    private String attachingRate; // 车非渗透率
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "attaching_rate_target" )
 | 
				
			||||||
 | 
					    private String attachingRateTarget; // 车非渗透率目标值
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "leading_reward_gainers" )
 | 
				
			||||||
 | 
					    private Vector<String> leadingRewardGainers; // 领跑奖
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "advance_reward_gainers" )
 | 
				
			||||||
 | 
					    private Vector<String> advanceRewardGainers; // 飞跃奖
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @JsonProperty( "backward_list" )
 | 
				
			||||||
 | 
					    private Vector<String> backwardList; // 消七灭六坐席
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public DepartmentArchievementQueryResult()
 | 
					    public DepartmentArchievementQueryResult()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        mensualArchievementList = new ArrayList<MensualArchievementItem>();
 | 
					        mensualArchievementList = new ArrayList<MensualArchievementItem>();
 | 
				
			||||||
@@ -117,26 +145,129 @@ public class DepartmentArchievementQueryResult extends QueryResponse
 | 
				
			|||||||
        this.backwardList = backwardList;
 | 
					        this.backwardList = backwardList;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @JsonProperty( "total_archievement" )
 | 
					    public String getInsuranceRenewalRateTarget()
 | 
				
			||||||
    private long totalArchievement; // 总业绩
 | 
					    {
 | 
				
			||||||
 | 
					        return insuranceRenewalRateTarget;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 每月业绩列表
 | 
					    public void setInsuranceRenewalRateTarget( String insuranceRenewalRateTarget )
 | 
				
			||||||
    // 要保证数据是按照月份排序。
 | 
					    {
 | 
				
			||||||
    @JsonProperty( "mensual_archievement_list" )
 | 
					        this.insuranceRenewalRateTarget = insuranceRenewalRateTarget;
 | 
				
			||||||
    private ArrayList<MensualArchievementItem> mensualArchievementList;
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @JsonProperty( "insurance_renewal_rate" )
 | 
					    public String getAttachingRateTarget()
 | 
				
			||||||
    private String insuranceRenewalRate; // 续保率
 | 
					    {
 | 
				
			||||||
 | 
					        return attachingRateTarget;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @JsonProperty( "attaching_rate" )
 | 
					    public void setAttachingRateTarget( String attachingRateTarget )
 | 
				
			||||||
    private String attachingRate; // 车非渗透率
 | 
					    {
 | 
				
			||||||
 | 
					        this.attachingRateTarget = attachingRateTarget;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @JsonProperty( "leading_reward_gainers" )
 | 
					    @Override
 | 
				
			||||||
    private Vector<String> leadingRewardGainers; // 领跑奖
 | 
					    public String toString()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return "DepartmentArchievementQueryResult [totalArchievement=" + totalArchievement
 | 
				
			||||||
 | 
					                + ", mensualArchievementList=" + mensualArchievementList + ", insuranceRenewalRate="
 | 
				
			||||||
 | 
					                + insuranceRenewalRate + ", insuranceRenewalRateTarget="
 | 
				
			||||||
 | 
					                + insuranceRenewalRateTarget + ", attachingRate=" + attachingRate
 | 
				
			||||||
 | 
					                + ", attachingRateTarget=" + attachingRateTarget + ", leadingRewardGainers="
 | 
				
			||||||
 | 
					                + leadingRewardGainers + ", advanceRewardGainers=" + advanceRewardGainers
 | 
				
			||||||
 | 
					                + ", backwardList=" + backwardList + "]";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @JsonProperty( "advance_reward_gainers" )
 | 
					    @Override
 | 
				
			||||||
    private Vector<String> advanceRewardGainers; // 飞跃奖
 | 
					    public int hashCode()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        final int prime = 31;
 | 
				
			||||||
 | 
					        int result = super.hashCode();
 | 
				
			||||||
 | 
					        result = prime * result + (int) (totalArchievement ^ (totalArchievement >>> 32));
 | 
				
			||||||
 | 
					        result = prime * result
 | 
				
			||||||
 | 
					                + ((mensualArchievementList == null) ? 0 : mensualArchievementList.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result
 | 
				
			||||||
 | 
					                + ((insuranceRenewalRate == null) ? 0 : insuranceRenewalRate.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result + ((insuranceRenewalRateTarget == null) ? 0
 | 
				
			||||||
 | 
					                : insuranceRenewalRateTarget.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result + ((attachingRate == null) ? 0 : attachingRate.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result
 | 
				
			||||||
 | 
					                + ((attachingRateTarget == null) ? 0 : attachingRateTarget.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result
 | 
				
			||||||
 | 
					                + ((leadingRewardGainers == null) ? 0 : leadingRewardGainers.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result
 | 
				
			||||||
 | 
					                + ((advanceRewardGainers == null) ? 0 : advanceRewardGainers.hashCode());
 | 
				
			||||||
 | 
					        result = prime * result + ((backwardList == null) ? 0 : backwardList.hashCode());
 | 
				
			||||||
 | 
					        return result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @JsonProperty( "backward_list" )
 | 
					    @Override
 | 
				
			||||||
    private Vector<String> backwardList; // 消七灭六坐席
 | 
					    public boolean equals( Object obj )
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ( this == obj )
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        if ( !super.equals( obj ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( getClass() != obj.getClass() )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        DepartmentArchievementQueryResult other = (DepartmentArchievementQueryResult) obj;
 | 
				
			||||||
 | 
					        if ( totalArchievement != other.totalArchievement )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( mensualArchievementList == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.mensualArchievementList != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !mensualArchievementList.equals( other.mensualArchievementList ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( insuranceRenewalRate == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.insuranceRenewalRate != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !insuranceRenewalRate.equals( other.insuranceRenewalRate ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( insuranceRenewalRateTarget == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.insuranceRenewalRateTarget != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !insuranceRenewalRateTarget.equals( other.insuranceRenewalRateTarget ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( attachingRate == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.attachingRate != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !attachingRate.equals( other.attachingRate ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( attachingRateTarget == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.attachingRateTarget != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !attachingRateTarget.equals( other.attachingRateTarget ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( leadingRewardGainers == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.leadingRewardGainers != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !leadingRewardGainers.equals( other.leadingRewardGainers ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( advanceRewardGainers == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.advanceRewardGainers != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !advanceRewardGainers.equals( other.advanceRewardGainers ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        if ( backwardList == null )
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if ( other.backwardList != null )
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if ( !backwardList.equals( other.backwardList ) )
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,15 +2,17 @@
 | 
				
			|||||||
<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
 | 
					<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
 | 
				
			||||||
<mapper namespace="com.cpic.xim.mybatis.mapper.ArchievementMapper">
 | 
					<mapper namespace="com.cpic.xim.mybatis.mapper.ArchievementMapper">
 | 
				
			||||||
    <select id="getDepartmentArchievement" useCache="false" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap"> 
 | 
					    <select id="getDepartmentArchievement" useCache="false" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap"> 
 | 
				
			||||||
        call telsale_archievement_pkg.department_archievement(
 | 
					        call telsale_archievement_dev_pkg.department_archievement(
 | 
				
			||||||
            #{a_department_code, mode=IN, jdbcType=VARCHAR},
 | 
					            #{a_department_code, mode=IN, jdbcType=VARCHAR},
 | 
				
			||||||
            #{a_attaching_rate, mode=OUT, jdbcType=VARCHAR},
 | 
					            #{a_attaching_rate, mode=OUT, jdbcType=VARCHAR},
 | 
				
			||||||
 | 
					            #{a_attaching_rate_target, mode=OUT, jdbcType=VARCHAR},
 | 
				
			||||||
            #{a_renewal_rate, mode=OUT, jdbcType=VARCHAR},
 | 
					            #{a_renewal_rate, mode=OUT, jdbcType=VARCHAR},
 | 
				
			||||||
 | 
					            #{a_renewal_rate_target, mode=OUT, jdbcType=VARCHAR},
 | 
				
			||||||
            #{a_total, mode=OUT, jdbcType=INTEGER, javaType=Integer},
 | 
					            #{a_total, mode=OUT, jdbcType=INTEGER, javaType=Integer},
 | 
				
			||||||
            #{a_mensual_cur, mode=OUT, jdbcType=CURSOR, resultMap=MensualArchievementMapper})
 | 
					            #{a_mensual_cur, mode=OUT, jdbcType=CURSOR, resultMap=MensualArchievementMapper})
 | 
				
			||||||
    </select>
 | 
					    </select>
 | 
				
			||||||
    <select id="getCallerArchievement" useCache="false" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap">
 | 
					    <select id="getCallerArchievement" useCache="false" flushCache="true" statementType="CALLABLE" parameterType="java.util.HashMap">
 | 
				
			||||||
        call telsale_archievement_pkg.caller_archievement(
 | 
					        call telsale_archievement_dev_pkg.caller_archievement(
 | 
				
			||||||
            #{a_caller_code, mode=IN, jdbcType=VARCHAR},
 | 
					            #{a_caller_code, mode=IN, jdbcType=VARCHAR},
 | 
				
			||||||
            #{a_attaching_rate, mode=OUT, jdbcType=VARCHAR},
 | 
					            #{a_attaching_rate, mode=OUT, jdbcType=VARCHAR},
 | 
				
			||||||
            #{a_renewal_rate, mode=OUT, jdbcType=VARCHAR},
 | 
					            #{a_renewal_rate, mode=OUT, jdbcType=VARCHAR},
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user