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(); }