165 lines
8.7 KiB
Java
165 lines
8.7 KiB
Java
package com.seeyon.apps.src_membermanage;
|
|
|
|
import cn.hutool.log.Log;
|
|
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.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.OrganizationParamUtil;
|
|
import com.seeyon.apps.src_membermanage.util.ProtUtil;
|
|
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
|
import com.seeyon.ctp.common.AppContext;
|
|
import www.seeyon.com.utils.StringUtil;
|
|
|
|
//人员组织架构控制抽象类
|
|
public abstract class MemberOrganizationCommonNode extends ACommonSuperNode {
|
|
|
|
private static Log log = Log.get(MemberOrganizationCommonNode.class);
|
|
|
|
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
|
|
|
@Override
|
|
public String getPluginId() {
|
|
return MemberManageConstants.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 SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
|
|
log.info("进入人事组织架构处理流程"+getNodeId());
|
|
ConfigVo configVo = getMemberMamageConfig();
|
|
SuperNodeContext context = new SuperNodeContext();
|
|
context.setNeedSave(true);
|
|
OrganizationParamUtil organizationParamUtil = new OrganizationParamUtil();
|
|
|
|
FieldDataVo fhjg = formDataVo.getFieldData("组织返回结果");
|
|
String fhvalue = fhjg.getStringValue();
|
|
if(fhvalue.contains("完成")) {
|
|
return context.success("跳过:" + fhvalue);
|
|
}
|
|
// 判断当前结果请求是否为新增
|
|
JSONObject requestJson = JSONObject.parseObject(request);
|
|
String addOrUpdate = requestJson.getString("addOrUpdate");
|
|
|
|
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);
|
|
|
|
switch (addOrUpdate){
|
|
case "add":{
|
|
System.out.println("新增");
|
|
String param = organizationParamUtil.organizationAddParam(request,formDataVo,getNodeId(),configVo);
|
|
log.info(param);
|
|
context.setRequest(param);
|
|
// 获取调用接口路径
|
|
String memberOrganizationAddUrl = mainUrl+"/seeyon/rest/orgMember/saveMemberMain?token="+mainToken;
|
|
JSONObject res = ProtUtil.doPost(param,memberOrganizationAddUrl);
|
|
log.info(res.toString());
|
|
context.setResponse(res.toString());
|
|
// MemberOrganizationResponse mor = new MemberOrganizationResponse(res);
|
|
// String resDatastr = mor.getData();
|
|
JSONObject resDatastr = res.getJSONObject("data");
|
|
// resDatastr = "{'param':'"+resDatastr+"'}";
|
|
// JSONObject resDatajson = JSONObject.parseObject(resDatastr);
|
|
// JSONArray successMsgs = resDatajson.getJSONArray("param");
|
|
// JSONObject successMsg = successMsgs.getJSONObject(0);
|
|
if(res.getInteger("code")==0){
|
|
// JSONObject ent = successMsg.getJSONObject("ent");
|
|
log.info("人员组织架构创建完成,人员名称为"+resDatastr.getString("name")+",ID为"+resDatastr.getString("id"));
|
|
context.success("人员组织架构创建完成,人员名称为"+resDatastr.getString("name"),false);
|
|
if("MemberEntryOrganizationNode".equals(getNodeId())|| "AccountOpeningOrganizationNode".equals(getNodeId())){
|
|
formDataVo.getNewFieldDataMap().put("组织架构姓名", resDatastr.getString("id"));
|
|
}
|
|
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构创建完成:人员名称为"+resDatastr.getString("name"));
|
|
}else{
|
|
// JSONObject ent = successMsg.getJSONObject("ent");
|
|
// String msgInfo = successMsg.getString("msgInfo");
|
|
String message = res.getString("message");
|
|
// 判断当前参数是否存在问题
|
|
String msg = "人员组织架构创建失败:"+message;
|
|
|
|
context.back(msg);
|
|
formDataVo.getNewFieldDataMap().put("组织返回结果", msg);
|
|
context.setErrMsg(msg);
|
|
}
|
|
break;
|
|
}
|
|
case "update":{
|
|
System.out.println("修改");
|
|
String param = organizationParamUtil.organizationUpdateParam(request,formDataVo,getNodeId(),configVo);
|
|
log.info(param);
|
|
context.setRequest(param);
|
|
// 查询当前人员是否存在
|
|
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());
|
|
// 判断当前人员是否存在
|
|
if(StringUtil.isNotEmpty(isExistUpdate)&&!"null".equals(isExistUpdate)){
|
|
// 如果存在则执行修改操作
|
|
String memberOrganizationUpdateUrl = mainUrl+"/seeyon/rest/orgMember/updateMemberMain?token="+mainToken;
|
|
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);
|
|
log.info("人员组织架构修改完成:人员名称为"+resDatajson.getString("name")+",ID为"+resDatajson.getString("id"));
|
|
context.success("人员组织架构修改完成:人员名称为"+resDatajson.getString("name"),false);
|
|
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改完成:人员名称为"+resDatajson.getString("name"));
|
|
}else{
|
|
String message = res.getString("message");
|
|
log.info("人员组织架构修改失败:"+message);
|
|
context.back("人员组织架构修改失败:"+message);
|
|
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改失败:"+message);
|
|
context.setErrMsg(message);
|
|
}
|
|
}else{
|
|
// 如果不存在则返回报错信息
|
|
log.info("人员组织架构修改失败:当前人员未查询到组织架构数据,请检查。");
|
|
context.back("人员组织架构修改失败:当前人员未查询到组织架构数据,请检查。");
|
|
context.setErrMsg("人员组织架构修改失败:当前人员未查询到组织架构数据,请检查。");
|
|
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改失败:当前人员未查询到组织架构数据,请检查。");
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
Thread.sleep(5000);
|
|
return context;
|
|
}
|
|
|
|
public abstract String getMethod();
|
|
public abstract String getRequestType();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|