diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/constans/SyncConstants.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/constans/SyncConstants.java index 9ed028a..a52a6d8 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/constans/SyncConstants.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/constans/SyncConstants.java @@ -21,6 +21,8 @@ public enum SyncConstants { qxxDeleteOrg("/hklearn/openapi/v1/data/org/delete","企学星删除部门URL"), qxxSelectOrg("/hklearn/openapi/v1/data/org/select","企学星查询部门URL"), qxxSaveUser("/hklearn/openapi/v1/data/user/save","企学星保存用户URL"), + qxxDeleteUser("/hklearn/openapi/v1/data/user/delete","企学星删除用户URL"), + qxxSelectUser("/hklearn/openapi/v1/data/user/select","企学星查询用户URL"), flowLoginName("demo1", "流程平台登录用户"), flowRestPassword("1cd9ffb0-39ee-4690-8773-e183f233b3b9", "流程平台rest密码"), flowRestUserName("flowdata", "流程平台rest用户"), diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/ISrcDepartmentDao.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/ISrcDepartmentDao.java index e502142..3d32a90 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/ISrcDepartmentDao.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/ISrcDepartmentDao.java @@ -12,7 +12,7 @@ public interface ISrcDepartmentDao { public List> getIncrementDepartmentByUpdateTime(String startDate); - public List> getAllDepartments (); + public List> getAllDepartments(); public List getDepartmentBySuperPath(String accountPath); diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcAccountDaoImpl.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcAccountDaoImpl.java index f6a85b3..c4d2467 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcAccountDaoImpl.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcAccountDaoImpl.java @@ -17,8 +17,8 @@ public class SrcAccountDaoImpl implements ISrcAccountDao { String getSubordinateAccountByPath = "select id from org_unit where type = 'Account' and path like '${path}____'"; String getAccountById = "select id,name,code,path from org_unit where type = 'Account' and id = ?"; String getAccountByPath = "select id,name,code,path from org_unit where type = 'Account' and path = ?"; - String getIncrementAccountByModifyDate = "select id,name,code,path,is_enable,sort_id from org_unit where type = 'Account' and id <> -1730833917365171641 and (path not like '00000017%' or name = '湖北省知与行人力资源管理有限公司' ) and is_enable = 1 and update_time >= ?"; - String getAllAccounts = "select id,name,code,path,is_enable,type,sort_id from org_unit where type = 'Account' and id <> -1730833917365171641 and (path not like '00000017%' or name = '湖北省知与行人力资源管理有限公司' ) and is_enable = 1 order by SORT_ID"; + String getIncrementAccountByModifyDate = "select id,name,code,path,is_enable,sort_id from org_unit where type = 'Account' and id not in ( -1730833917365171641,3695237350552978435) and (path not like '00000017%' or name = '湖北省知与行人力资源管理有限公司' ) and is_enable = 1 and update_time >= ?"; + String getAllAccounts = "select id,name,code,path,is_enable,type,sort_id from org_unit where type = 'Account' and id not in ( -1730833917365171641,3695237350552978435) and (path not like '00000017%' or name = '湖北省知与行人力资源管理有限公司' ) and is_enable = 1 order by SORT_ID"; // select id from org_unit where (id = ? or name = ?) @Override diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcDepartmentDaoImpl.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcDepartmentDaoImpl.java index 8d26aba..6e1e818 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcDepartmentDaoImpl.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcDepartmentDaoImpl.java @@ -15,7 +15,7 @@ public class SrcDepartmentDaoImpl implements ISrcDepartmentDao { String getSubordinateDepartmentByPath = "select id from org_unit where type = 'Department' and path like '${path}____'"; - String getDepartmentByPath = "select name,code,path,id from org_unit where type = 'Department' and path like ?"; + String getDepartmentByPath = "select name,code,path,id from org_unit where type = 'Department' and path = ? and is_enable = 1 "; String getIncrementDepartmentByUpdateTime = "select id,code,name,path,is_enable,org_account_id,sort_id from org_unit where type = 'Department' and update_time >= ?"; String getAllDepatrment = "select id,code,name,path,is_enable,org_account_id,sort_id from org_unit where type = 'Department' and path not like '00000017%' and is_enable = 1 and org_account_id <> -1730833917365171641 order by SORT_ID"; String getDepartmentBySuperPath = "select id from org_unit where type = 'Department' and path like '${path}%'"; @@ -110,7 +110,7 @@ public class SrcDepartmentDaoImpl implements ISrcDepartmentDao { } - // select id,name,code,path,is_enable from org_unit where type = 'Account' + // select id,code,name,path,is_enable,org_account_id,sort_id from org_unit where type = 'Department' and path not like '00000017%' and is_enable = 1 and org_account_id <> -1730833917365171641 order by SORT_ID @Override public List> getAllDepartments (){ JDBCAgent agent = new JDBCAgent(); diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcMemberDaoImpl.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcMemberDaoImpl.java index c0c1db0..a296d7a 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcMemberDaoImpl.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SrcMemberDaoImpl.java @@ -21,7 +21,7 @@ public class SrcMemberDaoImpl implements ISrcMemberDao { private String queryClientByName = "select field0001 as client_code,field0002 as client_name,field0067 as area,field0007 as state,field0011 as credit_identifier,field0062 as deputy_manager from formmain_0208 where field0002 = ?"; private String getAllMembers = "select id,name,code,is_enable,org_account_id,org_post_id,org_department_id from org_member "; private String getMembersByStartDate = "select id,name,code,is_enable,org_account_id,org_post_id,org_department_id from org_member where update_time>=?"; - private String getAllClientMembers = "select id,name,code,is_enable,org_account_id,org_post_id,org_department_id from org_member where org_account_id in ( select id from org_unit where path like '00000017%' and type = 'Account')"; + private String getAllClientMembers = "select id,name,code,is_enable,org_account_id,org_post_id,org_department_id from org_member where org_account_id in ( select id from org_unit where path like '00000017%' and id != 8559604892185870467 and type = 'Account')"; private String getMemberById = "select id,name,code,is_enable,org_account_id,org_post_id,org_department_id from org_member where id = ?"; private String getMemberByDepartmentId = "select id,name,code,is_enable,org_account_id,org_post_id,org_department_id,'account' type from org_member where org_department_id = ? and is_enable = 1 order by SORT_ID"; private String getMemberByAccountId = "select id,name,code,is_enable,org_account_id,org_post_id,org_department_id,'account' type from org_member where org_account_id = ? and is_enable = 1 order by SORT_ID"; diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SyncQixuexingDaoImpl.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SyncQixuexingDaoImpl.java index 626c23b..ca6b280 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SyncQixuexingDaoImpl.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/dao/impl/SyncQixuexingDaoImpl.java @@ -12,7 +12,7 @@ import java.util.Map; public class SyncQixuexingDaoImpl implements ISyncQixuexingDao { - private String getMaxSynchronizationDate = "select max(create_date) as max_create_date from cst_quartz_log where PARENTID = (select id from CST_QUARTZ where bean_id = 'organizationQuartz') and message not like '%任务执行异常%' and message not like '%上次的任务还在运行中%'"; + private String getMaxSynchronizationDate = "select max(create_date) as max_create_date from cst_quartz_log where PARENTID = (select id from CST_QUARTZ where bean_id = 'qixuexingOrganizationQuartz') and message not like '%任务执行异常%' and message not like '%上次的任务还在运行中%'"; @Override public Map getMaxSynchronizationDate() { diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/quartz/QixuexingOrganizationQuartz.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/quartz/QixuexingOrganizationQuartz.java index 3fd1f9f..3f6451f 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/quartz/QixuexingOrganizationQuartz.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/quartz/QixuexingOrganizationQuartz.java @@ -44,30 +44,29 @@ public class QixuexingOrganizationQuartz extends AbstractQuartzTask { // 如果当前调用定时任务时未进行同步,则直接查询全量数据进行同步 String isServiceBroker = configVo.getParamVal(SyncConstants.isServiceBroker.name()); if(startDate==null){ -// 进行企学星单位同步操作 +// 进行企学星单位同步操作 String errorAccountValue = organizationOrgQixuexingSyncServer.qixuexingSyncAllAccounts(); -// 进行企学星部门同步操作 - String errorDepartmentValue = organizationOrgQixuexingSyncServer.qixuexingSyncAllDepartments(); -// 进行企学星岗位同步操作 +// 进行企学星部门同步操作 +// String errorDepartmentValue = organizationOrgQixuexingSyncServer.qixuexingSyncAllDepartments(); +// 进行企学星岗位同步 // String errorPostValue = organizationOrgQixuexingSyncServer.qixuexingSyncAllPosts(); -// 进行企学星职务级别同步操作 -// String errorLevelValue = organizationOrgQixuexingSyncServer.qixuexingSyncAllLevels(); -// 进行企学星人员同步操作 +// 进行企学星人员同步操作 String errorMemberValue = organizationOrgQixuexingSyncServer.qixuexingSyncAllMembers(); -// 进行企学星业代人员同步 +// res = errorAccountValue+","+errorDepartmentValue+","+errorMemberValue; +// 进行企学星业代人员同步 String errorServiceBroker = ""; if("是".equals(isServiceBroker)||"Y".equals(isServiceBroker)||"y".equals(isServiceBroker)){ errorServiceBroker = organizationOrgQixuexingSyncServer.qixuexingSyncAllServiceBrokers(); } // 进行客户单位下人员同步 String errorClientMemberValue = organizationOrgQixuexingSyncServer.qixuexingSyncAllClientMembers(); - res = errorAccountValue+","+errorDepartmentValue+","+errorMemberValue+","+errorServiceBroker+","+errorClientMemberValue; + res = errorMemberValue+","+errorServiceBroker+","+errorClientMemberValue; +// res = errorAccountValue+","+errorDepartmentValue+","+errorMemberValue+","+errorServiceBroker+","+errorClientMemberValue; + }else{ -// 通过时间查询最新的修改数据并且同步到钉钉。 +// 通过时间查询最新的修改数据并且同步到钉钉。 String accountRes = organizationOrgQixuexingSyncServer.qixuexingSyncBatchAccount(simpleDateFormat.format(startDate)); String departmrntRes = organizationOrgQixuexingSyncServer.qixuexingSyncBatchDepartment(simpleDateFormat.format(startDate)); -// String postRes = organizationOrgQixuexingSyncServer.qixuexingSyncBatchPost(simpleDateFormat.format(startDate)); -// String levelRes = organizationOrgQixuexingSyncServer.qixuexingSyncBatchLevel(simpleDateFormat.format(startDate)); String memberRes = organizationOrgQixuexingSyncServer.qixuexingSyncBatchMember(simpleDateFormat.format(startDate)); String serviceBrokerRes = ""; if("是".equals(isServiceBroker)||"Y".equals(isServiceBroker)||"y".equals(isServiceBroker)){ diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgDingdingSyncServer.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgDingdingSyncServer.java index 4bde8dd..9269264 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgDingdingSyncServer.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgDingdingSyncServer.java @@ -463,7 +463,7 @@ public class OrganizationOrgDingdingSyncServer { } else{ // 如果当前部门不是一级部门,则直接获取上级部门ID查询钉钉绑定 Map superDepartmentBinding = syncDdDao.getDepartmentBinding(superDepartmentId); - if(superDepartmentBinding.size()<0){ + if(superDepartmentBinding.get("org_department_id")==null){ // 未查询到上级单位绑定关系,同步钉钉失败, errorMap.put(departmentMap.get("id").toString(),"钉钉同步单位失败:"+departmentMap.get("name")+"未查询到上级部门绑定关系,同步钉钉失败"); return errorMap; diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgQixuexingSyncServer.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgQixuexingSyncServer.java index 08bff22..1b536e2 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgQixuexingSyncServer.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgQixuexingSyncServer.java @@ -7,12 +7,14 @@ import com.seeyon.apps.common.plugin.vo.ConfigVo; import com.seeyon.apps.src_mainorganization.constans.SyncConstants; import com.seeyon.apps.src_mainorganization.dao.*; import com.seeyon.apps.src_mainorganization.util.FormExportUtil; +import com.seeyon.apps.src_mainorganization.util.ProtUtil; import com.seeyon.apps.src_mainorganization.util.QixuexingPortUtil; import com.seeyon.ctp.common.AppContext; import com.seeyon.ctp.common.ctpenumnew.manager.EnumManager; import com.seeyon.ctp.common.exceptions.BusinessException; import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem; import com.seeyon.ctp.services.ServiceException; +import com.seeyon.ctp.util.UUIDLong; import com.seeyon.v3x.services.form.FormFactory; import com.seeyon.v3x.services.form.bean.FormExport; import com.seeyon.v3x.services.form.bean.ValueExport; @@ -108,7 +110,7 @@ public class OrganizationOrgQixuexingSyncServer { from.put("同步类型", "单位"); from.put("同步时间", sdf.format(new Date())); from.put("同步对象", accountMap.get("name").toString()); -// 判断是否为业务架构存在的单位信息 +// 判断务是否为业架构存在的单位信息 if(!accountMap.get("path").toString().startsWith("00000017") || excludeAccount.contains(accountId)) { log.info(accountName + accountMap.get("code") + accountId); if ("1".equals(accountMap.get("is_enable") != null ? accountMap.get("is_enable").toString() : null)) { @@ -118,10 +120,13 @@ public class OrganizationOrgQixuexingSyncServer { Map sub = srcAccountDao.getAccountByPath(subPath); String subId = sub.get("id").toString(); if(!"-1730833917365171641".equals(subId)){ + if(excludeAccount.contains(accountId)){ + subId = "-4020778099040434485"; + } JSONObject select = QixuexingPortUtil.qixuexingSelectOrg(configVo,subId); String selectCode = select.getString("code"); // 如果上级不存在则跳过当前单位信息 - if(!"0".equals(selectCode)){ + if(!"200".equals(selectCode)){ errorMap.put(accountId+"","企学星同步单位失败:未查询到有效上级信息"+accountName); continue; }else{ @@ -135,7 +140,7 @@ public class OrganizationOrgQixuexingSyncServer { // 封装当前环境单位数据,调用部门保存接口,保存企学星部门信息 JSONObject jsonObject = QixuexingPortUtil.qixuexingSaveOrg(configVo,accountMap,subId); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 保存成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星单位保存同步成功"); @@ -156,7 +161,7 @@ public class OrganizationOrgQixuexingSyncServer { } else { JSONObject jsonObject = QixuexingPortUtil.qixuexingDeleteOrg(configVo,accountId); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 删除成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星单位删除同步成功"); @@ -238,12 +243,20 @@ public class OrganizationOrgQixuexingSyncServer { // 查询上级信息 String path = departmentMap.get("path").toString(); String subPath = path.substring(0,path.length()-4); +// 部门上级在OA中可能为单位或者部门 Map sub = srcDepartmentDao.getDepartmentByPath(subPath); + if(sub.size()==0){ + sub = srcAccountDao.getAccountByPath(subPath); + } + if(sub.size()==0){ + errorMap.put(departmentId+"","企学星同步部门失败:未查询到有效上级信息"+departmentName); + continue; + } String subId = sub.get("id").toString(); JSONObject select = QixuexingPortUtil.qixuexingSelectOrg(configVo,subId); String selectCode = select.getString("code"); // 如果上级不存在则跳过当前单位信息 - if(!"0".equals(selectCode)){ + if(!"200".equals(selectCode)){ errorMap.put(departmentId+"","企学星同步部门失败:未查询到有效上级信息"+departmentName); continue; }else{ @@ -256,7 +269,7 @@ public class OrganizationOrgQixuexingSyncServer { // 封装当前环境单位数据,调用部门保存接口,保存企学星部门信息 JSONObject jsonObject = QixuexingPortUtil.qixuexingSaveOrg(configVo,departmentMap,subId); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 保存成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星部门保存同步成功"); @@ -279,12 +292,12 @@ public class OrganizationOrgQixuexingSyncServer { // 部门停用删除企学星部门 JSONObject jsonObject = QixuexingPortUtil.qixuexingDeleteOrg(configVo,departmentId); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ -// 删除成功 + if("200".equals(resCode)){ +// 删除成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星部门删除同步成功"); }else{ -// 删除失败 +// 删除失败 from.put("是否成功", "失败"); from.put("同步结果", "企学星部门删除同步失败"+jsonObject.getString("message")); errorMap.put(departmentId+"","企学星同步部门失败:"+jsonObject.getString("message")); @@ -304,6 +317,7 @@ public class OrganizationOrgQixuexingSyncServer { } public String qixuexingSyncAllMembers(){ + log.info("进行全量人员同步"); String res = ""; // 根据列表查询生成列表部门对象 Map errorMap = null; @@ -326,6 +340,7 @@ public class OrganizationOrgQixuexingSyncServer { } public String qixuexingSyncBatchMember(String startDate){ + log.info("进行时间增量人员数据同步"); String res = ""; // 根据列表查询生成列表部门对象 Map errorMap = null; @@ -350,14 +365,18 @@ public class OrganizationOrgQixuexingSyncServer { // 通过人员列表ID查询人员对象列表 public List> v3xOrgMembertoMemberMap(List> incrementMembers) { List> orgMembers = new ArrayList<>(); + log.info("进行人员数据添加"); ConfigVo configVo = this.cstConfigApi.getConfig(this.getPluginId()); for(Map incrementMember :incrementMembers){ + log.info(incrementMember.toString()); if(incrementMember.get("id")!=null){ String departmentId = incrementMember.get("org_department_id").toString(); + JSONObject select = QixuexingPortUtil.qixuexingSelectOrg(configVo,departmentId); + log.info(select.toString()); String selectCode = select.getString("code"); // 如果上级不存在则跳过当前单位信息 - if(!"0".equals(selectCode)){ + if(!"200".equals(selectCode)){ continue; }else{ String selectData = select.getString("data"); @@ -366,9 +385,10 @@ public class OrganizationOrgQixuexingSyncServer { } } String memberId = incrementMember.get("id").toString(); -// 此方法无法查询已经离职人员信息 Map memberMap = archiveDao.getMemberArchiveByMemberId(Long.parseLong(memberId)); - orgMembers.add(memberMap); + if(memberMap.size()!=0){ + orgMembers.add(memberMap); + } } } return orgMembers; @@ -379,6 +399,10 @@ public class OrganizationOrgQixuexingSyncServer { Map errorMap = new HashMap<>(); for(Map memberMap : list){ Map from = new HashMap(); + if(memberMap.get("id")==null){ + errorMap.put(UUIDLong.longUUID()+"","企学星用户保存同步失败:当前处理人员ID为空"+memberMap.toString()); + continue; + } String memberId = memberMap.get("id").toString(); String memberName = memberMap.get("name").toString(); // 设置日志保存数据 @@ -387,7 +411,7 @@ public class OrganizationOrgQixuexingSyncServer { from.put("同步对象", memberName); String memberState = memberMap.get("member_state").toString(); CtpEnumItem stateEnum = getEnumManagerNew().getCtpEnumItem(Long.parseLong(memberState)); - if("1".equals(stateEnum.getValue()) || "0".equals(stateEnum.getValue())){ + if("1".equals(stateEnum.getValue()) || "2".equals(stateEnum.getValue())){//人员1为在职2为试用 // 封装当前环境单位数据,调用部门保存接口,保存企学星部门信息 String memberSex = memberMap.get("sex") !=null ?memberMap.get("sex").toString():""; CtpEnumItem sexEnum ; @@ -398,7 +422,7 @@ public class OrganizationOrgQixuexingSyncServer { memberMap.put("member_status","1"); JSONObject jsonObject = QixuexingPortUtil.qixuexingSaveUser(configVo,memberMap); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 保存成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星用户保存同步成功"); @@ -406,7 +430,7 @@ public class OrganizationOrgQixuexingSyncServer { // 保存失败 from.put("是否成功", "失败"); from.put("同步结果", "企学星用户保存同步失败"+jsonObject.getString("message")); - errorMap.put(memberId+"","企学星用户保存同步失败"+jsonObject.getString("message")); + errorMap.put(memberId+"","企学星用户保存同步失败"+memberId+memberName+":"+jsonObject.getString("message")); } FormExport formExport = new FormExport(); from.put("同步动作", "保存"); @@ -421,7 +445,7 @@ public class OrganizationOrgQixuexingSyncServer { // 部门停用删除企学星部门 JSONObject jsonObject = QixuexingPortUtil.qixuexingDeleteUser(configVo,memberId); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 删除成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星用户删除同步成功"); @@ -429,7 +453,7 @@ public class OrganizationOrgQixuexingSyncServer { // 删除失败 from.put("是否成功", "失败"); from.put("同步结果", "企学星用户删除同步失败"+jsonObject.getString("message")); - errorMap.put(memberId+"","企学星用户部门失败:"+jsonObject.getString("message")); + errorMap.put(memberId+"","企学星用户删除失败:"+memberId+memberName+":"+jsonObject.getString("message")); } FormExport formExport = new FormExport(); from.put("同步动作", "删除"); @@ -491,6 +515,11 @@ public class OrganizationOrgQixuexingSyncServer { ConfigVo configVo = this.cstConfigApi.getConfig(this.getPluginId()); Map errorMap = new HashMap<>(); for(Map serviceBrokerMap : list){ +// log.info("当前处理业代客户ID"+serviceBrokerMap.get("id")); + if(serviceBrokerMap.get("id")==null){ + errorMap.put(UUIDLong.longUUID()+"","企学星业代用户保存同步失败:当前处理人员ID为空"+serviceBrokerMap.toString()); + continue; + } Map from = new HashMap(); String serviceBrokerId = serviceBrokerMap.get("id").toString(); String serviceBrokerName = serviceBrokerMap.get("name").toString(); @@ -500,7 +529,7 @@ public class OrganizationOrgQixuexingSyncServer { from.put("同步对象", serviceBrokerName); String serviceBrokerState = serviceBrokerMap.get("state").toString(); CtpEnumItem stateEnum = getEnumManagerNew().getCtpEnumItem(Long.parseLong(serviceBrokerState)); - if("1".equals(stateEnum.getValue()) || "0".equals(stateEnum.getValue())){ + if("1".equals(stateEnum.getValue()) || "2".equals(stateEnum.getValue())){ // 封装当前环境单位数据,调用部门保存接口,保存企学星部门信息 String memberSex = serviceBrokerMap.get("sex") !=null ?serviceBrokerMap.get("sex").toString():""; CtpEnumItem sexEnum ; @@ -511,7 +540,7 @@ public class OrganizationOrgQixuexingSyncServer { serviceBrokerMap.put("member_status","1"); JSONObject jsonObject = QixuexingPortUtil.qixuexingSaveUserServiceBroker(configVo,serviceBrokerMap); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 保存成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星业代用户保存同步成功"); @@ -519,7 +548,7 @@ public class OrganizationOrgQixuexingSyncServer { // 保存失败 from.put("是否成功", "失败"); from.put("同步结果", "企学星业代用户保存同步失败"+jsonObject.getString("message")); - errorMap.put(serviceBrokerId+"","企学星业代用户保存同步失败"+jsonObject.getString("message")); + errorMap.put(serviceBrokerId+"","企学星业代用户保存同步失败"+serviceBrokerId+serviceBrokerName+":"+jsonObject.getString("message")); } FormExport formExport = new FormExport(); from.put("同步动作", "保存"); @@ -534,7 +563,7 @@ public class OrganizationOrgQixuexingSyncServer { // 部门停用删除企学星部门 JSONObject jsonObject = QixuexingPortUtil.qixuexingDeleteUserServiceBroker(configVo,serviceBrokerId); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 删除成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星业代用户删除同步成功"); @@ -542,7 +571,7 @@ public class OrganizationOrgQixuexingSyncServer { // 删除失败 from.put("是否成功", "失败"); from.put("同步结果", "企学星业代用户删除同步失败"+jsonObject.getString("message")); - errorMap.put(serviceBrokerId+"","企学星业代用户部门失败:"+jsonObject.getString("message")); + errorMap.put(serviceBrokerId+"","企学星业代用户删除同步失败:"+serviceBrokerId+serviceBrokerName+":"+jsonObject.getString("message")); } FormExport formExport = new FormExport(); from.put("同步动作", "删除"); @@ -608,8 +637,8 @@ public class OrganizationOrgQixuexingSyncServer { for(Map incrementMember :incrementMembers){ if(incrementMember.get("id")!=null){ String clientMemberId = incrementMember.get("id").toString(); -// 此方法无法查询已经离职人员信息 Map memberMap = archiveDao.getMemberArchiveByClientMemberId(Long.parseLong(clientMemberId)); + memberMap.put("orgMemberId",clientMemberId); orgMembers.add(memberMap); } } @@ -620,7 +649,14 @@ public class OrganizationOrgQixuexingSyncServer { ConfigVo configVo = this.cstConfigApi.getConfig(this.getPluginId()); Map errorMap = new HashMap<>(); for(Map clientMemberMap : list){ + log.info("当前处理客户ID"+clientMemberMap.get("id")); Map from = new HashMap(); + log.info(clientMemberMap.toString()); + if(clientMemberMap.get("id")==null){ + errorMap.put(UUIDLong.longUUID()+"","企学星客户用户保存同步失败:当前处理人员ID为空"+clientMemberMap.toString()); + continue; +// return errorMap; + } String clientMemberId = clientMemberMap.get("id").toString(); String clientMemberName = clientMemberMap.get("name").toString(); // 设置日志保存数据 @@ -629,7 +665,7 @@ public class OrganizationOrgQixuexingSyncServer { from.put("同步对象", clientMemberName); String memberState = clientMemberMap.get("member_state").toString(); CtpEnumItem stateEnum = getEnumManagerNew().getCtpEnumItem(Long.parseLong(memberState)); - if("1".equals(stateEnum.getValue()) || "0".equals(stateEnum.getValue())){ + if("1".equals(stateEnum.getValue()) || "2".equals(stateEnum.getValue())){ // 封装当前环境单位数据,调用部门保存接口,保存企学星部门信息 String memberSex = clientMemberMap.get("sex") !=null ?clientMemberMap.get("sex").toString():""; CtpEnumItem sexEnum ; @@ -640,7 +676,7 @@ public class OrganizationOrgQixuexingSyncServer { clientMemberMap.put("member_status","1"); JSONObject jsonObject = QixuexingPortUtil.qixuexingSaveUserClientMember(configVo,clientMemberMap); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 保存成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星客户用户保存同步成功"); @@ -648,7 +684,7 @@ public class OrganizationOrgQixuexingSyncServer { // 保存失败 from.put("是否成功", "失败"); from.put("同步结果", "企学星客户用户保存同步失败"+jsonObject.getString("message")); - errorMap.put(clientMemberId+"","企学星客户用户保存同步失败"+jsonObject.getString("message")); + errorMap.put(clientMemberId+"","企学星客户用户保存同步失败"+clientMemberId+clientMemberName+":"+jsonObject.getString("message")); } FormExport formExport = new FormExport(); from.put("同步动作", "保存"); @@ -663,7 +699,7 @@ public class OrganizationOrgQixuexingSyncServer { // 部门停用删除企学星部门 JSONObject jsonObject = QixuexingPortUtil.qixuexingDeleteUserClientMember(configVo,clientMemberId); String resCode = jsonObject.getString("code"); - if("0".equals(resCode)){ + if("200".equals(resCode)){ // 删除成功 from.put("是否成功", "成功"); from.put("同步结果", "企学星客户用户删除同步成功"); @@ -671,7 +707,7 @@ public class OrganizationOrgQixuexingSyncServer { // 删除失败 from.put("是否成功", "失败"); from.put("同步结果", "企学星客户用户删除同步失败"+jsonObject.getString("message")); - errorMap.put(clientMemberId+"","企学星客户用户部门失败:"+jsonObject.getString("message")); + errorMap.put(clientMemberId+"","企学星客户用户删除同步失败"+clientMemberId+clientMemberName+":"+jsonObject.getString("message")); } FormExport formExport = new FormExport(); from.put("同步动作", "删除"); @@ -687,19 +723,136 @@ public class OrganizationOrgQixuexingSyncServer { return errorMap; } -// public String qixuexingSyncAllPosts () { -// return null; -// } -// + public String qixuexingTestMembers(){ + String res = ""; +// 根据列表查询生成列表部门对象 + Map errorMap = null; + try { +// 根据上一次同步时间获取最新修改的单位信息 + List> incrementMembers = srcMemberDao.getAllMembers(); + ConfigVo configVo = this.cstConfigApi.getConfig(this.getPluginId()); + errorMap = new HashMap<>(); + for(Map memberMap : incrementMembers){ + Map from = new HashMap(); + log.info("当前处理人员客户ID"+memberMap.get("id")); + String memberId = memberMap.get("id").toString(); + String memberName = memberMap.get("name").toString(); +// 设置日志保存数据 + from.put("同步类型", "人员"); + from.put("同步时间", sdf.format(new Date())); + from.put("同步对象", memberName); + String memberState = memberMap.get("is_enable").toString(); +// CtpEnumItem stateEnum = getEnumManagerNew().getCtpEnumItem(Long.parseLong(memberState)); + if("1".equals(memberState)){ +// 封装当前环境单位数据,调用部门保存接口,保存企学星部门信息 +// String memberSex = memberMap.get("sex") !=null ?memberMap.get("sex").toString():""; +// CtpEnumItem sexEnum ; +// if(StringUtil.isNotEmpty(memberSex)){ +// sexEnum = getEnumManagerNew().getCtpEnumItem(Long.parseLong(memberSex)); + memberMap.put("member_sex",'1'); +// } + memberMap.put("member_status","1"); + String qxxCorpsecret = configVo.getParamVal(SyncConstants.qxxCorpsecret.name()); + String qxxUrl = configVo.getParamVal(SyncConstants.qxxUrl.name()); + String qxxGetToken = configVo.getParamVal(SyncConstants.qxxGetToken.name()); + String qxxCorpid = configVo.getParamVal(SyncConstants.qxxCorpid.name()); + String qxxToken = ProtUtil.getQxxToken(qxxUrl+qxxGetToken,qxxCorpid,qxxCorpsecret); + String qxxSaveUser = configVo.getParamVal(SyncConstants.qxxSaveUser.name()); + JSONObject param = new JSONObject(); + param.put("userUuid",memberMap.get("id").toString()); + param.put("username",memberMap.get("id").toString()); + param.put("realName",memberMap.get("name").toString()); + param.put("orgUuid",memberMap.get("org_department_id").toString()); +// param.put("phone",memberMap.get("telnumber").toString()); + param.put("credentialsType","1"); +// param.put("credentialsCode",map.get("member_no").toString()); + param.put("sex","1"); + param.put("status",memberState); +// param.put("entryDate",""); + Map headerMap = new HashMap<>(); + long uuid = UUIDLong.longUUID(); + headerMap.put("Content-Type","application/json"); + headerMap.put("token",qxxToken); + long timestamp = new Date().getTime(); + headerMap.put("timestamp",timestamp+""); + headerMap.put("nonce",uuid+""); + String signature = QixuexingPortUtil.getSignature + (qxxToken,timestamp+"",uuid+"",param.toString(),qxxCorpsecret); + headerMap.put("signature",signature); + String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxSaveUser, headerMap); + JSONObject jsonObject = JSONObject.parseObject(str); + String resCode = jsonObject.getString("code"); + if("200".equals(resCode)){ +// 保存成功 + from.put("是否成功", "成功"); + from.put("同步结果", "企学星用户保存同步成功"); + }else{ +// 保存失败 + from.put("是否成功", "失败"); + from.put("同步结果", "企学星用户保存同步失败"+jsonObject.getString("message")); + errorMap.put(memberId+"","企学星用户保存同步失败"+jsonObject.getString("message")); + } + FormExport formExport = new FormExport(); + from.put("同步动作", "保存"); + from.put("主要信息", memberMap.toString()); + List valueExports = formExportUtil.setFormValue(from); + formExport.setValues(valueExports); + //同步记录创建人和钉钉日志创建人共用 + formFactory.importBusinessFormData(configVo.getParamVal(SyncConstants.dingdingLogloginName.name()), + configVo.getParamVal(SyncConstants.qxxLog.name()), + formExport, new String[]{}); + }else{ +// 用户停用删除企学星部门 + JSONObject jsonObject = QixuexingPortUtil.qixuexingDeleteUser(configVo,memberId); + String resCode = jsonObject.getString("code"); + if("200".equals(resCode)){ +// 删除成功 + from.put("是否成功", "成功"); + from.put("同步结果", "企学星用户删除同步成功"); + }else{ +// 删除失败 + from.put("是否成功", "失败"); + from.put("同步结果", "企学星用户删除同步失败"+jsonObject.getString("message")); + errorMap.put(memberId+"","企学星用户保存失败:"+jsonObject.getString("message")); + } + FormExport formExport = new FormExport(); + from.put("同步动作", "删除"); + from.put("主要信息", memberMap.toString()); + List valueExports = formExportUtil.setFormValue(from); + formExport.setValues(valueExports); + //同步记录创建人和钉钉日志创建人共用 + formFactory.importBusinessFormData(configVo.getParamVal(SyncConstants.dingdingLogloginName.name()), + configVo.getParamVal(SyncConstants.qxxLog.name()), + formExport, new String[]{}); + } + } + } catch (ServiceException e) { + e.printStackTrace(); + } + log.info("人员异常数"+errorMap.size()); + for (Map.Entry entry : errorMap.entrySet()) { + String value = entry.getValue(); + res= res+value+";"; + } + return res ; + } + + public String qixuexingSyncAllPosts () { +// 根据岗位查看同步信息,由于企学星与OA架构不同,所以岗位需要通过用户名进行重复判断 + + return null; + } + + public String qixuexingSyncBatchPost(String startDate){ + + return null; + } + // public String qixuexingSyncAllLevels () { // // return null; // } -// public String qixuexingSyncBatchPost(String startDate){ -// -// return null; -// } // // public String qixuexingSyncBatchLevel(String startDate){ // diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgSyncServer.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgSyncServer.java index 6dcffc7..a5bd559 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgSyncServer.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/server/OrganizationOrgSyncServer.java @@ -40,14 +40,12 @@ public class OrganizationOrgSyncServer { public Map fvSyncBatchAccount(List list){ Map errorMap = new HashMap<>(); ConfigVo configVo = this.cstConfigApi.getConfig(this.getPluginId()); - log.info("执行数据筛选,只处理客户单位下的所有单位信息"); List thirdDeparts = list.stream().filter((account) -> { String path = account.getPath(); return path.startsWith("00000017"); }).map((account) -> { return new ThirdDeptBo(account); }).collect(Collectors.toList()); - log.info("遍历获取到的所有单位信息。"); for(int i = 0; i < thirdDeparts.size(); ++i) { ThirdDeptBo thirdDepart = thirdDeparts.get(i); System.out.println(thirdDepart.getName() + thirdDepart.getCode() + thirdDepart.getId()); @@ -76,25 +74,22 @@ public class OrganizationOrgSyncServer { return errorMap; } -// 客户服务平台部门同步 +// 客户服务平台部门同步 public Map fvSyncBatchDepartment(List list) throws SQLException { Map errorMap = new HashMap<>(); ConfigVo configVo = this.cstConfigApi.getConfig(this.getPluginId()); -//通过路径筛选出需要同步人部门数据 - log.info("执行数据筛选,只处理客户单位下的所有部门信息同步"); +// 通过路径筛选出需要同步人部门数据 List thirdDeparts = list.stream().filter((department) ->{ String path = department.getPath(); return path.startsWith("00000017"); }).map((department) -> { return new ThirdDeptBo( department); }).collect(Collectors.toList()); - log.info("遍历筛选后的所有部门信息"); for(int i = 0 ; i < thirdDeparts.size() ; i++){ ThirdDeptBo thirdDepart = thirdDeparts.get(i); log.info(thirdDepart.getName() + thirdDepart.getCode() + thirdDepart.getId()); // 同步单位单位信息,通过中间库同步单位信息。客户服务平台同步操作 boolean bool = syncFvDao.queryDeptById(thirdDepart.getId()+""); - log.info("查询当前部门是否在中间库存在"+bool); if(bool){ // 当前修改单位存在,执行变更方法 int updateDeptNum = syncFvDao.updateDept(thirdDepart); @@ -122,7 +117,6 @@ public class OrganizationOrgSyncServer { ConfigVo configVo = this.cstConfigApi.getConfig(this.getPluginId()); String companyId = configVo.getParamVal(SyncConstants.companyId.name()); // 通过路径筛选出需要同步人部门数据 - log.info("执行数据筛选,只处理客户单位下的所有岗位信息同步"); List thirdPosts = list.stream().filter((post) ->{ String path = ""; try { @@ -136,7 +130,6 @@ public class OrganizationOrgSyncServer { }).map((post) -> { return new ThirdPostBo(companyId, post); }).collect(Collectors.toList()); - log.info("遍历筛选后的所有岗位信息"); for(int i = 0 ; i < thirdPosts.size() ; i++){ try { ThirdPostBo thirdPost = thirdPosts.get(i); @@ -148,7 +141,6 @@ public class OrganizationOrgSyncServer { if(StringUtils.isNotEmpty(banchmarkPostId)){ // 根据基准岗位ID查询中间表岗位信息是否存在 boolean bool = syncFvDao.queryPostById(banchmarkPostId); - log.info("查询当前岗位是否在中间库存在"+bool); // 根据基准岗位ID查询基准岗位信息 V3xOrgPost v3xOrgPost = orgManager.getPostById(Long.parseLong(banchmarkPostId)); if(bool){ @@ -181,7 +173,6 @@ public class OrganizationOrgSyncServer { Map errorMap = new HashMap<>(); ConfigVo configVo = this.cstConfigApi.getConfig(this.getPluginId()); // 循环遍历人员列表 - log.info("执行数据筛选,只处理客户单位下有的所人员信息同步"); List thirdMembers = (List)list.stream().filter((member) ->{ String path = ""; try { @@ -202,7 +193,6 @@ public class OrganizationOrgSyncServer { } return thirdMember; }).collect(Collectors.toList()); - log.info("遍历筛选后所有的人员信息"); // 判断筛选后的人员是都存在于不同步目录中(不同步目录显示为组织架构名称) String customerServiceBlacklist = configVo.getParamVal(SyncConstants.customerServiceBlacklist.name()); List customerServiceBlacklistList = Arrays.stream(customerServiceBlacklist.split("[,,]")) @@ -217,11 +207,9 @@ public class OrganizationOrgSyncServer { continue; } // 循环三次查询三次是否存在当前人员档案 - log.info("根据当前人员信息查询人员档案是否存在"); for(int n = 0 ;n < 4 ; n++){ Map memeberMap = syncFvDao.queryMemberArchiveByMemberId(thirdMember.getId()+""); if(memeberMap==null){ - log.info("人员档案不存在等待5秒后再次执行"+"当前执行次数"+n+1); Thread.sleep(5000); continue; }else{ diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/util/ProtUtil.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/util/ProtUtil.java index e30c5fe..f84e2aa 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/util/ProtUtil.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/util/ProtUtil.java @@ -182,13 +182,13 @@ public class ProtUtil { // 设置连接请求方式 connection.setRequestMethod("POST"); // 设置连接主机服务器超时时间:15000毫秒 -// connection.setConnectTimeout(15000); + connection.setConnectTimeout(15000); // 设置读取主机服务器返回数据超时时间:60000毫秒 -// connection.setReadTimeout(60000); + connection.setReadTimeout(60000); // 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true -// connection.setDoOutput(true); + connection.setDoOutput(true); // 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无 -// connection.setDoInput(true); + connection.setDoInput(true); if(headerMap.size()>0){ for (Map.Entry entry : headerMap.entrySet()) { String key = entry.getKey(); // 获取键 @@ -243,7 +243,6 @@ public class ProtUtil { } } return result; - } diff --git a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/util/QixuexingPortUtil.java b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/util/QixuexingPortUtil.java index 1aa60e1..2f43f43 100644 --- a/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/util/QixuexingPortUtil.java +++ b/v5/apps-customize/src/main/java/com/seeyon/apps/src_mainorganization/util/QixuexingPortUtil.java @@ -1,5 +1,6 @@ package com.seeyon.apps.src_mainorganization.util; +import cn.hutool.log.Log; import com.alibaba.fastjson.JSONObject; import com.seeyon.apps.common.plugin.vo.ConfigVo; import com.seeyon.apps.src_mainorganization.constans.SyncConstants; @@ -14,6 +15,9 @@ import java.util.Map; public class QixuexingPortUtil { + private static Log log = Log.get(QixuexingPortUtil.class); + + /** * 获取企学星token信息 * @param configVo @@ -60,14 +64,14 @@ public class QixuexingPortUtil { String qxxUrl = configVo.getParamVal(SyncConstants.qxxUrl.name()); String qxxSaveOrg = configVo.getParamVal(SyncConstants.qxxSaveOrg.name()); JSONObject param = new JSONObject(); - param.put("orgUuid",map.get("id").toString()); - param.put("name",map.get("name").toString()); - param.put("orgCode",map.get("code")); + param.put("orgUuid",map.get("id")==null?"":map.get("id").toString()); + param.put("name",map.get("name")==null?"":map.get("name").toString()); +// param.put("orgCode",map.get("code")); // 上级设置,如果上级为集团则设置为空。 if(!"-1730833917365171641".equals(subAccountId)){ param.put("parentOrgUuid",subAccountId); } - param.put("orderNum",map.get("sort_id").toString()); + param.put("orderNum",map.get("sort_id")==null?"":map.get("sort_id").toString()); param.put("status","1".equals(map.get("is_enable").toString())?"1":"2"); Map headerMap = setHeaderMap(qxxToken,qxxCorpsecret,param); String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxSaveOrg, headerMap); @@ -107,17 +111,19 @@ public class QixuexingPortUtil { String qxxSaveUser = configVo.getParamVal(SyncConstants.qxxSaveUser.name()); JSONObject param = new JSONObject(); param.put("userUuid",map.get("id").toString()); - param.put("username",map.get("telnumber").toString()); - param.put("realName",map.get("name").toString()); - param.put("orgUuid",map.get("department_id").toString()); - param.put("phone",map.get("telnumber").toString()); + param.put("username",map.get("telnumber")==null?"":map.get("telnumber").toString()); + param.put("realName",map.get("name")==null?"":map.get("name").toString()); + param.put("orgUuid",map.get("department_id")==null?"":map.get("department_id").toString()); + param.put("phone",map.get("telnumber")==null?"":map.get("telnumber").toString()); param.put("credentialsType","1"); - param.put("credentialsCode",map.get("member_no").toString()); - param.put("sex",map.get("member_sex").toString()); - param.put("status",map.get("member_status").toString()); - param.put("entryDate",map.get("board_date").toString()); + param.put("credentialsCode",map.get("member_no")==null?"":map.get("member_no").toString()); + param.put("sex",map.get("member_sex")==null?"":map.get("member_sex").toString()); + param.put("status",map.get("member_status")==null?"":map.get("member_status").toString()); + param.put("entryDate",map.get("board_date")==null?"":map.get("board_date").toString()); Map headerMap = setHeaderMap(qxxToken,qxxCorpsecret,param); + log.info("获取用户信息保存请求参数"+param.toString()); String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxSaveUser, headerMap); + log.info("获取用户信息保存返回结果"+str); JSONObject jsonObject = JSONObject.parseObject(str); return jsonObject; } @@ -132,11 +138,12 @@ public class QixuexingPortUtil { String qxxCorpsecret = configVo.getParamVal(SyncConstants.qxxCorpsecret.name()); String qxxToken = qixuexingToken(configVo); String qxxUrl = configVo.getParamVal(SyncConstants.qxxUrl.name()); - String qxxSaveUser = configVo.getParamVal(SyncConstants.qxxSaveUser.name()); + String qxxDeleteUser = configVo.getParamVal(SyncConstants.qxxDeleteUser.name()); JSONObject param = new JSONObject(); param.put("userUuid",userUuid); Map headerMap = setHeaderMap(qxxToken,qxxCorpsecret,param); - String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxSaveUser, headerMap); + String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxDeleteUser, headerMap); + log.info("人员删除返回结果"+str); JSONObject jsonObject = JSONObject.parseObject(str); return jsonObject; } @@ -153,18 +160,21 @@ public class QixuexingPortUtil { String qxxUrl = configVo.getParamVal(SyncConstants.qxxUrl.name()); String qxxSaveUser = configVo.getParamVal(SyncConstants.qxxSaveUser.name()); JSONObject param = new JSONObject(); - param.put("userUuid",map.get("id").toString()); - param.put("username",map.get("telnumber").toString()); - param.put("realName",map.get("name").toString()); - param.put("orgUuid",map.get("dept_id").toString()); - param.put("phone",map.get("telnumber").toString()); + param.put("userUuid",map.get("id")==null?"":map.get("id").toString()); + param.put("username",map.get("telnumber")==null?"":map.get("telnumber").toString()); + param.put("realName",map.get("name")==null?"":map.get("name").toString()); + param.put("orgUuid",map.get("dept_id")==null?"":map.get("dept_id").toString()); + param.put("phone",map.get("telnumber")==null?"":map.get("telnumber").toString()); param.put("credentialsType","1"); - param.put("credentialsCode",map.get("member_no").toString()); - param.put("sex",map.get("member_sex").toString()); - param.put("status",map.get("member_status").toString()); - param.put("entryDate",map.get("hiredate").toString()); + param.put("credentialsCode",map.get("member_no")==null?"":map.get("member_no").toString()); + param.put("sex",map.get("member_sex")==null?"":map.get("member_sex").toString()); + param.put("status",map.get("member_status")==null?"":map.get("member_status").toString()); + param.put("entryDate",map.get("hiredate")==null?"":map.get("hiredate").toString()); Map headerMap = setHeaderMap(qxxToken,qxxCorpsecret,param); +// 保存请求参数 + log.info("业代请求参数:"+param.toString()); String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxSaveUser, headerMap); + log.info("业代返回参数:"+str); JSONObject jsonObject = JSONObject.parseObject(str); return jsonObject; } @@ -179,11 +189,11 @@ public class QixuexingPortUtil { String qxxCorpsecret = configVo.getParamVal(SyncConstants.qxxCorpsecret.name()); String qxxToken = qixuexingToken(configVo); String qxxUrl = configVo.getParamVal(SyncConstants.qxxUrl.name()); - String qxxSaveUser = configVo.getParamVal(SyncConstants.qxxSaveUser.name()); + String qxxDeleteUser = configVo.getParamVal(SyncConstants.qxxDeleteUser.name()); JSONObject param = new JSONObject(); param.put("userUuid",userUuid); Map headerMap = setHeaderMap(qxxToken,qxxCorpsecret,param); - String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxSaveUser, headerMap); + String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxDeleteUser, headerMap); JSONObject jsonObject = JSONObject.parseObject(str); return jsonObject; } @@ -200,18 +210,22 @@ public class QixuexingPortUtil { String qxxUrl = configVo.getParamVal(SyncConstants.qxxUrl.name()); String qxxSaveUser = configVo.getParamVal(SyncConstants.qxxSaveUser.name()); JSONObject param = new JSONObject(); - param.put("userUuid",map.get("id").toString()); - param.put("username",map.get("telnumber").toString()); - param.put("realName",map.get("name").toString()); - param.put("orgUuid",map.get("area_dept").toString()); - param.put("phone",map.get("telnumber").toString()); + param.put("userUuid",map.get("id")==null?"":map.get("id").toString()); + param.put("username",map.get("telnumber")==null?"":map.get("telnumber").toString()); + param.put("realName",map.get("name")==null?"":map.get("name").toString()); + param.put("orgUuid",map.get("area_dept")==null?"":map.get("area_dept").toString()); + param.put("phone",map.get("telnumber")==null?"":map.get("telnumber").toString()); param.put("credentialsType","1"); - param.put("credentialsCode",map.get("member_no").toString()); - param.put("sex",map.get("member_sex").toString()); - param.put("status",map.get("member_status").toString()); - param.put("entryDate",map.get("board_date").toString()); + param.put("credentialsCode",map.get("member_no")==null?"":map.get("member_no").toString()); + param.put("sex",map.get("member_sex")==null?"":map.get("member_sex").toString()); + param.put("status",map.get("member_status")==null?"":map.get("member_status").toString()); + param.put("entryDate",map.get("board_date")==null?"":map.get("board_date").toString()); Map headerMap = setHeaderMap(qxxToken,qxxCorpsecret,param); +// 请求参数 + log.info("客户人员同步请求参数"+param); String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxSaveUser, headerMap); + log.info("客户人员同步请求结果"+str); +// 返回结果 JSONObject jsonObject = JSONObject.parseObject(str); return jsonObject; } @@ -226,11 +240,11 @@ public class QixuexingPortUtil { String qxxCorpsecret = configVo.getParamVal(SyncConstants.qxxCorpsecret.name()); String qxxToken = qixuexingToken(configVo); String qxxUrl = configVo.getParamVal(SyncConstants.qxxUrl.name()); - String qxxSaveUser = configVo.getParamVal(SyncConstants.qxxSaveUser.name()); + String qxxDeleteUser = configVo.getParamVal(SyncConstants.qxxDeleteUser.name()); JSONObject param = new JSONObject(); param.put("userUuid",userUuid); Map headerMap = setHeaderMap(qxxToken,qxxCorpsecret,param); - String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxSaveUser, headerMap); + String str = ProtUtil.doPost(param.toString(), qxxUrl+qxxDeleteUser, headerMap); JSONObject jsonObject = JSONObject.parseObject(str); return jsonObject; }