Files
daohuaxiang/src/com/seeyon/apps/src_membermanage/MemberOrganizationCommonNode.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();
}