This commit is contained in:
itzhang 2025-04-24 11:29:55 +08:00
parent bf0de882b4
commit d873d97584
3 changed files with 82 additions and 79 deletions

View File

@ -46,8 +46,8 @@ public class DeptController {
private RestTemplate restTemplate = new RestTemplate();
public static void main(String[] args) {
//new DeptController().syncDept();
new DeptController().syncDeptUp();
new DeptController().syncDept();
//new DeptController().syncDeptUp();
}
/**
@ -73,7 +73,7 @@ public class DeptController {
Map data = new HashMap<>();
data.put("createtime", "2020-01-01 00:00:00");
data.put("enable", "1");
data.put("number", Arrays.asList("ZHY002.005.003"));
data.put("number", Arrays.asList("ZHY002.005.003.004"));
// data.put("level", "3");
Map deptReq = new HashMap<>();
@ -81,7 +81,7 @@ public class DeptController {
deptReq.put("pageNo", 1);
deptReq.put("pageSize", 1999);
String accessToken = kdTokenController.getKDAccessToken();
String accessToken = new KDTokenController().getKDAccessToken();
if (accessToken == null || accessToken.equals("")) {
log.info("金蝶token为空或不存在");
@ -98,7 +98,7 @@ public class DeptController {
//开始发起请求
//请求地址
String deptUrl = "http://192.168.31.121:8022/ierp/kapi/v2/f9w5/base/bos_adminorg/adminOrgQuery";
String deptUrl = "https://lxr2.zhydsp.cn:40448/ierp/kapi/v2/f9w5/base/bos_adminorg/adminOrgQuery";
String deptRes = "";
try {
@ -150,7 +150,7 @@ public class DeptController {
//部门名称
String deptName = deptData.getString("name");
if (deptName.contains("")){
if (deptName.contains("")) {
deptName = deptName.replace("", "_");
}
//父部门编码
@ -162,7 +162,7 @@ public class DeptController {
//开始封装数据
Map deptSyncReq = new HashMap<>();
deptSyncReq.put("name", deptName+"_");
deptSyncReq.put("name", deptName);
deptSyncReq.put("erp_id__c", deptId);
deptSyncReq.put("field_Vj6sf__c", deptCode);
deptSyncReq.put("field_v711K__c", parentDeptName);
@ -186,7 +186,7 @@ public class DeptController {
System.out.println(parentDeptRes);
if (!"success".equals(parentDeptRes.getString("errorDescription"))){
if (!"success".equals(parentDeptRes.getString("errorDescription"))) {
log.info("查询失败");
continue;
}
@ -205,7 +205,7 @@ public class DeptController {
//判断部门是否在crm中存在
//请求封装
JSONObject deptIsExistReq = crmRequestUtil.getCRMList(Arrays.asList(
new Filter("EQ", "name", Arrays.asList(deptName+"_")),
new Filter("EQ", "name", Arrays.asList(deptName + "_")),
new Filter("EQ", "field_v711K__c", Arrays.asList(parentDeptName)),
new Filter("EQ", "field_31u4r__c", Arrays.asList(parentDeptCode))
), "DepartmentObj");
@ -313,7 +313,7 @@ public class DeptController {
Map data = new HashMap<>();
data.put("modifytime", "2020-01-01 00:00:00");
data.put("enable", "1");
//data.put("number", Arrays.asList("ZHY003.002"));
data.put("number", Arrays.asList("ZHY002.005.001.006"));
// data.put("level", "3");
Map deptReq = new HashMap<>();
@ -321,7 +321,7 @@ public class DeptController {
deptReq.put("pageNo", 1);
deptReq.put("pageSize", 1000);
String accessToken = kdTokenController.getKDAccessToken();
String accessToken = new KDTokenController().getKDAccessToken();
if (accessToken == null || accessToken.equals("")) {
log.info("金蝶token为空或不存在");
@ -336,7 +336,7 @@ public class DeptController {
//开始发起请求
//请求地址
String deptUrl = "http://192.168.31.121:8022/ierp/kapi/v2/f9w5/base/bos_adminorg/adminOrgQuery";
String deptUrl = "https://lxr2.zhydsp.cn:40448/ierp/kapi/v2/f9w5/base/bos_adminorg/adminOrgQuery";
String deptRes = "";
try {
@ -389,7 +389,7 @@ public class DeptController {
//部门名称
String deptName = deptData.getString("name");
if (deptName.contains("")){
if (deptName.contains("")) {
deptName = deptName.replace("", "_");
}
//父部门编码
@ -555,7 +555,7 @@ public class DeptController {
//开始发起请求
//请求地址
String deptUrl = "http://192.168.31.121:8022/ierp/kapi/v2/f9w5/base/bos_adminorg/adminOrgQuery";
String deptUrl = "https://lxr2.zhydsp.cn:40448/ierp/kapi/v2/f9w5/base/bos_adminorg/adminOrgQuery";
String deptRes = "";
try {

View File

@ -33,8 +33,8 @@ public class KDTokenController {
* @Author weiloong_zhang
*/
public static void main(String[] args) {
//new KDTokenController().getKDAppToken();
new KDTokenController().getKDAccessToken();
new KDTokenController().getKDAppToken();
//new KDTokenController().getKDAccessToken();
}
/**
@ -43,13 +43,12 @@ public class KDTokenController {
* @return void
* @Author weiloong_zhang
*/
@PostMapping("/getKD/APP_token")
public String getKDAppToken() {
log.info("开始获取金蝶的AppToken");
//开始封装
//接口地址
String appTokenUrl = "http://192.168.31.121:8022/ierp/api/getAppToken.do";
String appTokenUrl = "https://lxr2.zhydsp.cn:40448/ierp/api/getAppToken.do";
//请求参数
LinkedHashMap appTokenParams = new LinkedHashMap<>();
appTokenParams.put("appId", "erpapi");
@ -88,7 +87,6 @@ public class KDTokenController {
* @return java.lang.String
* @Author weiloong_zhang
*/
@PostMapping("/getKD/access_token")
public String getKDAccessToken() {
log.info("开始获取金蝶accessToken");
@ -105,7 +103,7 @@ public class KDTokenController {
//不存在将执行获取accessToken的逻辑
//开始封装参数
//URL
String accessTokenUrl = "http://192.168.31.121:8022/ierp/api/login.do";
String accessTokenUrl = "https://lxr2.zhydsp.cn:40448/ierp/api/login.do";
//请求参数
LinkedHashMap accessTokenParams = new LinkedHashMap<>();

View File

@ -1,25 +1,26 @@
package org.ssssssss.magicboot.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xxl.job.core.context.XxlJobHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.ssssssss.magicboot.fxapi.HttpClientResult;
import org.ssssssss.magicboot.fxapi.HttpClientUtils;
import org.ssssssss.magicboot.fxapi.XKTokenAccess;
import org.ssssssss.magicboot.zdyutils.FXHTTP;
import org.ssssssss.magicboot.zdyutils.FXTIC;
import org.ssssssss.magicboot.zdyutils.GcjJson;
import org.ssssssss.magicboot.zdyutils.MagicApi;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xxl.job.core.context.XxlJobHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.ssssssss.magicboot.fxapi.HttpClientResult;
import org.ssssssss.magicboot.fxapi.HttpClientUtils;
import org.ssssssss.magicboot.fxapi.XKTokenAccess;
import org.ssssssss.magicboot.zdyutils.FXHTTP;
import org.ssssssss.magicboot.zdyutils.FXTIC;
import org.ssssssss.magicboot.zdyutils.GcjJson;
import org.ssssssss.magicboot.zdyutils.MagicApi;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* 人员同步
@ -42,14 +43,20 @@ public class UsceController {
// time = "2024-05-01";
String sendUrl = "https://192.168.31.121:8022/ierp/kapi/v2/f9w5/base/bos_user/userQuery";
Map<String, String> headers = new HashMap<String, String>();
String token = "2095350818281620480_38r7dCr7UfM45m43Givw964713GJgVwF2xS0uolYf9EvP6kgi8KeRegeih5L6qmyWCr5LjUCeEe8lVwMGsT3KLWz3PxgAwuBCuau01";
headers.put("accessToken", token);//放token
//String token = "2095350818281620480_38r7dCr7UfM45m43Givw964713GJgVwF2xS0uolYf9EvP6kgi8KeRegeih5L6qmyWCr5LjUCeEe8lVwMGsT3KLWz3PxgAwuBCuau01";
String accessToken = new KDTokenController().getKDAccessToken();
if (accessToken == null || accessToken.equals("")) {
log.info("金蝶token为空或不存在");
return;
}
headers.put("accessToken", accessToken);//放token
JSONObject params = new JSONObject();
JSONObject datajson = new JSONObject();
datajson.put("createtime","2012-02-26 11:04:43");
JSONArray arr = new JSONArray();
datajson.put("createtime", "2012-02-26 11:04:43");
JSONArray arr = new JSONArray();
String[] strings = {
"ZHY003.009"
};
@ -60,23 +67,22 @@ public class UsceController {
}
datajson.put("dpt_number",arr);
datajson.put("dpt_number", arr);
params.put("data",datajson);
params.put("pageNo",1);
params.put("pageSize",1000);
params.put("data", datajson);
params.put("pageNo", 1);
params.put("pageSize", 1000);
HttpClientResult rtn = HttpClientUtils.doPostJson(sendUrl, headers, params.toJSONString());
String resStr = rtn.getContent();
JSONObject resjs = JSONObject.parseObject(resStr);
if (resjs!=null){
if("0".equals(resjs.getString("errorCode"))){//查询成功
JSONObject data = resjs.getJSONObject("data");
System.out.println("查询人员总数量" + data.getInteger("totalCount"));
JSONArray resJson = data.getJSONArray("rows");
if (resjs != null) {
if ("0".equals(resjs.getString("errorCode"))) {//查询成功
JSONObject data = resjs.getJSONObject("data");
System.out.println("查询人员总数量" + data.getInteger("totalCount"));
JSONArray resJson = data.getJSONArray("rows");
System.out.println("待同步人员数量" + resJson.size());
@ -172,21 +178,21 @@ public class UsceController {
String phone = GcjJson.getNodeValue(str, "JSON.phone") != null ? GcjJson.getNodeValue(str, "JSON.phone").toString() : "";
//状态
//状态
String enable = GcjJson.getNodeValue(str, "JSON.enable") != null ? GcjJson.getNodeValue(str, "JSON.enable").toString() : "";
JSONArray entryentity = str.getJSONArray("entryentity");
JSONArray entryentity = str.getJSONArray("entryentity");
String deptNumber = "";
if(entryentity!=null){
if (entryentity != null) {
JSONObject deptobj = (JSONObject) entryentity.get(0);
deptNumber = deptobj.getString("dpt_number");
deptNumber = deptobj.getString("dpt_number");
}
try{
JSONObject dataSyn = MagicApi.getSendSYNDataUser("user", syn_type, dataId,"3");
if (dataSyn != null && dataId.equals(dataSyn.getString("dsfId")) && endtime.equals(dataSyn.getString("mark")) ) {
try {
JSONObject dataSyn = MagicApi.getSendSYNDataUser("user", syn_type, dataId, "3");
if (dataSyn != null && dataId.equals(dataSyn.getString("dsfId")) && endtime.equals(dataSyn.getString("mark"))) {
log.info("数据已存在-" + name);
XxlJobHelper.log("--数据已存在---" + name);
tbflag = true;
@ -200,11 +206,11 @@ public class UsceController {
if (crmId != null && !crmId.equals("")) {
//人员id
map.put("body.data.object_data._id", crmId);
flag=false;
flag = false;
}
String crmdeptID = "999999";
if (deptNumber!=""){
crmdeptID = fxapi.getDataBYID("DepartmentObj", "field_Vj6sf__c", deptNumber, "JSON.data.dataList[0]._id");
if (deptNumber != "") {
crmdeptID = fxapi.getDataBYID("DepartmentObj", "field_Vj6sf__c", deptNumber, "JSON.data.dataList[0]._id");
System.out.println(crmdeptID);
}
@ -216,20 +222,21 @@ public class UsceController {
map.put("body.data.object_data.user_name", phone);
map.put("body.data.object_data.email", email);
if(enable.equals("2")){
if (enable.equals("2")) {
map.put("body.data.object_data.status", "1");
map.put("body.data.object_data.is_pause_login", true);
}else {
} else {
map.put("body.data.object_data.status", "0");
map.put("body.data.object_data.is_pause_login", false);
}
if(gender.equals("1")){
if (gender.equals("1")) {
map.put("body.data.object_data.sex", "M");
}if(gender.equals("2")){
}
if (gender.equals("2")) {
map.put("body.data.object_data.sex", "F");
}else {
} else {
map.put("body.data.object_data.sex", "P");
}
map.put("body.data.object_data.main_department[0]", crmdeptID);//主属部门
@ -245,20 +252,21 @@ public class UsceController {
log.info("--请求json---" + obj);
XxlJobHelper.log("--请求json---" + obj);
}catch (Exception e) {
} catch (Exception e) {
sendFlag = true;
stringBuffer.append("参数解析错误,请联系开发人员");
e.printStackTrace();
}
getSynDataSave(stringBuffer,sendFlag,flag,fxapi,dataId,name,obj,getData);
getSynDataSave(stringBuffer, sendFlag, flag, fxapi, dataId, name, obj, getData);
}
}
}
/**
* 写数据
*/
public void getSynDataSave(StringBuffer stringBuffer,Boolean sendFlag,Boolean flag,FXHTTP fxapi,String dataId,String nameData,JSONObject obj,JSONObject str) {
public void getSynDataSave(StringBuffer stringBuffer, Boolean sendFlag, Boolean flag, FXHTTP fxapi, String dataId, String nameData, JSONObject obj, JSONObject str) {
String syn_type = "0";//同步类型 0新增 1修改 2删除
String res_url = "";
String res_param = "";
@ -266,14 +274,14 @@ public class UsceController {
try {
if (flag) {
res = fxapi.saveV2Obj(obj);
res_url=FXTIC.URL_FX_CREATE;
res_url = FXTIC.URL_FX_CREATE;
} else {
syn_type = "1";
res = fxapi.updateV2Obj(obj);
res_url=FXTIC.URL_FX_UPDATE;
res_url = FXTIC.URL_FX_UPDATE;
}
res_param=obj.toJSONString();
log.info("返回值:"+res);
res_param = obj.toJSONString();
log.info("返回值:" + res);
JSONObject resjs = JSON.parseObject(res);
if (resjs != null && "0".equals(resjs.getString("errorCode"))) {
@ -309,7 +317,4 @@ public class UsceController {
}
}