feat:add sync kingdee api

This commit is contained in:
zzs 2024-09-27 09:33:31 +08:00
parent 8dc83dc1dd
commit 99661122ab

View File

@ -1,5 +1,6 @@
package com.ensign.crm.module.crm.job;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ensign.crm.framework.quartz.core.handler.JobHandler;
@ -11,9 +12,12 @@ import com.ensign.crm.module.system.dal.mysql.user.AdminUserMapper;
import com.ensign.crm.module.system.service.user.AdminUserService;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -43,22 +47,20 @@ public class UserSyncKingdeeTask implements JobHandler {
queryWrapper.eq(AdminUserDO::getStatus, 0)
.eq(AdminUserDO::getIsSyncKingdee, 1);
List<AdminUserDO> users = userMapper.selectList(queryWrapper);
List<Map<String, Object>> list = new ArrayList<>();
List<AdminUserDO> errors = new ArrayList<>();
for (AdminUserDO user : users) {
Map<String, Object> addUser = new HashMap<>();
addUser.put("number", user.getUsername());
addUser.put("name", user.getNickname());
addUser.put("webuserid", user.getId());
addUser.put("webdeptid", user.getDeptId());
addUser.put("function", "B");
addUser.put("phone", user.getMobile());
list.add(addUser);
doSyncUser(user, errors);
}
Map<String, Object> body = new HashMap<>();
body.put("data", list);
if (!errors.isEmpty()) {
throw new AllKingdeeException("同步异常:" + errors);
}
return "success";
}
public void doSyncUser(AdminUserDO user, List<AdminUserDO> errors) throws AllKingdeeException, IOException, URISyntaxException {
Map<String, Object> body = convertToKingdeeObj(user);
log.info("请求body{}", body);
log.info("请求{}条", users.size());
JSONObject jsonObject = proxyService.doRequest("/ierp/kapi/v2/yem/yem_crmbasic/yem_crm_dealeruser/CRM_yem_crm_dealeruser", "POST", body, null);
log.info("响应body{}", jsonObject);
if (jsonObject.containsKey("status") && jsonObject.containsKey("errorCode")) {
@ -67,12 +69,31 @@ public class UserSyncKingdeeTask implements JobHandler {
JSONObject dataObject = jsonObject.getJSONObject("data");
if (dataObject.containsKey("successCount")) {
int successCount = dataObject.getInteger("successCount");
log.info("成功{}条", successCount);
return "success";
if (successCount < 1) {
errors.add(user);
log.error("异常数据");
}
}
}
}
}
throw new AllKingdeeException("task error" + jsonObject);
}
@NotNull
public static Map<String, Object> convertToKingdeeObj(AdminUserDO user) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> addUser = new HashMap<>();
addUser.put("number", user.getUsername());//编码
addUser.put("name", user.getNickname());//经销商销售员
addUser.put("webuserid", user.getId());//移动端人员ID
addUser.put("webdeptid", user.getDeptId());//经销商.移动端部门ID
addUser.put("function", "B");//职能 [A:经销商后台, B:经销商销售员]
addUser.put("phone", user.getMobile());//手机号
addUser.put("createorg", "110");//创建组织.编码
list.add(addUser);
Map<String, Object> body = new HashMap<>();
body.put("data", list);
return body;
}
}