From 0642ad29a2c00e228bf8be863b4b2e02a98c46fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=85=89=E8=B5=B7?= <1198568182@qq.com> Date: Fri, 28 Mar 2025 09:42:10 +0800 Subject: [PATCH] 1 --- .../日志/{保存设备BOM.ms => 保存人员同步日志.ms} | 8 +- .../{PLMBOM保存.ms => 人员待同步保存.ms} | 8 +- .../B-同步日志/{修改.ms => 修改人员同步.ms} | 8 +- data/magic-api/api/B-同步日志/查询人员同步.ms | 173 ++++++++++ .../magicboot/controller/UsceController.java | 316 ++++++++++++++++++ .../magicboot/fxapi/HttpClientUtils.java | 30 ++ .../magicboot/fxapi/XKTokenAccess.java | 6 +- .../ssssssss/magicboot/zdyutils/FXTIC.java | 4 +- .../ssssssss/magicboot/zdyutils/MagicApi.java | 72 ++-- .../magicboot/fxapi/HttpClientUtils.class | Bin 8989 -> 9691 bytes .../magicboot/fxapi/XKTokenAccess.class | Bin 4828 -> 4828 bytes .../ssssssss/magicboot/zdyutils/FXTIC.class | Bin 1427 -> 1427 bytes .../magicboot/zdyutils/MagicApi.class | Bin 10507 -> 10510 bytes 13 files changed, 572 insertions(+), 53 deletions(-) rename data/magic-api/api/B-传输日志/日志/{保存设备BOM.ms => 保存人员同步日志.ms} (87%) rename data/magic-api/api/B-同步日志/{PLMBOM保存.ms => 人员待同步保存.ms} (94%) rename data/magic-api/api/B-同步日志/{修改.ms => 修改人员同步.ms} (95%) create mode 100644 data/magic-api/api/B-同步日志/查询人员同步.ms create mode 100644 magic-boot/src/main/java/org/ssssssss/magicboot/controller/UsceController.java diff --git a/data/magic-api/api/B-传输日志/日志/保存设备BOM.ms b/data/magic-api/api/B-传输日志/日志/保存人员同步日志.ms similarity index 87% rename from data/magic-api/api/B-传输日志/日志/保存设备BOM.ms rename to data/magic-api/api/B-传输日志/日志/保存人员同步日志.ms index dc6c736..10028d0 100644 --- a/data/magic-api/api/B-传输日志/日志/保存设备BOM.ms +++ b/data/magic-api/api/B-传输日志/日志/保存人员同步日志.ms @@ -3,13 +3,13 @@ "id" : "copy1724404999212d47014", "script" : null, "groupId" : "6ee06a9b9fe04b85b70a9364ef324ab4", - "name" : "保存设备BOM", + "name" : "保存人员同步日志", "createTime" : null, - "updateTime" : 1741679160582, + "updateTime" : 1743054112942, "lock" : null, "createBy" : null, "updateBy" : null, - "path" : "/savesbbom", + "path" : "/saveuser", "method" : "POST", "parameters" : [ ], "options" : [ { @@ -47,4 +47,4 @@ } ================================ data.create_time = new Date() -return db.table('send_log_sbbom').primary('log_id',uuid()).save(data) \ No newline at end of file +return db.table('send_log_user').primary('log_id',uuid()).save(data) \ No newline at end of file diff --git a/data/magic-api/api/B-同步日志/PLMBOM保存.ms b/data/magic-api/api/B-同步日志/人员待同步保存.ms similarity index 94% rename from data/magic-api/api/B-同步日志/PLMBOM保存.ms rename to data/magic-api/api/B-同步日志/人员待同步保存.ms index 6b3d004..474cf54 100644 --- a/data/magic-api/api/B-同步日志/PLMBOM保存.ms +++ b/data/magic-api/api/B-同步日志/人员待同步保存.ms @@ -3,13 +3,13 @@ "id" : "copy1701349941295d22163", "script" : null, "groupId" : "4506c21162d24d4c81bad5bc8707672a", - "name" : "PLMBOM保存", + "name" : "人员待同步保存", "createTime" : null, - "updateTime" : 1740044319573, + "updateTime" : 1743047168232, "lock" : null, "createBy" : null, "updateBy" : null, - "path" : "/save", + "path" : "/saveuser", "method" : "POST", "parameters" : [ ], "options" : [ { @@ -122,5 +122,5 @@ data.create_time = new Date() -return db.table("send_syn_plmbom").primary('send_id', () => uuid()) +return db.table("send_syn_user").primary('send_id', () => uuid()) .save(data) \ No newline at end of file diff --git a/data/magic-api/api/B-同步日志/修改.ms b/data/magic-api/api/B-同步日志/修改人员同步.ms similarity index 95% rename from data/magic-api/api/B-同步日志/修改.ms rename to data/magic-api/api/B-同步日志/修改人员同步.ms index 6b6a62a..51aafe2 100644 --- a/data/magic-api/api/B-同步日志/修改.ms +++ b/data/magic-api/api/B-同步日志/修改人员同步.ms @@ -3,13 +3,13 @@ "id" : "copy1701349998399d81042", "script" : null, "groupId" : "4506c21162d24d4c81bad5bc8707672a", - "name" : "修改", + "name" : "修改人员同步", "createTime" : null, - "updateTime" : 1740193090239, + "updateTime" : 1743047188007, "lock" : null, "createBy" : null, "updateBy" : null, - "path" : "/update", + "path" : "/updateuser", "method" : "POST", "parameters" : [ ], "options" : [ { @@ -122,5 +122,5 @@ data.update_time = new Date() -return db.table("send_syn_plmbom").primary('send_id') +return db.table("send_syn_user").primary('send_id') .update(data) \ No newline at end of file diff --git a/data/magic-api/api/B-同步日志/查询人员同步.ms b/data/magic-api/api/B-同步日志/查询人员同步.ms new file mode 100644 index 0000000..5d2e572 --- /dev/null +++ b/data/magic-api/api/B-同步日志/查询人员同步.ms @@ -0,0 +1,173 @@ +{ + "properties" : { }, + "id" : "copy1743047080239d23438", + "script" : null, + "groupId" : "4506c21162d24d4c81bad5bc8707672a", + "name" : "查询人员同步", + "createTime" : null, + "updateTime" : 1743047414999, + "lock" : null, + "createBy" : null, + "updateBy" : null, + "path" : "/queryuser", + "method" : "GET", + "parameters" : [ { + "name" : "sendType", + "value" : "user", + "description" : null, + "required" : false, + "dataType" : "String", + "type" : null, + "defaultValue" : null, + "validateType" : null, + "error" : null, + "expression" : null, + "children" : null + }, { + "name" : "sendStatus3", + "value" : "3", + "description" : null, + "required" : false, + "dataType" : "String", + "type" : null, + "defaultValue" : null, + "validateType" : null, + "error" : null, + "expression" : null, + "children" : null + }, { + "name" : "crmId", + "value" : "665532391d23d0000111cab9", + "description" : null, + "required" : false, + "dataType" : "String", + "type" : null, + "defaultValue" : null, + "validateType" : null, + "error" : null, + "expression" : null, + "children" : null + }, { + "name" : "sendSyn", + "value" : "0", + "description" : null, + "required" : false, + "dataType" : "String", + "type" : null, + "defaultValue" : null, + "validateType" : null, + "error" : null, + "expression" : null, + "children" : null + } ], + "options" : [ ], + "requestBody" : "", + "headers" : [ ], + "paths" : [ ], + "responseBody" : "{\n \"code\": 200,\n \"message\": \"success\",\n \"data\": [],\n \"timestamp\": 1716889610473,\n \"executeTime\": 8\n}", + "description" : null, + "requestBodyDefinition" : null, + "responseBodyDefinition" : { + "name" : "", + "value" : "", + "description" : "", + "required" : false, + "dataType" : "Object", + "type" : null, + "defaultValue" : null, + "validateType" : "", + "error" : "", + "expression" : "", + "children" : [ { + "name" : "code", + "value" : "200", + "description" : "", + "required" : false, + "dataType" : "Integer", + "type" : null, + "defaultValue" : null, + "validateType" : "", + "error" : "", + "expression" : "", + "children" : [ ] + }, { + "name" : "message", + "value" : "success", + "description" : "", + "required" : false, + "dataType" : "String", + "type" : null, + "defaultValue" : null, + "validateType" : "", + "error" : "", + "expression" : "", + "children" : [ ] + }, { + "name" : "data", + "value" : "", + "description" : "", + "required" : false, + "dataType" : "Array", + "type" : null, + "defaultValue" : null, + "validateType" : "", + "error" : "", + "expression" : "", + "children" : [ ] + }, { + "name" : "timestamp", + "value" : "1716889610473", + "description" : "", + "required" : false, + "dataType" : "Long", + "type" : null, + "defaultValue" : null, + "validateType" : "", + "error" : "", + "expression" : "", + "children" : [ ] + }, { + "name" : "executeTime", + "value" : "8", + "description" : "", + "required" : false, + "dataType" : "Integer", + "type" : null, + "defaultValue" : null, + "validateType" : "", + "error" : "", + "expression" : "", + "children" : [ ] + } ] + } +} +================================ +//查询本机mysql +return db.select( +""" + SELECT * FROM `send_syn_user` where + send_type=#{sendType} + + and dsf_id=#{dataId} + + + and dsfzhu_id=#{datapId} + + + and send_syn=#{sendSyn} + + + and send_status=#{sendStatus} + + + and crm_id=#{crmId} + + + and dsf_id=#{dsfId} + + + and send_status!=#{sendStatus3} + + order by create_time desc + +"""); \ No newline at end of file diff --git a/magic-boot/src/main/java/org/ssssssss/magicboot/controller/UsceController.java b/magic-boot/src/main/java/org/ssssssss/magicboot/controller/UsceController.java new file mode 100644 index 0000000..7489b3b --- /dev/null +++ b/magic-boot/src/main/java/org/ssssssss/magicboot/controller/UsceController.java @@ -0,0 +1,316 @@ +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; + +/** + * 人员同步 + */ +@RestController +@RequestMapping("/User") + +public class UsceController { + private final Logger log = LoggerFactory.getLogger(UsceController.class); + + public static void main(String[] args) throws Exception { + new UsceController().getUserData(); + new UsceController().saveSynUser(); + } + + @PostMapping("/getUserData") + public void getUserData() throws Exception { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String time = sdf.format(System.currentTimeMillis() - (1000 * 60 * 62 * 24)); + // time = "2024-05-01"; + String sendUrl = "http://192.168.31.121:8022/ierp/kapi/v2/f9w5/base/bos_user/userQuery"; + Map headers = new HashMap(); + String token = "2095350818281620480_9IJI28EuhdoKjvDlKJfdpmQuw3GJS28reo9vbBaMkf1U3t3djnTvWv6D36PjAaQr4k9nmBf6KWvdReC78XbPCQvjADli8lA2reOR08"; + headers.put("accessToken", token);//放token + + JSONObject params = new JSONObject(); + + JSONObject datajson = new JSONObject(); + datajson.put("createtime","2012-02-26 11:04:43"); + JSONArray arr = new JSONArray(); + String[] strings = { + "ZHY002.001.005.003", + "ZHY002.001.005.002" + }; + + // 将字符串添加到 JSONArray 中 + for (String str : strings) { + arr.add(str); + } + + + + datajson.put("dpt_number",arr); + + + 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"); + + System.out.println("待同步人员数量" + resJson.size()); + + for (int i = 0; i < resJson.size(); i++) { + JSONObject str = resJson.getJSONObject(i); + //ERPID + String dataId = GcjJson.getNodeValue(str, "JSON.id") != null ? GcjJson.getNodeValue(str, "JSON.id").toString() : ""; + //ERP人员编码 + String number = GcjJson.getNodeValue(str, "JSON.number") != null ? GcjJson.getNodeValue(str, "JSON.number").toString() : ""; + + String name = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : ""; + + String endtime = GcjJson.getNodeValue(str, "JSON.modifytime") != null ? GcjJson.getNodeValue(str, "JSON.modifytime").toString() : ""; + + String syn_type = "0";//同步类型 0新增 1修改 2删除 + log.info("-------------------开始执行人员" + i + " -------------------" + number); + XxlJobHelper.log("-------------------开始执行人员" + i + " -------------------" + number); + + Boolean sendFlag = false; + StringBuffer stringBuffer = new StringBuffer(); + + try { + boolean tbflag = false; + //验证数据是否已存在 + JSONObject dataSyn = MagicApi.getSendSYNUser("user", syn_type, dataId); + + if (dataSyn != null && endtime.equals(dataSyn.getString("mark"))) { + log.info("数据已存在-" + name); + XxlJobHelper.log("--数据已存在---" + name); + tbflag = true; + } + + if (tbflag) { + continue; + } + log.info("人员待同步数据-" + i + " ------" + name); + + JSONObject jsonObjectData = new JSONObject(); + jsonObjectData.put("send_type", "user"); //业务类型 + jsonObjectData.put("send_syn", syn_type); //同步类型 0新增 1修改 2删除 + jsonObjectData.put("dsf_id", dataId);//数据id + jsonObjectData.put("dsfzhu_id", dataId);//数据id + jsonObjectData.put("send_status", 3);//同步状态 true同步成功 false同步失败 3待同步 + jsonObjectData.put("dsf_code", name);//数据名称 + jsonObjectData.put("mark", endtime);//标识 + jsonObjectData.put("dsf_json", str.toJSONString());//标识 + + MagicApi.saveSendSYNUser(jsonObjectData); + } catch (Exception e) { + continue; + } + + } + + + } + } + + } + + //@PostMapping("/getSynProduct") + public void saveSynUser() throws Exception { + FXHTTP fxapi = new FXHTTP(); + String resJsonStr = MagicApi.getWNRES("http://127.0.0.1:18088/syn/queryuser?sendType=user&sendStatus=3", ""); + JSONObject resJson = JSON.parseObject(resJsonStr); + if (resJson != null) { + log.info("待同步人员数" + resJson.getJSONArray("data").size()); + for (int i = 0; i < resJson.getJSONArray("data").size(); i++) { + XKTokenAccess xktonken = new XKTokenAccess(); + JSONObject getData = resJson.getJSONArray("data").getJSONObject(i); + JSONObject str = getData.getJSONObject("dsfJson"); + String syn_type = "0";//同步类型 0新增 1修改 2删除 + Boolean sendFlag = false; + StringBuffer stringBuffer = new StringBuffer(); + boolean tbflag = false; + // 构建json + JSONObject obj = new JSONObject(); + LinkedHashMap map = new LinkedHashMap(); + Boolean flag = true; + //ID + String dataId = GcjJson.getNodeValue(str, "JSON.id") != null ? GcjJson.getNodeValue(str, "JSON.id").toString() : ""; + //编码 + String number = GcjJson.getNodeValue(str, "JSON.number") != null ? GcjJson.getNodeValue(str, "JSON.number").toString() : ""; + + String name = GcjJson.getNodeValue(str, "JSON.name") != null ? GcjJson.getNodeValue(str, "JSON.name").toString() : ""; + + //最后修改时间 + String endtime = GcjJson.getNodeValue(str, "JSON.modifytime") != null ? GcjJson.getNodeValue(str, "JSON.modifytime").toString() : ""; + //性别 + String gender = GcjJson.getNodeValue(str, "JSON.gender") != null ? GcjJson.getNodeValue(str, "JSON.gender").toString() : ""; + + String email = GcjJson.getNodeValue(str, "JSON.email") != null ? GcjJson.getNodeValue(str, "JSON.email").toString() : ""; + + 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"); + String deptNumber = ""; + if(entryentity!=null){ + JSONObject deptobj = (JSONObject) entryentity.get(0); + 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")) ) { + log.info("数据已存在-" + name); + XxlJobHelper.log("--数据已存在---" + name); + tbflag = true; + } + if (tbflag) { + continue; + } + + //查询人员CRMID + String crmId = fxapi.getDataBYID("PersonnelObj", "field_T1xid__c", number, "JSON.data.dataList[0]._id"); + if (crmId != null && !crmId.equals("")) { + //人员id + map.put("body.data.object_data._id", crmId); + flag=false; + } + String crmdeptID = "999999"; + if (deptNumber!=""){ + crmdeptID = fxapi.getDataBYID("DepartmentObj", "field_Vj6sf__c", deptNumber, "JSON.data.dataList[0]._id"); + System.out.println(crmdeptID); + } + + map.put("body.data.object_data.phone", phone); + map.put("body.data.object_data.name", name); + map.put("body.data.object_data.full_name", name); + map.put("body.data.object_data.erp_id__c", dataId);//ID + map.put("body.data.object_data.field_T1xid__c", number);//编码 + map.put("body.data.object_data.user_name", phone); + map.put("body.data.object_data.email", email); + + if(enable.equals("2")){ + map.put("body.data.object_data.status", "1"); + map.put("body.data.object_data.is_pause_login", true); + }else { + map.put("body.data.object_data.status", "0"); + map.put("body.data.object_data.is_pause_login", false); + } + if(gender.equals("1")){ + map.put("body.data.object_data.sex", "M"); + + }if(gender.equals("2")){ + map.put("body.data.object_data.sex", "F"); + + }else { + map.put("body.data.object_data.sex", "P"); + } + map.put("body.data.object_data.main_department[0]", crmdeptID);//主属部门 + + map.put("body.data.object_data.dataObjectApiName", "PersonnelObj"); + + map.put("body.corpId", FXTIC.CORPID); + map.put("body.corpAccessToken", xktonken.getCorpAccessToken().getCorpAccessToken()); + map.put("body.currentOpenUserId", FXTIC.CURRENTOPENUSERID); + for (Object key : map.keySet()) { + GcjJson.setNodeValue(obj, key.toString(), map.get(key)); + } + log.info("--请求json---" + obj); + XxlJobHelper.log("--请求json---" + obj); + + }catch (Exception e) { + sendFlag = true; + stringBuffer.append("参数解析错误,请联系开发人员"); + e.printStackTrace(); + } + 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) { + String syn_type = "0";//同步类型 0新增 1修改 2删除 + String res_url = ""; + String res_param = ""; + String res = ""; + try { + if (flag) { + res = fxapi.saveV2Obj(obj); + res_url=FXTIC.URL_FX_CREATE; + } else { + syn_type = "1"; + res = fxapi.updateV2Obj(obj); + res_url=FXTIC.URL_FX_UPDATE; + } + res_param=obj.toJSONString(); + log.info("返回值:"+res); + JSONObject resjs = JSON.parseObject(res); + if (resjs != null && "0".equals(resjs.getString("errorCode"))) { + + } else { + sendFlag = true; + stringBuffer.append(resjs.getString("errorMessage") + ""); + } + } catch (Exception e) { + sendFlag = true; + stringBuffer.append("纷享销客接口调用失败,请检查网络配置"); + } + JSONObject sendData = new JSONObject(); + sendData.put("send_status", !sendFlag);//同步状态 true同步成功 false同步失败 3待同步 + sendData.put("crm_code", nameData);//数据名称 + sendData.put("send_id", str.getString("sendId")); //send_id + MagicApi.updateSendSYUPDATENUser(sendData); + + JSONObject logData = new JSONObject(); + logData.put("log_type", "user"); //业务类型 + logData.put("log_status", !sendFlag);//同步状态 true同步成功 false同步失败 3待同步 + logData.put("syn_type", syn_type);//同步类型 0新增 1修改 2删除 + logData.put("data_id", dataId);//数据id + logData.put("data_name", nameData);//数据名称 + logData.put("res_body", "同步成功");//返回值 + logData.put("res_url", res_url);// + logData.put("res_param", res_param);// + logData.put("res_res", res);// + if (sendFlag) { + logData.put("res_body", stringBuffer.toString());//返回值 + } + //写入传输日志 + MagicApi.saveUserLog(logData); + } + + + + + +} diff --git a/magic-boot/src/main/java/org/ssssssss/magicboot/fxapi/HttpClientUtils.java b/magic-boot/src/main/java/org/ssssssss/magicboot/fxapi/HttpClientUtils.java index b2ac4b4..121cacd 100644 --- a/magic-boot/src/main/java/org/ssssssss/magicboot/fxapi/HttpClientUtils.java +++ b/magic-boot/src/main/java/org/ssssssss/magicboot/fxapi/HttpClientUtils.java @@ -59,7 +59,37 @@ public class HttpClientUtils { public static HttpClientResult doGet(String url, Map params) throws Exception { return doGet(url, null, params); } + public static HttpClientResult doPostJsonfromdata(String url, Map headers,List params) throws Exception { + // 创建httpClient对象 + CloseableHttpClient httpClient = HttpClients.createDefault(); + // 创建http对象 + HttpPost httpPost = new HttpPost(url); + /** + * setConnectTimeout:设置连接超时时间,单位毫秒。 + * setConnectionRequestTimeout:设置从connect Manager(连接池)获取Connection + * 超时时间,单位毫秒。这个属性是新加的属性,因为目前版本是可以共享连接池的。 + * setSocketTimeout:请求获取数据的超时时间(即响应时间),单位毫秒。 如果访问一个接口,多少时间内无法返回数据,就直接放弃此次调用。 + */ + RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(CONNECT_TIMEOUT).setSocketTimeout(SOCKET_TIMEOUT).build(); + httpPost.setConfig(requestConfig); + //封装请求头 + packageHeader(headers, httpPost); + + httpPost.setEntity(new UrlEncodedFormEntity(params)); + + + // 创建httpResponse对象 + CloseableHttpResponse httpResponse = null; + + try { + // 执行请求并获得响应结果 + return getHttpClientResult(httpResponse, httpClient, httpPost); + } finally { + // 释放资源 + release(httpResponse, httpClient); + } + } /** * 发送get请求;带请求头和请求参数 * diff --git a/magic-boot/src/main/java/org/ssssssss/magicboot/fxapi/XKTokenAccess.java b/magic-boot/src/main/java/org/ssssssss/magicboot/fxapi/XKTokenAccess.java index bb5a09e..8d5715c 100644 --- a/magic-boot/src/main/java/org/ssssssss/magicboot/fxapi/XKTokenAccess.java +++ b/magic-boot/src/main/java/org/ssssssss/magicboot/fxapi/XKTokenAccess.java @@ -28,9 +28,9 @@ public class XKTokenAccess { private static final String APP_ACCESS_TOKEN_KEY_PREX = "appAccessToken_"; private static final String CORP_ACCESS_TOKEN_KEY_PREX = "corpAccessToken_"; - private static final String appId = "FSAID_131ee7a"; - private static final String appSecret= "b9d85f718d46460aaf5c45b0afa27792"; - private static final String permanentCode= "334912202A8400E338E6A7BD8C45C219"; + private static final String appId = "FSAID_131f56a"; + private static final String appSecret= "5bda722932a54e80a05d2cc9b1722fed"; + private static final String permanentCode= "1A49B50861909007935CAB5E33E52BAA"; private static final String prefix = "https://open.fxiaoke.com"; diff --git a/magic-boot/src/main/java/org/ssssssss/magicboot/zdyutils/FXTIC.java b/magic-boot/src/main/java/org/ssssssss/magicboot/zdyutils/FXTIC.java index 38ae2b0..1ee29c8 100644 --- a/magic-boot/src/main/java/org/ssssssss/magicboot/zdyutils/FXTIC.java +++ b/magic-boot/src/main/java/org/ssssssss/magicboot/zdyutils/FXTIC.java @@ -14,8 +14,8 @@ public class FXTIC { //解锁 public static String URL_FX_UNLOCK="https://open.fxiaoke.com/cgi/crm/v2/object/unlock"; - public static String CURRENTOPENUSERID="FSUID_0097DB273ACDA67353E1C0BAB997D8AC"; - public static String CORPID="FSCID_79069F6B50BC5CCF704283C5DEFD5670"; + public static String CURRENTOPENUSERID="FSUID_A9AD0C360309427B3F431487883B73B9"; + public static String CORPID="FSCID_11F505C980B5FE43D5D7230567802E09"; public static String URL_DESCRIBE="https://open.fxiaoke.com/cgi/crm/v2/object/describe"; diff --git a/magic-boot/src/main/java/org/ssssssss/magicboot/zdyutils/MagicApi.java b/magic-boot/src/main/java/org/ssssssss/magicboot/zdyutils/MagicApi.java index aa6af8e..cb4cc5a 100644 --- a/magic-boot/src/main/java/org/ssssssss/magicboot/zdyutils/MagicApi.java +++ b/magic-boot/src/main/java/org/ssssssss/magicboot/zdyutils/MagicApi.java @@ -22,7 +22,7 @@ public class MagicApi { public static void saveApiDataLog(JSONObject data) { try { String res = HttpSend.sendMagicPost( - "http://127.0.0.1:3002/SYNCLOG/STOCK/SAVE" + "http://127.0.0.1:18088/SYNCLOG/STOCK/SAVE" , data); } catch (Exception e) { e.printStackTrace(); @@ -32,17 +32,17 @@ public class MagicApi { System.out.println(data); try { String res = HttpSend.sendMagicPost( - "http://127.0.0.1:3002/send/log/save" + "http://127.0.0.1:18088/send/log/save" , data); } catch (Exception e) { e.printStackTrace(); } } - public static void saveDataLogSbbom(JSONObject data) { + public static void saveUserLog(JSONObject data) { System.out.println(data); try { String res = HttpSend.sendMagicPost( - "http://127.0.0.1:3002/send/log/savesbbom" + "http://127.0.0.1:18088/send/log/saveuser" , data); } catch (Exception e) { e.printStackTrace(); @@ -52,7 +52,7 @@ public class MagicApi { //System.out.println(data.toJSONString()); try { String res = HttpSend.sendMagicPost( - "http://127.0.0.1:3002/cpfx/save" + "http://127.0.0.1:18088/cpfx/save" , data); } catch (Exception e) { e.printStackTrace(); @@ -72,7 +72,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/ZHRY/V_CRM_PSNDOC?NAME=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/NCC/ZHRY/V_CRM_PSNDOC?NAME=" + URLEncoder.encode(name, "UTF-8") , "JSON.data[0].PK_PSNDOC"); } catch (Exception e) { @@ -84,7 +84,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/ZHRY/V_CRM_ORG?PK_ORG=" + name + "http://127.0.0.1:18088/NCC/ZHRY/V_CRM_ORG?PK_ORG=" + name , "JSON.data[0].ORG_CODE"); } catch (Exception e) { @@ -98,7 +98,7 @@ public class MagicApi { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/SYNCLOG/GELOGDATA" + + "http://127.0.0.1:18088/SYNCLOG/GELOGDATA" + "?stock_code=" + URLEncoder.encode(stock_code, "UTF-8") + "&pro_code=" + URLEncoder.encode(pro_code, "UTF-8")+ "&batch=" + URLEncoder.encode(batch, "UTF-8")+ @@ -119,7 +119,7 @@ public class MagicApi { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/SYNCLOG/GELOGDATA?type=" + URLEncoder.encode(type, "UTF-8") + "&dataId=" + URLEncoder.encode(dataId, "UTF-8") + "http://127.0.0.1:18088/SYNCLOG/GELOGDATA?type=" + URLEncoder.encode(type, "UTF-8") + "&dataId=" + URLEncoder.encode(dataId, "UTF-8") , ""); JSONObject resJson = JSONObject.parseObject(res); @@ -135,7 +135,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/KH/V_CRM_CUSTOMER?DATAID=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/NCC/KH/V_CRM_CUSTOMER?DATAID=" + URLEncoder.encode(name, "UTF-8") , "JSON.data[0].CODE"); } catch (Exception e) { e.printStackTrace(); @@ -147,7 +147,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/WL/V_CRM_TAXCODE?NAME=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/NCC/WL/V_CRM_TAXCODE?NAME=" + URLEncoder.encode(name, "UTF-8") , "JSON.data[0].PK_TAXCODE"); } catch (Exception e) { e.printStackTrace(); @@ -159,7 +159,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002"+table+"?TS=" + URLEncoder.encode(TS, "UTF-8") + "http://127.0.0.1:18088"+table+"?TS=" + URLEncoder.encode(TS, "UTF-8") , null); } catch (Exception e) { e.printStackTrace(); @@ -171,7 +171,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002"+table+"?TS=" + URLEncoder.encode(TS, "UTF-8") + ">="+ URLEncoder.encode(GT, "UTF-8") + "http://127.0.0.1:18088"+table+"?TS=" + URLEncoder.encode(TS, "UTF-8") + ">="+ URLEncoder.encode(GT, "UTF-8") , null); } catch (Exception e) { e.printStackTrace(); @@ -183,7 +183,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002"+table + "http://127.0.0.1:18088"+table , jsonPath); } catch (Exception e) { e.printStackTrace(); @@ -194,7 +194,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002"+table+"?NAME=" + URLEncoder.encode(TS, "UTF-8") + "http://127.0.0.1:18088"+table+"?NAME=" + URLEncoder.encode(TS, "UTF-8") , null); } catch (Exception e) { e.printStackTrace(); @@ -207,7 +207,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/KH/V_CRM_CUSTCLASS?NAME=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/NCC/KH/V_CRM_CUSTCLASS?NAME=" + URLEncoder.encode(name, "UTF-8") , "JSON.data[0].PK_CUSTCLASS"); } catch (Exception e) { e.printStackTrace(); @@ -219,7 +219,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/KH/V_CRM_COUNTRYZONE?NAME=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/NCC/KH/V_CRM_COUNTRYZONE?NAME=" + URLEncoder.encode(name, "UTF-8") , "JSON.data[0].PK_COUNTRY"); } catch (Exception e) { e.printStackTrace(); @@ -231,7 +231,7 @@ public class MagicApi { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/KH/V_CRM_REGION?NAME=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/NCC/KH/V_CRM_REGION?NAME=" + URLEncoder.encode(name, "UTF-8") , "JSON.data[0].PK_REGION"); } catch (Exception e) { e.printStackTrace(); @@ -243,7 +243,7 @@ public class MagicApi { public static String bibie(String name) { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/KH/V_CRM_CURRTYPE?NAME=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/NCC/KH/V_CRM_CURRTYPE?NAME=" + URLEncoder.encode(name, "UTF-8") , "JSON.data[0].PK_CURRTYPE"); } catch (Exception e) { e.printStackTrace(); @@ -254,7 +254,7 @@ public class MagicApi { public static String khyh(String name) { try { return HttpSend.sendMagicGet( - "http://127.0.0.1:3002/NCC/KH/V_CRM_BANKDOC?PKBANKDOC=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/NCC/KH/V_CRM_BANKDOC?PKBANKDOC=" + URLEncoder.encode(name, "UTF-8") , "JSON.data[0].PK_BANKTYPE"); } catch (Exception e) { e.printStackTrace(); @@ -267,17 +267,17 @@ public class MagicApi { System.out.println(data.toJSONString()); try { String res = HttpSend.sendMagicPost( - "http://127.0.0.1:3002/syn/save" + "http://127.0.0.1:18088/syn/save" , data); } catch (Exception e) { e.printStackTrace(); } } - public static void saveSendSYNDataSBBom(JSONObject data) { + public static void saveSendSYNUser(JSONObject data) { System.out.println(data.toJSONString()); try { String res = HttpSend.sendMagicPost( - "http://127.0.0.1:3002/syn/savesbbom" + "http://127.0.0.1:18088/syn/saveuser" , data); } catch (Exception e) { e.printStackTrace(); @@ -287,17 +287,17 @@ public class MagicApi { System.out.println(data.toJSONString()); try { String res = HttpSend.sendMagicPost( - "http://127.0.0.1:3002/syn/update" + "http://127.0.0.1:18088/syn/update" , data); } catch (Exception e) { e.printStackTrace(); } } - public static void updateSendSYUPDATENDataSbBom(JSONObject data) { + public static void updateSendSYUPDATENUser(JSONObject data) { System.out.println(data.toJSONString()); try { String res = HttpSend.sendMagicPost( - "http://127.0.0.1:3002/syn/updatesbbom" + "http://127.0.0.1:18088/syn/updateuser" , data); } catch (Exception e) { e.printStackTrace(); @@ -307,7 +307,7 @@ public class MagicApi { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/syn/query?sendType=" + URLEncoder.encode(type, "UTF-8") + "http://127.0.0.1:18088/syn/query?sendType=" + URLEncoder.encode(type, "UTF-8") + "&crmId=" + URLEncoder.encode(dataId, "UTF-8") + "&sendSyn=" + URLEncoder.encode(syn, "UTF-8") , ""); @@ -326,7 +326,7 @@ public class MagicApi { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/syn/querysbbom?sendType=" + URLEncoder.encode(type, "UTF-8") + "http://127.0.0.1:18088/syn/querysbbom?sendType=" + URLEncoder.encode(type, "UTF-8") + "&crmId=" + URLEncoder.encode(dataId, "UTF-8") + "&sendSyn=" + URLEncoder.encode(syn, "UTF-8") , ""); @@ -346,7 +346,7 @@ public class MagicApi { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/syn/query?sendType=" + URLEncoder.encode(type, "UTF-8") + "http://127.0.0.1:18088/syn/query?sendType=" + URLEncoder.encode(type, "UTF-8") + "&crmId=" + URLEncoder.encode(dataId, "UTF-8") + "&sendSyn=" + URLEncoder.encode(syn, "UTF-8") + "&sendStatus3="+sendStatus3 @@ -365,7 +365,7 @@ public class MagicApi { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/syn/query?sendType=" + URLEncoder.encode(type, "UTF-8") + "http://127.0.0.1:18088/syn/query?sendType=" + URLEncoder.encode(type, "UTF-8") + "&dsfId=" + URLEncoder.encode(dataId, "UTF-8") + "&sendSyn=" + URLEncoder.encode(syn, "UTF-8") , ""); @@ -379,11 +379,11 @@ public class MagicApi { } return null; } - public static JSONObject getSendSYNDataDSF2(String type, String syn, String dataId) { + public static JSONObject getSendSYNUser(String type, String syn, String dataId) { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/syn/query2?sendType=" + URLEncoder.encode(type, "UTF-8") + "http://127.0.0.1:18088/syn/queryuser?sendType=" + URLEncoder.encode(type, "UTF-8") + "&dsfId=" + URLEncoder.encode(dataId, "UTF-8") + "&sendSyn=" + URLEncoder.encode(syn, "UTF-8") , ""); @@ -401,7 +401,7 @@ public class MagicApi { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/syn/queryunit?name=" + URLEncoder.encode(name, "UTF-8") + "http://127.0.0.1:18088/syn/queryunit?name=" + URLEncoder.encode(name, "UTF-8") , ""); JSONObject resJson = JSONObject.parseObject(res); @@ -419,7 +419,7 @@ public class MagicApi { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/syn/query?sendType=" + URLEncoder.encode(type, "UTF-8") + "http://127.0.0.1:18088/syn/query?sendType=" + URLEncoder.encode(type, "UTF-8") + "&dsfId=" + URLEncoder.encode(dataId, "UTF-8") + "&sendSyn=" + URLEncoder.encode(syn, "UTF-8") + "&sendStatus3="+sendStatus3 @@ -435,11 +435,11 @@ public class MagicApi { return null; } - public static JSONObject getSendSYNDataDSFBom(String type, String syn, String dataId, String sendStatus3) { + public static JSONObject getSendSYNDataUser(String type, String syn, String dataId, String sendStatus3) { try { String res = HttpSend.sendMagicGet( - "http://127.0.0.1:3002/syn/querysbbom?sendType=" + URLEncoder.encode(type, "UTF-8") + "http://127.0.0.1:18088/syn/queryuser?sendType=" + URLEncoder.encode(type, "UTF-8") + "&crmId=" + URLEncoder.encode(dataId, "UTF-8") + "&sendSyn=" + URLEncoder.encode(syn, "UTF-8") + "&sendStatus3="+sendStatus3 diff --git a/magic-boot/target/classes/org/ssssssss/magicboot/fxapi/HttpClientUtils.class b/magic-boot/target/classes/org/ssssssss/magicboot/fxapi/HttpClientUtils.class index 6c700558e62c024dfdd80fcd41c7f471a35d7303..422a2fbe579c126469eeaf5b8e3cbd9715403a2e 100644 GIT binary patch literal 9691 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 diff --git a/magic-boot/target/classes/org/ssssssss/magicboot/fxapi/XKTokenAccess.class b/magic-boot/target/classes/org/ssssssss/magicboot/fxapi/XKTokenAccess.class index 94c4bcbd7061508462dc379c2ef35f2e84e9696c..f42bdfec221005300df74799b68ef24cc4a92dd0 100644 GIT binary patch delta 90 zcmcbkdPj9bB^z^^soCTjwv`H|NhyiuMn;y#Mv0~-sTKx_2Bs-S$;p;UhCtD@)Rf7t t>`xU89Zf8qObsl|3@r^T4GhdJjZK{$olISgja^NRoE#lDdvQ$S0sz<68Danc delta 90 zcmcbkdPj9bB^z^Us`=y^wv`G=mMIpdY37C&DJEtnW(J9gX{O00rbz~gX^BSW=9Wg2 uUD=;17#o{d8X6fH7&%&)7#O%38(X-VIhs4USU8)QIvW{UZua7s#03E3RT)%*G&BsrP*m(dfy7X(!QI)P{d09&)L0t?GMm56<`1W delta 91 zcmbQtJ(+vMOlCg=150xkCnIxXM`ssDGjn58V^>3G11Co(OQ5)gqcabKGJ`ZDgPL2g tv!_eExut=brJI?PsezNTsk5`2xq*q1g|V}#i>sT9shPRK=I6|77y;<~76AYN diff --git a/magic-boot/target/classes/org/ssssssss/magicboot/zdyutils/MagicApi.class b/magic-boot/target/classes/org/ssssssss/magicboot/zdyutils/MagicApi.class index 32a8482a696b4803c769a5dbf7fcc40712a2f906..329f04f761748ebf3494c23aee9fa016a81c8e38 100644 GIT binary patch delta 793 zcmeAU>I>Qs$Hc>3oLH6`TAW(slb^mhpXo4@3qMFCI5jUNIMNR!!N?$9T9A@h0u>7l zaB&QA^>axqNyIJ#(lfb%bptl+%G z>lpx{p_QS9frZ6nHg;Qa6&!Mr>`De;RruMT&6hv{+G*A+zf|4A8scFdF*of#g%#BP@n9`E}{*M4X6+#A{4P} zocx+wUKgPrlENT5v~cJ! QKk$5zVszU4P+f}=08u>KTmS$7 delta 766 zcmeAR>JHiv$0R6FoLH9Xl30@Hlb;@(l$4*lIg9Bqlc)$tI5;&gB{l9B=|eSJeC zb3FqfG_*1{Fff|@iOp6_8M~AlyOKUgjearEMfy4U>G~k&6@#41$RLkh&kS~LF+=Q9 zx7Y(GPv#P00bA?DVJc>fT^%E*@Z^OYo?^PVq*Zb0wB{6?^OmTVr8<(Y+DRy0M+)iS0 z*rn!k%W6TwzcLRw=oPRlf6gth16N*Jkdjyeiz`j+8jN{##PqOBmGPK5YhjhrF9tfM mur#%((#Rf^E