diff --git a/code/backend/RegulatoryManagementBackend/.vscode/.editorconfig b/code/backend/RegulatoryManagementBackend/.vscode/.editorconfig new file mode 100644 index 0000000..b1aa8c0 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/.vscode/.editorconfig @@ -0,0 +1,25 @@ +# top-most EditorConfig file +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.js] +indent_size = 4 + +[*.ts] +indent_size = 4 + +[*.py] +indent_size = 4 + +[*.java] +indent_size = 4 + +[*.xml] +indent_size = 2 diff --git a/code/backend/RegulatoryManagementBackend/.vscode/fileheader.template.js b/code/backend/RegulatoryManagementBackend/.vscode/fileheader.template.js new file mode 100644 index 0000000..ec0a8e0 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/.vscode/fileheader.template.js @@ -0,0 +1,78 @@ +/** + * This file is generated by VSCode extension: Fileheader Pro + */ + +/** + * These comments can help you write your own template with type hint + * @typedef {Object} FileheaderVariable Fileheader variables + * @property {string} birthtime file birth time. will get it from VCS or fallback to filesystem when it is not available + * @property {string} mtime file modification time. will get it from VCS or fallback to filesystem when it is not available + * @property {string} authorName if the file is tracked by VCS, it will get the author name from VCS. else it will get it from current user name + * @property {string} authorEmail if the file is tracked by VCS, it will get the author email from VCS. else it will get it from current user email + * @property {string} userName else it will get it from current user name + * @property {string} userEmail user email is from VSCode config, and fallback to VCS config + * @property {string} companyName + * @property {string} projectName name of current project + * @property {string} filePath the file path, relative to project root with POSIX path separator + * @property {string} dirPath the directory path, relative to project root with POSIX path separator + * @property {string} fileName filename with extension + */ + + /** + * @typedef {string | number | null | undefined | Template | boolean} TemplateInterpolation NOTE: boolean or falsy value will render empty string + * + * @typedef {{ strings: TemplateStringsArray; interpolations: TemplateInterpolation[]; }} Template + * @typedef {(strings: TemplateStringsArray, ...values: any[]) => string} ITemplateFunction + * + */ + +/** + * Please confirm your provider extends from globalThis.FileheaderLanguageProvider + */ +class CustomLanguageProvider extends globalThis.FileheaderLanguageProvider { + /** + * @type {string[]} + */ + languages = [ + "java", + "javascript", + "typescript", + "javascriptreact", + "typescriptreact", + ]; + + /** + * @type {string=} the language block comment start string. + * this is for future feature: support detect old custom template when custom template changes + */ + blockCommentStart = "/**"; + + /** + * @type {string=} + */ + blockCommentEnd = "*/"; + + /** + * get your template when document language matched + * @param {ITemplateFunction} tpl template function, it is a tagged function, support nested interpolation + * @param {FileheaderVariable} variables template variables + * @returns {Template} + */ + getTemplate(tpl, variables) { + // prettier-ignore + return tpl +`/** + * @Author: ${variables.authorName} <${variables.authorEmail}> + * @Date: ${variables.birthtime} + * @LastEditors: ${variables.userName} + * @LastModified: ${variables.mtime} + * @FilePath: ${variables.filePath} + * @Description: + * + * Copyright (c) ${2025} by Kane All rights reserved + */`; + } +} + +// export your provider classes +module.exports = [CustomLanguageProvider]; diff --git a/code/backend/RegulatoryManagementBackend/.vscode/settings.json b/code/backend/RegulatoryManagementBackend/.vscode/settings.json new file mode 100644 index 0000000..5e37972 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive", + "java.compile.nullAnalysis.mode": "automatic" +} diff --git a/code/backend/RegulatoryManagementBackend/pom.xml b/code/backend/RegulatoryManagementBackend/pom.xml index 0669c73..f48bbb7 100644 --- a/code/backend/RegulatoryManagementBackend/pom.xml +++ b/code/backend/RegulatoryManagementBackend/pom.xml @@ -1,67 +1,153 @@ - - 4.0.0 + + 4.0.0 - com.cpic.xim - RegulatoryManagementBackend - 1.0-SNAPSHOT - war + com.cpic.xim + RegulatoryManagementBackend + 1.0-SNAPSHOT + war - RegulatoryManagementBackend Maven Webapp - - http://www.example.com + RegulatoryManagementBackend Maven Webapp + + http://www.example.com - - UTF-8 - 8 - 8 - + + UTF-8 + 18 + 18 + 6.2.11 + 2.24.3 + 2.18.3 + - - - junit - junit - 4.13.1 - test - - + + + junit + junit + 4.13.1 + test + - - RegulatoryManagementBackend - - - - maven-clean-plugin - 3.4.0 - - - - maven-resources-plugin - 3.3.1 - - - maven-compiler-plugin - 3.13.0 - - - maven-surefire-plugin - 3.3.0 - - - maven-war-plugin - 3.4.0 - - - maven-install-plugin - 3.1.2 - - - maven-deploy-plugin - 3.1.2 - - - - - + + + org.springframework + spring-context + ${spring.version} + + + org.springframework + spring-test + ${spring.version} + test + + + org.springframework + spring-web + ${spring.version} + + + org.springframework + spring-webmvc + ${spring.version} + + + jakarta.servlet + jakarta.servlet-api + 6.1.0 + provided + + + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + + + org.apache.logging.log4j + log4j-slf4j2-impl + ${log4j.version} + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + + com.mysql + mysql-connector-j + 9.2.0 + + + + org.apache.commons + commons-fileupload2-jakarta-servlet6 + 2.0.0-M2 + + + commons-io + commons-io + 2.18.0 + + + + + + RegulatoryManagementBackend + + + + maven-clean-plugin + 3.4.0 + + + + maven-resources-plugin + 3.3.1 + + + maven-compiler-plugin + 3.13.0 + + + maven-surefire-plugin + 3.3.0 + + + maven-war-plugin + 3.4.0 + + + maven-install-plugin + 3.1.2 + + + maven-deploy-plugin + 3.1.2 + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/QueryResponse.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/QueryResponse.java new file mode 100644 index 0000000..c1887a5 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/QueryResponse.java @@ -0,0 +1,91 @@ +/* + * @Author: Kane + * @Date: 2023-04-05 22:34:36 + * @LastEditors: Kane + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/QueryResponse.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ +package com.cpic.xim.web.controllers; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class QueryResponse +{ + @JsonProperty( "success" ) + private boolean success; + + @JsonProperty( "message" ) + private String message; + + public QueryResponse( boolean success, String message ) + { + this.success = success; + this.message = message; + } + + public QueryResponse() + { + this.success = false; + this.message = ""; + } + + public boolean isSuccess() + { + return success; + } + + public void setSuccess( boolean success ) + { + this.success = success; + } + + public String getMessage() + { + return message; + } + + public void setMessage( String message ) + { + this.message = message; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + (success ? 1231 : 1237); + result = prime * result + ((message == null) ? 0 : message.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; + QueryResponse other = (QueryResponse) obj; + if ( success != other.success ) + return false; + if ( message == null ) + { + if ( other.message != null ) + return false; + } + else if ( !message.equals( other.message ) ) + return false; + return true; + } + + @Override + public String toString() + { + return "QueryResult [success=" + success + ", message=" + message + "]"; + } +} diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java new file mode 100644 index 0000000..98a06e8 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java @@ -0,0 +1,97 @@ +/* + * @Author: Kane + * @Date: 2023-01-22 23:11:26 + * @LastEditors: Kane + * @LastEditTime: 2023-10-23 17:01:29 + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java + * @Description: 用于接受上传文件的Controller。 + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ + +package com.cpic.xim.web.controllers.fileupload; + +import java.io.File; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.ZoneOffset; +import java.util.Vector; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; + +// @SuppressWarnings( "unused" ) +@Controller +@RequestMapping( path = "/file" ) +public class FileUpload +{ + /** + * 接收上传文件,并保存到临时目录: + * 1、临时目录下再用sessionID作为子目录保存文件。 + * 2、保存时不更改文件名,会覆盖同名文件。 + * 3、MultipartFile参数形参名称必须和请求form中file标签的name属性一致,否则值为null。 + * 4、返回值为接收结果和文件保存绝对路径。 + * @param taskName 任务名称字符串 + * @param files MultipartFile结构的文件对象 + * @param request HttpServletRequest对象实例 + * @return 返回一个FileUploadResult对象,包含上传结果。 + */ + @RequestMapping( path = "/file-upload.do" ) + @ResponseBody + public FileUploadResult getUploadFile( @RequestParam( "task-name" ) String taskName, + @RequestParam( "files" ) MultipartFile file, HttpServletRequest request ) + { + // session id用来创建临时目录,避免重复 + String sessionID = request.getSession().getId(); + FileUploadResult result = new FileUploadResult(); + Vector fileNames = new Vector(); + + result.setSuccess( true ); + result.setMessage( "上传成功!" ); + + String filePath = request.getServletContext().getRealPath( "/temp/upload/" + sessionID ); + File dir = new File( filePath ); + + if ( !dir.mkdirs() ) + { + + } + + // 检查文件长度,如果为0则跳过 + if ( file.isEmpty() ) + { + result.setSuccess( false ); + result.setMessage( "不允许上传空文件。" ); + } + else + { + // 保存文件到临时目录 + Long milliSecond = + LocalDateTime.now().toInstant( ZoneOffset.of( "+8" ) ).toEpochMilli(); + String fileName = String.valueOf( milliSecond ) + file.getOriginalFilename(); + // String fileName = file.getOriginalFilename(); + File destFile = new File( filePath, fileName ); + + try + { + file.transferTo( destFile ); + // 把上传文件的绝对路径保存,返回给前端 + fileNames.add( destFile.getAbsolutePath() ); + + result.setSuccess( true ); + result.setMessage( "上传成功" ); + result.setFileList( fileNames ); + } + catch ( IOException error ) + { + result.setSuccess( false ); + result.setMessage( "上传失败,原因:" + error.getMessage() ); + } + } + + return result; + } +} diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUploadResult.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUploadResult.java new file mode 100644 index 0000000..c21a96c --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUploadResult.java @@ -0,0 +1,54 @@ +/* + * @Author: Kane + * @Date: 2023-01-23 22:56:17 + * @LastEditors: Kane + * @LastEditTime: 2023-10-06 00:32:47 + * @FilePath: /desktop_archievement_backend/src/main/java/com/cpic/xim/web/controllers/FileUpload/FileUploadResult.java + * @Description: + * + * Copyright (c) ${2022} by Kane, All Rights Reserved. + */ + +package com.cpic.xim.web.controllers.fileupload; + +import java.util.Vector; +import com.cpic.xim.web.controllers.QueryResponse; +import com.fasterxml.jackson.annotation.JsonProperty; + +@SuppressWarnings( "unused" ) +public class FileUploadResult extends QueryResponse +{ + public FileUploadResult() + { + super(); + } + + /** + * 构造函数 + * @param success 是否上传成功 + * @param message 消息字符串 + * @param fileList 文件绝对路径字符串数组 + */ + public FileUploadResult( boolean success, + String message, + Vector fileList ) + { + super( success, message ); + + this.fileList = fileList; + } + + public Vector getFileList() + { + return fileList; + } + + public void setFileList( Vector fileList ) + { + this.fileList = fileList; + } + + @JsonProperty( "fileList" ) + private Vector fileList; +} + diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java new file mode 100644 index 0000000..c1abfa0 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java @@ -0,0 +1,66 @@ +/** + * @Author: Kane Wang + * @Date: 2025-03-15 18:40:54 + * @LastEditors: Kane Wang + * @LastModified: 2025-03-16 08:56:20 + * @FilePath: src/main/java/com/cpic/xim/web/filters/cros/CrosFilter.java + * @Description: + * + * Copyright (c) 2025 by Kane All rights reserved + */ +package com.cpic.xim.web.filters.cros; + +import java.io.IOException; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpMethod; + +public class CrosFilter implements Filter +{ + private static Logger logger = LoggerFactory.getLogger( CrosFilter.class ); + + /** + * @param req + */ + @Override + public void doFilter( + ServletRequest req, + ServletResponse resp, + FilterChain chain + ) + throws ServletException, + IOException + { + HttpServletRequest request = ( HttpServletRequest ) req; + HttpServletResponse response = ( HttpServletResponse ) resp; + String method = request.getMethod(); + String originHeader = request.getHeader( "Origin" ); + + logger.info( "收到" + method + "请求,来自" + originHeader ); + + // 如果是Options请求 + if ( method.equals( HttpMethod.OPTIONS.toString() ) ) + { + originHeader = "*"; + } + + response.setHeader( "Access-Control-Allow-Origin", originHeader ); + 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" ); + response.setHeader( "Access-Control-Allow-Credentials", "true" ); + response.setHeader( "XDomainRequestAllowed", "1" ); + response.setHeader( "XDomainRequestAllowed", "1" ); + + chain.doFilter( request, response ); + } + +} diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/log4j2.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/log4j2.xml new file mode 100644 index 0000000..e99d2f7 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/log4j2.xml @@ -0,0 +1,40 @@ + + + + + + + + + [%t][%level][%d{HH:mm:ss.SSS}][%logger.%M{36}#%L] %msg%n + + + + + + + + + + [%t][%level][%d{HH:mm:ss.SSS}][%logger.%M{36}#%L] %msg%n + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/jdbc.properties b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/jdbc.properties new file mode 100644 index 0000000..fe5e4da --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/jdbc.properties @@ -0,0 +1,4 @@ +jdbc.oracle.driver=oracle.jdbc.driver.OracleDriver +jdbc.oracle.xmcx1.url=jdbc:oracle:thin:@10.39.0.86:1521:xmcx1 +jdbc.oracle.xmcx1.username=desktop_archievement_admin +jdbc.oracle.xmcx1.password=Cpic123456 \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/ArchievementMapper.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/ArchievementMapper.xml new file mode 100644 index 0000000..539e8bd --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/ArchievementMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml new file mode 100644 index 0000000..ab92f80 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/ImportBIArchievementDataMapper.xml @@ -0,0 +1,51 @@ + + + + + insert into BI电销坐席车非渗透率跟踪表 ( "部门","经办","车险保费(万)","车险保费占比","非车保费(万)", + "当月保费渗透率","保费渗透率环比上月","当月客户渗透率","客户渗透率环比上月", + "当月车非客均保费","客均保费环比上月" ) + values ( #{departmentName}, #{telsalerName}, #{motoPremium}, #{motoPremiumProportion}, #{nomotoPremium}, + #{attachingRate}, #{attachingRateChange}, #{customerHandleRate}, + #{customerHandleRateChange}, #{noMotoPremiumPerCustomer}, #{noMotoPremiumPerCustomerChange} ) + + + + insert into "BI电销坐席续保率跟踪表-24年" ("责任部门","责任人","机构目标值1(%)","到期数-全月", + "序时到期数占比(%)","个车续保率(序时)(%)","个车续保率(全月)(%)", + "环比昨日(%)","环比上月(%)") + values (#{责任部门},#{责任人},#{机构目标值},#{到期数全月},#{序时到期数占比}, + #{个车续保率序时},#{个车续保率全月},#{环比昨日},#{环比上月} ) + + + + insert into BI机构渗透率跟踪表 ( 部门,"目标值-机构",目标差距,"车险保费", + 车险保费占比,"非车保费",当月保费渗透率,保费渗透率环比上月,当月客户渗透率, + 客户渗透率环比上月,当月车非客均保费,客均保费环比上月,车险客户数) + values (#{departmentName},#{departmentObject},#{objectGap},#{motoPremium}, + #{motoPremiumProPortion},#{nomotoPremium},#{attachingRate},#{attachingRateChange}, + #{customerHandleRate},#{customerHandleRateChange},#{premiumPerCustomer},#{premiumPerCustomerChange}, + #{motoInsuranceCustomerCount} ) + + + + insert into "BI机构续保率跟踪表-24年"( "责任部门","机构目标值1(%)","到期数-全月" ,"序时到期数占比(%)","个车续保率(序时)(%)", + "个车续保率(全月)(%)","环比昨日(%)","环比上月(%)") + values (#{责任部门},#{机构目标值},#{到期数全月},#{序时到期数占比}, + #{个车续保率序时},#{个车续保率全月},#{环比昨日},#{环比上月} ) + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/QueryBIArchievementDataMapper.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/QueryBIArchievementDataMapper.xml new file mode 100644 index 0000000..b28207d --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/QueryBIArchievementDataMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/RankingListMapper.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/RankingListMapper.xml new file mode 100644 index 0000000..f066f9f --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/RankingListMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/RewardsMapper.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/RewardsMapper.xml new file mode 100644 index 0000000..28ebbd8 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/RewardsMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/StaffMapper.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/StaffMapper.xml new file mode 100644 index 0000000..e21c614 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/StaffMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/TWrTelsalerMapper.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/TWrTelsalerMapper.xml new file mode 100644 index 0000000..ee55c6c --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mapper/TWrTelsalerMapper.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into TWR_TELSALER_DEV( + 人员姓名, + 人员工号, + 籍贯, + 参加工作时间, + 入职日期, + 入司日期, + 业务类型, + 办公地省, + 办公地市, + 人员类别, + 现任岗位, + 现任职级, + 机构名称, + 职场分类, + 片区名称, + 团队名称, + 对口分公司, + 展业地区, + 招聘渠道, + 渠道明细, + 全日制最高学历, + 学历类型, + 用工性质名称, + 合同种类, + 合同类型, + 合同性质, + 合同签订次数, + 合同生效日期, + 合同到期日期, + 人员属性, + 保代员工号, + 职场属性, + 办公性质, + 保代人员属性, + 人员状态) + values ( + #{人员姓名}, + #{人员工号}, + #{籍贯}, + #{参加工作时间}, + #{入职日期}, + #{入司日期}, + #{业务类型}, + #{办公地省}, + #{办公地市}, + #{人员类别}, + #{现任岗位}, + #{现任职级}, + #{机构名称}, + #{职场分类}, + #{片区名称}, + #{团队名称}, + #{对口分公司}, + #{展业地区}, + #{招聘渠道}, + #{渠道明细}, + #{全日制最高学历}, + #{学历类型}, + #{用工性质名称}, + #{合同种类}, + #{合同类型}, + #{合同性质}, + #{合同签订次数}, + #{合同生效日期}, + #{合同到期日期}, + #{人员属性}, + #{保代员工号}, + #{职场属性}, + #{办公性质}, + #{保代人员属性}, + #{人员状态} ) + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mybatis-config.xml b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mybatis-config.xml new file mode 100644 index 0000000..39eba52 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/resources/mybatis/mybatis-config.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/webapp/WEB-INF/classes/spring.xml b/code/backend/RegulatoryManagementBackend/src/main/webapp/WEB-INF/classes/spring.xml new file mode 100644 index 0000000..a349f68 --- /dev/null +++ b/code/backend/RegulatoryManagementBackend/src/main/webapp/WEB-INF/classes/spring.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/backend/RegulatoryManagementBackend/src/main/webapp/WEB-INF/web.xml b/code/backend/RegulatoryManagementBackend/src/main/webapp/WEB-INF/web.xml index b9c921f..f5c2aef 100644 --- a/code/backend/RegulatoryManagementBackend/src/main/webapp/WEB-INF/web.xml +++ b/code/backend/RegulatoryManagementBackend/src/main/webapp/WEB-INF/web.xml @@ -1,10 +1,39 @@ + version="4.0" + xmlns="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee" + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"> + Archetype Created Web Application - + + + springmvc + org.springframework.web.servlet.DispatcherServlet + + contextConfigLocation + classpath:spring.xml + + 1 + + + springmvc + *.do + + + springmvc + /account/p13_account_check + + + + CrosFilter + com.cpic.xim.web.filters.cros.CrosFilter + + + CrosFilter + * + + + \ No newline at end of file