稻花香主数据管理功能上传

This commit is contained in:
2025-07-31 17:42:50 +08:00
parent 6ff417b1d2
commit c448007ccd
16 changed files with 816 additions and 28 deletions

View File

@@ -3,4 +3,8 @@
<beans default-autowire="byName">
<bean id="departmentAddNode" class="com.seeyon.apps.src_mainorganization.node.DepartmentAddNode"></bean>
<bean id="departmentCloseNode" class="com.seeyon.apps.src_mainorganization.node.DepartmentCloseNode"></bean>
<bean id="postAddNode" class="com.seeyon.apps.src_mainorganization.node.PostAddNode"></bean>
<bean id="postCloseNode" class="com.seeyon.apps.src_mainorganization.node.PostCloseNode"></bean>
<bean id="levelAddNode" class="com.seeyon.apps.src_mainorganization.node.LevelAddNode"></bean>
<bean id="levelCloseNode" class="com.seeyon.apps.src_mainorganization.node.LevelCloseNode"></bean>
</beans>

View File

@@ -43,5 +43,6 @@
<bean id="memberDieNode" class="com.seeyon.apps.src_membermanage.node.MemberDieNode" />
<bean id="memberRetirementNode" class="com.seeyon.apps.src_membermanage.node.MemberRetirementNode" />
<bean id="memberRetirementOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberRetirementOrganizationNode" />
<bean id="memberYearTaskNode" class="com.seeyon.apps.src_membermanage.node.MemberYearTaskNode" />
</beans>

View File

@@ -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);

View File

@@ -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);

View File

@@ -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<V3xOrgLevel> 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;
}
}

View File

@@ -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;
}
}

View File

@@ -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<V3xOrgPost> 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;
}
}

View File

@@ -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;
}
}

View File

@@ -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);

View File

@@ -24,6 +24,6 @@ public class MemberWorkNode extends MemberManageCommonNode {
@Override
public String getNodeName() {
return "人员工作经历档案表超级节点";
return "人员工作经历档案表超级节点";
}
}

View File

@@ -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<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
List<FormDataVo> 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<String, Object> 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<String, Object> 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<String, Object> 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<String,Object> resData = DataProcessingUtil.convertStringToMap(resDatastr);
List<String> successIdList = (List<String>)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<String, String> failedData = (Map<String, String>)resData.get("failedData");
for (Map.Entry<String, String> 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;
}
}

View File

@@ -4,6 +4,6 @@ import java.util.List;
public interface ISrcBeianDao {
public List<Long> getdocResources();
public List<Long> getdocResources(String parentFrId);
}

View File

@@ -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<Long> getdocResources() {
public List<Long> getdocResources(String parentFrId) {
List<Long> ret = new ArrayList<>();
JDBCAgent agent = new JDBCAgent();
try {
StringBuilder sql = new StringBuilder(getdocResources);
List<Object> p = new ArrayList<Object>();
p.add(parentFrId);
agent.execute(sql.toString(), p);
List<Map> list = agent.resultSetToList();
for (Map map : list) {

View File

@@ -19,6 +19,8 @@ import com.seeyon.ctp.common.content.mainbody.MainbodyType;
import com.seeyon.ctp.common.log.CtpLogFactory;
import com.seeyon.ctp.common.po.affair.CtpAffair;
import com.seeyon.ctp.common.po.content.CtpContentAll;
import com.seeyon.ctp.common.po.template.CtpTemplate;
import com.seeyon.ctp.common.template.manager.TemplateManager;
import com.seeyon.ctp.util.ParamUtil;
import com.seeyon.ctp.util.Strings;
import com.seeyon.ctp.util.annotation.AjaxAccess;
@@ -39,16 +41,20 @@ public class MultipleViewsPrintManagerImpl implements MultipleViewsPrintManager
private ColManager colManager = (ColManager) AppContext.getBean("colManager");
private MainbodyManager ctpMainbodyManager = (MainbodyManager) AppContext.getBean("ctpMainbodyManager");;
private static CAPFormManager capFormManager = (CAPFormManager) AppContext.getBean("capFormManager");
private TemplateManager templateManager = (TemplateManager) AppContext.getBean("templateManager");
@AjaxAccess
public Map<String, Object> print(Map<String, Object> params,List<Map<String,String>> approvalOpinions,String flowName) throws Exception {
Map<String, Object> result = new HashMap<String, Object>();
result.put("success", true);
Long formId = ParamUtil.getLong(params, "formId", null);
String templeteId = params.get("templeteId").toString();
Long affairId = ParamUtil.getLong(params, "affairId", null);
Long summaryId = ParamUtil.getLong(params, "summaryId", null);
String rightId = ParamUtil.getString(params, "rightId");
FormBean formBean = formApi4Cap4.getForm(formId);
// FormBean formBean = formApi4Cap4.getForm(formId);
CtpTemplate templete = templateManager.getCtpTemplate(Long.parseLong(templeteId));
FormBean formBean = formApi4Cap4.getFormByFormCode(templete);
if (Strings.isNotBlank(rightId)) {
// 适配这种格式(视图id.权限id_视图id.权限id_视图id.权限id)
List<FormAuthViewBean> formAuthViewBeans = new ArrayList<>();

View File

@@ -58,7 +58,6 @@ public class SaveAndUpdateMemberMainResource extends BaseResource {
}
}
@POST
@Path("/updateMemberMain")
@Produces({"application/json"})

View File

@@ -2,6 +2,7 @@ package com.seeyon.ctp.rest.resources;
import cn.hutool.log.Log;
import com.alibaba.fastjson.JSONObject;
import com.seeyon.apps.collaboration.manager.ColManager;
import com.seeyon.apps.collaboration.po.ColSummary;
import com.seeyon.apps.doc.api.DocApi;
@@ -99,15 +100,19 @@ public class TemporaryBeianSynchronizationResource extends BaseResource{
@Path("/synchronizationbeian")
@Produces({"application/json"})
@Consumes({"application/json"})
public Response synchronizationbeian(){
public Response synchronizationbeian(JSONObject reqQarams){
try{
// 查询数据库,查询出来某个文件夹在的所有文档信息,遍历查询到的所有ID调用方法查询出来本地文档中心对象
List<Long> ids = getSrcBeianDao().getdocResources();
String parentFrId = reqQarams.getString("parentFrId");
log.info(parentFrId);
List<Long> ids = getSrcBeianDao().getdocResources(parentFrId);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<DocResourceBO> docResources = getDocApi().findDocResources(ids);
log.info(ids.toString());
for (int i = 0 ; i <docResources.size() ; i++ ){
// 查询当前的流程ID。
DocResourceBO docResource = docResources.get(i);
log.info(docResource.getFrName());
// 根据流程ID查询事项
CtpAffair ctpAffair = getAffairManager().get(docResource.getSourceId());
// 通过截图方法将表单数据生成成为图片
@@ -117,10 +122,12 @@ public class TemporaryBeianSynchronizationResource extends BaseResource{
log.info("affairId:"+ctpAffair.getId());
log.info("summaryId:"+colSummarId);
log.info("formId:"+summary.getFormid());
log.info("templeteId:"+summary.getTempleteId());
String rightId = ContentUtil.findRightIdbyAffairIdOrTemplateId(ctpAffair, summary.getTempleteId());
log.info("rightId:"+rightId);
Map<String, Object> params = new HashMap<String, Object>();
params.put("formId", summary.getFormid());
params.put("templeteId", summary.getTempleteId());
params.put("affairId", ctpAffair.getId());
params.put("rightId", rightId);
params.put("summaryId", colSummarId);