shebao_plan_import.md 5.8 KB

1 上传员工方案的Excel文件

  1. 发送上传文件的请求后, Server端处理文件上传,并通过websocket交互处理进度.

  2. 上传成功后, 保存上传的用户和文件路径信息.

  3. 读取Excel文件的内容,检查表关的数据,如果有不合要求的,返回读取文件出错,需要更正后重新上传.

  4. 继续读取文件内容,按行处理, 检查用户名和身份证号是否有冲突,有冲突则记录此异常.保存此行员工方案到临时表. 通过websocket交互处理进度.

  5. 数据读取完成后, 返回此次数据的主ID,前端调用此ID读取临时表的数据给页面展示.

请求上传文件

URI
/he/shebao_plan/import/excel        POST
参数
字段 类型 长度 必须有值 必传 描述
ws_id string 8 Y Y websocket的sessionID
binary 0 ~ 10M Y Y 文件流

上传员工方案的响应

WebSocket的进度消息
  1. 首先要连接WebSocket 并取得其会话ID (session ID)
  2. 进度消息的结构是Json包. 需要调用JSON.parse转换.基本包含3种协议.

     1. 成功打开WebSocket的协议(协议号: "WS_ID"), 内容体是会话ID.
    
     2. 普通消息协议(协议号: "WS_MSG"),内容体是进度消息.
    
     3. WS使用结束,可以关闭的协议(协议号: "WS_DONE"),内容体一般是"DONE".
    
文件处理结果响应

成功处理的话, data字段的值是此次处理的ID. 用此ID获取数据.

  • 有异常

    {
        "data": null,
        "msg": "员工的五险一金方案不存在,已经终止修改。",
        "code": 500
    }
    
  • 成功处理

    {
        "data": 60,
        "msg": "",
        "code": 200
    }
    

2 读取此次上传的数据

用上传成功返回的ID值为参数, 请求具体数据列表.

请求对应的数据

URI
/he/shebao_plan/import/data     POST
参数
字段 类型 长度 必须有值 必传 描述
temp_id int 10 Y Y 数据的主标识

响应

返回列表数据 和 有数据冲突的列表数据.

data字段结构
int temp_id;    // 主数据ID 
int count;      // 数据数量
List<TWXYJEplanDataTemp> dataList;    // 数据列表
        /**  */
        int id;
        /**  */
        int temp_id;
        /** 城市名称 */
        String city_name;
        /**  */
        int city_code;
        /** 姓名 */
        String user_name;
        /** 身份证 */
        String id_card;
        /** 联系方式 */
        String phone;
        /** 户籍性质 */
        String hukou;
        /** 民族 */
        String nation;
        /** 基数方案 */
        String param_name;
        /** 基数方案 */
        String radix_type;
        /** 社保基数 */
        double shebao_radix;
        /** 是否购买公积金 */
        String buy_fund;
        /** 公积金基数 */
        double fund_radix;
        /** 公积金企业比例 */
        double ent_ratio;
        /** 公积金员工比例 */
        double p_ratio;
int err_count;  // 异常数据数量
List<EPlanErrorVO> ErrorList;    // 异常数据列表
        int id;                // 异常数据标识
        int data_id;           // 对应数据的标识
        String user_name;      // 对应数据的姓名
        String id_card;        // 对应数据的身份证号
        String err_code;       // 冲突类型
        String err_value;      // 冲突值(依类型定)
        String desc;           // 冲突描述

3 修改冲突数据

请求

URI
/he/shebao_plan/import/edit/error    POST
参数
字段 类型 长度 必须有值 必传 描述
id int 10 Y Y 异常数据的标识
opt_code int 10 Y Y 冲突解决代码值
  • opt_code的值

    int OPT_NEW_USER = 10;    // 作为新员工方案
    int OPT_USE_NEW = 11;    // 采用新的数据
    int OPT_USE_OLD = 1;    // 采用旧有的数据
    

响应

返回修改的成功与否.

状态码
200    修改成功
500    修改出错和异常信息提示
600    参数校验不通过
响应数据示例
  • 有异常

    {
        "data": null,
        "msg": "操作码无效.",
        "code": 600
    }
    
  • 成功处理

    {
        "data": null,
        "msg": "",
        "code": 200
    }
    

4 导入员工方案数据

结合Websocket服务操作. 更具体的提示信息通过此服务发布.

请求

URI
/he/shebao_plan/import    POST
参数
字段 类型 长度 必须有值 必传 描述
temp_id int 10 Y Y 异常数据的标识
ws_id string 8 Y Y websocket的会话ID

响应

返回导入成功与否.

状态码
200    导入成功
500    导入出错和异常信息提示
600    参数校验不通过
响应数据示例
{
    "data": null,
    "msg": "",
    "code": 200
}