更新员工工资项(异常不阻塞)

接口说明: 批量上传录入员工指定工资项数据,更新接口每批次更新员工数量不超过100条。异常员工不阻塞其他员工数据更新,异常员工不执行更新,正常员工继续执行更新操作。

接口调用逻辑为先获取公司的公司项配置信息,然后再去更新员工对应的工资项。 avatar

请求方式:POST(HTTPS)
请求地址:https://api.xinrenxinshi.com/v5/payroll/update/ignore/abnormal

请求Header:

key value
access_token 获取的access_token的实际值

Query参数:

key value
sign 签名值

Body参数:

参数 类型 必传(Y/N) 说明
timestamp Long Y 请求时间戳(精确到毫秒)
employeePayrolls List<EmployeePayroll> Y 需要更新的员工及工资数据,每批次不超过100个

EmployeePayroll

参数 类型 必传(Y/N) 说明
employeeId String Y 员工id
bonus Map<String,Object> N 奖金调整,key为奖金项ID,value为调整后的奖金金额
adjust Map<String,Object> N 调整项调整,key为调整项ID,value为调整后的调整金额
cost Map<String,Object> N 成本调整,key为成本项ID,value为调整后的成本金额
other Map<String,Object> N 其他调整,key为其他项ID,value为调整后的其他项金额,更新的值类型详见工资项更新注意事项

工资项更新注意事项:

  • employeePayrolls批量更新员工数量每批次不超过100个,超出限制返回数量限制错误
  • 需要更新的工资项信息小数点后保留两位小数
  • 奖金项数值区间0~100,0000,输入不合法,返回参数错误
  • 调整项数值区间-100,0000~100,0000,输入不合法,返回参数错误
  • 成本项数值区间-100,0000~100,0000,输入不合法,返回参数错误
  • 其他项数值区间-1000,0000~1000,0000,输入不合法,返回参数错误
  • 对于文本类型以及数值类型的其他工资项,value为调整后的值;
  • 对于日期类型的其他工资项。value的值的格式为 "yyyy-MM-dd";
  • 对于选项类型的其他工资项。value的值为选项类型的datasource中的选项。例如:datasource为{A,B,C},则value只能为A或B或C;
  • 对于城市类型的其他工资项。value的值为城市列表接口中type为3(即区域类型为城市)的区域编码。

返回结果:

参数 类型 必传(Y/N) 说明
errcode Integer Y 错误码枚举值
errmsg String Y 错误码对应描述信息
data Map<String,String> N 响应数据, 如果更新的数据中存在异常的员工信息,则返回。其中key为员工id,value为异常原因

请求示例(HTTPS):

https://api.xinrenxinshi.com/v5/payroll/update/ignore/abnormal?sign=7omyqoNIY5QPWKCyQM3Q7Hk8mNQ=

请求Body示例:

{
    "employeePayrolls":[
        {
            "adjust":{
                "888365":"42000",
                "888366":"42000"
            },
            "bonus":{
                "2050451":"45221",
                "2050453":"44221",
                "2050455":"43221"
            },
            "cost":{
                "1266417":"410010",
                "1266419":"4000"
            },
            "employeeId":"445eee504ec8475db0ab04da81b5edf8",
            "other":{
                "06c39d5998614d91af6ac4e5d6738392":"171",
                "f231a9fa2fba48d3be6c199e663bd91f":"2我是多行文本11111",
                "1ce38a5158a4498f98b2ab1ed5b30208":"自定义选项",
                "23d962fc7be144bf9c6a5a9606172fa6":"我是单行文本1个字符",
                "05d3a4b445f3450ab37c98b721fde495":"12",
                "1ba5cd0b0b264c86997f945b0de0711c":"2021-08-30"
            }
        },
        {
            "adjust":{
                "888365":"42000",
                "888366":"42000"
            },
            "bonus":{
                "2050453":"45221",
                "2050455":"44221"
            },
            "cost":{
                "1266417":"410010"
            },
            "employeeId":"ba241cdcd46040dd9a3bdede5a02fc8e",
            "other":{
                "06c39d5998614d91af6ac4e5d6738392":"144",
                "f231a9fa2fba48d3be6c199e663bd91f":"222222是多行文本",
                "1ce38a5158a4498f98b2ab1ed5b30208":"自定义选项",
                "23d962fc7be144bf9c6a5a9606172fa6":"我是单行文本2个字符",
                "05d3a4b445f3450ab37c98b721fde495":"13",
                "1ba5cd0b0b264c86997f945b0de0711c":"2022-08-28"
            }
        }
    ],
    "timestamp":1706681425240
}

SDK请求示例(java):

 PayrollUpdateIgnoreAbnormalRequest request = new PayrollUpdateIgnoreAbnormalRequest(access_token());

List<EmployeePayroll> list = new ArrayList<>();
EmployeePayroll employeePayroll = new EmployeePayroll();
employeePayroll.setEmployeeId("ba241cdcd46040dd9a3bdede5a02fc8e");
HashMap<String, String> adjust = new HashMap<>();
adjust.put("888365", "2000");
employeePayroll.setAdjust(adjust);
HashMap<String, String> bonus = new HashMap<>();
bonus.put("2050451", "5000");
employeePayroll.setBonus(bonus);
HashMap<String, String> cost = new HashMap<>();
cost.put("1266419", "1000");
employeePayroll.setCost(cost);
HashMap<String, String> other = new HashMap<>();
other.put("23d962fc7be144bf9c6a5a9606172fa6", "我是单行文本");
other.put("f231a9fa2fba48d3be6c199e663bd91f", "我是多行文本");
other.put("06c39d5998614d91af6ac4e5d6738392", "143");
other.put("1ba5cd0b0b264c86997f945b0de0711c", "2021-08-09");
other.put("1ce38a5158a4498f98b2ab1ed5b30208", "自定义选项");
other.put("f248ac7531b1431fab07c7ec1e30a38a", "2000.01");
employeePayroll.setOther(other);
list.add(employeePayroll);

EmployeePayroll employeePayroll1 = new EmployeePayroll();
employeePayroll1.setEmployeeId("445eee504ec8475db0ab04da81b5edf8");
HashMap<String, String> adjust1 = new HashMap<>();
adjust1.put("888365", "2000");
employeePayroll1.setAdjust(adjust1);
HashMap<String, String> bonus1 = new HashMap<>();
bonus1.put("2050451", "5000");
employeePayroll1.setBonus(bonus1);
HashMap<String, String> cost1 = new HashMap<>();
cost1.put("1266419", "1000");
employeePayroll1.setCost(cost1);
HashMap<String, String> other1 = new HashMap<>();
other1.put("23d962fc7be144bf9c6a5a9606172fa6", "我是单行文本1");
other1.put("f231a9fa2fba48d3be6c199e663bd91f", "我是多行文本");
other1.put("06c39d5998614d91af6ac4e5d6738392", "143");
other1.put("1ba5cd0b0b264c86997f945b0de0711c", "2021-08-09");
other1.put("1ce38a5158a4498f98b2ab1ed5b30208", "自定义选项");
other1.put("f248ac7531b1431fab07c7ec1e30a38a", "2000.01");
employeePayroll.setOther(other);
list.add(employeePayroll1);

request.setEmployeePayrolls(list);

OpenapiResponse<Void> voidOpenapiResponse = XrxsPayrollService.updateEmpPayrollSettingIgnoreAbnormal(request);

响应示例:

{
    "errcode":0,
    "errmsg":"更新员工工资项部分成功",
    "data":{
        "ba241cdcd46040dd9a3bdede5a02fc8e":"该员工尚未定薪",
        "445eee504ec8475db0ab04da81b5edf8":"当前工资账套[202105]不存在该员工"
    }
}
2024 © 企家有道网络技术(北京)有限公司版权所有@京ICP备15035315号 all right reserved,powered by Gitbookupdate by: 2024-02-27 14:12:36

results matching ""

    No results matching ""