2025-05-06 稻花香集团集成主数据平台平台组织架构创建
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class AccountOpeningNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "AccountOpeningNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "账号开启新增档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class AccountOpeningOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "AccountOpeningOrganizationNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "账号开启新增组织架构超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,219 @@
|
||||
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 MemberAccountClosureNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberAccountClosureOrganizationNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberAccountClosureNode";
|
||||
}
|
||||
|
||||
@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 = SubFormMap.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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
}
|
||||
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("value",subFieldDataDb);
|
||||
}else{
|
||||
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
|
||||
jsonObject.put("value",subFieldDataDb);
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
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.ProtUtil;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class MemberAccountClosureOrganizationNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberAccountClosureOrganizationNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Inject
|
||||
private OrgManager orgManager;
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberAccountClosureOrganizationNode";
|
||||
}
|
||||
|
||||
@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);
|
||||
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);
|
||||
|
||||
JSONObject req = JSONObject.parseObject(request);
|
||||
JSONArray subTables = req.getJSONArray("subTable");
|
||||
int isSuccess = 0;
|
||||
String ret = "";
|
||||
Map<String, List<FormDataVo>> subFormDataVoMap = formDataVo.getSubFormMap();
|
||||
String subTableName = req.getString("subTableName");
|
||||
List<FormDataVo> subFormDataVos = subFormDataVoMap.get(subTableName);
|
||||
for(int i = 0 ; i < subTables.size() ; i++){
|
||||
JSONObject subTable = subTables.getJSONObject(i);
|
||||
FormDataVo subFormDataVo = subFormDataVos.get(i);
|
||||
// 查询当前人员是否存在
|
||||
String memberIdName = subTable.getString("id");
|
||||
FieldDataVo memberField = subFormDataVo.getFieldData(memberIdName);
|
||||
String memberId = memberField.getDbValue().toString();
|
||||
String accountIdName = subTable.getString("orgAccountId");
|
||||
FieldDataVo accountField = subFormDataVo.getFieldData(accountIdName);
|
||||
String accountId = accountField.getDbValue().toString();
|
||||
subTable.put("orgAccountId",accountId);
|
||||
V3xOrgMember v3xOrgMember = orgManager.getMemberById(Long.parseLong(memberId));
|
||||
String isExistUpdateUrl = mainUrl+"/seeyon/rest/orgMember/"+memberId+"?token="+mainToken;
|
||||
String memberstr = ProtUtil.doGet(isExistUpdateUrl, new JSONObject());
|
||||
if(!"null".equals(memberstr)){
|
||||
isSuccess++;
|
||||
// 当前人员已存在
|
||||
JSONObject memberjson = JSONObject.parseObject(memberstr);
|
||||
if(memberjson.getBooleanValue("isDeleted")){
|
||||
// 当前人员已经删除
|
||||
ret = ret+memberjson.getString("name")+"已经删除,无法修改;";
|
||||
}else{
|
||||
// 当前人员存在,执行修改
|
||||
subTable.put("id",memberId);
|
||||
String memberOrganizationUpdateUrl = mainUrl+"/seeyon/rest/orgMember/updateMemberMain?token="+mainToken;
|
||||
// String res = ProtUtil.httpPutRaw(memberOrganizationUpdateUrl,subTable.toString(),new HashMap<>(),null);
|
||||
JSONObject res = ProtUtil.doPost(subTable.toString(),memberOrganizationUpdateUrl);
|
||||
log.info(res.toString());
|
||||
// JSONObject resjson = JSONObject.parseObject(res);
|
||||
// MemberOrganizationResponse mor = new MemberOrganizationResponse(resjson);
|
||||
// String resDatastr = mor.getData();
|
||||
// resDatastr = "{'param':'"+resDatastr+"'}";
|
||||
// JSONObject resDatajson = JSONObject.parseObject(resDatastr);
|
||||
// JSONArray successMsgs = resDatajson.getJSONArray("param");
|
||||
// JSONObject successMsg = successMsgs.getJSONObject(0);
|
||||
if(res.getInteger("code")==0){
|
||||
JSONObject data = res.getJSONObject("data");
|
||||
ret+=data.getString("name")+"修改成功";
|
||||
log.info("人员组织架构修改完成:人员名称为"+data.getString("name")+",ID为"+data.getString("id"));
|
||||
// context.success("人员组织架构修改完成:人员名称为"+ent.getString("name"),false);
|
||||
// formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改完成:人员名称为"+ent.getString("name"));
|
||||
}else{
|
||||
isSuccess--;
|
||||
String message = res.getString("message");
|
||||
// JSONObject ent = successMsg.getJSONObject("ent");
|
||||
// String msgInfo = successMsg.getString("msgInfo");
|
||||
ret+=memberjson.getString("name")+"修改失败"+message;
|
||||
log.info("人员组织架构修改失败:人员名称为"+memberjson.getString("name")+",ID为"+memberjson.getString("id")+message);
|
||||
// context.back("人员组织架构修改失败:人员名称为"+ent.getString("name")+","+msgInfo);
|
||||
// formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改失败:人员名称为"+ent.getString("name")+","+msgInfo);
|
||||
// context.setErrMsg(mor.getMsg());
|
||||
}
|
||||
}
|
||||
}else{
|
||||
// 人员不存在
|
||||
ret = ret+v3xOrgMember.getName()+"不存在,无法修改;";
|
||||
}
|
||||
context.setRequest(subTables.toString());
|
||||
context.setResponse(ret);
|
||||
}
|
||||
if(isSuccess == subTables.size()){
|
||||
context.success(ret,false);
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", ret);
|
||||
}else{
|
||||
log.info(ret);
|
||||
context.back(ret);
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", ret);
|
||||
}
|
||||
return context;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
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 MemberAccountClosureTalentsNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberAccountClosureOrganizationNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberAccountClosureTalentsNode";
|
||||
}
|
||||
|
||||
@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 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 = SubFormMap.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{
|
||||
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
|
||||
jsonObject.put("value",subFieldDataDb);
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员退休返聘修改档案表超级节点
|
||||
*/
|
||||
public class MemberAnewEngageNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberAnewEngageNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员退休返聘修改档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
/**
|
||||
* 人员退休返聘修改档案表超级节点
|
||||
*/
|
||||
public class MemberAnewEngageOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberAnewEngageOrganizationNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员退休返聘修改组织架构超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class MemberBasicsNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberBasicsNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员基础信息修改档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
public class MemberBasicsOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {return "";}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {return "";}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {return "MemberBasicsOrganizationNode";}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {return "人员基础信息修改组织架构超级节点";}
|
||||
}
|
||||
@@ -0,0 +1,288 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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.common.SystemEnvironment;
|
||||
import com.seeyon.ctp.common.ctpenumnew.manager.EnumManager;
|
||||
import com.seeyon.ctp.common.filemanager.manager.AttachmentManager;
|
||||
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem;
|
||||
import com.seeyon.ctp.common.po.filemanager.Attachment;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
import www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员合同签订档案表超级节点
|
||||
*/
|
||||
public class MemberContractNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberContractNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
private EnumManager enumManagerNew;
|
||||
public void setEnumManagerNew(EnumManager enumManagerNew) {this.enumManagerNew = enumManagerNew; }
|
||||
public EnumManager getEnumManagerNew() {
|
||||
if (enumManagerNew == null) {enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew");}return enumManagerNew;
|
||||
}
|
||||
private AttachmentManager attachmentManager;
|
||||
public void setAttachmentManager(AttachmentManager attachmentManager) {this.attachmentManager = attachmentManager;}
|
||||
public AttachmentManager getAttachmentManagery() {
|
||||
if (this.attachmentManager == null) {this.attachmentManager = (AttachmentManager) AppContext.getBean("attachmentManager");}return this.attachmentManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberContractNode";
|
||||
}
|
||||
|
||||
@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());
|
||||
}
|
||||
|
||||
public String getjtToken(ConfigVo configVo) throws IOException {
|
||||
String getTokenUrl = configVo.getParamVal(MemberManageConstants.getTokenUrl.name());
|
||||
String restUserName = configVo.getParamVal(MemberManageConstants.restUserName.name());
|
||||
String restPassword = configVo.getParamVal(MemberManageConstants.restPassword.name());
|
||||
String loginName = configVo.getParamVal(MemberManageConstants.loginName.name());
|
||||
String jttoken = ProtUtil.getToken(getTokenUrl,restUserName,restPassword,loginName);
|
||||
return jttoken;
|
||||
}
|
||||
|
||||
@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 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 = SubFormMap.get("人员明细");
|
||||
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);
|
||||
}
|
||||
if(subFieldDataVo.getDbValue()==null){
|
||||
jsonObject.put("value","");
|
||||
}else{
|
||||
String subFieldData = subFieldDataVo.getStringValue();
|
||||
jsonObject.put("showValue",subFieldData);
|
||||
}
|
||||
fields.add(jsonObject);
|
||||
}
|
||||
record.put("fields",fields);
|
||||
masterTable.put("record",record);
|
||||
data.put("masterTable",masterTable);
|
||||
// 根据明细表字段信息,设置明细表参数
|
||||
JSONArray subTables = new JSONArray();
|
||||
JSONArray paramSubTables = paramDataList.getJSONArray("subTables");
|
||||
JSONArray attachmentInfos = new JSONArray();
|
||||
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("合同类型".equals(value)){
|
||||
if(subFieldDataVo.getDbValue()==null){
|
||||
jsonObject.put("value","");
|
||||
}else{
|
||||
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
|
||||
CtpEnumItem ctpEnumItem = getEnumManagerNew().getCtpEnumItem(Long.parseLong(subFieldDataDb));
|
||||
String showValue = ctpEnumItem.getShowvalue();
|
||||
jsonObject.put("showValue",showValue);
|
||||
}
|
||||
}else if ("合同附件".equals(value)){
|
||||
// 获取附件控件的数据
|
||||
if (subFieldDataVo.getDbValue() != null) {
|
||||
String dbValue = subFieldDataVo.getDbValue().toString();
|
||||
List<Long> attachmentIds = getAttachmentManagery().getBySubReference(Long.parseLong(dbValue));
|
||||
// 获取当前附件控件的所有附件信息
|
||||
for (int n = 0; n < attachmentIds.size(); n++) {
|
||||
// 进行附件下载后上传至目标系统中
|
||||
Attachment attachment = getAttachmentManagery().getAttachmentByFileURL(attachmentIds.get(n));
|
||||
Long fileUrl = attachment.getFileUrl();
|
||||
String filename = attachment.getFilename();
|
||||
// String[] fileType = filename.split("\\.");
|
||||
String fileType = filename.substring(filename.lastIndexOf(".") + 1);
|
||||
String oaFileName = filename.substring(0, filename.lastIndexOf("."));
|
||||
// 调用接口下载文件,文件存放在指定的路径下
|
||||
String dowUrl = configVo.getParamVal(MemberManageConstants.dowUrl.name()) + "/" + fileUrl + "?fileName=" + fileType + "&token=" + getjtToken(configVo);
|
||||
log.info("下载URL:" + dowUrl);
|
||||
String str = SystemEnvironment.getApplicationFolder();
|
||||
String dowPath = str + "/memberfiles/" + formDataVo.getId() + "/" + filename;
|
||||
log.info("下载地址:" + dowPath);
|
||||
String download = ProtUtil.download(dowUrl, dowPath);
|
||||
// String str = SystemEnvironment.getApplicationFolder();
|
||||
String uploadUrl = configVo.getParamVal(MemberManageConstants.uploadUrl.name());
|
||||
String targetUrl = uploadUrl + "?token=" + mainToken;
|
||||
String uploadData = ProtUtil.uploadFile(targetUrl, dowPath);
|
||||
JSONObject uploadFile = JSON.parseObject(uploadData);
|
||||
JSONArray atts = uploadFile.getJSONArray("atts");
|
||||
if (atts.size() > 0) {
|
||||
JSONObject att = atts.getJSONObject(0);
|
||||
JSONObject attachmentInfo = new JSONObject();
|
||||
attachmentInfo.put("subReference", dbValue);
|
||||
attachmentInfo.put("fileUrl", att.getString("fileUrl"));
|
||||
attachmentInfo.put("sort", n);
|
||||
attachmentInfos.add(attachmentInfo);
|
||||
}
|
||||
}
|
||||
jsonObject.put("value", dbValue);
|
||||
jsonObject.put("showValue", "");
|
||||
}else{
|
||||
jsonObject.put("value", "");
|
||||
}
|
||||
}else{
|
||||
if(subFieldDataVo.getDbValue() == null){
|
||||
jsonObject.put("value","");
|
||||
}else{
|
||||
String subFieldData = subFieldDataVo.getStringValue();
|
||||
jsonObject.put("value",subFieldData);
|
||||
}
|
||||
// subFields.add(jsonObject);
|
||||
}
|
||||
subFields.add(jsonObject);
|
||||
}
|
||||
subRecord.put("fields",subFields);
|
||||
subRecords.add(subRecord);
|
||||
subTable.put("records",subRecords);
|
||||
subTables.add(subTable);
|
||||
}
|
||||
data.put("subTables",subTables);
|
||||
// 添加附件数据
|
||||
data.put("attachmentInfos",attachmentInfos);
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员解聘超级节点
|
||||
*/
|
||||
public class MemberDecruitmentNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberDecruitmentNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员解聘超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
public class MemberDecruitmentOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {return "";}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {return "";}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {return "MemberDecruitmentOrganizationNode";}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {return "人员解聘组织架构超级节点";}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员离职档案表超级节点
|
||||
*/
|
||||
public class MemberDimissionNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberDimissionNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员离职档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
public class MemberDimissionOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {return "";}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {return "";}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {return "MemberDimissionOrganizationNode";}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {return "人员离职组织架构超级节点";}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员离职档案表超级节点
|
||||
*/
|
||||
public class MemberDimissionTalentsNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberDimissionTalentsNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员离职人才库档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员教育经历档案表超级节点
|
||||
*/
|
||||
public class MemberEducationNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberEducationNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员教育经历档案表超级节点";
|
||||
}
|
||||
}
|
||||
203
src/com/seeyon/apps/src_membermanage/node/MemberEmployNode.java
Normal file
203
src/com/seeyon/apps/src_membermanage/node/MemberEmployNode.java
Normal file
@@ -0,0 +1,203 @@
|
||||
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.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.DataProcessingUtil;
|
||||
import com.seeyon.apps.src_membermanage.util.ParamUtil;
|
||||
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.common.ctpenumnew.manager.EnumManager;
|
||||
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem;
|
||||
import www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 员工录用审批超级节点
|
||||
*/
|
||||
public class MemberEmployNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberEmployNode.class);
|
||||
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
private EnumManager enumManagerNew;
|
||||
public void setEnumManagerNew(EnumManager enumManagerNew) {this.enumManagerNew = enumManagerNew; }
|
||||
public EnumManager getEnumManagerNew() {
|
||||
if (enumManagerNew == null) {enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew");}return enumManagerNew;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberEmployNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "员工录用审批超级节点";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return MemberManageConstants.getPluginId();
|
||||
}
|
||||
@Override
|
||||
public WorkFlowType[] getTypes() {
|
||||
return new WorkFlowType[] {WorkFlowType.superNode};
|
||||
}
|
||||
|
||||
public ConfigVo getMemberMamageConfig() {
|
||||
return cstConfigApi.getConfig(getPluginId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormParse() {
|
||||
return "json";
|
||||
}
|
||||
|
||||
@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);
|
||||
ParamUtil paramUtil = new ParamUtil();
|
||||
// 判断是否已经推送成功
|
||||
FieldDataVo fhjg = formDataVo.getFieldData("返回结果");
|
||||
String fhvalue = fhjg.getStringValue();
|
||||
if(fhvalue.startsWith("推送成功")) {
|
||||
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);
|
||||
System.out.println("修改");
|
||||
// 获取明细表录用明细
|
||||
Map<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subFormDataVoList = subFormMap.get("录用详细");
|
||||
// 遍历所有明细行数据
|
||||
for (FormDataVo subFormDataVo :subFormDataVoList) {
|
||||
JSONObject isExistUpdateParam = new JSONObject();
|
||||
isExistUpdateParam.put("formCode", requestJson.getString("formCode"));
|
||||
JSONObject uniqueness = new JSONObject();
|
||||
JSONObject uniquenessjson = requestJson.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)) {
|
||||
// 当前数据已经存在执行修改逻辑
|
||||
// String param = paramUtil.memberEmployParam(request, formDataVo, getNodeId(), configVo, formmainUpdate);
|
||||
JSONObject memberEmployParam = new JSONObject();
|
||||
memberEmployParam.put("formCode",requestJson.getString("formCode"));
|
||||
memberEmployParam.put("rightId",requestJson.getString("rightIdUpdate"));
|
||||
memberEmployParam.put("doTrigger",requestJson.getBooleanValue("doTrigger"));
|
||||
memberEmployParam.put("loginName",requestJson.getString("loginName"));
|
||||
JSONArray dataList = new JSONArray();
|
||||
JSONObject data = new JSONObject();
|
||||
JSONObject masterTable = new JSONObject();
|
||||
masterTable.put("name","formmain_0192");
|
||||
JSONObject record = new JSONObject();
|
||||
record.put("id",formmainUpdate);
|
||||
JSONArray fields = new JSONArray();
|
||||
|
||||
JSONObject field0074 = new JSONObject();
|
||||
field0074.put("name","field0074");
|
||||
FieldDataVo xtvo = formDataVo.getFieldData("系统");
|
||||
String xtdbValue = xtvo.getDbValue().toString();
|
||||
long xtenumItemId = Long.parseLong(xtdbValue);
|
||||
CtpEnumItem xtctpEnumItem = getEnumManagerNew().getCtpEnumItem(xtenumItemId);
|
||||
field0074.put("showValue",xtctpEnumItem.getShowvalue());
|
||||
fields.add(field0074);
|
||||
|
||||
JSONObject field0053 = new JSONObject();
|
||||
field0053.put("name","field0053");
|
||||
FieldDataVo nlydwvo = formDataVo.getFieldData("用人单位");
|
||||
String nlydwdbValue = nlydwvo.getDbValue().toString();
|
||||
field0053.put("value",nlydwdbValue);
|
||||
fields.add(field0053);
|
||||
|
||||
JSONObject field0051 = new JSONObject();
|
||||
field0051.put("name","field0051");
|
||||
FieldDataVo nlybmvo = subFormDataVo.getFieldData("拟录部门");
|
||||
String nlybmValue = nlybmvo.getDbValue().toString();
|
||||
field0051.put("value",nlybmValue);
|
||||
fields.add(field0051);
|
||||
|
||||
JSONObject field0052 = new JSONObject();
|
||||
field0052.put("name","field0052");
|
||||
FieldDataVo nlygwvo = subFormDataVo.getFieldData("拟录用岗位");
|
||||
String nlygwValue = nlygwvo.getDbValue().toString();
|
||||
field0052.put("value",nlygwValue);
|
||||
fields.add(field0052);
|
||||
|
||||
record.put("fields",fields);
|
||||
masterTable.put("record",record);
|
||||
data.put("masterTable",masterTable);
|
||||
dataList.add(data);
|
||||
memberEmployParam.put("dataList",dataList);
|
||||
|
||||
String param = memberEmployParam.toString();
|
||||
context.setRequest(param);
|
||||
log.info(param);
|
||||
// 获取调用接口路径
|
||||
String formmainUpdateUrl = mainUrl + "/seeyon/rest/cap4/form/soap/batch-update?token=" + mainToken;
|
||||
context.setUrl(formmainUpdateUrl);
|
||||
JSONObject res = ProtUtil.doPost(param, 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.success("没有查询到需要修改的数据,跳过处理");
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "没有查询到需要修改的数据,跳过处理");
|
||||
}
|
||||
}
|
||||
return context;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员入职档案表超级节点
|
||||
*/
|
||||
public class MemberEntryNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberEntryNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员入职档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
public class MemberEntryOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {return "";}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {return "";}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {return "MemberEntryOrganizationNode";}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {return "人员入职组织架构超级节点";}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员入职档案表超级节点
|
||||
*/
|
||||
public class MemberEntryTalentsNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberEntryTalentsNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员入职人才库档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员家庭情况档案表超级节点
|
||||
*/
|
||||
public class MemberFamilyNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberFamilyNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员家庭情况档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员荣誉档案表超级节点
|
||||
*/
|
||||
public class MemberHonorNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberHonorNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员荣誉档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,232 @@
|
||||
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.common.ctpenumnew.manager.EnumManager;
|
||||
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
import www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class MemberInterviewResultNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberInterviewResultNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberInterviewResultNode";
|
||||
}
|
||||
|
||||
@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());
|
||||
}
|
||||
|
||||
private EnumManager enumManagerNew;
|
||||
public void setEnumManagerNew(EnumManager enumManagerNew) {this.enumManagerNew = enumManagerNew; }
|
||||
public EnumManager getEnumManagerNew() {
|
||||
if (enumManagerNew == null) {enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew");}return enumManagerNew;
|
||||
}
|
||||
|
||||
|
||||
@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 = SubFormMap.get("录用详细");
|
||||
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);
|
||||
}
|
||||
if(subFieldDataVo.getDbValue() == null ){
|
||||
jsonObject.put("value","");
|
||||
}else{
|
||||
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
|
||||
if(enumFields.contains(entry.getKey())){
|
||||
CtpEnumItem ctpEnumItem = getEnumManagerNew().getCtpEnumItem(Long.parseLong(subFieldDataDb));
|
||||
String showvalue = ctpEnumItem.getShowvalue();
|
||||
jsonObject.put("showValue",showvalue);
|
||||
}else {
|
||||
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 =subFormDataVo.getFieldData(value);
|
||||
// if("成绩".equals(value)){
|
||||
// subFieldDataVo = formDataVo.getFieldData(value);
|
||||
// }else{
|
||||
// subFieldDataVo = subFormDataVo.getFieldData(value);
|
||||
// }
|
||||
if(subFieldDataVo.getDbValue() == null ){
|
||||
jsonObject.put("value","");
|
||||
}else{
|
||||
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
|
||||
jsonObject.put("value",subFieldDataDb);
|
||||
}
|
||||
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
|
||||
if(enumFields.contains(entry.getKey())){
|
||||
CtpEnumItem ctpEnumItem = getEnumManagerNew().getCtpEnumItem(Long.parseLong(subFieldDataDb));
|
||||
String showvalue = ctpEnumItem.getShowvalue();
|
||||
jsonObject.put("showValue",showvalue);
|
||||
}else {
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员调动超级节点
|
||||
*/
|
||||
public class MemberMoveNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberMoveNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员调动超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
public class MemberMoveOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {return "";}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {return "";}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {return "MemberMoveOrganizationNode";}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {return "人员调动组织架构超级节点";}
|
||||
}
|
||||
@@ -0,0 +1,261 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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.common.SystemEnvironment;
|
||||
import com.seeyon.ctp.common.filemanager.manager.AttachmentManager;
|
||||
import com.seeyon.ctp.common.po.filemanager.Attachment;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
import www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员绩效记录档案表超级节点
|
||||
*/
|
||||
public class MemberPerformanceNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberPerformanceNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
private AttachmentManager attachmentManager;
|
||||
public void setAttachmentManager(AttachmentManager attachmentManager) {this.attachmentManager = attachmentManager;}
|
||||
public AttachmentManager getAttachmentManagery() {
|
||||
if (this.attachmentManager == null) {this.attachmentManager = (AttachmentManager) AppContext.getBean("attachmentManager");}return this.attachmentManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberPerformanceNode";
|
||||
}
|
||||
|
||||
@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());
|
||||
}
|
||||
|
||||
public String getjtToken(ConfigVo configVo) throws IOException {
|
||||
String getTokenUrl = configVo.getParamVal(MemberManageConstants.getTokenUrl.name());
|
||||
String restUserName = configVo.getParamVal(MemberManageConstants.restUserName.name());
|
||||
String restPassword = configVo.getParamVal(MemberManageConstants.restPassword.name());
|
||||
String loginName = configVo.getParamVal(MemberManageConstants.loginName.name());
|
||||
String jttoken = ProtUtil.getToken(getTokenUrl,restUserName,restPassword,loginName);
|
||||
return jttoken;
|
||||
}
|
||||
|
||||
@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 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 = SubFormMap.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 = subFormDataVo.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");
|
||||
JSONArray attachmentInfos = new JSONArray();
|
||||
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("明细附件".equals(value)){
|
||||
// 获取附件控件的数据
|
||||
if (subFieldDataVo.getDbValue() != null) {
|
||||
String dbValue = subFieldDataVo.getDbValue().toString();
|
||||
List<Long> attachmentIds = getAttachmentManagery().getBySubReference(Long.parseLong(dbValue));
|
||||
// 获取当前附件控件的所有附件信息
|
||||
for (int n = 0; n < attachmentIds.size(); n++) {
|
||||
// 进行附件下载后上传至目标系统中
|
||||
Attachment attachment = getAttachmentManagery().getAttachmentByFileURL(attachmentIds.get(n));
|
||||
Long fileUrl = attachment.getFileUrl();
|
||||
String filename = attachment.getFilename();
|
||||
// String[] fileType = filename.split("\\.");
|
||||
String fileType = filename.substring(filename.lastIndexOf(".") + 1);
|
||||
String oaFileName = filename.substring(0, filename.lastIndexOf("."));
|
||||
// 调用接口下载文件,文件存放在指定的路径下
|
||||
String dowUrl = configVo.getParamVal(MemberManageConstants.dowUrl.name()) + "/" + fileUrl + "?fileName=" + fileType + "&token=" + getjtToken(configVo);
|
||||
log.info("下载URL:" + dowUrl);
|
||||
String str = SystemEnvironment.getApplicationFolder();
|
||||
String dowPath = str + "/memberfiles/" + formDataVo.getId() + "/" + filename;
|
||||
log.info("下载地址:" + dowPath);
|
||||
String download = ProtUtil.download(dowUrl, dowPath);
|
||||
// String str = SystemEnvironment.getApplicationFolder();
|
||||
String uploadUrl = configVo.getParamVal(MemberManageConstants.uploadUrl.name());
|
||||
String targetUrl = uploadUrl + "?token=" + mainToken;
|
||||
String uploadData = ProtUtil.uploadFile(targetUrl, dowPath);
|
||||
JSONObject uploadFile = JSON.parseObject(uploadData);
|
||||
JSONArray atts = uploadFile.getJSONArray("atts");
|
||||
if (atts.size() > 0) {
|
||||
JSONObject att = atts.getJSONObject(0);
|
||||
JSONObject attachmentInfo = new JSONObject();
|
||||
attachmentInfo.put("subReference", dbValue);
|
||||
attachmentInfo.put("fileUrl", att.getString("fileUrl"));
|
||||
attachmentInfo.put("sort", n);
|
||||
attachmentInfos.add(attachmentInfo);
|
||||
}
|
||||
}
|
||||
jsonObject.put("value", dbValue);
|
||||
jsonObject.put("showValue", "");
|
||||
}
|
||||
}else{
|
||||
if(subFieldDataVo.getDbValue() == null ){
|
||||
jsonObject.put("value","");
|
||||
}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);
|
||||
// 添加附件数据
|
||||
data.put("attachmentInfos",attachmentInfos);
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员转正档案表超级节点
|
||||
*/
|
||||
public class MemberRegularizationExtendNode extends MemberManageCommonNode {
|
||||
@Override
|
||||
public String getMethod() {return "";}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberRegularizationExtendNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员转正延长档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员转正档案表超级节点
|
||||
*/
|
||||
public class MemberRegularizationNode extends MemberManageCommonNode {
|
||||
@Override
|
||||
public String getMethod() {return "";}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberRegularizationNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员转正档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员奖惩记录档案表超级节点
|
||||
*/
|
||||
public class MemberRewardPunishmentNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberRewardPunishmentNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员奖惩记录档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class MemberSystemAccountClosureNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberSystemAccountClosureNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员系统账号批量关闭修改档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class MemberSystemAccountClosureOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberSystemAccountClosureOrganizationNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员系统账号批量关闭修改组织架构超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class MemberSystemAccountClosureTalentsNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberSystemAccountClosureTalentsNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员系统账号批量关闭修改人才库超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,204 @@
|
||||
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 MemberTaskFinishNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberTaskFinishNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberTaskFinishNode";
|
||||
}
|
||||
|
||||
@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 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 = SubFormMap.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 = subFormDataVo.getFieldData(value);
|
||||
// if("成绩".equals(value)){
|
||||
// subFieldDataVo = formDataVo.getFieldData(value);
|
||||
// }else{
|
||||
// subFieldDataVo = subFormDataVo.getFieldData(value);
|
||||
// }
|
||||
if(subFieldDataVo.getDbValue() == null){
|
||||
jsonObject.put("value","");
|
||||
}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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员入职档案表超级节点
|
||||
*/
|
||||
public class MemberTryOutSummarizeNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberTryOutSummarizeNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员试用期工作总结超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员工作经历档案表超级节点
|
||||
*/
|
||||
public class MemberWorkNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberWorkNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "人员工作经历档案表超级节点";
|
||||
}
|
||||
}
|
||||
207
src/com/seeyon/apps/src_membermanage/node/MembersMoveNode.java
Normal file
207
src/com/seeyon/apps/src_membermanage/node/MembersMoveNode.java
Normal file
@@ -0,0 +1,207 @@
|
||||
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.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员批量调动超级节点
|
||||
*/
|
||||
public class MembersMoveNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MembersMoveNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MembersMoveNode";
|
||||
}
|
||||
|
||||
@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 IOException, URISyntaxException, NoSuchFieldException {
|
||||
log.info("进入人事档案表处理流程"+getNodeId());
|
||||
ConfigVo configVo = getMemberMamageConfig();
|
||||
SuperNodeContext context = new SuperNodeContext();
|
||||
context.setNeedSave(true);
|
||||
JSONObject paramJson = JSONObject.parseObject(request);
|
||||
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 = SubFormMap.get("人员明细");
|
||||
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{
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
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.ProtUtil;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class MembersMoveOrganizationNode extends ACommonSuperNode {
|
||||
private static Log log = Log.get(MembersMoveNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Inject
|
||||
private OrgManager orgManager;
|
||||
|
||||
@Override
|
||||
public String getNodeId() {return "MembersMoveOrganizationNode";}
|
||||
|
||||
@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);
|
||||
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);
|
||||
|
||||
JSONObject req = JSONObject.parseObject(request);
|
||||
JSONArray subTables = req.getJSONArray("subTable");
|
||||
int isSuccess = 0;
|
||||
String ret = "";
|
||||
Map<String, List<FormDataVo>> subFormDataVoMap = formDataVo.getSubFormMap();
|
||||
String subTableName = req.getString("subTableName");
|
||||
List<FormDataVo> subFormDataVos = subFormDataVoMap.get(subTableName);
|
||||
for(int i = 0 ; i < subTables.size() ; i++){
|
||||
JSONObject subTable = subTables.getJSONObject(i);
|
||||
FormDataVo subFormDataVo = subFormDataVos.get(i);
|
||||
// 查询当前人员是否存在
|
||||
String memberIdName = subTable.getString("id");
|
||||
FieldDataVo memberField = subFormDataVo.getFieldData(memberIdName);
|
||||
String memberId = memberField.getDbValue().toString();
|
||||
V3xOrgMember v3xOrgMember = orgManager.getMemberById(Long.parseLong(memberId));
|
||||
String isExistUpdateUrl = mainUrl+"/seeyon/rest/orgMember/"+memberId+"?token="+mainToken;
|
||||
String memberstr = ProtUtil.doGet(isExistUpdateUrl, new JSONObject());
|
||||
if(!"null".equals(memberstr)){
|
||||
isSuccess++;
|
||||
// 当前人员已存在
|
||||
JSONObject memberjson = JSONObject.parseObject(memberstr);
|
||||
if(memberjson.getBooleanValue("isDeleted")){
|
||||
// 当前人员已经删除
|
||||
ret = ret+memberjson.getString("name")+"已经删除,无法修改;";
|
||||
}else{
|
||||
// 当前人员存在,执行修改
|
||||
String orgAccountIdName = subTable.getString("orgAccountId");
|
||||
FieldDataVo orgAccountField = subFormDataVo.getFieldData(orgAccountIdName);
|
||||
String orgAccountId = orgAccountField.getDbValue().toString();
|
||||
subTable.put("orgAccountId",orgAccountId);
|
||||
|
||||
String orgDepartmentIdName = subTable.getString("orgDepartmentId");
|
||||
FieldDataVo orgDepartmentField = subFormDataVo.getFieldData(orgDepartmentIdName);
|
||||
String orgDepartmentId = orgDepartmentField.getDbValue().toString();
|
||||
subTable.put("orgDepartmentId",orgDepartmentId);
|
||||
|
||||
String orgPostIdName = subTable.getString("orgPostId");
|
||||
FieldDataVo orgPostField = subFormDataVo.getFieldData(orgPostIdName);
|
||||
String orgPostId = orgPostField.getDbValue().toString();
|
||||
subTable.put("orgPostId",orgPostId);
|
||||
|
||||
String orgLevelIdName = subTable.getString("orgLevelId");
|
||||
FieldDataVo orgLevelField = subFormDataVo.getFieldData(orgLevelIdName);
|
||||
String orgLevelId = orgLevelField.getDbValue().toString();
|
||||
subTable.put("orgLevelId",orgLevelId);
|
||||
|
||||
subTable.put("id",memberId);
|
||||
String memberOrganizationUpdateUrl = mainUrl+"/seeyon/rest/orgMember/updateMemberMain?token="+mainToken;
|
||||
// String res = ProtUtil.httpPutRaw(memberOrganizationUpdateUrl,subTable.toString(),new HashMap<>(),null);
|
||||
JSONObject res = ProtUtil.doPost(subTable.toString(),memberOrganizationUpdateUrl);
|
||||
log.info(res.toString());
|
||||
// JSONObject resjson = JSONObject.parseObject(res);
|
||||
// MemberOrganizationResponse mor = new MemberOrganizationResponse(resjson);
|
||||
// String resDatastr = mor.getData();
|
||||
// String code = res.getString("code");
|
||||
// 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");
|
||||
JSONObject resData = res.getJSONObject("data");
|
||||
ret+=resData.getString("name")+"修改成功";
|
||||
log.info("人员组织架构修改完成:人员名称为"+resData.getString("name")+",ID为"+resData.getString("id"));
|
||||
// context.success("人员组织架构修改完成:人员名称为"+ent.getString("name"),false);
|
||||
// formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改完成:人员名称为"+ent.getString("name"));
|
||||
}else{
|
||||
isSuccess--;
|
||||
JSONObject message = res.getJSONObject("message");
|
||||
// JSONObject ent = successMsg.getJSONObject("ent");
|
||||
// String msgInfo = successMsg.getString("msgInfo");
|
||||
ret+=memberjson.getString("name")+"修改失败"+message;
|
||||
log.info("人员组织架构修改失败:人员名称为"+memberjson.getString("name")+",ID为"+memberjson.getString("id")+message);
|
||||
// context.back("人员组织架构修改失败:人员名称为"+ent.getString("name")+","+msgInfo);
|
||||
// formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改失败:人员名称为"+ent.getString("name")+","+msgInfo);
|
||||
// context.setErrMsg(mor.getMsg());
|
||||
}
|
||||
}
|
||||
}else{
|
||||
// 人员不存在
|
||||
ret = ret+v3xOrgMember.getName()+"不存在,无法修改;";
|
||||
}
|
||||
context.setRequest(subTables.toString());
|
||||
context.setResponse(ret);
|
||||
}
|
||||
if(isSuccess == subTables.size()){
|
||||
context.success(ret,false);
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", ret);
|
||||
}else{
|
||||
log.info(ret);
|
||||
context.back(ret);
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", ret);
|
||||
}
|
||||
return context;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 应聘人员登记档案表超级节点
|
||||
*/
|
||||
public class RegistrationofApplicantsNode extends MemberManageCommonNode {
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRequestType() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "RegistrationofApplicantsNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "应聘人员登记档案表超级节点";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,207 @@
|
||||
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 TrainingRecordNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(TrainingRecordNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "TrainingRecordNode";
|
||||
}
|
||||
|
||||
@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 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 = SubFormMap.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;
|
||||
if("成绩".equals(value)){
|
||||
subFieldDataVo = subFormDataVo.getFieldData(value);
|
||||
}else{
|
||||
subFieldDataVo = formDataVo.getFieldData(value);
|
||||
}
|
||||
if(subFieldDataVo.getDbValue() == null ){
|
||||
jsonObject.put("value","");
|
||||
}else{
|
||||
String subFieldDataDb = subFieldDataVo.getDbValue().toString();
|
||||
jsonObject.put("value",subFieldDataDb);
|
||||
}
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user