完成业绩基本代码
This commit is contained in:
		@@ -11,7 +11,7 @@ CREATE OR REPLACE PACKAGE telsale_archievement_pkg IS
 | 
			
		||||
        a_department_code IN VARCHAR2,
 | 
			
		||||
        a_attaching_rate  OUT VARCHAR2,
 | 
			
		||||
        a_renewal_rate    OUT VARCHAR2,
 | 
			
		||||
        a_total           OUT VARCHAR2,
 | 
			
		||||
        a_total           OUT INTEGER,
 | 
			
		||||
        a_mensual_cur     OUT cur_type
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
@@ -25,7 +25,7 @@ CREATE OR REPLACE PACKAGE BODY telsale_archievement_pkg IS
 | 
			
		||||
        a_department_code IN VARCHAR2,
 | 
			
		||||
        a_attaching_rate  OUT VARCHAR2,
 | 
			
		||||
        a_renewal_rate    OUT VARCHAR2,
 | 
			
		||||
        a_total           OUT VARCHAR2,
 | 
			
		||||
        a_total           OUT INTEGER,
 | 
			
		||||
        a_mensual_cur     OUT cur_type
 | 
			
		||||
    ) IS
 | 
			
		||||
        l_this_month      VARCHAR2(4);
 | 
			
		||||
@@ -78,7 +78,7 @@ CREATE OR REPLACE PACKAGE BODY telsale_archievement_pkg IS
 | 
			
		||||
        --ÿ<><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>),
 | 
			
		||||
                   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><EFBFBD>ÿ<EFBFBD>ձ<EFBFBD><D5B1><EFBFBD> cf
 | 
			
		||||
@@ -86,7 +86,9 @@ CREATE OR REPLACE PACKAGE BODY telsale_archievement_pkg IS
 | 
			
		||||
               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
 | 
			
		||||
               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;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										118
									
								
								code/web/task_schedule/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										118
									
								
								code/web/task_schedule/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -17,7 +17,7 @@
 | 
			
		||||
                "echarts": "^5.4.2",
 | 
			
		||||
                "element-plus": "^2.3.4",
 | 
			
		||||
                "moment": "^2.29.4",
 | 
			
		||||
                "vue": "^3.3.2",
 | 
			
		||||
                "vue": "^3.3.4",
 | 
			
		||||
                "vue-router": "^4.2.0",
 | 
			
		||||
                "vuex": "^4.1.0"
 | 
			
		||||
            },
 | 
			
		||||
@@ -1951,36 +1951,36 @@
 | 
			
		||||
            "dev": true
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/compiler-core": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@babel/parser": "^7.21.3",
 | 
			
		||||
                "@vue/shared": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.4",
 | 
			
		||||
                "estree-walker": "^2.0.2",
 | 
			
		||||
                "source-map-js": "^1.0.2"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/compiler-dom": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/compiler-core": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.2"
 | 
			
		||||
                "@vue/compiler-core": "3.3.4",
 | 
			
		||||
                "@vue/shared": "3.3.4"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/compiler-sfc": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@babel/parser": "^7.20.15",
 | 
			
		||||
                "@vue/compiler-core": "3.3.2",
 | 
			
		||||
                "@vue/compiler-dom": "3.3.2",
 | 
			
		||||
                "@vue/compiler-ssr": "3.3.2",
 | 
			
		||||
                "@vue/reactivity-transform": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.2",
 | 
			
		||||
                "@vue/compiler-core": "3.3.4",
 | 
			
		||||
                "@vue/compiler-dom": "3.3.4",
 | 
			
		||||
                "@vue/compiler-ssr": "3.3.4",
 | 
			
		||||
                "@vue/reactivity-transform": "3.3.4",
 | 
			
		||||
                "@vue/shared": "3.3.4",
 | 
			
		||||
                "estree-walker": "^2.0.2",
 | 
			
		||||
                "magic-string": "^0.30.0",
 | 
			
		||||
                "postcss": "^8.1.10",
 | 
			
		||||
@@ -1988,12 +1988,12 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/compiler-ssr": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/compiler-dom": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.2"
 | 
			
		||||
                "@vue/compiler-dom": "3.3.4",
 | 
			
		||||
                "@vue/shared": "3.3.4"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/component-compiler-utils": {
 | 
			
		||||
@@ -2068,60 +2068,60 @@
 | 
			
		||||
            "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/reactivity": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/shared": "3.3.2"
 | 
			
		||||
                "@vue/shared": "3.3.4"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/reactivity-transform": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@babel/parser": "^7.20.15",
 | 
			
		||||
                "@vue/compiler-core": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.2",
 | 
			
		||||
                "@vue/compiler-core": "3.3.4",
 | 
			
		||||
                "@vue/shared": "3.3.4",
 | 
			
		||||
                "estree-walker": "^2.0.2",
 | 
			
		||||
                "magic-string": "^0.30.0"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/runtime-core": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/reactivity": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.2"
 | 
			
		||||
                "@vue/reactivity": "3.3.4",
 | 
			
		||||
                "@vue/shared": "3.3.4"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/runtime-dom": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/runtime-core": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.2",
 | 
			
		||||
                "@vue/runtime-core": "3.3.4",
 | 
			
		||||
                "@vue/shared": "3.3.4",
 | 
			
		||||
                "csstype": "^3.1.1"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/server-renderer": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/compiler-ssr": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.2"
 | 
			
		||||
                "@vue/compiler-ssr": "3.3.4",
 | 
			
		||||
                "@vue/shared": "3.3.4"
 | 
			
		||||
            },
 | 
			
		||||
            "peerDependencies": {
 | 
			
		||||
                "vue": "3.3.2"
 | 
			
		||||
                "vue": "3.3.4"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/shared": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ=="
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/@vue/vue-loader-v15": {
 | 
			
		||||
            "name": "vue-loader",
 | 
			
		||||
@@ -12095,15 +12095,15 @@
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/vue": {
 | 
			
		||||
            "version": "3.3.2",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.2.tgz",
 | 
			
		||||
            "integrity": "sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==",
 | 
			
		||||
            "version": "3.3.4",
 | 
			
		||||
            "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz",
 | 
			
		||||
            "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "@vue/compiler-dom": "3.3.2",
 | 
			
		||||
                "@vue/compiler-sfc": "3.3.2",
 | 
			
		||||
                "@vue/runtime-dom": "3.3.2",
 | 
			
		||||
                "@vue/server-renderer": "3.3.2",
 | 
			
		||||
                "@vue/shared": "3.3.2"
 | 
			
		||||
                "@vue/compiler-dom": "3.3.4",
 | 
			
		||||
                "@vue/compiler-sfc": "3.3.4",
 | 
			
		||||
                "@vue/runtime-dom": "3.3.4",
 | 
			
		||||
                "@vue/server-renderer": "3.3.4",
 | 
			
		||||
                "@vue/shared": "3.3.4"
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        "node_modules/vue-eslint-parser": {
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
        "echarts": "^5.4.2",
 | 
			
		||||
        "element-plus": "^2.3.4",
 | 
			
		||||
        "moment": "^2.29.4",
 | 
			
		||||
        "vue": "^3.3.2",
 | 
			
		||||
        "vue": "^3.3.4",
 | 
			
		||||
        "vue-router": "^4.2.0",
 | 
			
		||||
        "vuex": "^4.1.0"
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ export default {
 | 
			
		||||
                },
 | 
			
		||||
                yAxis: {
 | 
			
		||||
                    type: "value",
 | 
			
		||||
                    data: [200, 400, 600, 800, 1000,],
 | 
			
		||||
                    data: [400, 600, 800, 1000, 1200,],
 | 
			
		||||
                },
 | 
			
		||||
                series: [
 | 
			
		||||
                    {
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,7 @@ import java.sql.CallableStatement;
 | 
			
		||||
 | 
			
		||||
import java.util.Vector;
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
			
		||||
 | 
			
		||||
import oracle.jdbc.OracleCallableStatement;
 | 
			
		||||
import oracle.jdbc.OracleTypes;
 | 
			
		||||
 | 
			
		||||
public class DepartmentArchievement
 | 
			
		||||
@@ -47,7 +47,7 @@ public class DepartmentArchievement
 | 
			
		||||
     * @param insuranceRenewalRate
 | 
			
		||||
     * @param attachingRate
 | 
			
		||||
     */
 | 
			
		||||
    public DepartmentArchievement( int totalArchievement, Vector<Integer> mensualArchievementList,
 | 
			
		||||
    public DepartmentArchievement( long totalArchievement, Vector<Long> mensualArchievementList,
 | 
			
		||||
            String insuranceRenewalRate, String attachingRate)
 | 
			
		||||
    {
 | 
			
		||||
        this.totalArchievement = totalArchievement;
 | 
			
		||||
@@ -66,48 +66,102 @@ public class DepartmentArchievement
 | 
			
		||||
    public static DepartmentArchievement queryDepartmentArchievement( String departmentCode )
 | 
			
		||||
            throws SQLException, ClassNotFoundException
 | 
			
		||||
    {
 | 
			
		||||
        DepartmentArchievement archievement = new DepartmentArchievement();
 | 
			
		||||
        Connection connection = null;
 | 
			
		||||
        java.sql.CallableStatement statement = null;
 | 
			
		||||
        ResultSet menusual_cursor = null;
 | 
			
		||||
 | 
			
		||||
        DepartmentArchievement archievement = null;
 | 
			
		||||
 | 
			
		||||
        String sql = "{call telsale_archievement_pkg.department_archievement(?,?,?,?,?)}";
 | 
			
		||||
 | 
			
		||||
        Class.forName( "oracle.jdbc.driver.OracleDriver" );
 | 
			
		||||
        Connection connection = DriverManager.getConnection( jdbcURL, userName, password );
 | 
			
		||||
        java.sql.CallableStatement statement = connection.prepareCall( sql );
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            Class.forName( "oracle.jdbc.driver.OracleDriver" );
 | 
			
		||||
            connection = DriverManager.getConnection( jdbcURL, userName, password );
 | 
			
		||||
            statement = connection.prepareCall( sql );
 | 
			
		||||
 | 
			
		||||
        statement.setString( 1, departmentCode );
 | 
			
		||||
        statement.registerOutParameter( 2, java.sql.Types.VARCHAR );
 | 
			
		||||
        statement.registerOutParameter( 3, java.sql.Types.VARCHAR );
 | 
			
		||||
        statement.registerOutParameter( 4, java.sql.Types.VARCHAR );
 | 
			
		||||
        statement.registerOutParameter( 5, OracleTypes.CURSOR );
 | 
			
		||||
 | 
			
		||||
        statement.execute();
 | 
			
		||||
            statement.setString( 1, departmentCode );
 | 
			
		||||
            statement.registerOutParameter( 2, java.sql.Types.VARCHAR );
 | 
			
		||||
            statement.registerOutParameter( 3, java.sql.Types.VARCHAR );
 | 
			
		||||
            statement.registerOutParameter( 4, java.sql.Types.INTEGER );
 | 
			
		||||
            statement.registerOutParameter( 5, OracleTypes.CURSOR );
 | 
			
		||||
 | 
			
		||||
        String attach_rate = statement.getString( 2 );
 | 
			
		||||
        String renewal_rate = statement.getString( 3 );
 | 
			
		||||
        String totalArchievement = statement.getString( 4 );
 | 
			
		||||
            statement.execute();
 | 
			
		||||
 | 
			
		||||
        archievement.setAttachingRate( attach_rate );
 | 
			
		||||
        archievement.setInsuranceRenewalRate( renewal_rate );
 | 
			
		||||
            Vector<Long> menusual_list = new Vector<Long>();
 | 
			
		||||
            String attach_rate = statement.getString( 2 );
 | 
			
		||||
            String renewal_rate = statement.getString( 3 );
 | 
			
		||||
            long totalArchievement = statement.getInt( 4 );
 | 
			
		||||
 | 
			
		||||
            menusual_cursor = ((OracleCallableStatement) statement).getCursor( 5 );
 | 
			
		||||
 | 
			
		||||
            while ( menusual_cursor.next())
 | 
			
		||||
            {
 | 
			
		||||
                menusual_list.add( menusual_cursor.getLong( 2 ) );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            archievement = new DepartmentArchievement( totalArchievement, menusual_list,
 | 
			
		||||
                    renewal_rate, attach_rate );
 | 
			
		||||
        }
 | 
			
		||||
        finally
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if ( menusual_cursor != null )
 | 
			
		||||
                {
 | 
			
		||||
                    menusual_cursor.close();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch ( Exception exception )
 | 
			
		||||
            {
 | 
			
		||||
                exception.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if ( statement != null )
 | 
			
		||||
                {
 | 
			
		||||
                    statement.close();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch ( Exception exception )
 | 
			
		||||
            {
 | 
			
		||||
                exception.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if ( connection != null )
 | 
			
		||||
                {
 | 
			
		||||
                    connection.close();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch ( Exception exception )
 | 
			
		||||
            {
 | 
			
		||||
                exception.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return archievement;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getTotalArchievement()
 | 
			
		||||
    public long getTotalArchievement()
 | 
			
		||||
    {
 | 
			
		||||
        return totalArchievement;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTotalArchievement( int totalArchievement )
 | 
			
		||||
    public void setTotalArchievement( long totalArchievement )
 | 
			
		||||
    {
 | 
			
		||||
        this.totalArchievement = totalArchievement;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Vector<Integer> getMensualArchievementList()
 | 
			
		||||
    public Vector<Long> getMensualArchievementList()
 | 
			
		||||
    {
 | 
			
		||||
        return mensualArchievementList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setMensualArchievementList( Vector<Integer> mensualArchievementList )
 | 
			
		||||
    public void setMensualArchievementList( Vector<Long> mensualArchievementList )
 | 
			
		||||
    {
 | 
			
		||||
        this.mensualArchievementList = mensualArchievementList;
 | 
			
		||||
    }
 | 
			
		||||
@@ -133,12 +187,12 @@ public class DepartmentArchievement
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "total_archievement" )
 | 
			
		||||
    private int totalArchievement; // 总业绩
 | 
			
		||||
    private long totalArchievement; // 总业绩
 | 
			
		||||
 | 
			
		||||
    // 每月业绩列表
 | 
			
		||||
    // 要保证数据是按照月份排序。
 | 
			
		||||
    @JsonProperty( "mensual_archievement_list" )
 | 
			
		||||
    private Vector<Integer> mensualArchievementList;
 | 
			
		||||
    private Vector<Long> mensualArchievementList;
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "insurance_renewal_rate" )
 | 
			
		||||
    private String insuranceRenewalRate; // 续保率
 | 
			
		||||
 
 | 
			
		||||
@@ -55,25 +55,14 @@ public class ArchievementQueryController
 | 
			
		||||
            departmentArch = DepartmentArchievement
 | 
			
		||||
                    .queryDepartmentArchievement( request.getDepartmentCode() );
 | 
			
		||||
 | 
			
		||||
            Vector<Integer> mensual_archievement = new Vector<Integer>();
 | 
			
		||||
 | 
			
		||||
            mensual_archievement.add( 200 );
 | 
			
		||||
            mensual_archievement.add( 213 );
 | 
			
		||||
            mensual_archievement.add( 333 );
 | 
			
		||||
            mensual_archievement.add( 444 );
 | 
			
		||||
            mensual_archievement.add( 555 );
 | 
			
		||||
            mensual_archievement.add( 666 );
 | 
			
		||||
 | 
			
		||||
            result.setSuccess( true );
 | 
			
		||||
            result.setMessage( "成功" );
 | 
			
		||||
            result.setTotalArchievement( 1234567890 );
 | 
			
		||||
            result.setTotalArchievement( departmentArch.getTotalArchievement() );
 | 
			
		||||
            result.setInsuranceRenewalRate( departmentArch.getInsuranceRenewalRate() );
 | 
			
		||||
            result.setAttachingRate( departmentArch.getAttachingRate() );
 | 
			
		||||
            result.addAdvanceRewardGainer( "沈群" );
 | 
			
		||||
            result.addLeadingRewardGainer( "王鸿津" );
 | 
			
		||||
            result.addLeadingRewardGainer( "林宗泽" );
 | 
			
		||||
            result.addBackwardStaff( "王炜" );
 | 
			
		||||
            result.setMensualArchievementList( mensual_archievement );
 | 
			
		||||
            result.setMensualArchievementList( departmentArch.getMensualArchievementList() );
 | 
			
		||||
        }
 | 
			
		||||
        catch ( SQLException error )
 | 
			
		||||
        {
 | 
			
		||||
@@ -84,29 +73,9 @@ public class ArchievementQueryController
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        result.setSuccess( true );
 | 
			
		||||
        result.setMessage( "成功" );
 | 
			
		||||
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void genTestDepartmentData( DepartmentArchievementQueryResult data )
 | 
			
		||||
    {
 | 
			
		||||
        Vector<Integer> mensual_archievement = new Vector<Integer>();
 | 
			
		||||
 | 
			
		||||
        mensual_archievement.add( 200 );
 | 
			
		||||
        mensual_archievement.add( 213 );
 | 
			
		||||
        mensual_archievement.add( 333 );
 | 
			
		||||
        mensual_archievement.add( 444 );
 | 
			
		||||
        mensual_archievement.add( 555 );
 | 
			
		||||
        mensual_archievement.add( 666 );
 | 
			
		||||
 | 
			
		||||
        data.setSuccess( true );
 | 
			
		||||
        data.setMessage( "成功" );
 | 
			
		||||
        data.setTotalArchievement( 1234567890 );
 | 
			
		||||
        data.setInsuranceRenewalRate( "65" );
 | 
			
		||||
        data.setAttachingRate( "75" );
 | 
			
		||||
        data.addAdvanceRewardGainer( "沈群" );
 | 
			
		||||
        data.addLeadingRewardGainer( "王鸿津" );
 | 
			
		||||
        data.addLeadingRewardGainer( "林宗泽" );
 | 
			
		||||
        data.addBackwardStaff( "王炜" );
 | 
			
		||||
        data.setMensualArchievementList( mensual_archievement );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -22,28 +22,28 @@ public class DepartmentArchievementQueryResult extends QueryResult
 | 
			
		||||
{
 | 
			
		||||
    DepartmentArchievementQueryResult()
 | 
			
		||||
    {
 | 
			
		||||
        mensualArchievementList = new Vector<Integer>();
 | 
			
		||||
        mensualArchievementList = new Vector<Long>();
 | 
			
		||||
        advanceRewardGainers = new Vector<String>();
 | 
			
		||||
        leadingRewardGainers = new Vector<String>();
 | 
			
		||||
        backwardList = new Vector<String>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getTotalArchievement()
 | 
			
		||||
    public long getTotalArchievement()
 | 
			
		||||
    {
 | 
			
		||||
        return totalArchievement;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTotalArchievement( int totalArchievement )
 | 
			
		||||
    public void setTotalArchievement( long totalArchievement )
 | 
			
		||||
    {
 | 
			
		||||
        this.totalArchievement = totalArchievement;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Vector<Integer> getMensualArchievementList()
 | 
			
		||||
    public Vector<Long> getMensualArchievementList()
 | 
			
		||||
    {
 | 
			
		||||
        return mensualArchievementList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setMensualArchievementList( Vector<Integer> mensualArchievementList )
 | 
			
		||||
    public void setMensualArchievementList( Vector<Long> mensualArchievementList )
 | 
			
		||||
    {
 | 
			
		||||
        this.mensualArchievementList = mensualArchievementList;
 | 
			
		||||
    }
 | 
			
		||||
@@ -114,12 +114,12 @@ public class DepartmentArchievementQueryResult extends QueryResult
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "total_archievement" )
 | 
			
		||||
    private int totalArchievement; // 总业绩
 | 
			
		||||
    private long totalArchievement; // 总业绩
 | 
			
		||||
 | 
			
		||||
    // 每月业绩列表
 | 
			
		||||
    // 要保证数据是按照月份排序。
 | 
			
		||||
    @JsonProperty( "mensual_archievement_list" )
 | 
			
		||||
    private Vector<Integer> mensualArchievementList;
 | 
			
		||||
    private Vector<Long> mensualArchievementList;
 | 
			
		||||
 | 
			
		||||
    @JsonProperty( "insurance_renewal_rate" )
 | 
			
		||||
    private String insuranceRenewalRate; // 续保率
 | 
			
		||||
 
 | 
			
		||||
@@ -28,20 +28,18 @@ public class CrosFilter implements Filter
 | 
			
		||||
        HttpServletRequest request = (HttpServletRequest) req;
 | 
			
		||||
        HttpServletResponse response = (HttpServletResponse) resp;
 | 
			
		||||
        String method = request.getMethod();
 | 
			
		||||
        String originHeader = null;
 | 
			
		||||
        String originHeader = request.getHeader( "Origin" );
 | 
			
		||||
        
 | 
			
		||||
        // 如果是Options请求,就直接返回200状态码
 | 
			
		||||
        if ( method.equals( HttpMethod.OPTIONS.toString() ) )
 | 
			
		||||
        System.out.println( "收到" + method + "请求,来自" + originHeader);
 | 
			
		||||
        
 | 
			
		||||
        // 如果是Options请求
 | 
			
		||||
        if ( method.equals(HttpMethod.OPTIONS.toString()) )
 | 
			
		||||
        {
 | 
			
		||||
            originHeader = "*";
 | 
			
		||||
        }
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            originHeader = request.getHeader( "Origin" );
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        response.setHeader( "Access-Control-Allow-Origin", originHeader );
 | 
			
		||||
        response.setHeader( "Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE" );
 | 
			
		||||
        response.setHeader( "Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT" );
 | 
			
		||||
        response.setHeader( "Access-Control-Max-Age", "0" );
 | 
			
		||||
        response.setHeader( "Access-Control-Allow-Headers",
 | 
			
		||||
                "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token" );
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user