2025-05-06 稻花香集团集成主数据平台平台组织架构创建
This commit is contained in:
6
seeyon/WEB-INF/cfgHome/src_dhxbacklog/pluginCfg.xml
Normal file
6
seeyon/WEB-INF/cfgHome/src_dhxbacklog/pluginCfg.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plugin>
|
||||
<id>src_dhxbacklog</id>
|
||||
<name>稻花香流程平台流程待办集成</name>
|
||||
<category>20241231</category>
|
||||
</plugin>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
|
||||
<beans default-autowire="byName">
|
||||
<bean name="/dhxFlowWaitHandlesso.do" class="com.seeyon.apps.src_dhxbacklog.sso.DhxFlowWaitHandlesso" />
|
||||
</beans>
|
||||
5
seeyon/WEB-INF/cfgHome/src_dhxbacklog/spring/spring.xml
Normal file
5
seeyon/WEB-INF/cfgHome/src_dhxbacklog/spring/spring.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="dhxBacklogPluginApi" class="com.seeyon.apps.src_dhxbacklog.DhxBacklogPluginApi" />
|
||||
</beans>
|
||||
6
seeyon/WEB-INF/cfgHome/src_dhxorganization/pluginCfg.xml
Normal file
6
seeyon/WEB-INF/cfgHome/src_dhxorganization/pluginCfg.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plugin>
|
||||
<id>src_dhxorganization</id>
|
||||
<name>集团对接主数据平台</name>
|
||||
<category>20241223</category>
|
||||
</plugin>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="updateHireFilesNode" class="com.seeyon.apps.src_dhxorganization.archive.node.UpdateHireFilesNode" />
|
||||
</beans>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="dhxPluginApi" class="com.seeyon.apps.src_dhxorganization.DhxPluginApi" />
|
||||
</beans>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plugin>
|
||||
<id>src_mainorganization</id>
|
||||
<name>稻花香主数据同步</name>
|
||||
<category>20250418</category>
|
||||
</plugin>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="srcEnumDao" class="com.seeyon.apps.src_mainorganization.dao.impl.SrcEnumDaoImpl"></bean>
|
||||
<bean id="srcMemberDao" class="com.seeyon.apps.src_mainorganization.dao.impl.SrcMemberDaoImpl"></bean>
|
||||
</beans>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<!-- 扫描包以发现bean-->
|
||||
<bean id="receiveOrgMemberService" class="com.seeyon.apps.src_mainorganization.service.impl.ReceiveOrgMemberServiceImpl"></bean>
|
||||
</beans>
|
||||
6
seeyon/WEB-INF/cfgHome/src_membermanage/pluginCfg.xml
Normal file
6
seeyon/WEB-INF/cfgHome/src_membermanage/pluginCfg.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plugin>
|
||||
<id>src_membermanage</id>
|
||||
<name>主数据平台人员集成管理</name>
|
||||
<category>20250310</category>
|
||||
</plugin>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="memberManagePluginApi" class="com.seeyon.apps.src_membermanage.MemberManagePluginApi" />
|
||||
</beans>
|
||||
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="memberBasicsNode" class="com.seeyon.apps.src_membermanage.node.MemberBasicsNode" />
|
||||
<bean id="memberBasicsOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberBasicsOrganizationNode" />
|
||||
<bean id="memberContractNode" class="com.seeyon.apps.src_membermanage.node.MemberContractNode" />
|
||||
<bean id="memberDecruitmentNode" class="com.seeyon.apps.src_membermanage.node.MemberDecruitmentNode" />
|
||||
<bean id="memberDecruitmentOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberDecruitmentOrganizationNode" />
|
||||
<bean id="memberDimissionNode" class="com.seeyon.apps.src_membermanage.node.MemberDimissionNode" />
|
||||
<bean id="memberDimissionOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberDimissionOrganizationNode" />
|
||||
<bean id="memberDimissionTalentsNode" class="com.seeyon.apps.src_membermanage.node.MemberDimissionTalentsNode" />
|
||||
<bean id="memberEducationNode" class="com.seeyon.apps.src_membermanage.node.MemberEducationNode" />
|
||||
<bean id="memberEmployNode" class="com.seeyon.apps.src_membermanage.node.MemberEmployNode" />
|
||||
<bean id="memberEntryNode" class="com.seeyon.apps.src_membermanage.node.MemberEntryNode" />
|
||||
<bean id="memberEntryTalentsNode" class="com.seeyon.apps.src_membermanage.node.MemberEntryTalentsNode" />
|
||||
<bean id="memberEntryOrganizationNodeode" class="com.seeyon.apps.src_membermanage.node.MemberEntryOrganizationNode" />
|
||||
<bean id="memberFamilyNode" class="com.seeyon.apps.src_membermanage.node.MemberFamilyNode" />
|
||||
<bean id="memberHonorNode" class="com.seeyon.apps.src_membermanage.node.MemberHonorNode" />
|
||||
<bean id="memberMoveNode" class="com.seeyon.apps.src_membermanage.node.MemberMoveNode" />
|
||||
<bean id="memberMoveOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberMoveOrganizationNode" />
|
||||
<bean id="memberRegularizationNode" class="com.seeyon.apps.src_membermanage.node.MemberRegularizationNode" />
|
||||
<bean id="memberRegularizationExtendNode" class="com.seeyon.apps.src_membermanage.node.MemberRegularizationExtendNode" />
|
||||
<bean id="memberPerformanceNode" class="com.seeyon.apps.src_membermanage.node.MemberPerformanceNode" />
|
||||
<bean id="memberRewardPunishmentNode" class="com.seeyon.apps.src_membermanage.node.MemberRewardPunishmentNode" />
|
||||
<bean id="membersMoveNode" class="com.seeyon.apps.src_membermanage.node.MembersMoveNode" />
|
||||
<bean id="membersMoveOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MembersMoveOrganizationNode" />
|
||||
<bean id="memberWorkNode" class="com.seeyon.apps.src_membermanage.node.MemberWorkNode" />
|
||||
<bean id="registrationofApplicantsNode" class="com.seeyon.apps.src_membermanage.node.RegistrationofApplicantsNode" />
|
||||
<bean id="trainingRecordNode" class="com.seeyon.apps.src_membermanage.node.TrainingRecordNode" />
|
||||
<bean id="memberTryOutSummarizeNode" class="com.seeyon.apps.src_membermanage.node.MemberTryOutSummarizeNode" />
|
||||
<bean id="memberTaskFinishNode" class="com.seeyon.apps.src_membermanage.node.MemberTaskFinishNode" />
|
||||
<bean id="memberInterviewResultNode" class="com.seeyon.apps.src_membermanage.node.MemberInterviewResultNode" />
|
||||
<bean id="memberAnewEngageNode" class="com.seeyon.apps.src_membermanage.node.MemberAnewEngageNode" />
|
||||
<bean id="memberAnewEngageOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberAnewEngageOrganizationNode" />
|
||||
<bean id="memberAccountClosureNode" class="com.seeyon.apps.src_membermanage.node.MemberAccountClosureNode" />
|
||||
<bean id="memberAccountClosureOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberAccountClosureOrganizationNode" />
|
||||
<bean id="memberAccountClosureTalentsNode" class="com.seeyon.apps.src_membermanage.node.MemberAccountClosureTalentsNode" />
|
||||
<bean id="memberSystemAccountClosureNode" class="com.seeyon.apps.src_membermanage.node.MemberSystemAccountClosureNode" />
|
||||
<bean id="memberSystemAccountClosureOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberSystemAccountClosureOrganizationNode" />
|
||||
<bean id="memberSystemAccountClosureTalentsNode" class="com.seeyon.apps.src_membermanage.node.MemberSystemAccountClosureTalentsNode" />
|
||||
<bean id="accountOpeningNode" class="com.seeyon.apps.src_membermanage.node.AccountOpeningNode" />
|
||||
<bean id="accountOpeningOrganizationNode" class="com.seeyon.apps.src_membermanage.node.AccountOpeningOrganizationNode" />
|
||||
|
||||
</beans>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<plugin>
|
||||
<id>src_organizationInitialization</id>
|
||||
<name>稻花香人员档案初始化</name>
|
||||
<category>20241126</category>
|
||||
</plugin>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="organizationInitializationDao" class="com.seeyon.apps.src_organizationInitialization.dao.impl.OrganizationInitializationDaoImpl" />
|
||||
</beans>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="organizationInitializationQuartz" class="com.seeyon.apps.src_organizationInitialization.quartz.OrganizationInitializationQuartz" />
|
||||
</beans>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<beans default-autowire="byName">
|
||||
<bean id="organizationInitializationPluginApi" class="com.seeyon.apps.src_organizationInitialization.OrganizationInitializationPluginApi" />
|
||||
</beans>
|
||||
@@ -1,21 +1,15 @@
|
||||
package com.seeyon.apps.daohuaxiangSys.chushihua.quartz;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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.util.StringKit;
|
||||
import com.seeyon.apps.common.workflow.constants.WorkFlowType;
|
||||
import com.seeyon.apps.common.workflow.parser.FormParseFactory;
|
||||
import com.seeyon.apps.common.workflow.util.FormDataBeanUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.chushihua.constants.HsDataSyncConstants;
|
||||
import com.seeyon.apps.daohuaxiangSys.chushihua.vo.HsDataVo;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.FanWeiNewUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.FanWeiUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.InterfaceListUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.PropKit;
|
||||
import com.seeyon.apps.ext.po.CstWorkFlowRequestTemplate;
|
||||
import com.seeyon.apps.ext.quartz.AbstractQuartzTask;
|
||||
import com.seeyon.apps.ext.workflow.manager.CstWorkFlowTemplateManager;
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
@@ -25,25 +19,18 @@ import com.seeyon.cap4.form.bean.FormBean;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.SystemEnvironment;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.common.filemanager.manager.AttachmentManager;
|
||||
import com.seeyon.ctp.common.po.filemanager.Attachment;
|
||||
import com.seeyon.ctp.common.po.template.CtpTemplate;
|
||||
import com.seeyon.ctp.common.template.manager.TemplateManager;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.organization.manager.OrgManagerDirect;
|
||||
import com.seeyon.ctp.util.DateUtil;
|
||||
import com.seeyon.ctp.util.JDBCAgent;
|
||||
import com.seeyon.ctp.util.Strings;
|
||||
import com.seeyon.ctp.util.json.JSONUtil;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.songjian.utils.json.JSONArray;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ import com.seeyon.apps.common.workflow.constants.WorkFlowType;
|
||||
import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.constants.DaohuaxiangConstants;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.service.NewTongYongService;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.service.TongYongService;
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.seeyon.apps.daohuaxiangSys.jkts.service;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.FanWeiNewUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.FanWeiUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.InterfaceListUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.PropKit;
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
|
||||
@@ -2,12 +2,10 @@ package com.seeyon.apps.daohuaxiangSys.jkts.service;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.FanWeiNewUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.FanWeiUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.InterfaceListUtil;
|
||||
import com.seeyon.apps.daohuaxiangSys.jkts.util.PropKit;
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.SystemEnvironment;
|
||||
import com.seeyon.ctp.common.filemanager.manager.AttachmentManager;
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.seeyon.apps.qrCodeForm;
|
||||
|
||||
import com.seeyon.apps.qrCodeForm.util.InitQrCodeFormUitl;
|
||||
import com.seeyon.ctp.common.AbstractSystemInitializer;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package com.seeyon.apps.qrCodeForm.constant;
|
||||
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
|
||||
public class Constants {
|
||||
|
||||
//模拟移动端登录认证方式
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.seeyon.ctp.common.SystemEnvironment;
|
||||
import com.seeyon.ctp.common.constants.ProductEditionEnum;
|
||||
import com.seeyon.ctp.common.controller.BaseController;
|
||||
import com.seeyon.ctp.common.flag.SysFlag;
|
||||
import com.seeyon.ctp.common.formula.FormulaUtil;
|
||||
import com.seeyon.ctp.common.log.CtpLogFactory;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
package com.seeyon.apps.qrCodeForm.manager;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.common.config.ICstConfigApi;
|
||||
import com.seeyon.apps.qrCodeForm.constant.Constants;
|
||||
import com.seeyon.apps.qrCodeForm.constant.QrCodeFormConstants;
|
||||
import com.seeyon.apps.qrCodeForm.constant.SupportTypeEnum;
|
||||
import com.seeyon.apps.weixin.manager.WechatUserManager;
|
||||
import com.seeyon.apps.weixin.po.WechatUser;
|
||||
import com.seeyon.cap4.form.api.FormApi4Cap4;
|
||||
import com.seeyon.cap4.form.modules.business.BusinessSourceTypeManager;
|
||||
import com.seeyon.cap4.form.modules.business.FormAppBO;
|
||||
@@ -16,10 +13,8 @@ import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.SystemEnvironment;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.common.log.CtpLogFactory;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.util.FlipInfo;
|
||||
import com.seeyon.ctp.util.HttpClientUtil;
|
||||
import com.seeyon.ctp.util.ParamUtil;
|
||||
import com.seeyon.ctp.util.Strings;
|
||||
import com.seeyon.ctp.util.annotation.AjaxAccess;
|
||||
|
||||
@@ -10,7 +10,6 @@ import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.portal.sso.SSOLoginContext;
|
||||
import com.seeyon.ctp.portal.sso.SSOLoginHandshakeAbstract;
|
||||
import com.seeyon.ctp.util.HttpClientUtil;
|
||||
import com.seeyon.ctp.util.Strings;
|
||||
import com.seeyon.ctp.util.annotation.Inject;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@@ -1,20 +1,14 @@
|
||||
package com.seeyon.apps.qrCodeForm.util;
|
||||
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.privilege.bo.PrivMenuBO;
|
||||
import com.seeyon.ctp.privilege.enums.PrivMenuTypeEnums;
|
||||
import com.seeyon.ctp.privilege.manager.PrivilegeMenuManager;
|
||||
import com.seeyon.ctp.privilege.po.PrivMenu;
|
||||
import com.seeyon.ctp.util.DBAgent;
|
||||
import com.seeyon.ctp.util.DateUtil;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
47
src/com/seeyon/apps/src_dhxbacklog/DhxBacklogPluginApi.java
Normal file
47
src/com/seeyon/apps/src_dhxbacklog/DhxBacklogPluginApi.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package com.seeyon.apps.src_dhxbacklog;
|
||||
|
||||
import com.seeyon.apps.common.plugin.api.APluginInfoApi;
|
||||
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||
import com.seeyon.apps.src_dhxbacklog.constanst.DhxFlowConstants;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class DhxBacklogPluginApi extends APluginInfoApi {
|
||||
public DhxBacklogPluginApi() {
|
||||
}
|
||||
|
||||
public String getPluginId() {
|
||||
System.out.println(DhxFlowConstants.getPluginId());
|
||||
return DhxFlowConstants.getPluginId();
|
||||
}
|
||||
|
||||
public String getCreateUser() {
|
||||
return "橙阳科技";
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return "集团组织架构同步管理";
|
||||
}
|
||||
|
||||
public ConfigVo getDefaultConfig() {
|
||||
ConfigVo configVo = new ConfigVo();
|
||||
DhxFlowConstants[] var2 = DhxFlowConstants.values();
|
||||
int var3 = var2.length;
|
||||
|
||||
for(int var4 = 0; var4 < var3; ++var4) {
|
||||
DhxFlowConstants value = var2[var4];
|
||||
if (value != DhxFlowConstants.plugin) {
|
||||
configVo.getDevParams().put(value.name(), value.getDefaultValue());
|
||||
configVo.getProdParams().put(value.name(), value.getDefaultValue());
|
||||
configVo.getParamMap().put(value.name(), value.getDescription());
|
||||
}
|
||||
}
|
||||
|
||||
return configVo;
|
||||
}
|
||||
|
||||
public void registerCustomEvent(Map eventAndNodes) {
|
||||
eventAndNodes.put("propertyDispose", "集团组织架构同步管理");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.seeyon.apps.src_dhxbacklog.constanst;
|
||||
|
||||
public enum DhxFlowConstants {
|
||||
|
||||
plugin("src_dhxbacklog","插件ID"),
|
||||
flowUrl("http://10.0.1.56/seeyon","流程平台URL"),
|
||||
TokenUrl("/rest/token/","token地址"),
|
||||
flowRestUsername("gongwenpush","流程平台restname"),
|
||||
flowRestPassword("2376d7fc-1664-4fb6-8dec-66356935ddb0","流程平台restpassword"),
|
||||
dhxflowssourl("/login/sso?from=dhxflowsso&ticket=", "PC单点登录地址"),
|
||||
dhxflowssoh5url("/H5/collaboration/index.html?token=", "H5单点登录地址");
|
||||
|
||||
|
||||
DhxFlowConstants(String defaultValue, String description) {
|
||||
this.defaultValue = defaultValue;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
private String defaultValue;
|
||||
private String description;
|
||||
|
||||
public String getDefaultValue() {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public static String getPluginId() {
|
||||
return plugin.defaultValue;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.seeyon.apps.src_dhxbacklog.sso;
|
||||
|
||||
import com.seeyon.apps.common.config.ICstConfigApi;
|
||||
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||
import com.seeyon.apps.src_dhxbacklog.constanst.DhxFlowConstants;
|
||||
import com.seeyon.apps.src_dhxbacklog.util.GetToken;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.controller.BaseController;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.util.annotation.Inject;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Date;
|
||||
|
||||
public class DhxFlowWaitHandlesso extends BaseController {
|
||||
|
||||
@Inject
|
||||
private ICstConfigApi cstConfigApi;
|
||||
|
||||
private OrgManager orgManager;
|
||||
public void setOrgManager(OrgManager orgManager) {this.orgManager = orgManager; }
|
||||
public OrgManager getOrgManager() {
|
||||
if (orgManager == null) {orgManager = (OrgManager) AppContext.getBean("orgManager");}return orgManager;
|
||||
}
|
||||
|
||||
public ConfigVo getDhxBacklogConfig() {
|
||||
return cstConfigApi.getConfig(getPluginId());
|
||||
}
|
||||
|
||||
public String getPluginId() {
|
||||
return DhxFlowConstants.getPluginId();
|
||||
}
|
||||
|
||||
public ModelAndView index(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
System.out.println("123123123123123");
|
||||
ConfigVo configVo = getDhxBacklogConfig();
|
||||
ModelAndView mv = new ModelAndView();
|
||||
// 根据当前账号获取流程平台账号
|
||||
String userLoginName = AppContext.currentUserLoginName();
|
||||
// V3xOrgMember v3xOrgMember = orgManager.getMemberById(userId);
|
||||
// if(v3xOrgMember==null){
|
||||
// mv.setViewName("跳转失败"); // 设置视图名称
|
||||
// mv.addObject("message", "请检查登录名数据绑定!"); // 添加模型数据
|
||||
// return mv;
|
||||
// }
|
||||
// 获取当前绑定人员登录名
|
||||
// String changleLoginName = users.get(0).get("changleLoginName");
|
||||
String salt = "-";
|
||||
Date date = new Date();
|
||||
String ticket = userLoginName+salt+date.getTime();
|
||||
String toUrl = request.getParameter("tourl");
|
||||
String type = request.getParameter("type");
|
||||
String toEncodeUrl = URLEncoder.encode(toUrl, "UTF-8");
|
||||
|
||||
String pathUrl = configVo.getParamVal(DhxFlowConstants.flowUrl.name())+
|
||||
configVo.getParamVal(DhxFlowConstants.dhxflowssourl.name())+ticket+"&tourl="+toEncodeUrl;
|
||||
// 判断登录是否移动端
|
||||
if("H5".equals(type)){
|
||||
// 长乐rest用户名
|
||||
String changleRestUsername = configVo.getParamVal(DhxFlowConstants.flowRestUsername.name());
|
||||
// 长乐rest密码
|
||||
String changleRestPassword = configVo.getParamVal(DhxFlowConstants.flowRestPassword.name());
|
||||
// 长乐获取tokenUrl
|
||||
String url = configVo.getParamVal(DhxFlowConstants.flowUrl.name())+
|
||||
configVo.getParamVal(DhxFlowConstants.TokenUrl.name());
|
||||
// 调用接口获取TOKEN信息
|
||||
String token = GetToken.changleToken(url,changleRestUsername,changleRestPassword,userLoginName);
|
||||
|
||||
pathUrl = configVo.getParamVal(DhxFlowConstants.flowUrl.name())+
|
||||
configVo.getParamVal(DhxFlowConstants.dhxflowssoh5url.name())+token+"&html="+toEncodeUrl+"&loginName="+userLoginName;
|
||||
}
|
||||
System.out.println(pathUrl);
|
||||
response.sendRedirect(pathUrl);
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
23
src/com/seeyon/apps/src_dhxbacklog/util/GetToken.java
Normal file
23
src/com/seeyon/apps/src_dhxbacklog/util/GetToken.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.seeyon.apps.src_dhxbacklog.util;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
|
||||
public class GetToken {
|
||||
public static String changleToken(String changleURL , String restName,String restPassword,String loginName){
|
||||
// String url = "http://127.0.0.1/seeyon/rest/token/" + restName + "/" + restPassword + "?loginName=" + loginName;
|
||||
String url = changleURL + restName + "/" + restPassword + "?loginName=" + loginName;
|
||||
|
||||
String msg = HttpRequestUtils.httpGet(url);
|
||||
|
||||
String token = null;
|
||||
if (msg.length()>70){
|
||||
com.alibaba.fastjson.JSONObject object = JSON.parseObject(msg);
|
||||
Object id = object.get("id");
|
||||
token = id.toString();
|
||||
}else {
|
||||
token = msg;
|
||||
}
|
||||
|
||||
return token;
|
||||
}
|
||||
}
|
||||
241
src/com/seeyon/apps/src_dhxbacklog/util/HttpRequestUtils.java
Normal file
241
src/com/seeyon/apps/src_dhxbacklog/util/HttpRequestUtils.java
Normal file
@@ -0,0 +1,241 @@
|
||||
package com.seeyon.apps.src_dhxbacklog.util;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.httpclient.HttpClient;
|
||||
import org.apache.commons.httpclient.HttpStatus;
|
||||
import org.apache.commons.httpclient.NameValuePair;
|
||||
import org.apache.commons.httpclient.methods.PostMethod;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class HttpRequestUtils {
|
||||
/**
|
||||
* post请求
|
||||
*
|
||||
* @param url
|
||||
* url地址
|
||||
* @param jsonParam
|
||||
* 参数
|
||||
* @param needResponse
|
||||
* 需要返回结果
|
||||
* @return
|
||||
*/
|
||||
public static String httpPost(String url, JSONObject jsonParam,
|
||||
boolean needResponse) {
|
||||
// post请求返回结果
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
String jsonResult = null;
|
||||
HttpPost method = new HttpPost(url);
|
||||
try {
|
||||
if (null != jsonParam) {
|
||||
// 解决中文乱码问题
|
||||
StringEntity entity = new StringEntity(jsonParam.toString(),
|
||||
"utf-8");
|
||||
entity.setContentEncoding("UTF-8");
|
||||
entity.setContentType("application/json");
|
||||
method.setEntity(entity);
|
||||
}
|
||||
HttpResponse result = httpClient.execute(method);
|
||||
url = URLDecoder.decode(url, "UTF-8");
|
||||
/** 请求发送成功,并得到响应 **/
|
||||
if (result.getStatusLine().getStatusCode() == 200) {
|
||||
String str = "";
|
||||
try {
|
||||
/** 读取服务器返回过来的json字符串数据 **/
|
||||
str = EntityUtils.toString(result.getEntity());
|
||||
if (!needResponse) {
|
||||
return null;
|
||||
}
|
||||
/** 把json字符串转换成json对象 **/
|
||||
jsonResult = str;
|
||||
} catch (Exception e) {
|
||||
System.out.println("post请求提交失败:" + url);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("post请求提交失败:" + url);
|
||||
}
|
||||
return jsonResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送get请求
|
||||
*
|
||||
* @param url
|
||||
* 路径
|
||||
* @return
|
||||
*/
|
||||
public static String httpGet(String url) {
|
||||
// get请求返回结果
|
||||
JSONObject jsonObject = null;
|
||||
String strResult = "";
|
||||
try {
|
||||
DefaultHttpClient client = new DefaultHttpClient();
|
||||
// 发送get请求
|
||||
HttpGet request = new HttpGet(url);
|
||||
HttpResponse response = client.execute(request);
|
||||
/** 请求发送成功,并得到响应 **/
|
||||
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
|
||||
/** 读取服务器返回过来的json字符串数据 **/
|
||||
strResult = EntityUtils.toString(response.getEntity());
|
||||
/** 把json字符串转换成json对象 **/
|
||||
url = URLDecoder.decode(url, "UTF-8");
|
||||
} else {
|
||||
System.out.println("get请求提交失败:" + url);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("get请求提交失败:" + url);
|
||||
}
|
||||
return strResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* 向指定 URL 发送POST方法的请求
|
||||
*
|
||||
* @param url
|
||||
* 发送请求的 URL
|
||||
* @param param
|
||||
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
|
||||
* @return 所代表远程资源的响应结果
|
||||
*/
|
||||
public static String sendPost(String url, JSONObject param) {
|
||||
PrintWriter out = null;
|
||||
BufferedReader in = null;
|
||||
String result = "";
|
||||
try {
|
||||
URL realUrl = new URL(url);
|
||||
// 打开和URL之间的连接
|
||||
URLConnection conn = realUrl.openConnection();
|
||||
// 设置通用的请求属性
|
||||
conn.setRequestProperty("accept", "*/*");
|
||||
conn.setRequestProperty("connection", "Keep-Alive");
|
||||
conn.setRequestProperty("user-agent",
|
||||
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
||||
// 发送POST请求必须设置如下两行
|
||||
conn.setDoOutput(true);
|
||||
conn.setDoInput(true);
|
||||
// 获取URLConnection对象对应的输出流
|
||||
out = new PrintWriter(conn.getOutputStream());
|
||||
StringEntity entity = new StringEntity(param.toString(), "utf-8");
|
||||
// 发送请求参数
|
||||
out.print(entity);
|
||||
// flush输出流的缓冲
|
||||
out.flush();
|
||||
// 定义BufferedReader输入流来读取URL的响应
|
||||
in = new BufferedReader(
|
||||
new InputStreamReader(conn.getInputStream()));
|
||||
String line;
|
||||
while ((line = in.readLine()) != null) {
|
||||
result += line;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println("发送 POST 请求出现异常!" + e);
|
||||
e.printStackTrace();
|
||||
}
|
||||
// 使用finally块来关闭输出流、输入流
|
||||
finally {
|
||||
try {
|
||||
if (out != null) {
|
||||
out.close();
|
||||
}
|
||||
if (in != null) {
|
||||
in.close();
|
||||
}
|
||||
} catch (IOException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static String doPost(String url, Map<String, String> params,
|
||||
String charset) {
|
||||
StringBuffer response = new StringBuffer();
|
||||
HttpClient client = new HttpClient();
|
||||
PostMethod method = new PostMethod(url);
|
||||
// 设置Http Post数据
|
||||
method.setRequestHeader("Content-Type",
|
||||
"application/x-www-form-urlencoded;charset=" + charset);
|
||||
if (params != null) {
|
||||
Set<String> keySet = params.keySet();
|
||||
NameValuePair[] param = new NameValuePair[keySet.size()];
|
||||
int i = 0;
|
||||
for (String key : keySet) {
|
||||
param[i] = new NameValuePair(key, params.get(key));
|
||||
i++;
|
||||
}
|
||||
method.setRequestBody(param);
|
||||
}
|
||||
InputStream responseBodyStream = null;
|
||||
InputStreamReader streamReader = null;
|
||||
BufferedReader reader = null;
|
||||
try {
|
||||
client.executeMethod(method);
|
||||
if (method.getStatusCode() == HttpStatus.SC_OK) {
|
||||
responseBodyStream = method.getResponseBodyAsStream();
|
||||
streamReader = new InputStreamReader(responseBodyStream,
|
||||
charset);
|
||||
reader = new BufferedReader(streamReader);
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
response.append(line);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
} finally {
|
||||
try {
|
||||
responseBodyStream.close();
|
||||
streamReader.close();
|
||||
reader.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
method.releaseConnection();
|
||||
}
|
||||
return response.toString();
|
||||
}
|
||||
|
||||
public static String transport(String url, String message) {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
try {
|
||||
URL urls = new URL(url);
|
||||
HttpURLConnection uc = (HttpURLConnection) urls.openConnection();
|
||||
uc.setRequestMethod("POST");
|
||||
uc.setRequestProperty("content-type",
|
||||
"application/x-www-form-urlencoded");
|
||||
uc.setRequestProperty("charset", "UTF-8");
|
||||
uc.setDoOutput(true);
|
||||
uc.setDoInput(true);
|
||||
uc.setReadTimeout(10000);
|
||||
uc.setConnectTimeout(10000);
|
||||
OutputStream os = uc.getOutputStream();
|
||||
DataOutputStream dos = new DataOutputStream(os);
|
||||
dos.write(message.getBytes("utf-8"));
|
||||
dos.flush();
|
||||
os.close();
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(
|
||||
uc.getInputStream(), "utf-8"));
|
||||
String readLine = "";
|
||||
while ((readLine = in.readLine()) != null) {
|
||||
sb.append(readLine);
|
||||
}
|
||||
in.close();
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
46
src/com/seeyon/apps/src_dhxorganization/DhxPluginApi.java
Normal file
46
src/com/seeyon/apps/src_dhxorganization/DhxPluginApi.java
Normal file
@@ -0,0 +1,46 @@
|
||||
package com.seeyon.apps.src_dhxorganization;
|
||||
|
||||
import com.seeyon.apps.common.plugin.api.APluginInfoApi;
|
||||
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||
import com.seeyon.apps.src_dhxorganization.constants.DhxConstants;
|
||||
|
||||
|
||||
public class DhxPluginApi extends APluginInfoApi {
|
||||
public DhxPluginApi() {
|
||||
}
|
||||
|
||||
public String getPluginId() {
|
||||
System.out.println(DhxConstants.getPluginId());
|
||||
return DhxConstants.getPluginId();
|
||||
}
|
||||
|
||||
public String getCreateUser() {
|
||||
return "橙阳科技";
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return "U8C集成管理";
|
||||
}
|
||||
|
||||
public ConfigVo getDefaultConfig() {
|
||||
ConfigVo configVo = new ConfigVo();
|
||||
DhxConstants[] var2 = DhxConstants.values();
|
||||
int var3 = var2.length;
|
||||
|
||||
for(int var4 = 0; var4 < var3; ++var4) {
|
||||
DhxConstants value = var2[var4];
|
||||
if (value != DhxConstants.plugin) {
|
||||
configVo.getDevParams().put(value.name(), value.getDefaultValue());
|
||||
configVo.getProdParams().put(value.name(), value.getDefaultValue());
|
||||
configVo.getParamMap().put(value.name(), value.getDescription());
|
||||
}
|
||||
}
|
||||
|
||||
return configVo;
|
||||
}
|
||||
|
||||
// public void registerCustomEvent(Map eventAndNodes) {
|
||||
// eventAndNodes.put("propertyDispose", "资产管理待办推送");
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.seeyon.apps.src_dhxorganization.archive;
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
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_dhxorganization.util.Cap4ReturnUtil;
|
||||
import com.seeyon.apps.src_dhxorganization.util.DhxHttpUtil;
|
||||
import com.seeyon.apps.src_dhxorganization.util.ParamUtil;
|
||||
import com.seeyon.apps.src_dhxorganization.constants.DhxConstants;
|
||||
import com.seeyon.apps.src_dhxorganization.vo.DhxResponse;
|
||||
import com.seeyon.cap4.form.api.FormDataApi4Cap4;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
|
||||
public abstract class ArchiveCommonNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(ArchiveCommonNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return DhxConstants.getPluginId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormParse() {
|
||||
return "json";
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkFlowType[] getTypes() {
|
||||
return new WorkFlowType[] {WorkFlowType.superNode};
|
||||
}
|
||||
|
||||
public ConfigVo getU8cConfig() {
|
||||
return cstConfigApi.getConfig(getPluginId());
|
||||
}
|
||||
|
||||
protected FormDataApi4Cap4 formDataApi4Cap4;
|
||||
|
||||
public void setFormDataApi4Cap4(FormDataApi4Cap4 formDataApi4Cap4) {
|
||||
this.formDataApi4Cap4 = formDataApi4Cap4;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
|
||||
SuperNodeContext context = new SuperNodeContext();
|
||||
System.out.println("开始处理单据"+getNodeId());
|
||||
ParamUtil paramUtil = new ParamUtil();
|
||||
String param = paramUtil.param(request,getMethod(),formDataVo);
|
||||
Cap4ReturnUtil cap4ReturnUtil = new Cap4ReturnUtil();
|
||||
try {
|
||||
FieldDataVo fhjg = formDataVo.getFieldData("U8C-返回结果");
|
||||
String value = fhjg.getStringValue();
|
||||
if(value.startsWith("推送U8C成功")) {
|
||||
return context.success("跳过:" + value);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
context.setException(true);
|
||||
context.back("处理异常:OA跳过处理异常:" + e.getMessage());
|
||||
formDataVo.getNewFieldDataMap().put("U8C-返回结果", "处理异常:OA跳过处理异常:" + e.getMessage());
|
||||
}
|
||||
ConfigVo configVo = getU8cConfig();
|
||||
context.setNeedSave(true);
|
||||
String url = configVo.getParamVal(DhxConstants.test.name());
|
||||
url += getMethod();
|
||||
context.setRequest(param);
|
||||
context.setUrl(url);
|
||||
try {
|
||||
String u8cSystem = configVo.getParamVal(DhxConstants.test.name());
|
||||
log.info(param);
|
||||
String response = DhxHttpUtil.doPost(url, param);
|
||||
System.out.println(response);
|
||||
context.setResponse(response);
|
||||
DhxResponse u8cResponse = DhxHttpUtil.parseResponse(response);
|
||||
if(u8cResponse.isSuccess()) {
|
||||
cap4ReturnUtil.setParamReturn(getMethod(),u8cResponse,formDataVo,getNodeId());
|
||||
System.out.println("参数处理完成"+u8cResponse);
|
||||
log.info(u8cResponse.getData());
|
||||
System.out.println("推送成功显示"+u8cResponse.getStatus());
|
||||
context.success("推送U8C成功:" + u8cResponse.getStatus(), false);
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "推送成功:" + u8cResponse.getStatus());
|
||||
|
||||
} else {
|
||||
context.setErrMsg(u8cResponse.getMsg());
|
||||
context.back("推送U8C失败:" + u8cResponse.getMsg());
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "推送失败:" + u8cResponse.getMsg());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
context.setException(true);
|
||||
context.back("推送U8C失败:OA处理异常:" + e.getMessage());
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "推送失败:OA处理异常" + e.getMessage());
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
|
||||
public abstract String getMethod();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.seeyon.apps.src_dhxorganization.archive.node;
|
||||
|
||||
import com.seeyon.apps.src_dhxorganization.archive.ArchiveCommonNode;
|
||||
|
||||
public class UpdateHireFilesNode extends ArchiveCommonNode {
|
||||
|
||||
|
||||
@Override
|
||||
public String getMethod() {
|
||||
return "/seeyon/rest/cap4/form/soap/batch-update";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "UpdateHireFilesNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "员工录用审批保存人才库信息";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.seeyon.apps.src_dhxorganization.constants;
|
||||
|
||||
public enum DhxConstants {
|
||||
|
||||
|
||||
plugin("ydctu8c","插件ID"),
|
||||
test("test","test");
|
||||
|
||||
DhxConstants(String defaultValue, String description) {
|
||||
this.defaultValue = defaultValue;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
private String defaultValue;
|
||||
private String description;
|
||||
|
||||
public String getDefaultValue() {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public static String getPluginId() {
|
||||
return plugin.defaultValue;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
package com.seeyon.apps.src_dhxorganization.member;
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
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_dhxorganization.util.Cap4ReturnUtil;
|
||||
import com.seeyon.apps.src_dhxorganization.util.DhxHttpUtil;
|
||||
import com.seeyon.apps.src_dhxorganization.util.ParamUtil;
|
||||
import com.seeyon.apps.src_dhxorganization.constants.DhxConstants;
|
||||
import com.seeyon.apps.src_dhxorganization.vo.DhxResponse;
|
||||
import com.seeyon.cap4.form.api.FormDataApi4Cap4;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
|
||||
public abstract class MemberCommonNode extends ACommonSuperNode {
|
||||
|
||||
|
||||
private static Log log = Log.get(MemberCommonNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return DhxConstants.getPluginId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormParse() {
|
||||
return "json";
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkFlowType[] getTypes() {
|
||||
return new WorkFlowType[] {WorkFlowType.superNode};
|
||||
}
|
||||
|
||||
public ConfigVo getU8cConfig() {
|
||||
return cstConfigApi.getConfig(getPluginId());
|
||||
}
|
||||
|
||||
protected FormDataApi4Cap4 formDataApi4Cap4;
|
||||
|
||||
public void setFormDataApi4Cap4(FormDataApi4Cap4 formDataApi4Cap4) {
|
||||
this.formDataApi4Cap4 = formDataApi4Cap4;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
|
||||
SuperNodeContext context = new SuperNodeContext();
|
||||
System.out.println("开始处理单据"+getNodeId());
|
||||
ParamUtil paramUtil = new ParamUtil();
|
||||
String param = paramUtil.param(request,getMethod(),formDataVo);
|
||||
Cap4ReturnUtil cap4ReturnUtil = new Cap4ReturnUtil();
|
||||
try {
|
||||
FieldDataVo fhjg = formDataVo.getFieldData("U8C-返回结果");
|
||||
String value = fhjg.getStringValue();
|
||||
if(value.startsWith("推送U8C成功")) {
|
||||
return context.success("跳过:" + value);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
context.setException(true);
|
||||
context.back("处理异常:OA跳过处理异常:" + e.getMessage());
|
||||
formDataVo.getNewFieldDataMap().put("U8C-返回结果", "处理异常:OA跳过处理异常:" + e.getMessage());
|
||||
}
|
||||
ConfigVo configVo = getU8cConfig();
|
||||
context.setNeedSave(true);
|
||||
String url = configVo.getParamVal(DhxConstants.test.name());
|
||||
url += getMethod();
|
||||
context.setRequest(param);
|
||||
context.setUrl(url);
|
||||
try {
|
||||
String u8cSystem = configVo.getParamVal(DhxConstants.test.name());
|
||||
log.info(param);
|
||||
String response = DhxHttpUtil.doPost(url, param);
|
||||
System.out.println(response);
|
||||
context.setResponse(response);
|
||||
DhxResponse u8cResponse = DhxHttpUtil.parseResponse(response);
|
||||
if(u8cResponse.isSuccess()) {
|
||||
cap4ReturnUtil.setParamReturn(getMethod(),u8cResponse,formDataVo,getNodeId());
|
||||
System.out.println("参数处理完成"+u8cResponse);
|
||||
log.info(u8cResponse.getData());
|
||||
System.out.println("推送成功显示"+u8cResponse.getStatus());
|
||||
context.success("推送U8C成功:" + u8cResponse.getStatus(), false);
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "推送成功:" + u8cResponse.getStatus());
|
||||
|
||||
} else {
|
||||
context.setErrMsg(u8cResponse.getMsg());
|
||||
context.back("推送U8C失败:" + u8cResponse.getMsg());
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "推送失败:" + u8cResponse.getMsg());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
context.setException(true);
|
||||
context.back("推送U8C失败:OA处理异常:" + e.getMessage());
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "推送失败:OA处理异常" + e.getMessage());
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
|
||||
public abstract String getMethod();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.seeyon.apps.src_dhxorganization.util;
|
||||
|
||||
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
import com.seeyon.apps.src_dhxorganization.vo.DhxResponse;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
|
||||
|
||||
public class Cap4ReturnUtil {
|
||||
|
||||
public void setParamReturn(String method, DhxResponse dhxResponse, FormDataVo formDataVo, String nodeId) throws BusinessException, NoSuchFieldException {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.seeyon.apps.src_dhxorganization.util;
|
||||
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.src_dhxorganization.vo.DhxResponse;
|
||||
import com.seeyon.ctp.util.json.JSONUtil;
|
||||
|
||||
/**
|
||||
* 功能描述:<br>
|
||||
* <pre>
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @Author: HuangZhengguo
|
||||
* @Date: 2024/4/28
|
||||
*/
|
||||
public class DhxHttpUtil {
|
||||
|
||||
private DhxHttpUtil() {
|
||||
|
||||
}
|
||||
|
||||
public static String doPost(String url, String body) throws Exception {
|
||||
|
||||
return HttpRequest.post(url).header("accept", "*/*")
|
||||
.header("connection", "")
|
||||
.body(body).execute().body();
|
||||
}
|
||||
|
||||
public static DhxResponse parseResponse(String response) throws Exception {
|
||||
try {
|
||||
JSONObject object = JSONUtil.parseJSONString(response, JSONObject.class);
|
||||
return new DhxResponse(object);
|
||||
} catch (Exception e) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("Status", "0");
|
||||
jsonObject.put("Msg", "解析json异常");
|
||||
jsonObject.put("Data", response);
|
||||
return new DhxResponse(jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
String url = "";
|
||||
}
|
||||
|
||||
}
|
||||
10
src/com/seeyon/apps/src_dhxorganization/util/ParamUtil.java
Normal file
10
src/com/seeyon/apps/src_dhxorganization/util/ParamUtil.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.seeyon.apps.src_dhxorganization.util;
|
||||
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
|
||||
public class ParamUtil {
|
||||
|
||||
public String param(String request, String method , FormDataVo formDataVo){
|
||||
return "";
|
||||
}
|
||||
}
|
||||
76
src/com/seeyon/apps/src_dhxorganization/vo/DhxResponse.java
Normal file
76
src/com/seeyon/apps/src_dhxorganization/vo/DhxResponse.java
Normal file
@@ -0,0 +1,76 @@
|
||||
package com.seeyon.apps.src_dhxorganization.vo;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
/**
|
||||
* 功能描述:<br>
|
||||
* <pre>
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @Author: HuangZhengguo
|
||||
* @Date: 2024/4/28
|
||||
*/
|
||||
public class DhxResponse {
|
||||
|
||||
private boolean success;
|
||||
private int status;
|
||||
private String msg;
|
||||
private String data;
|
||||
|
||||
|
||||
public DhxResponse(JSONObject object) {
|
||||
if(object.containsKey("Status")) {
|
||||
this.status = object.getInteger("Status");
|
||||
} else {
|
||||
this.status = object.getString("status").equals("success")?1:2;
|
||||
}
|
||||
this.success = (1 == status);
|
||||
if(object.containsKey("Msg")) {
|
||||
this.msg = object.getString("Msg");
|
||||
} else {
|
||||
this.msg = object.getString("errormsg");
|
||||
}
|
||||
if(object.containsKey("Data")) {
|
||||
this.data = object.getString("Data");
|
||||
} else {
|
||||
this.data = object.getString("data");
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isSuccess() {
|
||||
return success;
|
||||
}
|
||||
|
||||
public DhxResponse setSuccess(boolean success) {
|
||||
this.success = success;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public DhxResponse setStatus(int status) {
|
||||
this.status = status;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public DhxResponse setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public DhxResponse setData(String data) {
|
||||
this.data = data;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -6,15 +6,15 @@ import java.sql.SQLException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.seeyon.apps.src_dingding.service.DingdingService;
|
||||
import com.seeyon.apps.src_dingding.task.DingdingTask;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.controller.BaseController;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.common.quartz.QuartzHolder;
|
||||
import com.seeyon.ctp.util.annotation.NeedlessCheckLogin;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.seeyon.apps.src_dingding.service.DingdingService;
|
||||
import com.seeyon.apps.src_dingding.task.DingdingTask;
|
||||
import com.taobao.api.ApiException;
|
||||
|
||||
/**
|
||||
|
||||
@@ -11,14 +11,14 @@ import java.util.Map;
|
||||
|
||||
import com.seeyon.apps.src_dingding.vo.AttendanceVo;
|
||||
import com.seeyon.apps.src_dingding.vo.CheckOnWorkAttendanceVo;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.util.JDBCAgent;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
import nc.vo.jcom.lang.StringUtil;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.seeyon.apps.src_dingding.util.BaseUtil;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.util.JDBCAgent;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
|
||||
public class DingdingDaoImpl extends BaseUtil implements IDingdingDao{
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import java.util.Map;
|
||||
import com.seeyon.apps.src_dingding.vo.AttendanceVo;
|
||||
import com.seeyon.apps.src_dingding.vo.CheckOnWorkAttendanceVo;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
|
||||
public interface IDingdingDao {
|
||||
|
||||
@@ -40,7 +39,7 @@ public interface IDingdingDao {
|
||||
* @throws BusinessException
|
||||
* @throws SQLException
|
||||
*/
|
||||
public Map<String,Object> getdeptByPathName(String path,String name)throws BusinessException, SQLException;
|
||||
public Map<String,Object> getdeptByPathName(String path,String name)throws BusinessException, SQLException, BusinessException;
|
||||
|
||||
/**
|
||||
* 查询部门对照表中所有的部门信息
|
||||
|
||||
@@ -10,8 +10,15 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
import com.seeyon.apps.src_dingding.vo.AttendanceVo;
|
||||
import com.seeyon.apps.src_dingding.vo.CheckOnWorkAttendanceVo;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgAccount;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.services.ServiceException;
|
||||
import org.apache.commons.collections.map.HashedMap;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@@ -21,12 +28,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.src_dingding.dao.IDingdingDao;
|
||||
import com.seeyon.apps.src_dingding.util.DingtalkUtil;
|
||||
import com.seeyon.apps.src_dingding.util.FormExportUtil;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgAccount;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.services.ServiceException;
|
||||
import com.seeyon.v3x.services.form.FormFactory;
|
||||
import com.seeyon.v3x.services.form.bean.FormExport;
|
||||
import com.seeyon.v3x.services.form.bean.SubordinateFormExport;
|
||||
|
||||
@@ -1,26 +1,20 @@
|
||||
package com.seeyon.apps.src_dingding.task;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.quartz.QuartzHolder;
|
||||
import com.seeyon.ctp.common.quartz.QuartzJob;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.src_dingding.service.DingdingService;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
//import com.seeyon.apps.src_automatic.task.PushAuCardTask;
|
||||
//import com.seeyon.apps.src_bill_detail.manager.PushZcService;
|
||||
import com.seeyon.ctp.common.quartz.QuartzHolder;
|
||||
import com.seeyon.ctp.common.quartz.QuartzJob;
|
||||
import com.seeyon.ctp.util.SDFCoder;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
import com.seeyon.ctp.util.json.JSONUtil;
|
||||
|
||||
|
||||
/**
|
||||
* 自动计算任务
|
||||
|
||||
@@ -122,6 +122,6 @@ public class DingtalkUtil {
|
||||
}
|
||||
JSONObject json = JSONObject.parseObject(result);
|
||||
return json;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,15 @@
|
||||
package com.seeyon.apps.src_dingding.util;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.ctpenumnew.manager.EnumManager;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem;
|
||||
import com.seeyon.ctp.util.JDBCAgent;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class TimeUtil {
|
||||
|
||||
private EnumManager enumManagerNew;
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.seeyon.apps.src_mainorganization.bo;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
public class ReceiveOrgMemberResponse {
|
||||
|
||||
private boolean success;
|
||||
private int status;
|
||||
private String msg;
|
||||
private String data;
|
||||
public ReceiveOrgMemberResponse() {}
|
||||
public ReceiveOrgMemberResponse(JSONObject object) {
|
||||
|
||||
this.status = object.getString("status").equals("1")?1:2;
|
||||
this.success = (1 == status);
|
||||
this.msg = object.getString("msg");
|
||||
this.data = object.getString("data");
|
||||
}
|
||||
|
||||
public boolean isSuccess() {
|
||||
return success;
|
||||
}
|
||||
|
||||
public ReceiveOrgMemberResponse setSuccess(boolean success) {
|
||||
this.success = success;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public ReceiveOrgMemberResponse setStatus(int status) {
|
||||
this.status = status;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public ReceiveOrgMemberResponse setMsg(String msg) {
|
||||
this.msg = msg;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public ReceiveOrgMemberResponse setData(String data) {
|
||||
this.data = data;
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.seeyon.apps.src_mainorganization.dao;
|
||||
|
||||
public interface ISrcEnumDao {
|
||||
|
||||
public String getEnumByExtAttr(String extAttrName);
|
||||
|
||||
public String getEnumItemByRefEnumIdValue(String refEnumId, String enumValue);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.seeyon.apps.src_mainorganization.dao;
|
||||
|
||||
public interface ISrcMemberDao {
|
||||
|
||||
public String getMemberMaxSortId();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.seeyon.apps.src_mainorganization.dao.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.src_mainorganization.dao.ISrcEnumDao;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.util.JDBCAgent;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class SrcEnumDaoImpl implements ISrcEnumDao {
|
||||
|
||||
private String getEnumByExtAttr = "select label,name,alias,column_rule from ctp_metadata_column where name = ?";
|
||||
private String getEnumItemByRefEnumIdValue = "select id,ref_enumid,showvalue,enumvalue from ctp_enum_item where ref_enumid = ? and enumvalue = ?";
|
||||
|
||||
@Override
|
||||
public String getEnumByExtAttr(String extAttrName) {
|
||||
JDBCAgent agent = new JDBCAgent();
|
||||
String enumId = "";
|
||||
try {
|
||||
StringBuilder sql = new StringBuilder(this.getEnumByExtAttr);
|
||||
List<Object> p = new ArrayList();
|
||||
p.add(extAttrName);
|
||||
agent.execute(sql.toString(), p);
|
||||
List<Map> list = agent.resultSetToList();
|
||||
if(list.size()>0){
|
||||
Map map = (Map) list.get(0);
|
||||
String columnRule = map.get("column_rule").toString();
|
||||
JSONObject column = JSONObject.parseObject(columnRule);
|
||||
enumId = column.getString("codeId");
|
||||
}
|
||||
} catch (BusinessException var13) {
|
||||
var13.printStackTrace();
|
||||
} catch (SQLException var14) {
|
||||
var14.printStackTrace();
|
||||
} finally {
|
||||
if (agent != null) {
|
||||
agent.close();
|
||||
}
|
||||
}
|
||||
return enumId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getEnumItemByRefEnumIdValue(String refEnumId,String enumValue) {
|
||||
JDBCAgent agent = new JDBCAgent();
|
||||
String enumItemId = "";
|
||||
try {
|
||||
StringBuilder sql = new StringBuilder(this.getEnumItemByRefEnumIdValue);
|
||||
List<Object> p = new ArrayList();
|
||||
p.add(refEnumId);
|
||||
p.add(enumValue);
|
||||
agent.execute(sql.toString(), p);
|
||||
List<Map> list = agent.resultSetToList();
|
||||
if(list.size()>0){
|
||||
enumItemId = list.get(0).get("id").toString();
|
||||
}
|
||||
} catch (BusinessException var13) {
|
||||
var13.printStackTrace();
|
||||
} catch (SQLException var14) {
|
||||
var14.printStackTrace();
|
||||
} finally {
|
||||
if (agent != null) {
|
||||
agent.close();
|
||||
}
|
||||
}
|
||||
return enumItemId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.seeyon.apps.src_mainorganization.dao.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.src_mainorganization.dao.ISrcMemberDao;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.util.JDBCAgent;
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class SrcMemberDaoImpl implements ISrcMemberDao {
|
||||
|
||||
private String getMemberMaxSortId = "select max(sort_id) as max_sort_id from org_member ";
|
||||
|
||||
@Override
|
||||
public String getMemberMaxSortId() {
|
||||
JDBCAgent agent = new JDBCAgent();
|
||||
String sortId = "";
|
||||
try {
|
||||
StringBuilder sql = new StringBuilder(this.getMemberMaxSortId);
|
||||
List<Object> p = new ArrayList();
|
||||
agent.execute(sql.toString(), p);
|
||||
List<Map> list = agent.resultSetToList();
|
||||
if(list.size()>0){
|
||||
Map map = (Map) list.get(0);
|
||||
sortId = map.get("max_sort_id").toString();
|
||||
}
|
||||
} catch (BusinessException var13) {
|
||||
var13.printStackTrace();
|
||||
} catch (SQLException var14) {
|
||||
var14.printStackTrace();
|
||||
} finally {
|
||||
if (agent != null) {
|
||||
agent.close();
|
||||
}
|
||||
}
|
||||
return sortId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.seeyon.apps.src_mainorganization.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.seeyon.apps.src_mainorganization.bo.ReceiveOrgMemberResponse;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
|
||||
import java.text.ParseException;
|
||||
|
||||
public interface IReceiveOrgMemberService {
|
||||
|
||||
/**
|
||||
* 调用接口保存人员到组织架构平台
|
||||
* @param memberParam
|
||||
* @return
|
||||
*/
|
||||
public ReceiveOrgMemberResponse saveMemberMain(JSONObject memberParam) throws BusinessException, ParseException, JsonProcessingException;
|
||||
|
||||
/**
|
||||
* 调用接口更新人员到组织架构平台
|
||||
* @param memberParam
|
||||
* @return
|
||||
*/
|
||||
public ReceiveOrgMemberResponse updateMemberMain(JSONObject memberParam) throws BusinessException, ParseException, JsonProcessingException;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,612 @@
|
||||
package com.seeyon.apps.src_mainorganization.service.impl;
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.seeyon.apps.addressbook.manager.AddressBookCustomerFieldInfoManager;
|
||||
import com.seeyon.apps.addressbook.po.AddressBook;
|
||||
import com.seeyon.apps.src_mainorganization.bo.ReceiveOrgMemberResponse;
|
||||
import com.seeyon.apps.src_mainorganization.dao.ISrcEnumDao;
|
||||
import com.seeyon.apps.src_mainorganization.dao.ISrcMemberDao;
|
||||
import com.seeyon.apps.src_mainorganization.service.IReceiveOrgMemberService;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.organization.bo.*;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.organization.manager.OrgManagerDirect;
|
||||
import www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class ReceiveOrgMemberServiceImpl implements IReceiveOrgMemberService {
|
||||
|
||||
private static Log log = Log.get(ReceiveOrgMemberServiceImpl.class);
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
@Inject
|
||||
private AddressBookCustomerFieldInfoManager addressBookCustomerFieldInfoManager;
|
||||
@Inject
|
||||
private ISrcEnumDao srcEnumDao;
|
||||
@Inject
|
||||
private ISrcMemberDao srcMemberDao;
|
||||
@Inject
|
||||
private OrgManagerDirect orgManagerDirect;
|
||||
@Inject
|
||||
private OrgManager orgManager;
|
||||
|
||||
@Override
|
||||
public ReceiveOrgMemberResponse saveMemberMain(JSONObject memberParam) throws BusinessException, ParseException, JsonProcessingException {
|
||||
V3xOrgMember member = new V3xOrgMember();
|
||||
// 创建人员ID
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("id"))){
|
||||
member.setId(memberParam.getLong("id"));
|
||||
}else{
|
||||
member.setIdIfNew();
|
||||
}
|
||||
member.setName(memberParam.getString("name"));
|
||||
member.setCode(memberParam.getString("code"));
|
||||
member.setTelNumber(memberParam.getString("telNumber"));
|
||||
String birthday = memberParam.getString("birthday");
|
||||
if(StringUtil.isNotEmpty(birthday)){
|
||||
member.setProperty("birthday",sdf.parse(birthday));
|
||||
}
|
||||
String hiredate = memberParam.getString("hiredate");
|
||||
if(StringUtil.isNotEmpty(hiredate)){
|
||||
member.setProperty("hiredate",sdf.parse(hiredate));
|
||||
}
|
||||
String gender = memberParam.getString("gender");
|
||||
member.setProperty("gender",gender);
|
||||
|
||||
V3xOrgPrincipal v3xOrgPrincipal = new V3xOrgPrincipal();
|
||||
v3xOrgPrincipal.setLoginName(memberParam.getString("loginName"));
|
||||
v3xOrgPrincipal.setMemberId(member.getId());
|
||||
v3xOrgPrincipal.setPassword("123456");
|
||||
member.setV3xOrgPrincipal(v3xOrgPrincipal);
|
||||
|
||||
member.setOrgLevelId(memberParam.getLongValue("orgLevelId"));
|
||||
member.setOrgDepartmentId(memberParam.getLongValue("orgDepartmentId"));
|
||||
member.setOrgPostId(memberParam.getLongValue("orgPostId"));
|
||||
member.setOrgAccountId(memberParam.getLongValue("orgAccountId"));
|
||||
// 排序号
|
||||
// member.setSortId(1L);
|
||||
// 查询当前环境最大排序号
|
||||
String sortId = memberParam.getString("sortId");
|
||||
if(StringUtil.isNotEmpty(sortId)){
|
||||
member.setSortId(Long.parseLong(sortId));
|
||||
}else{
|
||||
String maxSortId = srcMemberDao.getMemberMaxSortId();
|
||||
if(StringUtil.isNotEmpty(maxSortId)){
|
||||
member.setSortId(Long.parseLong(maxSortId)+1);
|
||||
}else{
|
||||
member.setSortId(-1l);
|
||||
}
|
||||
}
|
||||
System.out.println("当前人员执行过程中的排序号为"+member.getSortId());
|
||||
AddressBook addressBook = new AddressBook();
|
||||
addressBook = setAddressBooks(addressBook,memberParam);
|
||||
addressBook.setMemberId(member.getId());
|
||||
addressBook.setIdIfNew();
|
||||
addressBookCustomerFieldInfoManager.addAddressBook(addressBook);
|
||||
OrganizationMessage mes = orgManagerDirect.addMember(member);
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
if(mes.isSuccess()) {
|
||||
List<OrganizationMessage.OrgMessage> successMsgs = mes.getSuccessMsgs();
|
||||
OrganizationMessage.OrgMessage successMsg =successMsgs.get(0);
|
||||
V3xOrgEntity v3xOrgEntity = successMsg.getEnt();
|
||||
// 创建ObjectMapper实例
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// 将对象转换为JSON字符串
|
||||
String json = objectMapper.writeValueAsString(v3xOrgEntity);
|
||||
long memberId = v3xOrgEntity.getId();
|
||||
log.info("人员添加成功"+v3xOrgEntity.getName()+":"+v3xOrgEntity.getId());
|
||||
jsonObject.put("status","1");
|
||||
jsonObject.put("msg","创建成功:"+memberId);
|
||||
jsonObject.put("data",json);
|
||||
|
||||
}else {
|
||||
log.info("人员添加失败"+mes.getErrorMsgInfos().get(0).getMsgInfo());
|
||||
jsonObject.put("status","2");
|
||||
jsonObject.put("msg","添加失败"+mes.getErrorMsgInfos().get(0).getMsgInfo());
|
||||
jsonObject.put("data","");
|
||||
}
|
||||
ReceiveOrgMemberResponse receiveOrgMemberResponse = new ReceiveOrgMemberResponse(jsonObject);
|
||||
return receiveOrgMemberResponse;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public ReceiveOrgMemberResponse updateMemberMain(JSONObject memberParam) throws BusinessException, ParseException, JsonProcessingException {
|
||||
String memberId = memberParam.getString("id");
|
||||
|
||||
// 根据ID查询人员信息
|
||||
V3xOrgMember member = orgManager.getMemberById(Long.parseLong(memberId));
|
||||
// 判断是否修改名称
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("name"))){
|
||||
member.setName(memberParam.getString("name"));
|
||||
}
|
||||
// 判断是否修改编号
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("code"))){
|
||||
member.setCode(memberParam.getString("code"));
|
||||
}
|
||||
// 判断是否修改手机号
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("telNumber"))){
|
||||
member.setTelNumber(memberParam.getString("telNumber"));
|
||||
}
|
||||
// 判断是否修改生日
|
||||
String birthday = memberParam.getString("birthday");
|
||||
if(StringUtil.isNotEmpty(birthday)){
|
||||
member.setProperty("birthday",sdf.parse(birthday));
|
||||
}
|
||||
// 判断是否修改性别
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("gender"))){
|
||||
member.setProperty("gender",memberParam.getString("gender"));
|
||||
}
|
||||
// 判断是否修改账号
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("loginName"))){
|
||||
V3xOrgPrincipal v3xOrgPrincipal = new V3xOrgPrincipal();
|
||||
v3xOrgPrincipal.setLoginName(memberParam.getString("loginName"));
|
||||
v3xOrgPrincipal.setMemberId(member.getId());
|
||||
v3xOrgPrincipal.setPassword("123456");
|
||||
member.setV3xOrgPrincipal(v3xOrgPrincipal);
|
||||
}
|
||||
// 判断组织架构信息是否修改
|
||||
if(memberParam.getLongValue("orgLevelId")!=0){
|
||||
member.setOrgLevelId(memberParam.getLongValue("orgLevelId"));
|
||||
}
|
||||
if(memberParam.getLongValue("orgDepartmentId")!=0){
|
||||
member.setOrgDepartmentId(memberParam.getLongValue("orgDepartmentId"));
|
||||
}
|
||||
if(memberParam.getLongValue("orgPostId")!=0){
|
||||
member.setOrgPostId(memberParam.getLongValue("orgPostId"));
|
||||
}
|
||||
if(memberParam.getLongValue("orgAccountId")!=0){
|
||||
member.setOrgAccountId(memberParam.getLongValue("orgAccountId"));
|
||||
}
|
||||
// 判断是否修改人员状态
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("state"))){
|
||||
member.setState(memberParam.getInteger("state"));
|
||||
}
|
||||
// 判断是否修改启用状态
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("enabled"))){
|
||||
member.setEnabled(memberParam.getBooleanValue("enabled"));
|
||||
}
|
||||
// 判断是否修改删除状态
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("isDeleted"))){
|
||||
member.setIsDeleted(memberParam.getBooleanValue("isDeleted"));
|
||||
}
|
||||
// 判断是否修改类型
|
||||
if(StringUtil.isNotEmpty(memberParam.getString("type"))){
|
||||
member.setType(memberParam.getInteger("type"));
|
||||
}
|
||||
// 判断是否同步副岗
|
||||
JSONArray secondPosts = memberParam.getJSONArray("second_post");
|
||||
if(secondPosts!=null){
|
||||
if(secondPosts.size()>0){
|
||||
List<MemberPost> memberPosts = new ArrayList<MemberPost>();
|
||||
for(int i = 0 ; i < secondPosts.size(); i++){
|
||||
JSONObject secondPost = secondPosts.getJSONObject(i);
|
||||
MemberPost memberPost = new MemberPost();
|
||||
memberPost.setPostId(secondPost.getLongValue("postId"));
|
||||
memberPost.setOrgAccountId(secondPost.getLongValue("orgAccountId"));
|
||||
memberPost.setDepId(secondPost.getLongValue("deptId"));
|
||||
memberPost.setMemberId(secondPost.getLongValue("memberId"));
|
||||
memberPosts.add(memberPost);
|
||||
}
|
||||
member.setSecond_post(memberPosts);
|
||||
}
|
||||
}
|
||||
|
||||
// 排序号
|
||||
// member.setSortId(1L);
|
||||
String sortId = memberParam.getString("sortId");
|
||||
if(StringUtil.isNotEmpty(sortId)){
|
||||
member.setSortId(Long.parseLong(sortId));
|
||||
}
|
||||
AddressBook addressBook = addressBookCustomerFieldInfoManager.getByMemberId(Long.parseLong(memberId));
|
||||
addressBook = setAddressBooks(addressBook,memberParam);
|
||||
addressBookCustomerFieldInfoManager.updateAddressBook(addressBook);
|
||||
OrganizationMessage mes = orgManagerDirect.updateMember(member);
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
if(mes.isSuccess()) {
|
||||
List<OrganizationMessage.OrgMessage> successMsgs = mes.getSuccessMsgs();
|
||||
OrganizationMessage.OrgMessage successMsg =successMsgs.get(0);
|
||||
V3xOrgEntity v3xOrgEntity = successMsg.getEnt();
|
||||
log.info("人员修改成功"+v3xOrgEntity.getName()+":"+v3xOrgEntity.getId());
|
||||
jsonObject.put("status","1");
|
||||
jsonObject.put("msg","修改成功:"+memberId);
|
||||
// 创建ObjectMapper实例
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// 将对象转换为JSON字符串
|
||||
String json = objectMapper.writeValueAsString(v3xOrgEntity);
|
||||
jsonObject.put("data",json);
|
||||
}else {
|
||||
log.info("人员修改失败"+mes.getErrorMsgInfos().get(0).getMsgInfo());
|
||||
jsonObject.put("status","2");
|
||||
jsonObject.put("msg","修改失败:"+mes.getErrorMsgInfos().get(0).getMsgInfo());
|
||||
jsonObject.put("data","");
|
||||
}
|
||||
ReceiveOrgMemberResponse receiveOrgMemberResponse = new ReceiveOrgMemberResponse(jsonObject);
|
||||
return receiveOrgMemberResponse;
|
||||
}
|
||||
|
||||
private AddressBook setAddressBooks(AddressBook addressBook, JSONObject memberParam) throws ParseException {
|
||||
for (Map.Entry<String, Object> entry : memberParam.entrySet()) {
|
||||
switch (entry.getKey()){
|
||||
case "EXT_ATTR_1":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr1(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_2":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr2(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_3":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr3(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_4":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr4(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_5":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr5(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_6":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr6(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_7":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr7(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_8":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr8(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_9":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr9(entry.getValue().toString());
|
||||
}
|
||||
}case "EXT_ATTR_10":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr10(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_11":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr11(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_12":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr12(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_13":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr13(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
}case "EXT_ATTR_14":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr14(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_15":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr15(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_16":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr16(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_17":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr17(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_18":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr18(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_19":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr19(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_20":{
|
||||
if( entry.getValue() instanceof Double){
|
||||
addressBook.setExtAttr20(Double.parseDouble(entry.getValue().toString()));
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_21":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr21(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_22":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr22(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_23":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr23(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_24":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr24(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_25":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr25(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_26":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr26(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_27":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr27(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_28":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr28(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_29":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr29(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_30":{
|
||||
if(entry.getValue()!=null){
|
||||
if(isValidDate(entry.getValue().toString())){
|
||||
addressBook.setExtAttr30(sdf.parse(entry.getValue().toString()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_31":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_31");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr31(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_32":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_32");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr32(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_33":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_33");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr33(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_34":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_34");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr34(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_35":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_35");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr35(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_36":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_36");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr36(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_37":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_37");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr37(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_38":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_38");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr38(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_39":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_39");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr39(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_40":{
|
||||
if(entry.getValue()!=null){
|
||||
String enumId = srcEnumDao.getEnumByExtAttr("EXT_ATTR_40");
|
||||
String enumItemId = srcEnumDao.getEnumItemByRefEnumIdValue(enumId,entry.getValue().toString());
|
||||
addressBook.setExtAttr40(enumItemId);
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_41":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr41(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_42":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr42(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_43":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr43(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_44":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr44(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_45":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr45(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_46":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr46(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_47":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr47(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_48":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr48(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_49":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr49(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_50":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr50(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_51":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr51(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_52":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr52(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_53":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr53(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_54":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr54(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_55":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr55(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_56":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr56(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_57":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr57(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_58":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr58(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_59":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr59(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}case "EXT_ATTR_60":{
|
||||
if(entry.getValue()!=null){
|
||||
addressBook.setExtAttr60(entry.getValue().toString());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return addressBook;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static boolean isValidDate(String dateStr) {
|
||||
List<String> formats = Arrays.asList(
|
||||
"yyyy-MM-dd", "dd/MM/yyyy", "MM/dd/yyyy",
|
||||
"yyyyMMdd", "yyyy年MM月dd日", "dd-MMM-yyyy"
|
||||
);
|
||||
|
||||
for (String format : formats) {
|
||||
try {
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
|
||||
LocalDate.parse(dateStr, formatter);
|
||||
return true;
|
||||
} catch (DateTimeParseException e) {
|
||||
// 继续尝试下一个格式
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
279
src/com/seeyon/apps/src_membermanage/MemberManageCommonNode.java
Normal file
279
src/com/seeyon/apps/src_membermanage/MemberManageCommonNode.java
Normal file
@@ -0,0 +1,279 @@
|
||||
package com.seeyon.apps.src_membermanage;
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.common.config.ICstConfigApi;
|
||||
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||
import com.seeyon.apps.common.workflow.constants.WorkFlowType;
|
||||
import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
|
||||
import com.seeyon.apps.ext.workflow.vo.FieldDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
|
||||
import com.seeyon.apps.src_membermanage.constants.MemberManageConstants;
|
||||
import com.seeyon.apps.src_membermanage.util.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 www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public abstract class MemberManageCommonNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberManageCommonNode.class);
|
||||
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return MemberManageConstants.getPluginId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormParse() {
|
||||
return "json";
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkFlowType[] getTypes() {
|
||||
return new WorkFlowType[] {WorkFlowType.superNode};
|
||||
}
|
||||
|
||||
public ConfigVo getMemberMamageConfig() {
|
||||
return cstConfigApi.getConfig(getPluginId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
|
||||
log.info("进入人事处理流程"+getNodeId());
|
||||
ConfigVo configVo = getMemberMamageConfig();
|
||||
SuperNodeContext context = new SuperNodeContext();
|
||||
context.setNeedSave(true);
|
||||
ParamUtil paramUtil = new ParamUtil();
|
||||
// 判断是否已经推送成功
|
||||
FieldDataVo fhjg = formDataVo.getFieldData("返回结果");
|
||||
String fhvalue = fhjg.getStringValue();
|
||||
if(fhvalue.contains("成功")) {
|
||||
return context.success("跳过:" + fhvalue);
|
||||
}
|
||||
// 判断当前结果请求是否为新增
|
||||
JSONObject requestJson = JSONObject.parseObject(request);
|
||||
String addOrUpdate = requestJson.getString("addOrUpdate");
|
||||
|
||||
String mainUrl = configVo.getParamVal(MemberManageConstants.mainUrl.name());
|
||||
String getzsjTokenUrl = configVo.getParamVal(MemberManageConstants.getzsjTokenUrl.name());
|
||||
String restzsjUserName = configVo.getParamVal(MemberManageConstants.restzsjUserName.name());
|
||||
String restzsjPassword = configVo.getParamVal(MemberManageConstants.restzsjPassword.name());
|
||||
String zsjloginName = configVo.getParamVal(MemberManageConstants.zsjloginName.name());
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
switch (addOrUpdate){
|
||||
case "add":{
|
||||
System.out.println("新增");
|
||||
String param = paramUtil.formAddParam(request,formDataVo,getNodeId(),configVo);
|
||||
log.info(param);
|
||||
context.setRequest(param);
|
||||
// 获取调用接口路径
|
||||
String formmainAddUrl = mainUrl+"/seeyon/rest/cap4/form/soap/batch-add?token="+mainToken;
|
||||
JSONObject res = ProtUtil.doPost(param,formmainAddUrl);
|
||||
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());
|
||||
}
|
||||
break;}
|
||||
case "update":{
|
||||
System.out.println("修改");
|
||||
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 = formDataVo.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.formUpdateParam(request,formDataVo,getNodeId(),configVo,formmainUpdate);
|
||||
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);
|
||||
if("MemberEntryTalentsNode".equals(getNodeId()) || "MemberSystemAccountClosureTalentsNode".equals(getNodeId())){
|
||||
|
||||
}else{
|
||||
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());
|
||||
if(!"MemberEntryTalentsNode".equals(getNodeId()) ){
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "档案表修改失败:创建异常:"+entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
context.back("档案表修改失败:修改异常:" + mmr.getMsg());
|
||||
context.setErrMsg(mmr.getMsg());
|
||||
if(!"MemberEntryTalentsNode".equals(getNodeId()) ){
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "档案表修改失败:修改异常:"+mmr.getMsg());
|
||||
}
|
||||
}
|
||||
}else{
|
||||
// context.back("没有查询到需要修改的数据,请检查唯一值是否正确");
|
||||
// if(!"MemberEntryTalentsNode".equals(getNodeId()) ){
|
||||
// formDataVo.getNewFieldDataMap().put("返回结果", "没有查询到需要修改的数据,请检查唯一值是否正确");
|
||||
// }
|
||||
context.success("没有查询到需要修改的数据,跳过处理");
|
||||
if(!"MemberEntryTalentsNode".equals(getNodeId()) ){
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "没有查询到需要修改的数据,请检查唯一值是否正确");
|
||||
}
|
||||
}
|
||||
break;}
|
||||
case "addOrUpdate":{
|
||||
System.out.println("新增和修改");
|
||||
// 查询当前信息是否已经存在,设置请求参数
|
||||
JSONObject isExistParam = new JSONObject();
|
||||
isExistParam.put("formCode",requestJson.getString("formCode"));
|
||||
JSONObject uniqueness = new JSONObject();
|
||||
JSONObject uniquenessjson = requestJson.getJSONObject("uniqueness");
|
||||
for (Map.Entry<String, Object> entry:uniquenessjson.entrySet()) {
|
||||
FieldDataVo fieldDataVo = formDataVo.getFieldData(entry.getValue().toString());
|
||||
uniqueness.put(entry.getKey(),fieldDataVo.getDbValue());
|
||||
}
|
||||
isExistParam.put("uniqueness",uniqueness);
|
||||
// 调用接口查询当前数据是否存在
|
||||
String isExistUrl = mainUrl+"/seeyon/rest/formTable/quart?token="+mainToken;
|
||||
// 查询当前数据是否存在
|
||||
String formmainId = ProtUtil.doGet(isExistUrl,isExistParam);
|
||||
JSONObject formmainIdjson = JSONObject.parseObject(formmainId);
|
||||
JSONObject formmainIdData = formmainIdjson.getJSONObject("data");
|
||||
String formmain = formmainIdData.getString("id");
|
||||
if(StringUtil.isNotEmpty(formmain)){
|
||||
// 当前数据已经存在执行修改逻辑
|
||||
String param = paramUtil.formUpdateParam(request,formDataVo,getNodeId(),configVo,formmain);
|
||||
context.setRequest(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.back("档案表修改失败:修改异常:" + mmr.getMsg());
|
||||
context.setErrMsg(mmr.getMsg());
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "档案表修改失败:修改异常:"+mmr.getMsg());
|
||||
}
|
||||
}else{
|
||||
// 当前数据不存在执行新增逻辑
|
||||
String param = paramUtil.formAddParam(request,formDataVo,getNodeId(),configVo);
|
||||
context.setRequest(param);
|
||||
log.info(param);
|
||||
// 获取调用接口路径
|
||||
String formmainAddUrl = mainUrl+"/seeyon/rest/cap4/form/soap/batch-add?token="+mainToken;
|
||||
JSONObject res = ProtUtil.doPost(param,formmainAddUrl);
|
||||
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());
|
||||
}
|
||||
}
|
||||
break;}
|
||||
default:
|
||||
System.out.println("参数设置错误,请设置模板是否为新增或者修改");
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
public abstract String getMethod();
|
||||
public abstract String getRequestType();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.seeyon.apps.src_membermanage;
|
||||
|
||||
import com.seeyon.apps.common.plugin.api.APluginInfoApi;
|
||||
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||
import com.seeyon.apps.src_membermanage.constants.MemberManageConstants;
|
||||
|
||||
public class MemberManagePluginApi extends APluginInfoApi {
|
||||
|
||||
public MemberManagePluginApi(){
|
||||
}
|
||||
|
||||
public String getPluginId() {
|
||||
System.out.println(MemberManageConstants.getPluginId());
|
||||
return MemberManageConstants.getPluginId();
|
||||
}
|
||||
|
||||
public String getCreateUser() {
|
||||
return "橙阳科技";
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return "主数据平台人员集成管理";
|
||||
}
|
||||
|
||||
public ConfigVo getDefaultConfig() {
|
||||
ConfigVo configVo = new ConfigVo();
|
||||
MemberManageConstants[] var2 = MemberManageConstants.values();
|
||||
int var3 = var2.length;
|
||||
|
||||
for(int var4 = 0; var4 < var3; ++var4) {
|
||||
MemberManageConstants value = var2[var4];
|
||||
if (value != MemberManageConstants.plugin) {
|
||||
configVo.getDevParams().put(value.name(), value.getDefaultValue());
|
||||
configVo.getProdParams().put(value.name(), value.getDefaultValue());
|
||||
configVo.getParamMap().put(value.name(), value.getDescription());
|
||||
}
|
||||
}
|
||||
|
||||
return configVo;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,164 @@
|
||||
package com.seeyon.apps.src_membermanage;
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.common.config.ICstConfigApi;
|
||||
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||
import com.seeyon.apps.common.workflow.constants.WorkFlowType;
|
||||
import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
|
||||
import com.seeyon.apps.ext.workflow.vo.FieldDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
|
||||
import com.seeyon.apps.src_membermanage.constants.MemberManageConstants;
|
||||
import com.seeyon.apps.src_membermanage.util.OrganizationParamUtil;
|
||||
import com.seeyon.apps.src_membermanage.util.ProtUtil;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import www.seeyon.com.utils.StringUtil;
|
||||
|
||||
//人员组织架构控制抽象类
|
||||
public abstract class MemberOrganizationCommonNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberOrganizationCommonNode.class);
|
||||
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return MemberManageConstants.getPluginId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormParse() {
|
||||
return "json";
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkFlowType[] getTypes() {
|
||||
return new WorkFlowType[] {WorkFlowType.superNode};
|
||||
}
|
||||
|
||||
public ConfigVo getMemberMamageConfig() {
|
||||
return cstConfigApi.getConfig(getPluginId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
|
||||
log.info("进入人事组织架构处理流程"+getNodeId());
|
||||
ConfigVo configVo = getMemberMamageConfig();
|
||||
SuperNodeContext context = new SuperNodeContext();
|
||||
context.setNeedSave(true);
|
||||
OrganizationParamUtil organizationParamUtil = new OrganizationParamUtil();
|
||||
|
||||
FieldDataVo fhjg = formDataVo.getFieldData("组织返回结果");
|
||||
String fhvalue = fhjg.getStringValue();
|
||||
if(fhvalue.contains("完成")) {
|
||||
return context.success("跳过:" + fhvalue);
|
||||
}
|
||||
// 判断当前结果请求是否为新增
|
||||
JSONObject requestJson = JSONObject.parseObject(request);
|
||||
String addOrUpdate = requestJson.getString("addOrUpdate");
|
||||
|
||||
String mainUrl = configVo.getParamVal(MemberManageConstants.mainUrl.name());
|
||||
String getzsjTokenUrl = configVo.getParamVal(MemberManageConstants.getzsjTokenUrl.name());
|
||||
String restzsjUserName = configVo.getParamVal(MemberManageConstants.restzsjUserName.name());
|
||||
String restzsjPassword = configVo.getParamVal(MemberManageConstants.restzsjPassword.name());
|
||||
String zsjloginName = configVo.getParamVal(MemberManageConstants.zsjloginName.name());
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
|
||||
switch (addOrUpdate){
|
||||
case "add":{
|
||||
System.out.println("新增");
|
||||
String param = organizationParamUtil.organizationAddParam(request,formDataVo,getNodeId(),configVo);
|
||||
log.info(param);
|
||||
context.setRequest(param);
|
||||
// 获取调用接口路径
|
||||
String memberOrganizationAddUrl = mainUrl+"/seeyon/rest/orgMember/saveMemberMain?token="+mainToken;
|
||||
JSONObject res = ProtUtil.doPost(param,memberOrganizationAddUrl);
|
||||
log.info(res.toString());
|
||||
context.setResponse(res.toString());
|
||||
// MemberOrganizationResponse mor = new MemberOrganizationResponse(res);
|
||||
// String resDatastr = mor.getData();
|
||||
JSONObject resDatastr = res.getJSONObject("data");
|
||||
// resDatastr = "{'param':'"+resDatastr+"'}";
|
||||
// JSONObject resDatajson = JSONObject.parseObject(resDatastr);
|
||||
// JSONArray successMsgs = resDatajson.getJSONArray("param");
|
||||
// JSONObject successMsg = successMsgs.getJSONObject(0);
|
||||
if(res.getInteger("code")==0){
|
||||
// JSONObject ent = successMsg.getJSONObject("ent");
|
||||
log.info("人员组织架构创建完成,人员名称为"+resDatastr.getString("name")+",ID为"+resDatastr.getString("id"));
|
||||
context.success("人员组织架构创建完成,人员名称为"+resDatastr.getString("name"),false);
|
||||
if("MemberEntryOrganizationNode".equals(getNodeId())|| "AccountOpeningOrganizationNode".equals(getNodeId())){
|
||||
formDataVo.getNewFieldDataMap().put("组织架构姓名", resDatastr.getString("id"));
|
||||
}
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构创建完成:人员名称为"+resDatastr.getString("name"));
|
||||
}else{
|
||||
// JSONObject ent = successMsg.getJSONObject("ent");
|
||||
// String msgInfo = successMsg.getString("msgInfo");
|
||||
String message = res.getString("message");
|
||||
// 判断当前参数是否存在问题
|
||||
String msg = "人员组织架构创建失败:"+message;
|
||||
|
||||
context.back(msg);
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", msg);
|
||||
context.setErrMsg(msg);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "update":{
|
||||
System.out.println("修改");
|
||||
String param = organizationParamUtil.organizationUpdateParam(request,formDataVo,getNodeId(),configVo);
|
||||
log.info(param);
|
||||
context.setRequest(param);
|
||||
// 查询当前人员是否存在
|
||||
JSONObject paramjson = JSONObject.parseObject(param);
|
||||
String memberId = paramjson.getString("id");
|
||||
// memberId = "4176737357362384888";
|
||||
String isExistUpdateUrl = mainUrl+"/seeyon/rest/orgMember/"+memberId+"?token="+mainToken;
|
||||
String isExistUpdate = ProtUtil.doGet(isExistUpdateUrl,new JSONObject());
|
||||
// 判断当前人员是否存在
|
||||
if(StringUtil.isNotEmpty(isExistUpdate)&&!"null".equals(isExistUpdate)){
|
||||
// 如果存在则执行修改操作
|
||||
String memberOrganizationUpdateUrl = mainUrl+"/seeyon/rest/orgMember/updateMemberMain?token="+mainToken;
|
||||
JSONObject res = ProtUtil.doPost(param,memberOrganizationUpdateUrl);
|
||||
log.info(res.toString());
|
||||
context.setResponse(res.toString());
|
||||
// JSONObject resjson = JSONObject.parseObject(res);
|
||||
// MemberOrganizationResponse mor = new MemberOrganizationResponse(res);
|
||||
if(res.getInteger("code")==0){
|
||||
String resDatastr = res.getString("data");
|
||||
JSONObject resDatajson = JSONObject.parseObject(resDatastr);
|
||||
log.info("人员组织架构修改完成:人员名称为"+resDatajson.getString("name")+",ID为"+resDatajson.getString("id"));
|
||||
context.success("人员组织架构修改完成:人员名称为"+resDatajson.getString("name"),false);
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改完成:人员名称为"+resDatajson.getString("name"));
|
||||
}else{
|
||||
String message = res.getString("message");
|
||||
log.info("人员组织架构修改失败:"+message);
|
||||
context.back("人员组织架构修改失败:"+message);
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改失败:"+message);
|
||||
context.setErrMsg(message);
|
||||
}
|
||||
}else{
|
||||
// 如果不存在则返回报错信息
|
||||
log.info("人员组织架构修改失败:当前人员未查询到组织架构数据,请检查。");
|
||||
context.back("人员组织架构修改失败:当前人员未查询到组织架构数据,请检查。");
|
||||
context.setErrMsg("人员组织架构修改失败:当前人员未查询到组织架构数据,请检查。");
|
||||
formDataVo.getNewFieldDataMap().put("组织返回结果", "人员组织架构修改失败:当前人员未查询到组织架构数据,请检查。");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
Thread.sleep(5000);
|
||||
return context;
|
||||
}
|
||||
|
||||
public abstract String getMethod();
|
||||
public abstract String getRequestType();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.seeyon.apps.src_membermanage.constants;
|
||||
|
||||
public enum MemberManageConstants {
|
||||
|
||||
plugin("src_membermanage","插件ID"),
|
||||
dowUrl("http://127.0.0.1:8888/seeyon/rest/attachment/file","附件下载路径"),
|
||||
uploadUrl("http://127.0.0.1:8888/seeyon/rest/attachment","主数据平台上传接口"),
|
||||
getTokenUrl("http://127.0.0.1:8888/seeyon/rest/token", "集团TOKEN接口路径"),
|
||||
restUserName("shenxian", "集团REST用户名"),
|
||||
restPassword("ccfa57fe-cf2f-4d26-a24c-a0801a431168", "集团REST密码"),
|
||||
loginName("shenxian", "集团管理员登录名"),
|
||||
getzsjTokenUrl("http://127.0.0.1:8888/seeyon/rest/token", "主数据TOKEN接口路径"),
|
||||
restzsjUserName("shenxian", "主数据REST用户名"),
|
||||
restzsjPassword("ccfa57fe-cf2f-4d26-a24c-a0801a431168", "主数据REST密码"),
|
||||
zsjloginName("shenxian", "主数据管理员账号"),
|
||||
mainUrl("http://10.0.1.55","主数据平台ip端口");
|
||||
|
||||
MemberManageConstants(String defaultValue, String description) {
|
||||
this.defaultValue = defaultValue;
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
private String defaultValue;
|
||||
private String description;
|
||||
|
||||
public String getDefaultValue() {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public static String getPluginId() {
|
||||
return plugin.defaultValue;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.seeyon.apps.src_membermanage.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class DataProcessingUtil {
|
||||
|
||||
public static Map<String, Object> convertStringToMap(String input) {
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
input = input.substring(1, input.length() - 1);
|
||||
String[] keyValuePairs = input.split(", ");
|
||||
|
||||
for (String pair : keyValuePairs) {
|
||||
String[] parts = pair.split("=", 2);
|
||||
String key = parts[0];
|
||||
String valueStr = parts[1];
|
||||
|
||||
if (valueStr.startsWith("[")) {
|
||||
List<String> list = new ArrayList<>();
|
||||
String listContent = valueStr.substring(1, valueStr.length() - 1);
|
||||
if (!listContent.isEmpty()) {
|
||||
String[] items = listContent.split(",");
|
||||
for (String item : items) {
|
||||
list.add(item.trim());
|
||||
}
|
||||
}
|
||||
resultMap.put(key, list);
|
||||
} else if (valueStr.startsWith("{")) {
|
||||
Map<String, String> nestedMap = new HashMap<>();
|
||||
String nestedStr = valueStr.substring(1, valueStr.length() - 1);
|
||||
if (!nestedStr.isEmpty()) {
|
||||
String[] nestedPairs = nestedStr.split(", ");
|
||||
for (String nestedPair : nestedPairs) {
|
||||
String[] nestedParts = nestedPair.split("=", 2);
|
||||
nestedMap.put(nestedParts[0], nestedParts[1]);
|
||||
}
|
||||
}
|
||||
resultMap.put(key, nestedMap);
|
||||
} else {
|
||||
try {
|
||||
int intValue = Integer.parseInt(valueStr);
|
||||
resultMap.put(key, intValue);
|
||||
} catch (NumberFormatException e) {
|
||||
resultMap.put(key, valueStr);
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultMap;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
package com.seeyon.apps.src_membermanage.util;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.FieldDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.ctpenumnew.manager.EnumManager;
|
||||
import com.seeyon.ctp.common.exceptions.BusinessException;
|
||||
import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
import www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class OrganizationParamUtil {
|
||||
|
||||
private OrgManager orgManager;
|
||||
public void setOrgManager(OrgManager orgManager) {this.orgManager = orgManager; }
|
||||
public OrgManager getOrgManager() {
|
||||
if (orgManager == null) {orgManager = (OrgManager) AppContext.getBean("orgManager");}return orgManager;
|
||||
}
|
||||
|
||||
private EnumManager enumManagerNew;
|
||||
public void setEnumManagerNew(EnumManager enumManagerNew) {this.enumManagerNew = enumManagerNew; }
|
||||
public EnumManager getEnumManagerNew() {
|
||||
if (enumManagerNew == null) {enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew");}return enumManagerNew;
|
||||
}
|
||||
|
||||
|
||||
public String organizationAddParam(String param, FormDataVo formDataVo, String nodeId, ConfigVo configVo) throws BusinessException, NoSuchFieldException, IOException {
|
||||
String res = memberOrganizationAdd(param,formDataVo,configVo);
|
||||
return res;
|
||||
}
|
||||
|
||||
public String memberOrganizationAdd(String param,FormDataVo formDataVo,ConfigVo configVo) throws NoSuchFieldException, BusinessException, IOException {
|
||||
JSONObject paramJson = JSONObject.parseObject(param);
|
||||
String formType = paramJson.getString("formType");
|
||||
if("org".equals(formType)){
|
||||
paramJson = handleOrganizationAdd(paramJson,formDataVo,configVo);
|
||||
}
|
||||
return paramJson.toString();
|
||||
}
|
||||
|
||||
public JSONObject handleOrganizationAdd( JSONObject paramJson, FormDataVo formDataVo, ConfigVo configVo) throws NoSuchFieldException, BusinessException {
|
||||
paramJson.put("id", UUIDLong.longUUID()+"");
|
||||
// 获取单位字段名称
|
||||
String orgAccountIdName = paramJson.getString("orgAccountId");
|
||||
// 获取单位字段值
|
||||
FieldDataVo orgAccountIdvo = formDataVo.getFieldData(orgAccountIdName);
|
||||
String orgAccountId = (String)orgAccountIdvo.getDbValue();
|
||||
// 获取单位ID字段
|
||||
paramJson.put("orgAccountId",orgAccountId);
|
||||
|
||||
// 获取职务级别字段名称
|
||||
String orgLevelIdName = paramJson.getString("orgLevelId");
|
||||
// 获取职务级别字段值
|
||||
FieldDataVo orgLevelIdvo = formDataVo.getFieldData(orgLevelIdName);
|
||||
String orgLevelId = (String) orgLevelIdvo.getDbValue();
|
||||
// 获取职务级别ID字段
|
||||
paramJson.put("orgLevelId",orgLevelId);
|
||||
|
||||
// 获取岗位字段名称
|
||||
String orgPostIdName = paramJson.getString("orgPostId");
|
||||
// 获取岗位字段值
|
||||
FieldDataVo orgPostIdvo = formDataVo.getFieldData(orgPostIdName);
|
||||
String orgPostId = (String) orgPostIdvo.getDbValue();
|
||||
// 获取岗位ID字段
|
||||
paramJson.put("orgPostId",orgPostId);
|
||||
|
||||
// 获取部门字段名称
|
||||
String orgDepartmentIdName = paramJson.getString("orgDepartmentId");
|
||||
// 获取部门字段值
|
||||
FieldDataVo orgDepartmentIdvo = formDataVo.getFieldData(orgDepartmentIdName);
|
||||
String orgDepartmentId = (String) orgDepartmentIdvo.getDbValue();
|
||||
// 获取部门ID字段
|
||||
paramJson.put("orgDepartmentId",orgDepartmentId);
|
||||
|
||||
// 判断是否为枚举字段,枚举字段转换为枚举值后推送
|
||||
if(StringUtil.isNotEmpty(paramJson.getString("gender"))){
|
||||
String genderName = paramJson.getString("gender");
|
||||
// 获取性别字段值
|
||||
FieldDataVo gendervo = formDataVo.getFieldData(genderName);
|
||||
if(gendervo.getDbValue()!=null){
|
||||
String gender = gendervo.getDbValue().toString();
|
||||
CtpEnumItem genderEnum = getEnumManagerNew().getCtpEnumItem(Long.parseLong(gender));
|
||||
paramJson.put("gender",genderEnum.getValue());
|
||||
}
|
||||
}
|
||||
if(StringUtil.isNotEmpty(paramJson.getString("EXT_ATTR_32"))){
|
||||
String extattr32Name = paramJson.getString("EXT_ATTR_32");
|
||||
// 获取人员分类字段值
|
||||
FieldDataVo extattr32vo = formDataVo.getFieldData(extattr32Name);
|
||||
String extattr32 = extattr32vo.getDbValue().toString();
|
||||
CtpEnumItem extattr32Enum = getEnumManagerNew().getCtpEnumItem(Long.parseLong(extattr32));
|
||||
paramJson.put("EXT_ATTR_32",extattr32Enum.getValue());
|
||||
}
|
||||
return paramJson;
|
||||
}
|
||||
|
||||
|
||||
public String organizationUpdateParam(String param, FormDataVo formDataVo, String nodeId, ConfigVo configVo) throws BusinessException, NoSuchFieldException, IOException {
|
||||
String res = memberOrganizationUpdate(param,formDataVo,configVo);
|
||||
return res;
|
||||
}
|
||||
|
||||
public String memberOrganizationUpdate(String param,FormDataVo formDataVo,ConfigVo configVo) throws NoSuchFieldException, BusinessException, IOException {
|
||||
JSONObject paramJson = JSONObject.parseObject(param);
|
||||
String formType = paramJson.getString("formType");
|
||||
if("org".equals(formType)){
|
||||
paramJson = handleOrganizationUpdate(paramJson,formDataVo,configVo);
|
||||
}
|
||||
return paramJson.toString();
|
||||
}
|
||||
|
||||
public JSONObject handleOrganizationUpdate( JSONObject paramJson, FormDataVo formDataVo, ConfigVo configVo) throws NoSuchFieldException{
|
||||
// 获取人员字段名称
|
||||
String orgMemberIdName = paramJson.getString("id");
|
||||
// 获取人员字段值
|
||||
FieldDataVo orgMemberIdvo = formDataVo.getFieldData(orgMemberIdName);
|
||||
String orgMemberId = (String)orgMemberIdvo.getDbValue();
|
||||
// 获取人员ID字段
|
||||
paramJson.put("id", orgMemberId);
|
||||
// 获取单位字段名称
|
||||
String orgAccountIdName = paramJson.getString("orgAccountId") == null ?"":paramJson.getString("orgAccountId");
|
||||
// 获取单位字段值
|
||||
if(StringUtil.isNotEmpty(orgAccountIdName)){
|
||||
FieldDataVo orgAccountIdvo = formDataVo.getFieldData(orgAccountIdName);
|
||||
String orgAccountId = (String)orgAccountIdvo.getDbValue();
|
||||
// 获取单位ID字段
|
||||
paramJson.put("orgAccountId",orgAccountId);
|
||||
}
|
||||
|
||||
// 获取职务级别字段名称
|
||||
String orgLevelIdName = paramJson.getString("orgLevelId")==null?"":paramJson.getString("orgLevelId");
|
||||
// 获取职务级别字段值
|
||||
if(StringUtil.isNotEmpty(orgLevelIdName)){
|
||||
FieldDataVo orgLevelIdvo = formDataVo.getFieldData(orgLevelIdName);
|
||||
String orgLevelId = (String) orgLevelIdvo.getDbValue();
|
||||
// 获取职务级别ID字段
|
||||
paramJson.put("orgLevelId",orgLevelId);
|
||||
}
|
||||
|
||||
// 获取岗位字段名称
|
||||
String orgPostIdName = paramJson.getString("orgPostId")==null?"":paramJson.getString("orgPostId");
|
||||
// 获取岗位字段值
|
||||
if(StringUtil.isNotEmpty(orgPostIdName)){
|
||||
FieldDataVo orgPostIdvo = formDataVo.getFieldData(orgPostIdName);
|
||||
String orgPostId = (String) orgPostIdvo.getDbValue();
|
||||
// 获取岗位ID字段
|
||||
paramJson.put("orgPostId",orgPostId);
|
||||
}
|
||||
|
||||
// 获取部门字段名称
|
||||
String orgDepartmentIdName = paramJson.getString("orgDepartmentId")==null?"":paramJson.getString("orgDepartmentId");
|
||||
// 获取部门字段值
|
||||
if(StringUtil.isNotEmpty(orgDepartmentIdName)){
|
||||
FieldDataVo orgDepartmentIdvo = formDataVo.getFieldData(orgDepartmentIdName);
|
||||
String orgDepartmentId = (String) orgDepartmentIdvo.getDbValue();
|
||||
// 获取部门ID字段
|
||||
paramJson.put("orgDepartmentId",orgDepartmentId);
|
||||
}
|
||||
return paramJson;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
436
src/com/seeyon/apps/src_membermanage/util/ParamUtil.java
Normal file
436
src/com/seeyon/apps/src_membermanage/util/ParamUtil.java
Normal file
@@ -0,0 +1,436 @@
|
||||
package com.seeyon.apps.src_membermanage.util;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.FieldDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||
import com.seeyon.apps.src_membermanage.constants.MemberManageConstants;
|
||||
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.exceptions.BusinessException;
|
||||
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.organization.bo.*;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class ParamUtil {
|
||||
|
||||
private static final Log log = LogFactory.getLog(ParamUtil.class);
|
||||
|
||||
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 OrgManager orgManager;
|
||||
public void setOrgManager(OrgManager orgManager) {this.orgManager = orgManager; }
|
||||
public OrgManager getOrgManager() {
|
||||
if (orgManager == null) {orgManager = (OrgManager) AppContext.getBean("orgManager");}return orgManager;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public String formUpdateParam(String param, FormDataVo formDataVo, String nodeId, ConfigVo configVo,String formId) throws BusinessException, NoSuchFieldException, IOException {
|
||||
String res = filesTableUpdate(param,formDataVo,configVo,formId);
|
||||
return res;
|
||||
}
|
||||
|
||||
public String filesTableUpdate(String param,FormDataVo formDataVo,ConfigVo configVo,String formId) throws NoSuchFieldException, BusinessException, IOException {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
JSONObject paramJson = JSONObject.parseObject(param);
|
||||
String formType = paramJson.getString("formType");
|
||||
if("formmain".equals(formType)){
|
||||
jsonObject = handleFormmainUpdate(jsonObject,paramJson,formDataVo,configVo,formId);
|
||||
}
|
||||
return jsonObject.toString();
|
||||
}
|
||||
public JSONObject handleFormmainUpdate(JSONObject jsonObject, JSONObject paramJson, FormDataVo formDataVo, ConfigVo configVo,String formId) throws NoSuchFieldException, BusinessException, IOException {
|
||||
// 附件控件,选人控件,部门控件,单位控件,岗位控件,职务级别控件,枚举控件
|
||||
String memberFields = paramJson.getString("memberFields")==null?"":paramJson.getString("memberFields");
|
||||
String deptFields = paramJson.getString("deptFields")==null?"":paramJson.getString("deptFields");
|
||||
String accountFields = paramJson.getString("accountFields")==null?"":paramJson.getString("accountFields");
|
||||
String postFields = paramJson.getString("postFields")==null?"":paramJson.getString("postFields");
|
||||
String levelFields = paramJson.getString("levelFields")==null?"":paramJson.getString("levelFields");
|
||||
String enumFields = paramJson.getString("enumFields")==null?"":paramJson.getString("enumFields");
|
||||
String fileFields = paramJson.getString("fileFields")==null?"":paramJson.getString("fileFields");
|
||||
// 设置主参数字段
|
||||
jsonObject.put("formCode",paramJson.getString("formCode"));
|
||||
jsonObject.put("loginName",paramJson.getString("loginName"));
|
||||
jsonObject.put("rightId",paramJson.getString("rightIdUpdate"));
|
||||
jsonObject.put("doTrigger",paramJson.getBooleanValue("doTrigger"));
|
||||
JSONArray dataList = new JSONArray();
|
||||
|
||||
JSONObject paramDataList = paramJson.getJSONObject("dataList");
|
||||
JSONObject paramMasterTable = paramDataList.getJSONObject("masterTable");
|
||||
String paramMainname = paramMasterTable.getString("name");
|
||||
JSONObject paramMasterfields = paramMasterTable.getJSONObject("fields");
|
||||
|
||||
// 设置表单主表字段
|
||||
JSONObject data = new JSONObject();
|
||||
JSONObject masterTable = new JSONObject();
|
||||
masterTable.put("name",paramMainname);
|
||||
JSONObject record = new JSONObject();
|
||||
JSONArray attachmentInfos = new JSONArray();
|
||||
JSONArray fields = handleFields(paramMasterfields,formDataVo,null,enumFields,accountFields,deptFields,postFields,levelFields,
|
||||
memberFields,fileFields,configVo,attachmentInfos);
|
||||
record.put("id",formId);
|
||||
record.put("fields",fields);
|
||||
masterTable.put("record",record);
|
||||
// 添加主表数据
|
||||
data.put("masterTable",masterTable);
|
||||
|
||||
JSONArray paramSubTables = paramDataList.getJSONArray("subTables");
|
||||
JSONArray subTables = new JSONArray();
|
||||
Map<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
|
||||
// 遍历所有流程表数据
|
||||
for (int i = 0 ; i < paramSubTables.size();i++) {
|
||||
// 获取参数配置中的字段信息
|
||||
JSONObject paramSubTable = paramSubTables.getJSONObject(i);
|
||||
// 获取当前流程表单名称
|
||||
String paramSubTableName = paramSubTable.getString("name");
|
||||
if("个人履历".equals(paramSubTableName)){
|
||||
// 创建推送参数对象
|
||||
JSONObject paramFields = paramSubTable.getJSONObject("fields");
|
||||
JSONObject subTable = new JSONObject();
|
||||
subTable.put("name", paramSubTable.getString("tableName"));
|
||||
JSONArray subRecords = new JSONArray();
|
||||
JSONObject subRecord = new JSONObject();
|
||||
JSONArray subFields = handleFields(paramFields,formDataVo,null,enumFields,accountFields,deptFields,postFields,levelFields,
|
||||
memberFields,fileFields,configVo,attachmentInfos);
|
||||
subRecord.put("id",UUIDLong.longUUID());
|
||||
subRecord.put("fields",subFields);
|
||||
subRecords.add(subRecord);
|
||||
subTable.put("records",subRecords);
|
||||
subTables.add(subTable);
|
||||
}else{
|
||||
// 根据名称获取表单中明细表信息
|
||||
List<FormDataVo> subForm = subFormMap.get(paramSubTableName);
|
||||
// 获取参数配置中的字段信息
|
||||
JSONObject paramFields = paramSubTable.getJSONObject("fields");
|
||||
//// 创建推送参数对象
|
||||
JSONObject subTable = new JSONObject();
|
||||
subTable.put("name", paramSubTable.getString("tableName"));
|
||||
JSONArray subRecords = new JSONArray();
|
||||
if(subForm==null){
|
||||
JSONObject subRecord = new JSONObject();
|
||||
JSONArray subFields = handleFields(paramFields,formDataVo,null,enumFields,accountFields,deptFields,postFields,levelFields,
|
||||
memberFields,fileFields,configVo,attachmentInfos);
|
||||
subRecord.put("id", UUIDLong.longUUID());
|
||||
subRecord.put("fields",subFields);
|
||||
subRecords.add(subRecord);
|
||||
}else{
|
||||
for (FormDataVo subFormDataVo : subForm) {
|
||||
JSONObject subRecord = new JSONObject();
|
||||
JSONArray subFields = handleFields(paramFields,formDataVo,subFormDataVo,enumFields,accountFields,deptFields,postFields,levelFields,
|
||||
memberFields,fileFields,configVo,attachmentInfos);
|
||||
subRecord.put("id", UUIDLong.longUUID());
|
||||
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);
|
||||
jsonObject.put("dataList",dataList);
|
||||
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
public String formAddParam(String param, FormDataVo formDataVo, String nodeId, ConfigVo configVo) throws BusinessException, NoSuchFieldException, IOException {
|
||||
String res =filesTableAdd(param,formDataVo,configVo);
|
||||
return res;
|
||||
}
|
||||
|
||||
public String filesTableAdd(String param,FormDataVo formDataVo,ConfigVo configVo) throws NoSuchFieldException, BusinessException, IOException {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
JSONObject paramJson = JSONObject.parseObject(param);
|
||||
String formType = paramJson.getString("formType");
|
||||
if("formmain".equals(formType)){
|
||||
jsonObject = handleFormmainAdd(jsonObject,paramJson,formDataVo,configVo);
|
||||
}
|
||||
return jsonObject.toString();
|
||||
}
|
||||
|
||||
public JSONObject handleFormmainAdd(JSONObject jsonObject, JSONObject paramJson, FormDataVo formDataVo, ConfigVo configVo) throws NoSuchFieldException, BusinessException, IOException {
|
||||
// 附件控件,选人控件,部门控件,单位控件,岗位控件,职务级别控件,枚举控件
|
||||
String memberFields = paramJson.getString("memberFields")==null?"":paramJson.getString("memberFields");
|
||||
String deptFields = paramJson.getString("deptFields")==null?"":paramJson.getString("deptFields");
|
||||
String accountFields = paramJson.getString("accountFields")==null?"":paramJson.getString("accountFields");
|
||||
String postFields = paramJson.getString("postFields")==null?"":paramJson.getString("postFields");
|
||||
String levelFields = paramJson.getString("levelFields")==null?"":paramJson.getString("levelFields");
|
||||
String enumFields = paramJson.getString("enumFields")==null?"":paramJson.getString("enumFields");
|
||||
String fileFields = paramJson.getString("fileFields")==null?"":paramJson.getString("fileFields");
|
||||
// 设置主参数字段
|
||||
jsonObject.put("formCode",paramJson.getString("formCode"));
|
||||
jsonObject.put("loginName",paramJson.getString("loginName"));
|
||||
jsonObject.put("rightId",paramJson.getString("rightIdAdd"));
|
||||
jsonObject.put("doTrigger",paramJson.getBooleanValue("doTrigger"));
|
||||
JSONArray dataList = new JSONArray();
|
||||
|
||||
JSONObject paramDataList = paramJson.getJSONObject("dataList");
|
||||
JSONObject paramMasterTable = paramDataList.getJSONObject("masterTable");
|
||||
String paramMainname = paramMasterTable.getString("name");
|
||||
JSONObject paramMasterfields = paramMasterTable.getJSONObject("fields");
|
||||
|
||||
// 设置表单主表字段
|
||||
JSONObject data = new JSONObject();
|
||||
JSONObject masterTable = new JSONObject();
|
||||
masterTable.put("name",paramMainname);
|
||||
JSONObject record = new JSONObject();
|
||||
JSONArray attachmentInfos = new JSONArray();
|
||||
JSONArray fields = handleFields(paramMasterfields,formDataVo,null,enumFields,accountFields,deptFields,postFields,levelFields,
|
||||
memberFields,fileFields,configVo,attachmentInfos);
|
||||
|
||||
record.put("fields",fields);
|
||||
masterTable.put("record",record);
|
||||
// 添加主表数据
|
||||
data.put("masterTable",masterTable);
|
||||
|
||||
JSONArray paramSubTables = paramDataList.getJSONArray("subTables");
|
||||
JSONArray subTables = new JSONArray();
|
||||
Map<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
|
||||
// 遍历所有流程表数据
|
||||
for (int i = 0 ; i < paramSubTables.size();i++) {
|
||||
JSONObject paramSubTable = paramSubTables.getJSONObject(i);
|
||||
// 获取当前流程表单名称
|
||||
String paramSubTableName = paramSubTable.getString("name");
|
||||
if("个人履历".equals(paramSubTableName)){
|
||||
// 获取参数配置中的字段信息
|
||||
JSONObject paramFields = paramSubTable.getJSONObject("fields");
|
||||
//// 创建推送参数对象
|
||||
JSONObject subTable = new JSONObject();
|
||||
subTable.put("name", paramSubTable.getString("tableName"));
|
||||
JSONArray subRecords = new JSONArray();
|
||||
JSONObject subRecord = new JSONObject();
|
||||
JSONArray subFields = handleFields(paramFields,formDataVo,null,enumFields,accountFields,deptFields,postFields,levelFields,
|
||||
memberFields,fileFields,configVo,attachmentInfos);
|
||||
subRecord.put("fields",subFields);
|
||||
subRecords.add(subRecord);
|
||||
subTable.put("records",subRecords);
|
||||
subTables.add(subTable);
|
||||
}else{
|
||||
// 根据名称获取表单中明细表信息
|
||||
List<FormDataVo> subForm = subFormMap.get(paramSubTableName);
|
||||
// 获取参数配置中的字段信息
|
||||
JSONObject paramFields = paramSubTable.getJSONObject("fields");
|
||||
if(subForm==null){
|
||||
//// 创建推送参数对象
|
||||
JSONObject subTable = new JSONObject();
|
||||
subTable.put("name", paramSubTable.getString("tableName"));
|
||||
JSONArray subRecords = new JSONArray();
|
||||
JSONObject subRecord = new JSONObject();
|
||||
JSONArray subFields = handleFields(paramFields,formDataVo,null,enumFields,accountFields,deptFields,postFields,levelFields,
|
||||
memberFields,fileFields,configVo,attachmentInfos);
|
||||
subRecord.put("fields",subFields);
|
||||
subRecords.add(subRecord);
|
||||
subTable.put("records",subRecords);
|
||||
subTables.add(subTable);
|
||||
}else{
|
||||
// 创建推送参数对象
|
||||
JSONObject subTable = new JSONObject();
|
||||
subTable.put("name", paramSubTable.getString("tableName"));
|
||||
JSONArray subRecords = new JSONArray();
|
||||
// 遍历所有明细表数据
|
||||
for (FormDataVo subFormDataVo : subForm) {
|
||||
JSONObject subRecord = new JSONObject();
|
||||
JSONArray subFields = handleFields(paramFields,formDataVo,subFormDataVo,enumFields,accountFields,deptFields,postFields,levelFields,
|
||||
memberFields,fileFields,configVo,attachmentInfos);
|
||||
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);
|
||||
jsonObject.put("dataList",dataList);
|
||||
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public String getzsjToken(ConfigVo configVo) throws IOException {
|
||||
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());
|
||||
String zsjtoken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
return zsjtoken;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private JSONArray handleFields(JSONObject paramFields,FormDataVo formDataVo,FormDataVo subFormDataVo,String enumFields,
|
||||
String accountFields,String deptFileds,String postFields,String levelFields,String memberFields,
|
||||
String fileFields,ConfigVo configVo,JSONArray attachmentInfos) throws BusinessException, IOException, NoSuchFieldException {
|
||||
JSONArray subFields = new JSONArray();
|
||||
for (Map.Entry<String, Object> entry : paramFields.entrySet()) {
|
||||
JSONObject subField = new JSONObject();
|
||||
FieldDataVo fieldDataVo = null;
|
||||
try {
|
||||
fieldDataVo = formDataVo.getFieldData(entry.getValue().toString());
|
||||
} catch (NoSuchFieldException e) {
|
||||
if(fieldDataVo==null&&subFormDataVo!=null){
|
||||
fieldDataVo = subFormDataVo.getFieldData(entry.getValue().toString());
|
||||
}
|
||||
}
|
||||
if(fieldDataVo.getDbValue()==null){
|
||||
continue;
|
||||
}
|
||||
subField.put("name", entry.getKey());
|
||||
// 设置默认值,避免出现空参数的情况
|
||||
subField.put("value","");
|
||||
subField.put("showValue","");
|
||||
// 判断当前处理字段是否为枚举
|
||||
if (enumFields.contains(entry.getKey())) {
|
||||
// 查询枚举信息
|
||||
if (fieldDataVo.getDbValue() != null) {
|
||||
String dbValue = fieldDataVo.getDbValue().toString();
|
||||
long enumItemId = Long.parseLong(dbValue);
|
||||
CtpEnumItem ctpEnumItem = getEnumManagerNew().getCtpEnumItem(enumItemId);
|
||||
// 设置枚举数据值
|
||||
subField.put("value", "");
|
||||
subField.put("showValue", ctpEnumItem.getShowvalue());
|
||||
}
|
||||
// 判断当前处理字段是否为单位
|
||||
} else if (accountFields.contains(entry.getKey())) {
|
||||
// 查询单位控件信息
|
||||
if (fieldDataVo.getDbValue() != null) {
|
||||
String dbValue = fieldDataVo.getDbValue().toString();
|
||||
long accountId = Long.parseLong(dbValue);
|
||||
V3xOrgAccount v3xOrgAccount = getOrgManager().getAccountById(accountId);
|
||||
// 设置单位数据值
|
||||
subField.put("value", v3xOrgAccount.getId());
|
||||
subField.put("showValue", "");
|
||||
}
|
||||
// 判断当前处理字段是否为部门
|
||||
} else if (deptFileds.contains(entry.getKey())) {
|
||||
// 查询部门控件信息
|
||||
if (fieldDataVo.getDbValue() != null) {
|
||||
String dbValue = fieldDataVo.getDbValue().toString();
|
||||
long departmentId = Long.parseLong(dbValue);
|
||||
V3xOrgDepartment v3xOrgDepartment = getOrgManager().getDepartmentById(departmentId);
|
||||
// 设置部门数据值
|
||||
subField.put("value", v3xOrgDepartment.getId());
|
||||
subField.put("showValue", "");
|
||||
}
|
||||
// 判断当前处理字段是否为岗位
|
||||
} else if (postFields.contains(entry.getKey())) {
|
||||
// 查询岗位控件信息
|
||||
if (fieldDataVo.getDbValue() != null) {
|
||||
String dbValue = fieldDataVo.getDbValue().toString();
|
||||
long postId = Long.parseLong(dbValue);
|
||||
V3xOrgPost v3xOrgPost = getOrgManager().getPostById(postId);
|
||||
// 设置岗位数据值
|
||||
subField.put("value", v3xOrgPost.getId());
|
||||
subField.put("showValue", "");
|
||||
}
|
||||
// 判断当前处理字段是否为职务级别
|
||||
} else if (levelFields.contains(entry.getKey())) {
|
||||
// 查询职务级别控件信息
|
||||
if (fieldDataVo.getDbValue() != null) {
|
||||
String dbValue = fieldDataVo.getDbValue().toString();
|
||||
long levelId = Long.parseLong(dbValue);
|
||||
V3xOrgLevel v3xOrglevel = getOrgManager().getLevelById(levelId);
|
||||
// 设置职务级别数据值
|
||||
subField.put("value", v3xOrglevel.getId());
|
||||
subField.put("showValue", "");
|
||||
}
|
||||
// 判断当前处理字段是否为人员
|
||||
} else if (memberFields.contains(entry.getKey())) {
|
||||
// 查询人员控件信息
|
||||
if (fieldDataVo.getDbValue() != null) {
|
||||
String dbValue = fieldDataVo.getDbValue().toString();
|
||||
long memberId = Long.parseLong(dbValue);
|
||||
V3xOrgMember v3xOrgMember = getOrgManager().getMemberById(memberId);
|
||||
// 设置人员数据值
|
||||
subField.put("value", v3xOrgMember.getId());
|
||||
subField.put("showValue", "");
|
||||
}
|
||||
// 判断当前处理字段是否为附件
|
||||
} else if (fileFields.contains(entry.getKey())) {
|
||||
// 获取附件控件的数据
|
||||
if (fieldDataVo.getDbValue() != null) {
|
||||
String dbValue = fieldDataVo.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=" + getzsjToken(configVo);
|
||||
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);
|
||||
}
|
||||
}
|
||||
subField.put("value", dbValue);
|
||||
subField.put("showValue", "");
|
||||
}
|
||||
} else {
|
||||
// 设置文本控件数据
|
||||
subField.put("value", "");
|
||||
subField.put("showValue", fieldDataVo.getStringValue());
|
||||
}
|
||||
subFields.add(subField);
|
||||
}
|
||||
return subFields;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user