diff --git a/ensign-module-crm/ensign-module-crm-biz/src/main/java/com/ensign/crm/module/crm/job/UserSyncKingdeeTask.java b/ensign-module-crm/ensign-module-crm-biz/src/main/java/com/ensign/crm/module/crm/job/UserSyncKingdeeTask.java index a4d8d4c..79e25e6 100644 --- a/ensign-module-crm/ensign-module-crm-biz/src/main/java/com/ensign/crm/module/crm/job/UserSyncKingdeeTask.java +++ b/ensign-module-crm/ensign-module-crm-biz/src/main/java/com/ensign/crm/module/crm/job/UserSyncKingdeeTask.java @@ -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 users = userMapper.selectList(queryWrapper); - List> list = new ArrayList<>(); + List errors = new ArrayList<>(); for (AdminUserDO user : users) { - Map 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 body = new HashMap<>(); - body.put("data", list); + if (!errors.isEmpty()) { + throw new AllKingdeeException("同步异常:" + errors); + } + return "success"; + } + + public void doSyncUser(AdminUserDO user, List errors) throws AllKingdeeException, IOException, URISyntaxException { + Map 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 convertToKingdeeObj(AdminUserDO user) { + List> list = new ArrayList<>(); + + Map 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 body = new HashMap<>(); + body.put("data", list); + return body; } }