110 lines
3.9 KiB
Java
110 lines
3.9 KiB
Java
package com.evo.kingdeeUtils;
|
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
import com.evo.common.utils.DateUtils;
|
|
import com.evo.common.utils.spring.SpringUtils;
|
|
import com.evo.kingdeeUtils.exception.KingdeeException;
|
|
import com.evo.kingdeeUtils.kenum.BaseEnum;
|
|
import com.evo.kingdeeUtils.kenum.KingdeeParamsEnum;
|
|
import com.evo.kingdeeUtils.mapper.LogKingDeeMapper;
|
|
import com.evo.kingdeeUtils.vo.LogKingDee;
|
|
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* 类
|
|
*
|
|
* @ClassName:KingdeeRequestUtils
|
|
* @date: 2025年07月11日 9:33
|
|
* @author: andy.shi
|
|
* @contact: 17330188597
|
|
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
|
*/
|
|
|
|
@Slf4j
|
|
public class KingdeeRequestUtils {
|
|
|
|
/***
|
|
* 员工保存接口
|
|
* @param params
|
|
* 参数说明对照关系: key-value
|
|
* FName-员工姓名
|
|
* FStaffNumber-员工编号
|
|
* FNumber-岗位编号
|
|
* FPostDept_FNumber_岗位所属部门编号
|
|
*/
|
|
public static void employeeSave(Map<String, String> params){
|
|
// request(params, KingdeeParamsEnum.Employee.SAVE);
|
|
}
|
|
|
|
/***
|
|
* 员工禁用接口
|
|
* @param params
|
|
* 参数说明对照关系: key-value
|
|
* Numbers-员工编码 (多个使用,分割, 即: 001,002,003)
|
|
*/
|
|
public static void employeeDisabled(Map<String, String> params){
|
|
// request(params, KingdeeParamsEnum.Employee.DISABLED);
|
|
}
|
|
|
|
/***
|
|
* 岗位调整
|
|
* @param params
|
|
* 参数说明对照关系: key-value
|
|
* NeedUpDateFields-更新字段 (多个使用,分割, 如:FDept_FNumber,FPosition_FNumber )
|
|
* FNumber-员工编号
|
|
* FDept_FNumber-部门编号
|
|
* FPosition_FNumber-岗位编号
|
|
*/
|
|
public static void updateJobInfo(Map<String, String> params){
|
|
// request(params, KingdeeParamsEnum.JobInfo.UPDATE);
|
|
}
|
|
|
|
private static void request(Map<String, String> params, BaseEnum paramEnum){
|
|
log.error("{}====> 接口调用, 参数为:{} ", paramEnum.getDes(), JSON.toJSONString(params));
|
|
List<String> keyList = params.entrySet().stream().map(Map.Entry<String, String>::getKey).collect(Collectors.toList());
|
|
Map<String,String> requiredParams = paramEnum.getRequiredParams();
|
|
for (String key : requiredParams.keySet()){
|
|
if(!keyList.contains(key)){
|
|
throw new KingdeeException(requiredParams.get(key));
|
|
}
|
|
}
|
|
String requestParam = paramEnum.getParamJson();
|
|
for (String key : params.keySet()){
|
|
requestParam = requestParam.replaceAll(key+ KingdeeParamsEnum.REQUEST_PARAM_SUFFIX, params.get(key));
|
|
}
|
|
//更新时间
|
|
requestParam = requestParam.replaceAll("date"+KingdeeParamsEnum.REQUEST_PARAM_SUFFIX, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", new Date()));
|
|
String resultJson = "";
|
|
try {
|
|
K3CloudApi client = new K3CloudApi();
|
|
resultJson = client.save(paramEnum.getFromId(), requestParam);
|
|
log.info("{}====>接口返回结果: {}", paramEnum.getDes(), resultJson);
|
|
|
|
} catch (Exception e) {
|
|
resultJson = e.getMessage();
|
|
log.error("{}====>请求错误: {}", paramEnum.getDes(), e.getMessage());
|
|
}finally {
|
|
//记录日志
|
|
instLog(paramEnum, params, requestParam, resultJson);
|
|
}
|
|
}
|
|
|
|
|
|
private static void instLog(BaseEnum paramEnum, Map<String, String> params, String requestInfo, String response){
|
|
LogKingDee logKingDee = new LogKingDee();
|
|
logKingDee.setRequestTime(new Date());
|
|
logKingDee.setType(paramEnum.getDes());
|
|
logKingDee.setRequestParams(JSON.toJSONString(params));
|
|
logKingDee.setRequestInfo(requestInfo);
|
|
logKingDee.setResponse(response);
|
|
SpringUtils.getBean(LogKingDeeMapper.class).insert(logKingDee);
|
|
}
|
|
|
|
}
|