From c448007ccd61521485ff30f9003dc2084ab975c1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=84=E6=AD=A3=E5=9B=BD?= <438926402@qq.com>
Date: Thu, 31 Jul 2025 17:42:50 +0800
Subject: [PATCH] =?UTF-8?q?=E7=A8=BB=E8=8A=B1=E9=A6=99=E4=B8=BB=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E4=B8=8A=E4=BC=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../spring/spring-node.xml | 4 +
.../src_membermanage/spring/spring-node.xml | 1 +
.../sso/DhxFlowWaitHandlesso.java | 21 +-
.../node/DepartmentCloseNode.java | 2 +-
.../node/LevelAddNode.java | 154 +++++++++++++
.../node/LevelCloseNode.java | 136 +++++++++++
.../node/PostAddNode.java | 147 ++++++++++++
.../node/PostCloseNode.java | 136 +++++++++++
.../MemberOrganizationCommonNode.java | 3 -
.../src_membermanage/node/MemberWorkNode.java | 2 +-
.../node/MemberYearTaskNode.java | 211 ++++++++++++++++++
.../apps/src_qyba/dao/ISrcBeianDao.java | 2 +-
.../apps/src_qyba/dao/impl/SrcBeianDao.java | 5 +-
.../impl/MultipleViewsPrintManagerImpl.java | 8 +-
.../SaveAndUpdateMemberMainResource.java | 1 -
...TemporaryBeianSynchronizationResource.java | 11 +-
16 files changed, 816 insertions(+), 28 deletions(-)
create mode 100644 src/com/seeyon/apps/src_mainorganization/node/LevelAddNode.java
create mode 100644 src/com/seeyon/apps/src_mainorganization/node/LevelCloseNode.java
create mode 100644 src/com/seeyon/apps/src_mainorganization/node/PostAddNode.java
create mode 100644 src/com/seeyon/apps/src_mainorganization/node/PostCloseNode.java
create mode 100644 src/com/seeyon/apps/src_membermanage/node/MemberYearTaskNode.java
diff --git a/seeyon/WEB-INF/cfgHome/src_mainorganization/spring/spring-node.xml b/seeyon/WEB-INF/cfgHome/src_mainorganization/spring/spring-node.xml
index 1cb2962..54de1d4 100644
--- a/seeyon/WEB-INF/cfgHome/src_mainorganization/spring/spring-node.xml
+++ b/seeyon/WEB-INF/cfgHome/src_mainorganization/spring/spring-node.xml
@@ -3,4 +3,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/seeyon/WEB-INF/cfgHome/src_membermanage/spring/spring-node.xml b/seeyon/WEB-INF/cfgHome/src_membermanage/spring/spring-node.xml
index 56978ab..6f30e2f 100644
--- a/seeyon/WEB-INF/cfgHome/src_membermanage/spring/spring-node.xml
+++ b/seeyon/WEB-INF/cfgHome/src_membermanage/spring/spring-node.xml
@@ -43,5 +43,6 @@
+
\ No newline at end of file
diff --git a/src/com/seeyon/apps/src_dhxbacklog/sso/DhxFlowWaitHandlesso.java b/src/com/seeyon/apps/src_dhxbacklog/sso/DhxFlowWaitHandlesso.java
index ea6d625..7fba90d 100644
--- a/src/com/seeyon/apps/src_dhxbacklog/sso/DhxFlowWaitHandlesso.java
+++ b/src/com/seeyon/apps/src_dhxbacklog/sso/DhxFlowWaitHandlesso.java
@@ -36,18 +36,11 @@ public class DhxFlowWaitHandlesso extends BaseController {
public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("123123123123123");
- ConfigVo configVo = getDhxBacklogConfig();
- ModelAndView mv = new ModelAndView();
+ ConfigVo configVo = getDhxBacklogConfig();
+ ModelAndView mv = new ModelAndView();
// 根据当前账号获取流程平台账号
String userLoginName = AppContext.currentUserLoginName();
-// V3xOrgMember v3xOrgMember = orgManager.getMemberById(userId);
-// if(v3xOrgMember==null){
-// mv.setViewName("跳转失败"); // 设置视图名称
-// mv.addObject("message", "请检查登录名数据绑定!"); // 添加模型数据
-// return mv;
-// }
// 获取当前绑定人员登录名
-// String changleLoginName = users.get(0).get("changleLoginName");
String salt = "-";
Date date = new Date();
String ticket = userLoginName+salt+date.getTime();
@@ -59,17 +52,13 @@ public class DhxFlowWaitHandlesso extends BaseController {
configVo.getParamVal(DhxFlowConstants.dhxflowssourl.name())+ticket+"&tourl="+toEncodeUrl;
// 判断登录是否移动端
if("H5".equals(type)){
-// 长乐rest用户名
String changleRestUsername = configVo.getParamVal(DhxFlowConstants.flowRestUsername.name());
-// 长乐rest密码
String changleRestPassword = configVo.getParamVal(DhxFlowConstants.flowRestPassword.name());
-// 长乐获取tokenUrl
- String url = configVo.getParamVal(DhxFlowConstants.flowUrl.name())+
+ String url = configVo.getParamVal(DhxFlowConstants.flowUrl.name())+
configVo.getParamVal(DhxFlowConstants.TokenUrl.name());
// 调用接口获取TOKEN信息
- String token = GetToken.changleToken(url,changleRestUsername,changleRestPassword,userLoginName);
-
- pathUrl = configVo.getParamVal(DhxFlowConstants.flowUrl.name())+
+ String token = GetToken.changleToken(url,changleRestUsername,changleRestPassword,userLoginName);
+ pathUrl = configVo.getParamVal(DhxFlowConstants.flowUrl.name())+
configVo.getParamVal(DhxFlowConstants.dhxflowssoh5url.name())+token+"&html="+toEncodeUrl+"&loginName="+userLoginName;
}
System.out.println(pathUrl);
diff --git a/src/com/seeyon/apps/src_mainorganization/node/DepartmentCloseNode.java b/src/com/seeyon/apps/src_mainorganization/node/DepartmentCloseNode.java
index 1ea3f12..d97a269 100644
--- a/src/com/seeyon/apps/src_mainorganization/node/DepartmentCloseNode.java
+++ b/src/com/seeyon/apps/src_mainorganization/node/DepartmentCloseNode.java
@@ -72,7 +72,7 @@ public class DepartmentCloseNode extends ACommonSuperNode {
@Override
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
- log.info("进入部门新增处理流程"+getNodeId());
+ log.info("进入部门停用处理流程"+getNodeId());
ConfigVo configVo = getMemberMamageConfig();
SuperNodeContext context = new SuperNodeContext();
context.setNeedSave(true);
diff --git a/src/com/seeyon/apps/src_mainorganization/node/LevelAddNode.java b/src/com/seeyon/apps/src_mainorganization/node/LevelAddNode.java
new file mode 100644
index 0000000..e59be9f
--- /dev/null
+++ b/src/com/seeyon/apps/src_mainorganization/node/LevelAddNode.java
@@ -0,0 +1,154 @@
+package com.seeyon.apps.src_mainorganization.node;
+
+import cn.hutool.log.Log;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.apps.common.workflow.constants.WorkFlowType;
+import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
+import com.seeyon.apps.ext.workflow.vo.FormDataVo;
+import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
+import com.seeyon.apps.src_mainorganization.constants.MainorganizationConstants;
+import com.seeyon.apps.src_mainorganization.util.ProtUtil;
+import com.seeyon.cap4.form.bean.FormDataMasterBean;
+import com.seeyon.ctp.common.AppContext;
+import com.seeyon.ctp.organization.bo.V3xOrgAccount;
+import com.seeyon.ctp.organization.bo.V3xOrgLevel;
+import com.seeyon.ctp.organization.manager.OrgManager;
+import com.seeyon.ctp.util.UUIDLong;
+
+import javax.inject.Inject;
+import java.util.List;
+
+public class LevelAddNode extends ACommonSuperNode {
+
+ private static Log log = Log.get(LevelAddNode.class);
+
+ protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
+
+ @Inject
+ private OrgManager orgManager;
+
+ @Override
+ public String getPluginId() {
+ return MainorganizationConstants.getPluginId();
+ }
+
+ @Override
+ public String getFormParse() {
+ return "json";
+ }
+
+ @Override
+ public WorkFlowType[] getTypes() {
+ return new WorkFlowType[] {WorkFlowType.superNode};
+ }
+
+ public ConfigVo getMainorganizationConfig() {
+ return cstConfigApi.getConfig(getPluginId());
+ }
+
+ @Override
+ public String getNodeId() {
+ return "LevelAddNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "职务级别批量新增超级节点";
+ }
+
+// {
+// "data": "jsonArr::明细表1",
+// "seeyonFormSon": {
+// "明细表1": {
+// "name": "职务级别名称",
+// "orgAccountId": "所属单位",
+// "code": "职务级别代码",
+// "sortId": "职务级别序号"
+// }
+// }
+// }
+
+ @Override
+ public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
+ log.info("进入职务级别批量新增处理流程"+getNodeId());
+ ConfigVo configVo = getMainorganizationConfig();
+// 创建返回对象
+ SuperNodeContext context = new SuperNodeContext();
+ context.setNeedSave(true);
+ log.info("请求参数"+request);
+ JSONObject param = JSONObject.parseObject(request);
+// 获取职务级别明细信息
+ JSONArray datas = param.getJSONArray("data");
+// 记录新增返回值
+ JSONArray requestJson = new JSONArray();
+ String mainUrl = configVo.getParamVal(MainorganizationConstants.mainUrl.name());
+ String getzsjTokenUrl = configVo.getParamVal(MainorganizationConstants.getzsjTokenUrl.name());
+ String restzsjUserName = configVo.getParamVal(MainorganizationConstants.restzsjUserName.name());
+ String restzsjPassword = configVo.getParamVal(MainorganizationConstants.restzsjPassword.name());
+ String zsjloginName = configVo.getParamVal(MainorganizationConstants.zsjloginName.name());
+// 调用接口查询主数据token
+ String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
+ String mainlevelsurl = mainUrl+"/seeyon/rest/orgLevel?token="+mainToken;
+ log.info("设置职务级别新增接口路径"+mainlevelsurl);
+ String ret = "";
+// 遍历明细表数据
+ data:for (int i = 0 ; i < datas.size() ; i ++) {
+ JSONObject data = datas.getJSONObject(i);
+// 获取需要新增的职务级别名称
+ String levelName = data.getString("levelName");
+// 获取新增职务级别所在单位的控件名称
+ long orgAccountId = data.getLongValue("orgAccountId");
+// 获取需要新增职务级别编码
+ long levelCode = data.getLongValue("code");
+// 获取需要新增职务级别序号
+ long levelSortId = data.getLongValue("sortId");
+ V3xOrgAccount v3xOrgAccount = orgManager.getAccountById(orgAccountId);
+ List allLevels = orgManager.getAllLevels(orgAccountId);
+// 遍历现存同名职务级别信息
+ old:for(V3xOrgLevel level:allLevels){
+ if(level.getName().equals(levelName)){
+ ret = ret +levelName + "职务级别已经存在,跳过处理;";
+ break data;
+ }
+ }
+// 封装职务级别新增参数,新增职务级别信息
+ JSONObject leveljson = new JSONObject();
+ leveljson.put("name",levelName);
+ leveljson.put("description","");
+ leveljson.put("orgAccountId",orgAccountId);
+ leveljson.put("enabled",true);
+ leveljson.put("id", UUIDLong.longUUID());
+ leveljson.put("code",levelCode);
+ leveljson.put("sortId",levelSortId);
+ requestJson.add(leveljson);
+ JSONObject res = ProtUtil.doPost(leveljson.toString(),mainlevelsurl);
+ if(res==null){
+ ret=ret+levelName+"职务级别添加返回为空;";
+ }else{
+ String success = res.getString("success");
+ if("false".equals(success)){
+ JSONArray errorMsgInfos = res.getJSONArray("errorMsgInfos");
+ JSONObject errorMsgInfo = errorMsgInfos.getJSONObject(0);
+ String msgInfo = errorMsgInfo.getString("msgInfo");
+ ret=ret+levelName+msgInfo+";";
+ context.back(ret);
+ context.setErrMsg(ret);
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }else{
+ ret=ret+levelName+"添加成功;";
+ }
+ }
+ }
+ context.success(requestJson.toString());
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }
+
+
+}
diff --git a/src/com/seeyon/apps/src_mainorganization/node/LevelCloseNode.java b/src/com/seeyon/apps/src_mainorganization/node/LevelCloseNode.java
new file mode 100644
index 0000000..b1b8ff1
--- /dev/null
+++ b/src/com/seeyon/apps/src_mainorganization/node/LevelCloseNode.java
@@ -0,0 +1,136 @@
+package com.seeyon.apps.src_mainorganization.node;
+
+import cn.hutool.log.Log;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.apps.common.workflow.constants.WorkFlowType;
+import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
+import com.seeyon.apps.ext.workflow.vo.FormDataVo;
+import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
+import com.seeyon.apps.src_mainorganization.constants.MainorganizationConstants;
+import com.seeyon.apps.src_mainorganization.util.ProtUtil;
+import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
+import com.seeyon.cap4.form.bean.FormDataMasterBean;
+import com.seeyon.ctp.common.AppContext;
+import com.seeyon.ctp.organization.bo.V3xOrgLevel;
+import com.seeyon.ctp.organization.manager.OrgManager;
+
+import javax.inject.Inject;
+import java.util.HashMap;
+
+public class LevelCloseNode extends ACommonSuperNode {
+
+ private static Log log = Log.get(MemberManageCommonNode.class);
+
+ protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
+
+ @Inject
+ private OrgManager orgManager;
+
+ @Override
+ public String getPluginId() {
+ return MainorganizationConstants.getPluginId();
+ }
+
+ @Override
+ public String getFormParse() {
+ return "json";
+ }
+
+ @Override
+ public WorkFlowType[] getTypes() {
+ return new WorkFlowType[] {WorkFlowType.superNode};
+ }
+
+ public ConfigVo getMemberMamageConfig() {
+ return cstConfigApi.getConfig(getPluginId());
+ }
+
+ @Override
+ public String getNodeId() {
+ return "LevelCloseNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "职务级别批量停用超级节点";
+ }
+
+// {
+// "data": "jsonArr::明细表1",
+// "seeyonFormSon": {
+// "明细表1": {
+// "levelId": "职务级别名称",
+// "orgAccountId": "所属单位"
+// }
+// }
+// }
+
+ @Override
+ public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
+ log.info("进入职务级别新增处理流程"+getNodeId());
+ ConfigVo configVo = getMemberMamageConfig();
+ SuperNodeContext context = new SuperNodeContext();
+ context.setNeedSave(true);
+ log.info("请求参数"+request);
+ JSONObject param = JSONObject.parseObject(request);
+ // 获取职务级别明细信息
+ JSONArray datas = param.getJSONArray("data");
+ // 记录新增返回值
+ JSONArray requestJson = new JSONArray();
+ String mainUrl = configVo.getParamVal(MainorganizationConstants.mainUrl.name());
+ String getzsjTokenUrl = configVo.getParamVal(MainorganizationConstants.getzsjTokenUrl.name());
+ String restzsjUserName = configVo.getParamVal(MainorganizationConstants.restzsjUserName.name());
+ String restzsjPassword = configVo.getParamVal(MainorganizationConstants.restzsjPassword.name());
+ String zsjloginName = configVo.getParamVal(MainorganizationConstants.zsjloginName.name());
+// 调用接口查询主数据token
+ String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
+ String mainlevelsurl = mainUrl+"/seeyon/rest/orgLevel/{levelId}/enabled/false?token="+mainToken;
+ log.info("设置职务级别停用接口接口路径"+mainlevelsurl);
+ String ret = "";
+// 遍历明细表数据
+ data:for (int i = 0 ; i < datas.size() ; i ++) {
+ JSONObject data = datas.getJSONObject(i);
+// 获取需要新增的职务级别名称
+ long levelId = data.getLongValue("levelId");
+ V3xOrgLevel v3xOrgLevel = orgManager.getLevelById(levelId);
+// 获取新增部门所在单位的控件名称
+ long orgAccountId = data.getLongValue("orgAccountId");
+ requestJson.add(v3xOrgLevel.getName()+levelId);
+ String enabledFalseUrl = mainlevelsurl.replace("{levelId}",levelId+"");
+// 需要停用部门下不存在任何启动部门和人员执行停用接口
+ String resstr = ProtUtil.httpPutRaw(enabledFalseUrl,"",new HashMap<>(),null);
+ JSONObject res = JSONObject.parseObject(resstr);
+ if(res==null){
+ ret=ret+v3xOrgLevel.getName()+"部门停用返回为空;";
+ context.back(ret);
+ context.setErrMsg(ret);
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }else{
+ String success = res.getString("success");
+ if("false".equals(success)){
+ JSONArray errorMsgInfos = res.getJSONArray("errorMsgInfos");
+ JSONObject errorMsgInfo = errorMsgInfos.getJSONObject(0);
+ String msgInfo = errorMsgInfo.getString("msgInfo");
+ ret=ret+v3xOrgLevel.getName()+msgInfo+";";
+ context.back(ret);
+ context.setErrMsg(ret);
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }else{
+ ret=ret+v3xOrgLevel.getName()+"部门停用成功;";
+ }
+ }
+ }
+ context.success(requestJson.toString());
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }
+
+}
diff --git a/src/com/seeyon/apps/src_mainorganization/node/PostAddNode.java b/src/com/seeyon/apps/src_mainorganization/node/PostAddNode.java
new file mode 100644
index 0000000..3c18624
--- /dev/null
+++ b/src/com/seeyon/apps/src_mainorganization/node/PostAddNode.java
@@ -0,0 +1,147 @@
+package com.seeyon.apps.src_mainorganization.node;
+
+import cn.hutool.log.Log;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.apps.common.workflow.constants.WorkFlowType;
+import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
+import com.seeyon.apps.ext.workflow.vo.FormDataVo;
+import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
+import com.seeyon.apps.src_mainorganization.constants.MainorganizationConstants;
+import com.seeyon.apps.src_mainorganization.util.ProtUtil;
+import com.seeyon.cap4.form.bean.FormDataMasterBean;
+import com.seeyon.ctp.common.AppContext;
+import com.seeyon.ctp.organization.bo.V3xOrgAccount;
+import com.seeyon.ctp.organization.bo.V3xOrgPost;
+import com.seeyon.ctp.organization.manager.OrgManager;
+import com.seeyon.ctp.util.UUIDLong;
+
+import javax.inject.Inject;
+import java.util.List;
+
+/**
+ * 岗位批量新增超级节点
+ */
+public class PostAddNode extends ACommonSuperNode {
+
+ private static Log log = Log.get(PostAddNode.class);
+
+ protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
+
+ @Inject
+ private OrgManager orgManager;
+
+ @Override
+ public String getPluginId() {return MainorganizationConstants.getPluginId();}
+
+ @Override
+ public String getFormParse() {return "json";}
+
+ @Override
+ public WorkFlowType[] getTypes() {return new WorkFlowType[] {WorkFlowType.superNode};}
+
+ public ConfigVo getMainorganizationConfig() {return cstConfigApi.getConfig(getPluginId());}
+
+ @Override
+ public String getNodeId() { return "PostAddNode";}
+
+ @Override
+ public String getNodeName() {return "岗位批量新增超级节点";}
+
+// {
+// "data": "jsonArr::明细表1",
+// "seeyonFormSon": {
+// "明细表1": {
+// "name": "岗位名称",
+// "orgAccountId": "所属单位",
+// "code": "岗位代码",
+// "typeId": "岗位类别"
+// }
+// }
+// }
+
+ @Override
+ public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
+ log.info("进入岗位批量新增处理流程"+getNodeId());
+ ConfigVo configVo = getMainorganizationConfig();
+// 创建返回对象
+ SuperNodeContext context = new SuperNodeContext();
+ context.setNeedSave(true);
+ log.info("请求参数"+request);
+ JSONObject param = JSONObject.parseObject(request);
+// 获取岗位明细信息
+ JSONArray datas = param.getJSONArray("data");
+// 记录新增返回值
+ JSONArray requestJson = new JSONArray();
+ String mainUrl = configVo.getParamVal(MainorganizationConstants.mainUrl.name());
+ String getzsjTokenUrl = configVo.getParamVal(MainorganizationConstants.getzsjTokenUrl.name());
+ String restzsjUserName = configVo.getParamVal(MainorganizationConstants.restzsjUserName.name());
+ String restzsjPassword = configVo.getParamVal(MainorganizationConstants.restzsjPassword.name());
+ String zsjloginName = configVo.getParamVal(MainorganizationConstants.zsjloginName.name());
+// 调用接口查询主数据token
+ String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
+ String mainpostsurl = mainUrl+"/seeyon/rest/orgPost?token="+mainToken;
+ log.info("设置岗位新增接口路径"+mainpostsurl);
+ String ret = "";
+// 遍历明细表数据
+ data:for (int i = 0 ; i < datas.size() ; i ++) {
+ JSONObject data = datas.getJSONObject(i);
+// 获取需要新增的岗位名称
+ String postName = data.getString("name");
+// 获取新增岗位所在单位的控件名称
+ long orgAccountId = data.getLongValue("orgAccountId");
+// 获取需要新增的岗位代码
+ String postCode = data.getString("code");
+// 获取需要新增的岗位类型,默认为1
+ String postTypeId = data.getString("typeId");
+
+ V3xOrgAccount v3xOrgAccount = orgManager.getAccountById(orgAccountId);
+// 根据岗位名称查询岗位名称和单位ID,查询岗位信息
+ List allPosts = orgManager.getAllPosts(orgAccountId);
+// 遍历现存同名岗位信息
+ old:for(V3xOrgPost post:allPosts){
+ if(post.getName().equals(postName)){
+ ret = ret +postName + "岗位已经存在,跳过处理;";
+ break data;
+ }
+ }
+// 封装岗位新增参数,新增岗位信息
+ JSONObject postjson = new JSONObject();
+ postjson.put("name",postName);
+ postjson.put("code",postCode);
+ postjson.put("typeId",postTypeId);
+ postjson.put("description","");
+ postjson.put("enabled",true);
+ postjson.put("id", UUIDLong.longUUID());
+ postjson.put("orgAccountId",orgAccountId);
+ requestJson.add(postjson);
+ JSONObject res = ProtUtil.doPost(postjson.toString(),mainpostsurl);
+ if(res==null){
+ ret=ret+postName+"岗位添加返回为空;";
+ }else{
+ String success = res.getString("success");
+ if("false".equals(success)){
+ JSONArray errorMsgInfos = res.getJSONArray("errorMsgInfos");
+ JSONObject errorMsgInfo = errorMsgInfos.getJSONObject(0);
+ String msgInfo = errorMsgInfo.getString("msgInfo");
+ ret=ret+postName+msgInfo+";";
+ context.back(ret);
+ context.setErrMsg(ret);
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }else{
+ ret=ret+postName+"添加成功;";
+ }
+ }
+ }
+ context.success(requestJson.toString());
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }
+
+
+}
diff --git a/src/com/seeyon/apps/src_mainorganization/node/PostCloseNode.java b/src/com/seeyon/apps/src_mainorganization/node/PostCloseNode.java
new file mode 100644
index 0000000..82b6a5f
--- /dev/null
+++ b/src/com/seeyon/apps/src_mainorganization/node/PostCloseNode.java
@@ -0,0 +1,136 @@
+package com.seeyon.apps.src_mainorganization.node;
+
+import cn.hutool.log.Log;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.apps.common.workflow.constants.WorkFlowType;
+import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
+import com.seeyon.apps.ext.workflow.vo.FormDataVo;
+import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
+import com.seeyon.apps.src_mainorganization.constants.MainorganizationConstants;
+import com.seeyon.apps.src_mainorganization.util.ProtUtil;
+import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
+import com.seeyon.cap4.form.bean.FormDataMasterBean;
+import com.seeyon.ctp.common.AppContext;
+import com.seeyon.ctp.organization.bo.V3xOrgPost;
+import com.seeyon.ctp.organization.manager.OrgManager;
+
+import javax.inject.Inject;
+import java.util.HashMap;
+
+public class PostCloseNode extends ACommonSuperNode {
+
+ private static Log log = Log.get(MemberManageCommonNode.class);
+
+ protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
+
+ @Inject
+ private OrgManager orgManager;
+
+ @Override
+ public String getPluginId() {
+ return MainorganizationConstants.getPluginId();
+ }
+
+ @Override
+ public String getFormParse() {
+ return "json";
+ }
+
+ @Override
+ public WorkFlowType[] getTypes() {
+ return new WorkFlowType[] {WorkFlowType.superNode};
+ }
+
+ public ConfigVo getMemberMamageConfig() {
+ return cstConfigApi.getConfig(getPluginId());
+ }
+
+ @Override
+ public String getNodeId() {
+ return "PostCloseNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "岗位批量停用超级节点";
+ }
+
+// {
+// "data": "jsonArr::明细表1",
+// "seeyonFormSon": {
+// "明细表1": {
+// "postId": "岗位名称",
+// "orgAccountId": "所属单位"
+// }
+// }
+// }
+
+ @Override
+ public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
+ log.info("进入岗位批量停用处理流程"+getNodeId());
+ ConfigVo configVo = getMemberMamageConfig();
+ SuperNodeContext context = new SuperNodeContext();
+ context.setNeedSave(true);
+ log.info("岗位批量停用请求参数"+request);
+ JSONObject param = JSONObject.parseObject(request);
+ // 获取岗位明细信息
+ JSONArray datas = param.getJSONArray("data");
+ // 记录停用返回值
+ JSONArray requestJson = new JSONArray();
+ String mainUrl = configVo.getParamVal(MainorganizationConstants.mainUrl.name());
+ String getzsjTokenUrl = configVo.getParamVal(MainorganizationConstants.getzsjTokenUrl.name());
+ String restzsjUserName = configVo.getParamVal(MainorganizationConstants.restzsjUserName.name());
+ String restzsjPassword = configVo.getParamVal(MainorganizationConstants.restzsjPassword.name());
+ String zsjloginName = configVo.getParamVal(MainorganizationConstants.zsjloginName.name());
+// 调用接口查询主数据token
+ String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
+ String mainpostsurl = mainUrl+"/seeyon/rest/orgPost/{postId}/enabled/false?token="+mainToken;
+ log.info("设置岗位接口接口路径"+mainpostsurl);
+ String ret = "";
+// 遍历明细表数据
+ data:for (int i = 0 ; i < datas.size() ; i ++) {
+ JSONObject data = datas.getJSONObject(i);
+// 获取需要停用的岗位名称
+ long postId = data.getLongValue("postId");
+ V3xOrgPost v3xOrgPost = orgManager.getPostById(postId);
+// 获取新增岗位所在单位的控件名称
+ long orgAccountId = data.getLongValue("orgAccountId");
+ requestJson.add(v3xOrgPost.getName()+postId);
+ String enabledFalseUrl = mainpostsurl.replace("{postId}",postId+"");
+// 需要停用岗位下不存在任何启动岗位和人员执行停用接口
+ String resstr = ProtUtil.httpPutRaw(enabledFalseUrl,"",new HashMap<>(),null);
+ JSONObject res = JSONObject.parseObject(resstr);
+ if(res==null){
+ ret=ret+v3xOrgPost.getName()+"岗位停用返回为空;";
+ context.back(ret);
+ context.setErrMsg(ret);
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }else{
+ String success = res.getString("success");
+ if("false".equals(success)){
+ JSONArray errorMsgInfos = res.getJSONArray("errorMsgInfos");
+ JSONObject errorMsgInfo = errorMsgInfos.getJSONObject(0);
+ String msgInfo = errorMsgInfo.getString("msgInfo");
+ ret=ret+v3xOrgPost.getName()+msgInfo+";";
+ context.back(ret);
+ context.setErrMsg(ret);
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }else{
+ ret=ret+v3xOrgPost.getName()+"岗位停用成功;";
+ }
+ }
+ }
+ context.success(requestJson.toString());
+ context.setRequest(requestJson.toString());
+ context.setResponse(ret);
+ return context;
+ }
+
+}
diff --git a/src/com/seeyon/apps/src_membermanage/MemberOrganizationCommonNode.java b/src/com/seeyon/apps/src_membermanage/MemberOrganizationCommonNode.java
index 01e01d0..4e7a010 100644
--- a/src/com/seeyon/apps/src_membermanage/MemberOrganizationCommonNode.java
+++ b/src/com/seeyon/apps/src_membermanage/MemberOrganizationCommonNode.java
@@ -114,7 +114,6 @@ public abstract class MemberOrganizationCommonNode extends ACommonSuperNode {
// 查询当前人员是否存在
JSONObject paramjson = JSONObject.parseObject(param);
String memberId = paramjson.getString("id");
-// memberId = "4176737357362384888";
String isExistUpdateUrl = mainUrl+"/seeyon/rest/orgMember/"+memberId+"?token="+mainToken;
String isExistUpdate = ProtUtil.doGet(isExistUpdateUrl,new JSONObject());
// 判断当前人员是否存在
@@ -124,8 +123,6 @@ public abstract class MemberOrganizationCommonNode extends ACommonSuperNode {
JSONObject res = ProtUtil.doPost(param,memberOrganizationUpdateUrl);
log.info(res.toString());
context.setResponse(res.toString());
-// JSONObject resjson = JSONObject.parseObject(res);
-// MemberOrganizationResponse mor = new MemberOrganizationResponse(res);
if(res.getInteger("code")==0){
String resDatastr = res.getString("data");
JSONObject resDatajson = JSONObject.parseObject(resDatastr);
diff --git a/src/com/seeyon/apps/src_membermanage/node/MemberWorkNode.java b/src/com/seeyon/apps/src_membermanage/node/MemberWorkNode.java
index aa3753e..0dc9c5d 100644
--- a/src/com/seeyon/apps/src_membermanage/node/MemberWorkNode.java
+++ b/src/com/seeyon/apps/src_membermanage/node/MemberWorkNode.java
@@ -24,6 +24,6 @@ public class MemberWorkNode extends MemberManageCommonNode {
@Override
public String getNodeName() {
- return "人员工作经历档案表超级节点";
+ return "人员工作经历档案表超级节点";
}
}
diff --git a/src/com/seeyon/apps/src_membermanage/node/MemberYearTaskNode.java b/src/com/seeyon/apps/src_membermanage/node/MemberYearTaskNode.java
new file mode 100644
index 0000000..d951cf2
--- /dev/null
+++ b/src/com/seeyon/apps/src_membermanage/node/MemberYearTaskNode.java
@@ -0,0 +1,211 @@
+package com.seeyon.apps.src_membermanage.node;
+
+import cn.hutool.log.Log;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.seeyon.apps.common.config.ICstConfigApi;
+import com.seeyon.apps.common.plugin.vo.ConfigVo;
+import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
+import com.seeyon.apps.ext.workflow.vo.FieldDataVo;
+import com.seeyon.apps.ext.workflow.vo.FormDataVo;
+import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
+import com.seeyon.apps.src_membermanage.constants.MemberManageConstants;
+import com.seeyon.apps.src_membermanage.util.DataProcessingUtil;
+import com.seeyon.apps.src_membermanage.util.ProtUtil;
+import com.seeyon.apps.src_membermanage.vo.MemberManagerResponse;
+import com.seeyon.cap4.form.bean.FormDataMasterBean;
+import com.seeyon.ctp.common.AppContext;
+import com.seeyon.ctp.util.UUIDLong;
+import www.seeyon.com.utils.StringUtil;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 营销人员年度任务完成情况超级节点
+ */
+public class MemberYearTaskNode extends ACommonSuperNode {
+
+ private static Log log = Log.get(MemberYearTaskNode.class);
+ protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
+
+ @Override
+ public String getNodeId() {
+ return "MemberYearTaskNode";
+ }
+
+ @Override
+ public String getNodeName() {
+ return "营销人员年度任务完成情况超级节点";
+ }
+
+ @Override
+ public String getPluginId() {
+ return MemberManageConstants.getPluginId();
+ }
+
+ @Override
+ public String getFormParse() {
+ return "json";
+ }
+
+ public ConfigVo getMemberMamageConfig() {
+ return cstConfigApi.getConfig(getPluginId());
+ }
+
+
+ @Override
+ public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
+ log.info("营销人员年度任务完成情况超级节点"+getNodeId());
+ ConfigVo configVo = getMemberMamageConfig();
+ SuperNodeContext context = new SuperNodeContext();
+ context.setNeedSave(true);
+ JSONObject paramJson = JSONObject.parseObject(request);
+ String enumFields = paramJson.getString("enumFields");
+ String mainUrl = configVo.getParamVal(MemberManageConstants.mainUrl.name());
+ String getzsjTokenUrl = configVo.getParamVal(MemberManageConstants.getzsjTokenUrl.name());
+ String restzsjUserName = configVo.getParamVal(MemberManageConstants.restzsjUserName.name());
+ String restzsjPassword = configVo.getParamVal(MemberManageConstants.restzsjPassword.name());
+ String zsjloginName = configVo.getParamVal(MemberManageConstants.zsjloginName.name());
+// 调用接口查询主数据token
+ String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
+// 获取当前表单数据
+// Map> SubFormMap = formDataVo.getSubFormMap();
+ List subForms = formDataVo.getSubFormMap().get("明细表1");
+ for (FormDataVo subFormDataVo : subForms) {
+// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
+// 创建唯一值查询参数
+ JSONObject isExistUpdateParam = new JSONObject();
+ isExistUpdateParam.put("formCode",paramJson.getString("formCode"));
+ JSONObject uniqueness = new JSONObject();
+ JSONObject uniquenessjson = paramJson.getJSONObject("uniqueness");
+ for (Map.Entry entry:uniquenessjson.entrySet()) {
+ FieldDataVo fieldDataVo = subFormDataVo.getFieldData(entry.getValue().toString());
+ uniqueness.put(entry.getKey(),fieldDataVo.getDbValue());
+ }
+ isExistUpdateParam.put("uniqueness",uniqueness);
+// 调用接口查询当前数据是否存在
+ String isExistUpdateUrl = mainUrl+"/seeyon/rest/formTable/quart?token="+mainToken;
+ String formmainIdUpdate = ProtUtil.doGet(isExistUpdateUrl,isExistUpdateParam);
+ JSONObject formmainIdUpdatejson = JSONObject.parseObject(formmainIdUpdate);
+ JSONObject formmainIdUpdateData = formmainIdUpdatejson.getJSONObject("data");
+ String formmainUpdate = formmainIdUpdateData.getString("id");
+ if(StringUtil.isNotEmpty(formmainUpdate)){
+// 当前数据已经存在执行修改逻辑
+ JSONObject param = new JSONObject();
+// 设置基本数据
+ param.put("doTrigger",paramJson.getBooleanValue("doTrigger"));
+ param.put("formCode",paramJson.getString("formCode"));
+ param.put("loginName",paramJson.getString("loginName"));
+ param.put("rightId",paramJson.getString("rightIdUpdate"));
+ JSONArray dataList = new JSONArray();
+ JSONObject data = new JSONObject();
+ JSONObject paramDataList = paramJson.getJSONObject("dataList");
+ JSONObject paramMasterTable = paramDataList.getJSONObject("masterTable");
+ JSONObject masterTable = new JSONObject();
+ masterTable.put("name",paramMasterTable.getString("name"));
+ JSONObject record = new JSONObject();
+ record.put("id",formmainUpdate);
+// 根据主表字段信息,设置主表参数
+ JSONArray fields = new JSONArray();
+ for (Map.Entry entry : paramMasterTable.getJSONObject("fields").entrySet()) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("name",entry.getKey());
+ String value = entry.getValue().toString();
+ FieldDataVo subFieldDataVo ;
+ try {
+ subFieldDataVo = subFormDataVo.getFieldData(value);
+ } catch (NoSuchFieldException e) {
+ subFieldDataVo = formDataVo.getFieldData(value);
+ }
+ String subFieldDataDb = subFieldDataVo.getDbValue().toString();
+ jsonObject.put("value",subFieldDataDb);
+ fields.add(jsonObject);
+ }
+ record.put("fields",fields);
+ masterTable.put("record",record);
+ data.put("masterTable",masterTable);
+// 根据明细表字段信息,设置明细表参数
+ JSONArray subTables = new JSONArray();
+ JSONArray paramSubTables = paramDataList.getJSONArray("subTables");
+ for(int i = 0 ; i < paramSubTables.size();i++){
+ JSONObject paramSubTable = paramSubTables.getJSONObject(i);
+ JSONObject subTable = new JSONObject();
+ subTable.put("name",paramSubTable.getString("tableName"));
+ JSONArray subRecords = new JSONArray();
+ JSONObject subRecord = new JSONObject();
+ subRecord.put("id", UUIDLong.longUUID()+"");
+ JSONArray subFields = new JSONArray();
+ for (Map.Entry entry : paramSubTable.getJSONObject("fields").entrySet()) {
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("name",entry.getKey());
+ String value = entry.getValue().toString();
+ FieldDataVo subFieldDataVo;
+ try {
+ subFieldDataVo = subFormDataVo.getFieldData(value);
+ } catch (NoSuchFieldException e) {
+ subFieldDataVo = formDataVo.getFieldData(value);
+ }
+ if(subFieldDataVo.getDbValue() == null){
+ jsonObject.put("value","");
+ }else{
+ if(enumFields.contains(entry.getKey())){
+ String subFieldDataDb = subFieldDataVo.getStringValue();
+ jsonObject.put("showValue",subFieldDataDb);
+ }else{
+ String subFieldDataDb = subFieldDataVo.getDbValue().toString();
+ jsonObject.put("value",subFieldDataDb);
+ }
+ }
+ subFields.add(jsonObject);
+ }
+ subRecord.put("fields",subFields);
+ subRecords.add(subRecord);
+ subTable.put("records",subRecords);
+ subTables.add(subTable);
+ }
+ data.put("subTables",subTables);
+
+ dataList.add(data);
+ param.put("dataList",dataList);
+
+ context.setRequest(param.toString());
+ log.info(param.toString());
+// 获取调用接口路径
+ String formmainUpdateUrl = mainUrl+"/seeyon/rest/cap4/form/soap/batch-update?token="+mainToken;
+ context.setUrl(formmainUpdateUrl);
+ JSONObject res = ProtUtil.doPost(param.toString(),formmainUpdateUrl);
+ log.info(res.toString());
+ context.setResponse(res.toString());
+ MemberManagerResponse mmr = new MemberManagerResponse(res);
+ if(mmr.isSuccess()){
+ String resDatastr = mmr.getData();
+ Map resData = DataProcessingUtil.convertStringToMap(resDatastr);
+ List successIdList = (List)resData.get("successIdList");
+ if(successIdList.size()>0){
+ String fid = successIdList.get(0);
+ log.info("档案表修改完成,返回结果为"+resDatastr);
+ context.success("档案表修改完成,当前档案表ID为"+fid,false);
+ formDataVo.getNewFieldDataMap().put("返回结果", "档案表修改完成,当前档案表ID为"+fid);
+ }else{
+ Map failedData = (Map)resData.get("failedData");
+ for (Map.Entry entry:failedData.entrySet()) {
+ context.back("档案表修改失败:创建异常:" + entry.getValue());
+ context.setErrMsg(mmr.getMsg());
+ formDataVo.getNewFieldDataMap().put("返回结果", "档案表修改失败:创建异常:"+entry.getValue());
+ }
+ }
+
+ }else{
+ context.back("档案表修改失败:修改异常:" + mmr.getMsg());
+ context.setErrMsg(mmr.getMsg());
+ formDataVo.getNewFieldDataMap().put("返回结果", "档案表修改失败:修改异常:"+mmr.getMsg());
+ }
+ }else{
+ context.success("没有查询到需要修改的数据,跳过处理");
+ formDataVo.getNewFieldDataMap().put("返回结果", "没有查询到需要修改的数据,请检查唯一值是否正确");
+ }
+ }
+ return context;
+ }
+}
diff --git a/src/com/seeyon/apps/src_qyba/dao/ISrcBeianDao.java b/src/com/seeyon/apps/src_qyba/dao/ISrcBeianDao.java
index e7a7281..f2df613 100644
--- a/src/com/seeyon/apps/src_qyba/dao/ISrcBeianDao.java
+++ b/src/com/seeyon/apps/src_qyba/dao/ISrcBeianDao.java
@@ -4,6 +4,6 @@ import java.util.List;
public interface ISrcBeianDao {
- public List getdocResources();
+ public List getdocResources(String parentFrId);
}
diff --git a/src/com/seeyon/apps/src_qyba/dao/impl/SrcBeianDao.java b/src/com/seeyon/apps/src_qyba/dao/impl/SrcBeianDao.java
index 2a8a71e..1941ab9 100644
--- a/src/com/seeyon/apps/src_qyba/dao/impl/SrcBeianDao.java
+++ b/src/com/seeyon/apps/src_qyba/dao/impl/SrcBeianDao.java
@@ -11,15 +11,16 @@ import java.util.Map;
public class SrcBeianDao implements ISrcBeianDao {
- private String getdocResources = "select id from doc_resources where PARENT_FR_ID = '978222128757425825'";
+ private String getdocResources = "select id from doc_resources where PARENT_FR_ID = ?";
@Override
- public List getdocResources() {
+ public List getdocResources(String parentFrId) {
List ret = new ArrayList<>();
JDBCAgent agent = new JDBCAgent();
try {
StringBuilder sql = new StringBuilder(getdocResources);
List