2025-07-24主数据集成项目上线代码上传
This commit is contained in:
@@ -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="departmentAddNode" class="com.seeyon.apps.src_mainorganization.node.DepartmentAddNode"></bean>
|
||||
<bean id="departmentCloseNode" class="com.seeyon.apps.src_mainorganization.node.DepartmentCloseNode"></bean>
|
||||
</beans>
|
||||
@@ -40,5 +40,8 @@
|
||||
<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" />
|
||||
<bean id="memberDieNode" class="com.seeyon.apps.src_membermanage.node.MemberDieNode" />
|
||||
<bean id="memberRetirementNode" class="com.seeyon.apps.src_membermanage.node.MemberRetirementNode" />
|
||||
<bean id="memberRetirementOrganizationNode" class="com.seeyon.apps.src_membermanage.node.MemberRetirementOrganizationNode" />
|
||||
|
||||
</beans>
|
||||
6
seeyon/WEB-INF/cfgHome/src_qyba/spring/spring-dao.xml
Normal file
6
seeyon/WEB-INF/cfgHome/src_qyba/spring/spring-dao.xml
Normal file
@@ -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="srcBeianDao" class="com.seeyon.apps.src_qyba.dao.impl.SrcBeianDao" />
|
||||
<bean id="multipleViewsPrintManager" class="com.seeyon.apps.src_qyba.manage.impl.MultipleViewsPrintManagerImpl"></bean>
|
||||
</beans>
|
||||
@@ -56,7 +56,6 @@ public class NewTongYongNode extends ACommonSuperNode {
|
||||
} else {
|
||||
context.back(map.get("msg").toString());
|
||||
}
|
||||
|
||||
return context;
|
||||
}
|
||||
|
||||
|
||||
@@ -107,11 +107,9 @@ public class FanWeiNewUtil {
|
||||
* 注意:ECOLOGY系统所有POST接口调用请求头请设置 "Content-Type","application/x-www-form-urlencoded; charset=utf-8"
|
||||
*/
|
||||
public static String PostRestful(Map params, String userid) throws IOException {
|
||||
|
||||
//ECOLOGY返回的token
|
||||
String token = (String) Getoken(PropKit.getProp(PropKit.NEWADDRESS)).get("token");
|
||||
|
||||
|
||||
//封装请求头参数
|
||||
RSA rsa = new RSA(null, PropKit.getProp(PropKit.NEWSPK));
|
||||
//对用户信息进行加密传输,暂仅支持传输OA用户ID
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.seeyon.apps.src_mainorganization;
|
||||
|
||||
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 MainorganizationPluginApi extends APluginInfoApi {
|
||||
|
||||
public MainorganizationPluginApi(){
|
||||
}
|
||||
|
||||
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,39 @@
|
||||
package com.seeyon.apps.src_mainorganization.constants;
|
||||
|
||||
public enum MainorganizationConstants {
|
||||
|
||||
plugin("src_mainorganization","插件ID"),
|
||||
dowUrl("http://127.0.0.1:8088/seeyon/rest/attachment/file","附件下载路径"),
|
||||
uploadUrl("http://10.0.3.55/seeyon/rest/attachment","主数据平台上传接口"),
|
||||
getTokenUrl("http://127.0.0.1:8088/seeyon/rest/token", "集团TOKEN接口路径"),
|
||||
restUserName("beian", "集团REST用户名"),
|
||||
restPassword("f1c4e761-d60b-47ff-a5ff-5953f2b9c9e0", "集团REST密码"),
|
||||
loginName("BDGLY", "集团管理员登录名"),
|
||||
getzsjTokenUrl("http://10.0.3.55/seeyon/rest/token", "主数据TOKEN接口路径"),
|
||||
restzsjUserName("sys", "主数据REST用户名"),
|
||||
restzsjPassword("751f86d5-2e4c-4fe0-9a90-50d568359a1f", "主数据REST密码"),
|
||||
zsjloginName("demo1", "主数据管理员账号"),
|
||||
mainUrl("http://10.0.3.55","主数据平台ip端口");
|
||||
|
||||
MainorganizationConstants(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,177 @@
|
||||
package com.seeyon.apps.src_mainorganization.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_mainorganization.constants.MainorganizationConstants;
|
||||
import com.seeyon.apps.src_mainorganization.util.ProtUtil;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgAccount;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgDepartment;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.util.UUIDLong;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.List;
|
||||
|
||||
public class DepartmentAddNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(DepartmentAddNode.class);
|
||||
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Inject
|
||||
private OrgManager orgManager;
|
||||
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return MainorganizationConstants.getPluginId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getFormParse() {
|
||||
return "json";
|
||||
}
|
||||
|
||||
@Override
|
||||
public WorkFlowType[] getTypes() {
|
||||
return new WorkFlowType[] {WorkFlowType.superNode};
|
||||
}
|
||||
|
||||
public ConfigVo getMainorganizationConfig() {
|
||||
return cstConfigApi.getConfig(getPluginId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "DepartmentAddNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "部门批量新增超级节点";
|
||||
}
|
||||
|
||||
// {
|
||||
// "data":"jsonArr::明细表1",
|
||||
// "seeyonFormSon":{
|
||||
// "明细表1":{
|
||||
// "deptName":"部门名称",
|
||||
// "orgAccount":"所属单位",
|
||||
// "isFirstDept":"是否一级部门",
|
||||
// "superiorDeptName":"上级部门"
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
|
||||
log.info("进入部门新增处理流程"+getNodeId());
|
||||
ConfigVo configVo = getMainorganizationConfig();
|
||||
// 创建返回对象
|
||||
SuperNodeContext context = new SuperNodeContext();
|
||||
context.setNeedSave(true);
|
||||
log.info("请求参数"+request);
|
||||
JSONObject param = JSONObject.parseObject(request);
|
||||
// 获取部门明细信息
|
||||
JSONArray datas = param.getJSONArray("data");
|
||||
// 记录新增返回值
|
||||
JSONArray requestJson = new JSONArray();
|
||||
String mainUrl = configVo.getParamVal(MainorganizationConstants.mainUrl.name());
|
||||
String getzsjTokenUrl = configVo.getParamVal(MainorganizationConstants.getzsjTokenUrl.name());
|
||||
String restzsjUserName = configVo.getParamVal(MainorganizationConstants.restzsjUserName.name());
|
||||
String restzsjPassword = configVo.getParamVal(MainorganizationConstants.restzsjPassword.name());
|
||||
String zsjloginName = configVo.getParamVal(MainorganizationConstants.zsjloginName.name());
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
String maindeptsurl = mainUrl+"/seeyon/rest/orgDepartment?token="+mainToken;
|
||||
log.info("设置部门新增接口路径"+maindeptsurl);
|
||||
String ret = "";
|
||||
// 遍历明细表数据
|
||||
data:for (int i = 0 ; i < datas.size() ; i ++) {
|
||||
JSONObject data = datas.getJSONObject(i);
|
||||
// 获取需要新增的部门名称
|
||||
String deptName = data.getString("deptName");
|
||||
// 获取新增部门所在单位的控件名称
|
||||
long orgAccountId = data.getLongValue("orgAccountId");
|
||||
// 获取是否是一级部门控件
|
||||
String isFirstDept = data.getString("isFirstDept");
|
||||
// 获取新增部门所在上级部门的控件名称
|
||||
long superiorDeptId = data.getLongValue("superiorDeptId");
|
||||
V3xOrgAccount v3xOrgAccount = orgManager.getAccountById(orgAccountId);
|
||||
V3xOrgDepartment superiorDepartment = orgManager.getDepartmentById(superiorDeptId);
|
||||
// 根据部门名称查询部门名称和单位ID,查询部门信息
|
||||
List<V3xOrgDepartment> departmentsByName = orgManager.getDepartmentsByName(deptName,orgAccountId);
|
||||
// 遍历现存同名部门信息
|
||||
old:for(V3xOrgDepartment department:departmentsByName){
|
||||
// 获取上级部门信息
|
||||
long superiorId = department.getSuperior();
|
||||
if("是".equals(isFirstDept)){
|
||||
// 当前添加部门为一级部门,判断同名上级部门ID是否等于单位ID
|
||||
if(superiorId==orgAccountId){
|
||||
// 同名部门已经存在跳过当前明细行处理
|
||||
ret = ret +deptName + "部门已经存在,跳过处理;";
|
||||
break data;
|
||||
}
|
||||
}else{
|
||||
// 当前添加部门不为一级部门,判断同名上级部门ID是否等于所选择的上级部门ID
|
||||
if(superiorId==superiorDeptId){
|
||||
// 同名部门已经存在跳过当前明细行处理
|
||||
ret = ret +deptName + "部门已经存在,跳过处理;";
|
||||
break data;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 封装部门新增参数,新增部门信息
|
||||
JSONObject deptjson = new JSONObject();
|
||||
deptjson.put("name",deptName);
|
||||
deptjson.put("description","");
|
||||
if("是".equals(isFirstDept)){
|
||||
deptjson.put("superior",orgAccountId);
|
||||
deptjson.put("superiorName",v3xOrgAccount.getName());
|
||||
}else{
|
||||
deptjson.put("superior",superiorDeptId);
|
||||
deptjson.put("superiorName",superiorDepartment.getName());
|
||||
}
|
||||
deptjson.put("enabled",true);
|
||||
deptjson.put("id", UUIDLong.longUUID());
|
||||
deptjson.put("orgAccountName",v3xOrgAccount.getName());
|
||||
deptjson.put("orgAccountId",orgAccountId);
|
||||
requestJson.add(deptjson);
|
||||
JSONObject res = ProtUtil.doPost(deptjson.toString(),maindeptsurl);
|
||||
if(res==null){
|
||||
ret=ret+deptName+"部门添加返回为空;";
|
||||
}else{
|
||||
String success = res.getString("success");
|
||||
if("false".equals(success)){
|
||||
JSONArray errorMsgInfos = res.getJSONArray("errorMsgInfos");
|
||||
JSONObject errorMsgInfo = errorMsgInfos.getJSONObject(0);
|
||||
String msgInfo = errorMsgInfo.getString("msgInfo");
|
||||
ret=ret+deptName+msgInfo+";";
|
||||
context.back(ret);
|
||||
context.setErrMsg(ret);
|
||||
context.setRequest(requestJson.toString());
|
||||
context.setResponse(ret);
|
||||
return context;
|
||||
}else{
|
||||
ret=ret+deptName+"添加成功;";
|
||||
}
|
||||
}
|
||||
}
|
||||
context.success(requestJson.toString());
|
||||
context.setRequest(requestJson.toString());
|
||||
context.setResponse(ret);
|
||||
return context;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
package com.seeyon.apps.src_mainorganization.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.FormDataVo;
|
||||
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
|
||||
import com.seeyon.apps.src_mainorganization.constants.MainorganizationConstants;
|
||||
import com.seeyon.apps.src_mainorganization.util.ProtUtil;
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgDepartment;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
public class DepartmentCloseNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberManageCommonNode.class);
|
||||
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Inject
|
||||
private OrgManager orgManager;
|
||||
|
||||
@Override
|
||||
public String getPluginId() {
|
||||
return MainorganizationConstants.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 String getNodeId() {
|
||||
return "DepartmentCloseNode";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getNodeName() {
|
||||
return "部门批量停用超级节点";
|
||||
}
|
||||
|
||||
// {
|
||||
// "data": "jsonArr::明细表1",
|
||||
// "seeyonFormSon": {
|
||||
// "明细表1": {
|
||||
// "deptId": "部门名称",
|
||||
// "orgAccountId": "所属单位"
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
@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);
|
||||
log.info("请求参数"+request);
|
||||
JSONObject param = JSONObject.parseObject(request);
|
||||
// 获取部门明细信息
|
||||
JSONArray datas = param.getJSONArray("data");
|
||||
// 记录新增返回值
|
||||
JSONArray requestJson = new JSONArray();
|
||||
String mainUrl = configVo.getParamVal(MainorganizationConstants.mainUrl.name());
|
||||
String getzsjTokenUrl = configVo.getParamVal(MainorganizationConstants.getzsjTokenUrl.name());
|
||||
String restzsjUserName = configVo.getParamVal(MainorganizationConstants.restzsjUserName.name());
|
||||
String restzsjPassword = configVo.getParamVal(MainorganizationConstants.restzsjPassword.name());
|
||||
String zsjloginName = configVo.getParamVal(MainorganizationConstants.zsjloginName.name());
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
String maindeptsurl = mainUrl+"/seeyon/rest/orgDepartment/{deptId}/enabled/false?token="+mainToken;
|
||||
log.info("设置部门停用接口接口路径"+maindeptsurl);
|
||||
String ret = "";
|
||||
// 遍历明细表数据
|
||||
data:for (int i = 0 ; i < datas.size() ; i ++) {
|
||||
JSONObject data = datas.getJSONObject(i);
|
||||
// 获取需要新增的部门名称
|
||||
long deptId = data.getLongValue("deptId");
|
||||
V3xOrgDepartment v3xOrgDepartment = orgManager.getDepartmentById(deptId);
|
||||
// 获取新增部门所在单位的控件名称
|
||||
long orgAccountId = data.getLongValue("orgAccountId");
|
||||
// 检查当前需要停用部门下是否存在子部门
|
||||
List<Long> subsetListDptes = orgManager.getChildDepartmentIds(deptId,false);
|
||||
if(subsetListDptes.size()>0){
|
||||
// 当前需要停用部门下存在子部门,不允许停用此部门
|
||||
context.setRequest(request);
|
||||
context.setResponse(v3xOrgDepartment.getName()+"部门下存在子部门,请先处理子部门");
|
||||
context.back(v3xOrgDepartment.getName()+"部门下存在子部门,请先处理子部门");
|
||||
context.setErrMsg(v3xOrgDepartment.getName()+"部门下存在子部门,请先处理子部门");
|
||||
return context;
|
||||
}
|
||||
// 检查当前需要停用部门下是否存在人员
|
||||
List<V3xOrgMember> orgMembersByDept = orgManager.getMembersByDepartment(deptId,false);
|
||||
if(orgMembersByDept.size()>0){
|
||||
// 当前需要停用部门下存在人员,不允许停用此部门
|
||||
context.setRequest(request);
|
||||
context.setResponse(v3xOrgDepartment.getName()+"部门下存在未离职人员,请先处理部门成员");
|
||||
context.back(v3xOrgDepartment.getName()+"部门下存在未离职人员,请先处理部门成员");
|
||||
context.setErrMsg(v3xOrgDepartment.getName()+"部门下存在未离职人员,请先处理部门成员");
|
||||
return context;
|
||||
}
|
||||
requestJson.add(v3xOrgDepartment.getName()+deptId);
|
||||
String enabledFalseUrl = maindeptsurl.replace("{deptId}",deptId+"");
|
||||
// 需要停用部门下不存在任何启动部门和人员执行停用接口
|
||||
String resstr = ProtUtil.httpPutRaw(enabledFalseUrl,"",new HashMap<>(),null);
|
||||
JSONObject res = JSONObject.parseObject(resstr);
|
||||
if(res==null){
|
||||
ret=ret+v3xOrgDepartment.getName()+"部门停用返回为空;";
|
||||
context.back(ret);
|
||||
context.setErrMsg(ret);
|
||||
context.setRequest(requestJson.toString());
|
||||
context.setResponse(ret);
|
||||
return context;
|
||||
}else{
|
||||
String success = res.getString("success");
|
||||
if("false".equals(success)){
|
||||
JSONArray errorMsgInfos = res.getJSONArray("errorMsgInfos");
|
||||
JSONObject errorMsgInfo = errorMsgInfos.getJSONObject(0);
|
||||
String msgInfo = errorMsgInfo.getString("msgInfo");
|
||||
ret=ret+v3xOrgDepartment.getName()+msgInfo+";";
|
||||
context.back(ret);
|
||||
context.setErrMsg(ret);
|
||||
context.setRequest(requestJson.toString());
|
||||
context.setResponse(ret);
|
||||
return context;
|
||||
}else{
|
||||
ret=ret+v3xOrgDepartment.getName()+"部门停用成功;";
|
||||
}
|
||||
}
|
||||
}
|
||||
context.success(requestJson.toString());
|
||||
context.setRequest(requestJson.toString());
|
||||
context.setResponse(ret);
|
||||
return context;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -12,6 +12,7 @@ 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.OrgConstants;
|
||||
import com.seeyon.ctp.organization.bo.*;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
import com.seeyon.ctp.organization.manager.OrgManagerDirect;
|
||||
@@ -23,10 +24,7 @@ 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;
|
||||
import java.util.*;
|
||||
|
||||
public class ReceiveOrgMemberServiceImpl implements IReceiveOrgMemberService {
|
||||
|
||||
@@ -158,7 +156,7 @@ public class ReceiveOrgMemberServiceImpl implements IReceiveOrgMemberService {
|
||||
V3xOrgPrincipal v3xOrgPrincipal = new V3xOrgPrincipal();
|
||||
v3xOrgPrincipal.setLoginName(memberParam.getString("loginName"));
|
||||
v3xOrgPrincipal.setMemberId(member.getId());
|
||||
v3xOrgPrincipal.setPassword("123456");
|
||||
v3xOrgPrincipal.setPassword("dhx123456");
|
||||
member.setV3xOrgPrincipal(v3xOrgPrincipal);
|
||||
}
|
||||
// 判断组织架构信息是否修改
|
||||
@@ -202,6 +200,7 @@ public class ReceiveOrgMemberServiceImpl implements IReceiveOrgMemberService {
|
||||
memberPost.setOrgAccountId(secondPost.getLongValue("orgAccountId"));
|
||||
memberPost.setDepId(secondPost.getLongValue("deptId"));
|
||||
memberPost.setMemberId(secondPost.getLongValue("memberId"));
|
||||
memberPost.setType(OrgConstants.MemberPostType.Second);
|
||||
memberPosts.add(memberPost);
|
||||
}
|
||||
member.setSecond_post(memberPosts);
|
||||
@@ -214,11 +213,20 @@ public class ReceiveOrgMemberServiceImpl implements IReceiveOrgMemberService {
|
||||
if(StringUtil.isNotEmpty(sortId)){
|
||||
member.setSortId(Long.parseLong(sortId));
|
||||
}
|
||||
AddressBook addressBook = addressBookCustomerFieldInfoManager.getByMemberId(Long.parseLong(memberId));
|
||||
addressBook = setAddressBooks(addressBook,memberParam);
|
||||
addressBookCustomerFieldInfoManager.updateAddressBook(addressBook);
|
||||
Set<String> keys = memberParam.keySet();
|
||||
boolean hasUserKey = false;
|
||||
for(String key : keys){
|
||||
if(key.contains("EXT_ATTR")){
|
||||
hasUserKey = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(hasUserKey){
|
||||
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();
|
||||
|
||||
461
src/com/seeyon/apps/src_mainorganization/util/ProtUtil.java
Normal file
461
src/com/seeyon/apps/src_mainorganization/util/ProtUtil.java
Normal file
@@ -0,0 +1,461 @@
|
||||
package com.seeyon.apps.src_mainorganization.util;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.httpclient.HttpStatus;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPut;
|
||||
import org.apache.http.client.utils.URIBuilder;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicHeader;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.*;
|
||||
import java.nio.file.Files;
|
||||
import java.util.Map;
|
||||
|
||||
public class ProtUtil {
|
||||
|
||||
public static String uploadFile(String targetUrl, String filePath) throws IOException {
|
||||
String boundary = Long.toHexString(System.currentTimeMillis()); // 随机边界
|
||||
InputStream is = null;
|
||||
BufferedReader br = null;
|
||||
String result = null;
|
||||
String CRLF = "\r\n"; // 换行符
|
||||
URL url = new URL(targetUrl);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
|
||||
connection.setDoOutput(true);
|
||||
connection.setRequestMethod("POST");
|
||||
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
|
||||
|
||||
try (
|
||||
OutputStream output = connection.getOutputStream();
|
||||
PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, "UTF-8"), true);
|
||||
) {
|
||||
writer.append("--" + boundary).append(CRLF);
|
||||
writer.append("Content-Disposition: form-data; name=\"title\"").append(CRLF);
|
||||
writer.append(CRLF).append("测试11").append(CRLF).flush();
|
||||
writer.append("--" + boundary).append(CRLF);
|
||||
writer.append("Content-Disposition: form-data; name=\"fileType\"").append(CRLF);
|
||||
writer.append(CRLF).append("pdf").append(CRLF).flush();
|
||||
// 发送文件数据
|
||||
File file = new File(filePath);
|
||||
writer.append("--" + boundary).append(CRLF);
|
||||
writer.append("Content-Disposition: form-data; name=\"file\"; filename=\"" + file.getName() + "\"").append(CRLF);
|
||||
writer.append("Content-Type: " + URLConnection.guessContentTypeFromName(file.getName())).append(CRLF);
|
||||
writer.append(CRLF).flush();
|
||||
|
||||
Files.copy(file.toPath(), output);
|
||||
output.flush(); // 确保文件数据发送完毕
|
||||
|
||||
writer.append(CRLF).flush(); // 结束行
|
||||
writer.append("--" + boundary + "--").append(CRLF);
|
||||
}
|
||||
|
||||
int responseCode = connection.getResponseCode();
|
||||
// 连接对象获取一个输入流,向远程读取
|
||||
if (connection.getResponseCode() == 200) {
|
||||
|
||||
is = connection.getInputStream();
|
||||
// 对输入流对象进行包装:charset根据工作项目组的要求来设置
|
||||
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||||
|
||||
StringBuffer sbf = new StringBuffer();
|
||||
String temp = null;
|
||||
// 循环遍历一行一行读取数据
|
||||
while ((temp = br.readLine()) != null) {
|
||||
sbf.append(temp);
|
||||
sbf.append("\r\n");
|
||||
}
|
||||
result = sbf.toString();
|
||||
System.out.println(result);
|
||||
}
|
||||
// 关闭资源
|
||||
if (null != br) {
|
||||
try {
|
||||
br.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (null != is) {
|
||||
try {
|
||||
is.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
connection.disconnect();
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 调用post接口
|
||||
*
|
||||
* @param str 调用接口传递的参数json
|
||||
* @param urlStr 需要调用的url对应的参数文件中的编码
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject doPost(String str, String urlStr) {
|
||||
HttpURLConnection connection = null;
|
||||
InputStream is = null;
|
||||
OutputStream os = null;
|
||||
BufferedReader br = null;
|
||||
String result = null;
|
||||
try {
|
||||
URL url = new URL(urlStr);
|
||||
// 通过远程url连接对象打开连接
|
||||
connection = (HttpURLConnection) url.openConnection();
|
||||
// 设置连接请求方式
|
||||
connection.setRequestMethod("POST");
|
||||
// 设置连接主机服务器超时时间:15000毫秒
|
||||
connection.setConnectTimeout(15000);
|
||||
// 设置读取主机服务器返回数据超时时间:60000毫秒
|
||||
connection.setReadTimeout(60000);
|
||||
|
||||
// 默认值为:false,当向远程服务器传送数据/写数据时,需要设置为true
|
||||
connection.setDoOutput(true);
|
||||
// 默认值为:true,当前向远程服务读取数据时,设置为true,该参数可有可无
|
||||
connection.setDoInput(true);
|
||||
// 设置传入参数的格式:请求参数应该是 name1=value1&name2=value2 的形式。
|
||||
connection.setRequestProperty("Content-Type", "application/json");
|
||||
// 通过连接对象获取一个输出流
|
||||
os = connection.getOutputStream();
|
||||
// 通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
|
||||
if (!("".equals(str) || str == null)) {
|
||||
os.write(str.getBytes("UTF-8"));
|
||||
}
|
||||
// 连接对象获取一个输入流,向远程读取
|
||||
if (connection.getResponseCode() == 200) {
|
||||
|
||||
is = connection.getInputStream();
|
||||
// 对输入流对象进行包装:charset根据工作项目组的要求来设置
|
||||
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||||
|
||||
StringBuffer sbf = new StringBuffer();
|
||||
String temp = null;
|
||||
// 循环遍历一行一行读取数据
|
||||
while ((temp = br.readLine()) != null) {
|
||||
sbf.append(temp);
|
||||
sbf.append("\r\n");
|
||||
}
|
||||
result = sbf.toString();
|
||||
}
|
||||
} catch (MalformedURLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
// 关闭资源
|
||||
if (null != br) {
|
||||
try {
|
||||
br.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (null != os) {
|
||||
try {
|
||||
os.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
if (null != is) {
|
||||
try {
|
||||
is.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
// 断开与远程地址url的连接
|
||||
connection.disconnect();
|
||||
}
|
||||
JSONObject json = JSONObject.parseObject(result);
|
||||
return json;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void downloadFile(String urlStr, String filePath){
|
||||
String accesstoken = "T3KbU3zlRL";
|
||||
String appSecret = "owmMX93AfGZQBF2NCuH9a7i9TOeF5x";
|
||||
HttpURLConnection conn = null;
|
||||
OutputStream out = null;
|
||||
try {
|
||||
|
||||
StringBuilder urlBuilder = new StringBuilder(urlStr);
|
||||
|
||||
URL url = new URL(urlBuilder.toString());
|
||||
conn = (HttpURLConnection) url.openConnection();
|
||||
conn.setRequestMethod("GET");
|
||||
conn.setRequestProperty("Host", url.getHost());
|
||||
conn.setRequestProperty("Accept", "text/plain,application/json");
|
||||
conn.setRequestProperty("User-Agent", "privateapp-java-api-client");
|
||||
conn.setDoOutput(true);
|
||||
conn.setDoInput(true);
|
||||
conn.setUseCaches(false);
|
||||
|
||||
|
||||
int statusCode = conn.getResponseCode();
|
||||
StringBuilder response = new StringBuilder();
|
||||
if (statusCode == 200) {
|
||||
try (InputStream ins = conn.getInputStream()){
|
||||
try (OutputStream outputStream = new FileOutputStream(filePath)) {
|
||||
int bytesRead;
|
||||
byte[] buffer = new byte[4096];
|
||||
while ((bytesRead = ins.read(buffer)) != -1) {
|
||||
outputStream.write(buffer, 0, bytesRead);
|
||||
}
|
||||
}
|
||||
//process response data
|
||||
} catch (Exception e){
|
||||
// 处理异常情况
|
||||
}
|
||||
} else {
|
||||
// 处理异常情况
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
if (conn != null) {
|
||||
conn.disconnect();
|
||||
}
|
||||
if (out != null) {
|
||||
out.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 执行get请求
|
||||
*
|
||||
* @return
|
||||
* @throws IOException
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public static String doGet(String geturl,JSONObject param) throws FileNotFoundException, IOException, URISyntaxException {
|
||||
// 创建 HttpClient 实例
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
String responseBody = "";
|
||||
try {
|
||||
// 构建包含参数的 URI
|
||||
URIBuilder uriBuilder = new URIBuilder(geturl);
|
||||
if(param.size()>0){
|
||||
uriBuilder.addParameter("params", param.toString());
|
||||
}
|
||||
URI uri = uriBuilder.build();
|
||||
// 创建 HttpGet 对象
|
||||
HttpGet httpGet = new HttpGet(uri);
|
||||
|
||||
// 发送请求并获取响应
|
||||
CloseableHttpResponse response = httpClient.execute(httpGet);
|
||||
|
||||
try {
|
||||
// 获取响应实体并转换为字符串
|
||||
responseBody = EntityUtils.toString(response.getEntity());
|
||||
} finally {
|
||||
// 关闭响应
|
||||
response.close();
|
||||
}
|
||||
} catch (URISyntaxException e) {
|
||||
System.err.println("URI 构建错误: " + e.getMessage());
|
||||
} catch (IOException e) {
|
||||
System.err.println("请求发送或响应处理错误: " + e.getMessage());
|
||||
} finally {
|
||||
try {
|
||||
// 关闭 HttpClient
|
||||
httpClient.close();
|
||||
} catch (IOException e) {
|
||||
System.err.println("关闭 HttpClient 错误: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
return responseBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取一个token
|
||||
*
|
||||
* @return
|
||||
* @throws IOException
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public static String getToken(String oatokenurl,String restName,String restPassword,String loginName) throws FileNotFoundException, IOException {
|
||||
String address = oatokenurl +"/"+ restName + "/" + restPassword;
|
||||
if(StringUtil.isNotEmpty(loginName)){
|
||||
address = address +"?loginName="+loginName;
|
||||
}
|
||||
DefaultHttpClient client = new DefaultHttpClient();
|
||||
String result = "";
|
||||
HttpGet get = new HttpGet(address);
|
||||
// 添加 Headers 信息
|
||||
get.addHeader(new BasicHeader("Accept", "application/json"));
|
||||
try {
|
||||
HttpResponse res = client.execute(get);
|
||||
if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
|
||||
result = EntityUtils.toString(res.getEntity());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
String token = "";
|
||||
if(result.contains("{")) {
|
||||
JSONObject jsObj = JSONObject.parseObject(result);
|
||||
token = jsObj.get("id").toString();
|
||||
}else {
|
||||
token = result;
|
||||
}
|
||||
return token;
|
||||
}
|
||||
/**
|
||||
* 下载文件到指定目录
|
||||
* @param dowUrl:http地址
|
||||
* @param dowPath:指定目录
|
||||
* */
|
||||
public static String download(String dowUrl, String dowPath){
|
||||
try {
|
||||
// log.info("下载地址是:"+dowUrl+",存储地址是:"+dowPath);
|
||||
URL url = new URL(dowUrl);
|
||||
|
||||
URLConnection urlConnection = url.openConnection();
|
||||
|
||||
HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;// http的连接类
|
||||
|
||||
//String contentType = httpURLConnection.getContentType();//请求类型,可用来过滤请求,
|
||||
|
||||
httpURLConnection.setConnectTimeout(1000*5);//设置超时
|
||||
|
||||
httpURLConnection.setRequestMethod("GET");//设置请求方式,默认是GET
|
||||
|
||||
httpURLConnection.setRequestProperty("Charset", "UTF-8");// 设置字符编码
|
||||
|
||||
httpURLConnection.connect();// 打开连接
|
||||
|
||||
BufferedInputStream bin = new BufferedInputStream(httpURLConnection.getInputStream());
|
||||
|
||||
String path = dowPath;// 指定存放位置
|
||||
File filed = new File(path);
|
||||
String mergePdfPath = dowPath ;
|
||||
String[] paths = mergePdfPath.split("/");
|
||||
String mpath = "";
|
||||
for(int i = 0 ; i <paths.length-1 ; i++){
|
||||
mpath =mpath+ paths[i]+"/";
|
||||
}
|
||||
mpath = mpath.substring(0,mpath.length()-1);
|
||||
File mergePdfFile = new File(mpath);
|
||||
if(!mergePdfFile.exists()) {
|
||||
mergePdfFile.mkdirs();
|
||||
}
|
||||
OutputStream out = new FileOutputStream(filed);
|
||||
int size = 0;
|
||||
|
||||
byte[] b = new byte[2048];
|
||||
//把输入流的文件读取到字节数据b中,然后输出到指定目录的文件
|
||||
while ((size = bin.read(b)) != -1) {
|
||||
out.write(b, 0, size);
|
||||
}
|
||||
// 关闭资源
|
||||
bin.close();
|
||||
out.close();
|
||||
return "200";
|
||||
} catch (MalformedURLException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
return "500";
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
return "400";
|
||||
}
|
||||
}
|
||||
|
||||
//调用put接口
|
||||
public static String callPutApi(String apiUrl, String requestBody) {
|
||||
StringBuilder response = new StringBuilder();
|
||||
try {
|
||||
URL url = new URL(apiUrl);
|
||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||
connection.setRequestMethod("PUT");
|
||||
connection.setRequestProperty("Content-Type", "application/json");
|
||||
connection.setDoOutput(true);
|
||||
try (DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) {
|
||||
outputStream.writeBytes(requestBody);
|
||||
outputStream.flush();
|
||||
}
|
||||
int responseCode = connection.getResponseCode();
|
||||
System.out.println("Response Code : " + responseCode);
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
|
||||
String line;
|
||||
while ((line = reader.readLine())!= null) {
|
||||
response.append(line);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return response.toString();
|
||||
}
|
||||
|
||||
public static String httpPutRaw(String url, String stringJson, Map<String,Object> headers, String encode){
|
||||
if(encode == null){
|
||||
encode = "utf-8";
|
||||
}
|
||||
CloseableHttpResponse httpResponse = null;
|
||||
CloseableHttpClient closeableHttpClient = null;
|
||||
String content = null;
|
||||
//since 4.3 不再使用 DefaultHttpClient
|
||||
try {
|
||||
|
||||
//HttpClients.createDefault()等价于 HttpClientBuilder.create().build();
|
||||
closeableHttpClient = HttpClients.createDefault();
|
||||
HttpPut httpput = new HttpPut(url);
|
||||
|
||||
//设置header
|
||||
httpput.setHeader("Content-type", "application/json");
|
||||
if (headers != null && headers.size() > 0) {
|
||||
for (Map.Entry<String, Object> entry : headers.entrySet()) {
|
||||
httpput.setHeader(entry.getKey(),entry.getValue().toString());
|
||||
}
|
||||
}
|
||||
//组织请求参数
|
||||
StringEntity stringEntity = new StringEntity(stringJson, encode);
|
||||
httpput.setEntity(stringEntity);
|
||||
//响应信息
|
||||
httpResponse = closeableHttpClient.execute(httpput);
|
||||
HttpEntity entity = httpResponse.getEntity();
|
||||
content = EntityUtils.toString(entity, encode);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}finally{
|
||||
try {
|
||||
httpResponse.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
try {
|
||||
closeableHttpClient.close(); //关闭连接、释放资源
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -174,7 +174,8 @@ public abstract class MemberManageCommonNode extends ACommonSuperNode {
|
||||
formDataVo.getNewFieldDataMap().put("返回结果", "没有查询到需要修改的数据,请检查唯一值是否正确");
|
||||
}
|
||||
}
|
||||
break;}
|
||||
break;
|
||||
}
|
||||
case "addOrUpdate":{
|
||||
System.out.println("新增和修改");
|
||||
// 查询当前信息是否已经存在,设置请求参数
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
* 账号开启新增档案表超级节点
|
||||
*/
|
||||
public class AccountOpeningNode extends MemberManageCommonNode {
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
* 账号开启新增组织架构超级节点
|
||||
*/
|
||||
public class AccountOpeningOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
* 人员账号批量关闭修改档案表超级节点
|
||||
*/
|
||||
public class MemberAccountClosureNode extends ACommonSuperNode {
|
||||
|
||||
@@ -67,8 +67,8 @@ public class MemberAccountClosureNode extends ACommonSuperNode {
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
// 获取当前表单数据
|
||||
Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = SubFormMap.get("明细表1");
|
||||
// Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = formDataVo.getSubFormMap().get("明细表1");
|
||||
for (FormDataVo subFormDataVo : subForms) {
|
||||
// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
|
||||
// 创建唯一值查询参数
|
||||
|
||||
@@ -21,7 +21,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
* 人员账号批量关闭修改组织架构超级节点
|
||||
*/
|
||||
public class MemberAccountClosureOrganizationNode extends ACommonSuperNode {
|
||||
|
||||
@@ -71,9 +71,9 @@ public class MemberAccountClosureOrganizationNode extends ACommonSuperNode {
|
||||
JSONArray subTables = req.getJSONArray("subTable");
|
||||
int isSuccess = 0;
|
||||
String ret = "";
|
||||
Map<String, List<FormDataVo>> subFormDataVoMap = formDataVo.getSubFormMap();
|
||||
// Map<String, List<FormDataVo>> subFormDataVoMap = formDataVo.getSubFormMap();
|
||||
String subTableName = req.getString("subTableName");
|
||||
List<FormDataVo> subFormDataVos = subFormDataVoMap.get(subTableName);
|
||||
List<FormDataVo> subFormDataVos = formDataVo.getSubFormMap().get(subTableName);
|
||||
for(int i = 0 ; i < subTables.size() ; i++){
|
||||
JSONObject subTable = subTables.getJSONObject(i);
|
||||
FormDataVo subFormDataVo = subFormDataVos.get(i);
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
* 人员账号批量关闭修改人才库超级节点
|
||||
*/
|
||||
public class MemberAccountClosureTalentsNode extends ACommonSuperNode {
|
||||
|
||||
@@ -67,8 +67,8 @@ public class MemberAccountClosureTalentsNode extends ACommonSuperNode {
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
// 获取当前表单数据
|
||||
Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = SubFormMap.get("明细表1");
|
||||
// Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = formDataVo.getSubFormMap().get("明细表1");
|
||||
for (FormDataVo subFormDataVo : subForms) {
|
||||
// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
|
||||
// 创建唯一值查询参数
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
/**
|
||||
* 人员退休返聘修改档案表超级节点
|
||||
* 人员退休返聘修改组织架构超级节点
|
||||
*/
|
||||
public class MemberAnewEngageOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
|
||||
@@ -2,6 +2,9 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
*/
|
||||
public class MemberBasicsOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -95,8 +95,8 @@ public class MemberContractNode extends ACommonSuperNode {
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
// 获取当前表单数据
|
||||
Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = SubFormMap.get("人员明细");
|
||||
// Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = formDataVo.getSubFormMap().get("人员明细");
|
||||
for (FormDataVo subFormDataVo : subForms) {
|
||||
// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
|
||||
// 创建唯一值查询参数
|
||||
|
||||
@@ -2,6 +2,9 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
/**
|
||||
* 人员解聘组织架构超级节点
|
||||
*/
|
||||
public class MemberDecruitmentOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
|
||||
176
src/com/seeyon/apps/src_membermanage/node/MemberDieNode.java
Normal file
176
src/com/seeyon/apps/src_membermanage/node/MemberDieNode.java
Normal file
@@ -0,0 +1,176 @@
|
||||
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 www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员死亡档案表超级节点
|
||||
*/
|
||||
public class MemberDieNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberAccountClosureOrganizationNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberDieNode";
|
||||
}
|
||||
|
||||
@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 = formDataVo.getSubFormMap().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);
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,9 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
/**
|
||||
* 人员离职组织架构超级节点
|
||||
*/
|
||||
public class MemberDimissionOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员离职档案表超级节点
|
||||
* 人员离职人才库档案表超级节点
|
||||
*/
|
||||
public class MemberDimissionTalentsNode extends MemberManageCommonNode {
|
||||
|
||||
|
||||
@@ -94,8 +94,8 @@ public class MemberEmployNode extends ACommonSuperNode {
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
System.out.println("修改");
|
||||
// 获取明细表录用明细
|
||||
Map<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subFormDataVoList = subFormMap.get("录用详细");
|
||||
// Map<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subFormDataVoList = formDataVo.getSubFormMap().get("录用详细");
|
||||
// 遍历所有明细行数据
|
||||
for (FormDataVo subFormDataVo :subFormDataVoList) {
|
||||
JSONObject isExistUpdateParam = new JSONObject();
|
||||
|
||||
@@ -2,6 +2,10 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
|
||||
/**
|
||||
* 人员入职组织架构超级节点
|
||||
*/
|
||||
public class MemberEntryOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员入职档案表超级节点
|
||||
* 人员入职人才库档案表超级节点
|
||||
*/
|
||||
public class MemberEntryTalentsNode extends MemberManageCommonNode {
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
* 人员面试结果登记档案表超级节点
|
||||
*/
|
||||
public class MemberInterviewResultNode extends ACommonSuperNode {
|
||||
|
||||
@@ -78,8 +78,8 @@ public class MemberInterviewResultNode extends ACommonSuperNode {
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
// 获取当前表单数据
|
||||
Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = SubFormMap.get("录用详细");
|
||||
// Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = formDataVo.getSubFormMap().get("录用详细");
|
||||
for (FormDataVo subFormDataVo : subForms) {
|
||||
// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
|
||||
// 创建唯一值查询参数
|
||||
|
||||
@@ -2,6 +2,10 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
|
||||
import com.seeyon.apps.src_membermanage.MemberOrganizationCommonNode;
|
||||
|
||||
|
||||
/**
|
||||
* 人员调动组织架构超级节点
|
||||
*/
|
||||
public class MemberMoveOrganizationNode extends MemberOrganizationCommonNode {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -88,8 +88,8 @@ public class MemberPerformanceNode extends ACommonSuperNode {
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
// 获取当前表单数据
|
||||
Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = SubFormMap.get("明细表1");
|
||||
// Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = formDataVo.getSubFormMap().get("明细表1");
|
||||
for (FormDataVo subFormDataVo : subForms) {
|
||||
// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
|
||||
// 创建唯一值查询参数
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员转正档案表超级节点
|
||||
* 人员转正延长档案表超级节点
|
||||
*/
|
||||
public class MemberRegularizationExtendNode extends MemberManageCommonNode {
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,180 @@
|
||||
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 www.seeyon.com.utils.StringUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员退休档案表超级节点
|
||||
*/
|
||||
public class MemberRetirementNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberAccountClosureOrganizationNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberRetirementNode";
|
||||
}
|
||||
|
||||
@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 = formDataVo.getSubFormMap().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();
|
||||
if("field0143".equals(entry.getKey())){
|
||||
jsonObject.put("name","field0080");
|
||||
jsonObject.put("showValue","退休返聘");
|
||||
}
|
||||
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);
|
||||
|
||||
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,166 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* 人员退休修改组织架构超级节点
|
||||
* {
|
||||
* "seeyonFormSon": {
|
||||
* "明细表1": {
|
||||
* "id": "const::姓名",
|
||||
* "is_retirement": "退休或退休返聘",
|
||||
* "enabled": "const::false",
|
||||
* "orgAccountId": "const::单位",
|
||||
* "state": "const::2",
|
||||
* "loginNamg": "置空员工编号",
|
||||
* "code": "置空员工编号"
|
||||
* }
|
||||
* },
|
||||
* "subTable": "jsonArr::明细表1",
|
||||
* "subTableName": "const::明细表1"
|
||||
* }
|
||||
*/
|
||||
public class MemberRetirementOrganizationNode extends ACommonSuperNode {
|
||||
|
||||
private static Log log = Log.get(MemberRetirementOrganizationNode.class);
|
||||
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||
|
||||
@Inject
|
||||
private OrgManager orgManager;
|
||||
@Override
|
||||
public String getNodeId() {
|
||||
return "MemberRetirementOrganizationNode";
|
||||
}
|
||||
|
||||
@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 = formDataVo.getSubFormMap().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");
|
||||
// 判断当前人员是否需要修改组织架构
|
||||
String isRetirement = subTable.getString("is_retirement");
|
||||
if("退休返聘".equals(isRetirement)){
|
||||
log.info("第"+i+"行人员存在退休返聘,跳过组织架构处理");
|
||||
ret +="第"+i+1+"行人员存在退休返聘,跳过组织架构处理";
|
||||
isSuccess++;
|
||||
continue;
|
||||
}
|
||||
// 获取人员ID
|
||||
FieldDataVo memberField = subFormDataVo.getFieldData(memberIdName);
|
||||
String memberId = memberField.getDbValue().toString();
|
||||
// 获取单位ID
|
||||
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;
|
||||
JSONObject res = ProtUtil.doPost(subTable.toString(),memberOrganizationUpdateUrl);
|
||||
log.info(res.toString());
|
||||
|
||||
if(res.getInteger("code")==0){
|
||||
JSONObject data = res.getJSONObject("data");
|
||||
ret+=data.getString("name")+"修改成功";
|
||||
log.info("人员组织架构修改完成:人员名称为"+data.getString("name")+",ID为"+data.getString("id"));
|
||||
}else{
|
||||
isSuccess--;
|
||||
String message = res.getString("message");
|
||||
ret+=memberjson.getString("name")+"修改失败"+message;
|
||||
log.info("人员组织架构修改失败:人员名称为"+memberjson.getString("name")+",ID为"+memberjson.getString("id")+message);
|
||||
|
||||
}
|
||||
}
|
||||
}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;
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
* 人员系统账号批量关闭修改档案表超级节点
|
||||
*/
|
||||
public class MemberSystemAccountClosureNode extends MemberManageCommonNode {
|
||||
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
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 {
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员基础信息修改档案表超级节点
|
||||
* 人员系统账号批量关闭修改人才库超级节点
|
||||
*/
|
||||
public class MemberSystemAccountClosureTalentsNode extends MemberManageCommonNode {
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 人员工作经历档案表超级节点
|
||||
* 营销人员任务完成情况修改档案表超级节点
|
||||
*/
|
||||
public class MemberTaskFinishNode extends ACommonSuperNode {
|
||||
|
||||
@@ -68,8 +68,8 @@ public class MemberTaskFinishNode extends ACommonSuperNode {
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
// 获取当前表单数据
|
||||
Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = SubFormMap.get("明细表1");
|
||||
// Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = formDataVo.getSubFormMap().get("明细表1");
|
||||
for (FormDataVo subFormDataVo : subForms) {
|
||||
// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
|
||||
// 创建唯一值查询参数
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.seeyon.apps.src_membermanage.node;
|
||||
import com.seeyon.apps.src_membermanage.MemberManageCommonNode;
|
||||
|
||||
/**
|
||||
* 人员入职档案表超级节点
|
||||
* 人员试用期工作总结超级节点
|
||||
*/
|
||||
public class MemberTryOutSummarizeNode extends MemberManageCommonNode {
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@ public class MembersMoveNode extends ACommonSuperNode {
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
// 获取当前表单数据
|
||||
Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = SubFormMap.get("人员明细");
|
||||
// Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = formDataVo.getSubFormMap().get("人员明细");
|
||||
for (FormDataVo subFormDataVo : subForms) {
|
||||
// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
|
||||
// 创建唯一值查询参数
|
||||
|
||||
@@ -18,8 +18,10 @@ 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");
|
||||
@@ -64,9 +66,8 @@ public class MembersMoveOrganizationNode extends ACommonSuperNode {
|
||||
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);
|
||||
List<FormDataVo> subFormDataVos = formDataVo.getSubFormMap().get(subTableName);
|
||||
for(int i = 0 ; i < subTables.size() ; i++){
|
||||
JSONObject subTable = subTables.getJSONObject(i);
|
||||
FormDataVo subFormDataVo = subFormDataVos.get(i);
|
||||
@@ -111,31 +112,15 @@ public class MembersMoveOrganizationNode extends ACommonSuperNode {
|
||||
// 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{
|
||||
|
||||
@@ -69,8 +69,8 @@ public class TrainingRecordNode extends ACommonSuperNode {
|
||||
// 调用接口查询主数据token
|
||||
String mainToken = ProtUtil.getToken(getzsjTokenUrl,restzsjUserName,restzsjPassword,zsjloginName);
|
||||
// 获取当前表单数据
|
||||
Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = SubFormMap.get("明细表1");
|
||||
// Map<String, List<FormDataVo>> SubFormMap = formDataVo.getSubFormMap();
|
||||
List<FormDataVo> subForms = formDataVo.getSubFormMap().get("明细表1");
|
||||
for (FormDataVo subFormDataVo : subForms) {
|
||||
// 每一行就是一个变更数据封装封装修改的人员参数执行修改操作
|
||||
// 创建唯一值查询参数
|
||||
|
||||
@@ -42,7 +42,7 @@ public class ParamUtil {
|
||||
|
||||
private AttachmentManager attachmentManager;
|
||||
public void setAttachmentManager(AttachmentManager attachmentManager) {this.attachmentManager = attachmentManager;}
|
||||
public AttachmentManager getAttachmentManagery() {
|
||||
public AttachmentManager getAttachmentManager() {
|
||||
if (this.attachmentManager == null) {this.attachmentManager = (AttachmentManager) AppContext.getBean("attachmentManager");}return this.attachmentManager;
|
||||
}
|
||||
|
||||
@@ -387,16 +387,16 @@ public class ParamUtil {
|
||||
// 获取附件控件的数据
|
||||
if (fieldDataVo.getDbValue() != null) {
|
||||
String dbValue = fieldDataVo.getDbValue().toString();
|
||||
List<Long> attachmentIds = getAttachmentManagery().getBySubReference(Long.parseLong(dbValue));
|
||||
List<Long> attachmentIds = getAttachmentManager().getBySubReference(Long.parseLong(dbValue));
|
||||
// 获取当前附件控件的所有附件信息
|
||||
for (int n = 0; n < attachmentIds.size(); n++) {
|
||||
// 进行附件下载后上传至目标系统中
|
||||
Attachment attachment = getAttachmentManagery().getAttachmentByFileURL(attachmentIds.get(n));
|
||||
Attachment attachment = getAttachmentManager().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 oaFileName = filename.substring(0, filename.lastIndexOf("."));
|
||||
// 调用接口下载文件,文件存放在指定的路径下
|
||||
String dowUrl = configVo.getParamVal(MemberManageConstants.dowUrl.name()) + "/" + fileUrl + "?fileName=" + fileType + "&token=" + getjtToken(configVo);
|
||||
log.info("下载URL:" + dowUrl);
|
||||
|
||||
9
src/com/seeyon/apps/src_qyba/dao/ISrcBeianDao.java
Normal file
9
src/com/seeyon/apps/src_qyba/dao/ISrcBeianDao.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package com.seeyon.apps.src_qyba.dao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface ISrcBeianDao {
|
||||
|
||||
public List<Long> getdocResources();
|
||||
|
||||
}
|
||||
41
src/com/seeyon/apps/src_qyba/dao/impl/SrcBeianDao.java
Normal file
41
src/com/seeyon/apps/src_qyba/dao/impl/SrcBeianDao.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package com.seeyon.apps.src_qyba.dao.impl;
|
||||
|
||||
import com.seeyon.apps.src_qyba.dao.ISrcBeianDao;
|
||||
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 SrcBeianDao implements ISrcBeianDao {
|
||||
|
||||
private String getdocResources = "select id from doc_resources where PARENT_FR_ID = '978222128757425825'";
|
||||
|
||||
@Override
|
||||
public List<Long> getdocResources() {
|
||||
List<Long> ret = new ArrayList<>();
|
||||
JDBCAgent agent = new JDBCAgent();
|
||||
try {
|
||||
StringBuilder sql = new StringBuilder(getdocResources);
|
||||
List<Object> p = new ArrayList<Object>();
|
||||
agent.execute(sql.toString(), p);
|
||||
List<Map> list = agent.resultSetToList();
|
||||
for (Map map : list) {
|
||||
ret.add(Long.parseLong(map.get("id").toString()));
|
||||
}
|
||||
} catch (BusinessException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (SQLException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
if (agent != null) {
|
||||
agent.close();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.seeyon.apps.src_qyba.manage;
|
||||
|
||||
import com.seeyon.ctp.util.annotation.AjaxAccess;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface MultipleViewsPrintManager {
|
||||
/**
|
||||
* 多视图打印
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@AjaxAccess
|
||||
public Map<String, Object> print(Map<String, Object> params, List<Map<String,String>> approvalOpinions,String flowName) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
package com.seeyon.apps.src_qyba.manage.impl;
|
||||
|
||||
import com.seeyon.apps.collaboration.manager.ColManager;
|
||||
import com.seeyon.apps.collaboration.po.ColSummary;
|
||||
import com.seeyon.apps.collaboration.util.ColUtil;
|
||||
import com.seeyon.apps.src_qyba.manage.MultipleViewsPrintManager;
|
||||
import com.seeyon.apps.src_qyba.util.ArchiveDocUtils;
|
||||
import com.seeyon.cap4.form.api.FormApi4Cap4;
|
||||
import com.seeyon.cap4.form.bean.FormAuthViewBean;
|
||||
import com.seeyon.cap4.form.bean.FormBean;
|
||||
import com.seeyon.cap4.form.bean.FormViewBean;
|
||||
import com.seeyon.cap4.form.util.Enums;
|
||||
import com.seeyon.ctp.cap.api.manager.CAPFormManager;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.ModuleType;
|
||||
import com.seeyon.ctp.common.SystemEnvironment;
|
||||
import com.seeyon.ctp.common.content.mainbody.MainbodyManager;
|
||||
import com.seeyon.ctp.common.content.mainbody.MainbodyType;
|
||||
import com.seeyon.ctp.common.log.CtpLogFactory;
|
||||
import com.seeyon.ctp.common.po.affair.CtpAffair;
|
||||
import com.seeyon.ctp.common.po.content.CtpContentAll;
|
||||
import com.seeyon.ctp.util.ParamUtil;
|
||||
import com.seeyon.ctp.util.Strings;
|
||||
import com.seeyon.ctp.util.annotation.AjaxAccess;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class MultipleViewsPrintManagerImpl implements MultipleViewsPrintManager {
|
||||
private static Log log = CtpLogFactory.getLog(MultipleViewsPrintManagerImpl.class);
|
||||
private static FormApi4Cap4 formApi4Cap4 = (FormApi4Cap4) AppContext.getBean("formApi4Cap4");
|
||||
private ColManager colManager = (ColManager) AppContext.getBean("colManager");
|
||||
private MainbodyManager ctpMainbodyManager = (MainbodyManager) AppContext.getBean("ctpMainbodyManager");;
|
||||
private static CAPFormManager capFormManager = (CAPFormManager) AppContext.getBean("capFormManager");
|
||||
|
||||
@AjaxAccess
|
||||
public Map<String, Object> print(Map<String, Object> params,List<Map<String,String>> approvalOpinions,String flowName) throws Exception {
|
||||
Map<String, Object> result = new HashMap<String, Object>();
|
||||
result.put("success", true);
|
||||
Long formId = ParamUtil.getLong(params, "formId", null);
|
||||
Long affairId = ParamUtil.getLong(params, "affairId", null);
|
||||
Long summaryId = ParamUtil.getLong(params, "summaryId", null);
|
||||
String rightId = ParamUtil.getString(params, "rightId");
|
||||
FormBean formBean = formApi4Cap4.getForm(formId);
|
||||
if (Strings.isNotBlank(rightId)) {
|
||||
// 适配这种格式(视图id.权限id_视图id.权限id_视图id.权限id)
|
||||
List<FormAuthViewBean> formAuthViewBeans = new ArrayList<>();
|
||||
if (rightId.contains("_") || rightId.contains(".")) {
|
||||
String[] viewStrs = rightId.split("_");
|
||||
for (String viewStr : viewStrs) {
|
||||
String rightIdStr = viewStr.contains(".") ? viewStr.split("\\.")[1].split("[|]")[0]
|
||||
: viewStr.split("[|]")[0];
|
||||
FormAuthViewBean formAuthViewBean = formBean.getAuthViewBeanById(Long.parseLong(rightIdStr));
|
||||
if (formAuthViewBean == null) {
|
||||
continue;
|
||||
}
|
||||
if (formAuthViewBean.getFormViewId() == 0L && viewStr.contains(".")) {
|
||||
String valueStr = viewStr.split("\\.")[0].split("[|]")[0];
|
||||
formAuthViewBean.setFormViewId(Long.parseLong(valueStr));
|
||||
}
|
||||
formAuthViewBeans.add(formAuthViewBean);
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(formAuthViewBeans)) {
|
||||
List<String> fileUrlList = new ArrayList<String>();
|
||||
for (FormAuthViewBean formAuthViewBean : formAuthViewBeans) {
|
||||
String rightIdStr = String.valueOf(formAuthViewBean.getId());
|
||||
// 此处不需要多语言视图,只需要获取名称
|
||||
FormViewBean formViewBean = formBean.getFormView(formAuthViewBean.getFormViewId());
|
||||
if (Enums.ViewType.SeeyonForm == formViewBean.getFormViewTypeEnum()) {
|
||||
Map<String, Object> param = new HashMap<>();
|
||||
param.put("rightId", rightIdStr);
|
||||
param.put("affairId", affairId);
|
||||
param.put("fileName",flowName);
|
||||
param.put("formId", formId);
|
||||
|
||||
String fileUrl = screenCaptureViewInfo(param,approvalOpinions);
|
||||
if (StringUtils.isNotEmpty(fileUrl)) {
|
||||
result.put(formViewBean.getFormViewName(),fileUrl);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取各个视图截屏数据
|
||||
*
|
||||
* @param param
|
||||
*/
|
||||
private String screenCaptureViewInfo(Map<String, Object> param,List<Map<String,String>> approvalOpinions) {
|
||||
try {
|
||||
String bodyContent = "";
|
||||
StringBuffer formContent = new StringBuffer(
|
||||
"<html> <head> <meta charset=\"UTF-8\"> <title>表单</title> </head> <body style=\"text-align:center;\">");
|
||||
Long affairId = ParamUtil.getLong(param, "affairId");
|
||||
Long rightId = ParamUtil.getLong(param, "rightId");
|
||||
Long formId = ParamUtil.getLong(param, "formId");
|
||||
CtpAffair affair = colManager.getAffairById(affairId);
|
||||
ColSummary summary = colManager.getColSummaryById(affair.getObjectId());
|
||||
// 将_rightId加入缓存中
|
||||
formApi4Cap4.addRightId(formId, rightId);
|
||||
|
||||
List<CtpContentAll> contentList = ctpMainbodyManager
|
||||
.getContentListByModuleIdAndModuleType(ModuleType.collaboration, summary.getId());
|
||||
CtpContentAll ctpContent = contentList.get(0);
|
||||
String bodyType = summary.getBodyType();
|
||||
|
||||
boolean isFormCap4 = formApi4Cap4.isCap4Form(formId);
|
||||
if (ColUtil.isForm(bodyType) || isFormCap4) {
|
||||
|
||||
bodyContent = capFormManager.getFormDataHtmlForForward(ctpContent.getContentTemplateId(),
|
||||
ctpContent.getModuleType(), ctpContent.getModuleId(), String.valueOf(rightId));
|
||||
} else if (String.valueOf(MainbodyType.HTML.getKey()).equals(bodyType)) {
|
||||
bodyContent = ctpContent.getContent();
|
||||
}
|
||||
formContent.append(bodyContent);
|
||||
// 在此处添加审批意见信息
|
||||
if(approvalOpinions.size()>0){
|
||||
formContent.append("</br><table>");
|
||||
for (Map<String,String> approvalOpinion : approvalOpinions){
|
||||
formContent.append("<tr>");
|
||||
formContent.append("<td style=\"width: 15%;font-size:22px;\">").append(approvalOpinion.get("memberName")).append("</td>");
|
||||
formContent.append("<td style=\"width: 15%;font-size:22px;\">").append(approvalOpinion.get("memberPost")).append("</td>");
|
||||
formContent.append("<td style=\"width: 25%;font-size:22px;\">").append(approvalOpinion.get("createDate")).append("</td>");
|
||||
formContent.append("<td style=\"width: 45%;font-size:22px;\">").append(approvalOpinion.get("content")).append("</td>");
|
||||
formContent.append("</tr>");
|
||||
}
|
||||
formContent.append("</table>");
|
||||
}
|
||||
formContent.append("</body></html>");
|
||||
|
||||
String htmlTempFolder = SystemEnvironment.getSystemTempFolder() + File.separator + affairId + File.separator
|
||||
+ rightId + ".html";
|
||||
File formFile = new File(htmlTempFolder);
|
||||
FileUtils.writeStringToFile(formFile, formContent.toString(), "UTF-8");
|
||||
String pdfTempFolder = SystemEnvironment.getApplicationFolder()+ File.separator+ "multipleViewsPrint" + File.separator + param.get("fileName") + ".pdf";
|
||||
String mergePdfPath = SystemEnvironment.getApplicationFolder()+ File.separator+ "multipleViewsPrint" ;
|
||||
File mergePdfFile = new File(mergePdfPath);
|
||||
if(!mergePdfFile.exists()) {
|
||||
mergePdfFile.mkdirs();
|
||||
}
|
||||
if (!ArchiveDocUtils.transHtmlToPdf(htmlTempFolder, pdfTempFolder)) {
|
||||
throw new Exception("html转PDF失败");
|
||||
}
|
||||
return pdfTempFolder;
|
||||
} catch (Exception e) {
|
||||
log.error("获取cap4表单页面数据异常:", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -56,6 +56,12 @@ public class FVTongyongService {
|
||||
sfxwtsmap.put("fieldValue","1");
|
||||
}
|
||||
mainlist.add(sfxwtsmap);
|
||||
// 客户服务平台,意见说明
|
||||
Map yjsmmap = new HashMap();
|
||||
yjsmmap.put("fieldName","yjsm");
|
||||
String yjsm = formDataVo.getFieldData("备注").getStringValue();
|
||||
yjsmmap.put("fieldValue",yjsm);
|
||||
mainlist.add(yjsmmap);
|
||||
|
||||
//接口主参数
|
||||
Map m = new LinkedHashMap();
|
||||
|
||||
76
src/com/seeyon/apps/src_qyba/util/ArchiveDocUtils.java
Normal file
76
src/com/seeyon/apps/src_qyba/util/ArchiveDocUtils.java
Normal file
@@ -0,0 +1,76 @@
|
||||
package com.seeyon.apps.src_qyba.util;
|
||||
|
||||
import com.seeyon.ctp.common.SystemEnvironment;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
public class ArchiveDocUtils {
|
||||
private static final Log LOGGER = LogFactory.getLog(ArchiveDocUtils.class);
|
||||
|
||||
public static boolean transHtmlToPdf(String htmlFilePath, String pdfFilePath) {
|
||||
// String wkhtmltopdfToolPath = AppContext.getSystemProperty("multipleViewsPrint.wkhtmltopdf");
|
||||
String wkhtmltopdfToolPath = SystemEnvironment.getApplicationFolder()+File.separator + "print" + File.separator + "tools" + File.separator + "windows" + File.separator + "wkhtmltopdf.exe";
|
||||
|
||||
LOGGER.info("将html文单转换为PDF文单:" + wkhtmltopdfToolPath);
|
||||
try {
|
||||
if (StringUtils.isNotBlank(wkhtmltopdfToolPath)) {
|
||||
File file = new File(htmlFilePath);
|
||||
if (!file.exists()) {
|
||||
LOGGER.info("PDF转换源文件不存在:" + htmlFilePath);
|
||||
return false;
|
||||
}
|
||||
// html 转 pdf 工具 不同操作系统运行不同的命令
|
||||
String command = "";
|
||||
if (System.getProperty("os.name").startsWith("Windows")) {
|
||||
|
||||
// if("2".equals(rotate)){
|
||||
// command = wkhtmltopdfToolPath + " --enable-local-file-access --page-height 210mm --page-width 297mm " + htmlFilePath + " " + pdfFilePath;
|
||||
// }else{
|
||||
command = wkhtmltopdfToolPath + " --enable-local-file-access " + htmlFilePath + " " + pdfFilePath;
|
||||
// }
|
||||
} else if (System.getProperty("os.name").startsWith("Linux")) {
|
||||
command = "wkhtmltopdf " + htmlFilePath + " " + pdfFilePath;
|
||||
}
|
||||
LOGGER.info("将html文单转换为PDF文单命令:" + command);
|
||||
Process process = Runtime.getRuntime().exec(command);
|
||||
new StreamGobbler(process.getInputStream(), "input").start();
|
||||
new StreamGobbler(process.getErrorStream(), "error").start();
|
||||
if (process.waitFor() == 0) {
|
||||
LOGGER.info("转PDF成功:" + pdfFilePath);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("文单转PDF异常:", e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
static class StreamGobbler extends Thread {
|
||||
|
||||
InputStream is;
|
||||
|
||||
String type;
|
||||
|
||||
StreamGobbler(InputStream is, String type) {
|
||||
this.is = is;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
InputStreamReader isr = new InputStreamReader(is);
|
||||
BufferedReader br = new BufferedReader(isr);
|
||||
String line = null;
|
||||
while ((line = br.readLine()) != null)
|
||||
System.out.println(type + ">" + line);
|
||||
isr.close();
|
||||
} catch (IOException ioe) {
|
||||
ioe.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
package com.seeyon.ctp.rest.resources;
|
||||
|
||||
|
||||
import cn.hutool.log.Log;
|
||||
import com.seeyon.apps.collaboration.manager.ColManager;
|
||||
import com.seeyon.apps.collaboration.po.ColSummary;
|
||||
import com.seeyon.apps.doc.api.DocApi;
|
||||
import com.seeyon.apps.doc.bo.DocResourceBO;
|
||||
import com.seeyon.apps.src_qyba.dao.ISrcBeianDao;
|
||||
import com.seeyon.apps.src_qyba.manage.impl.MultipleViewsPrintManagerImpl;
|
||||
import com.seeyon.ctp.common.AppContext;
|
||||
import com.seeyon.ctp.common.ModuleType;
|
||||
import com.seeyon.ctp.common.affair.manager.AffairManager;
|
||||
import com.seeyon.ctp.common.content.ContentUtil;
|
||||
import com.seeyon.ctp.common.content.comment.Comment;
|
||||
import com.seeyon.ctp.common.content.comment.CommentManager;
|
||||
import com.seeyon.ctp.common.po.affair.CtpAffair;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgMember;
|
||||
import com.seeyon.ctp.organization.bo.V3xOrgPost;
|
||||
import com.seeyon.ctp.organization.manager.OrgManager;
|
||||
|
||||
import javax.ws.rs.Consumes;
|
||||
import javax.ws.rs.POST;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author huangzhengguo:
|
||||
* @version 创建时间:2025年04月16日
|
||||
* 类说明 根据接收消息新增或者修改组织架构信息
|
||||
*/
|
||||
@Path("/beian")
|
||||
@Produces({"application/json", "application/xml"})
|
||||
public class TemporaryBeianSynchronizationResource extends BaseResource{
|
||||
|
||||
private static final Log log = Log.get(TemporaryBeianSynchronizationResource.class);
|
||||
|
||||
private DocApi docApi;
|
||||
public DocApi getDocApi() {
|
||||
if (this.docApi == null) {this.docApi = ((DocApi) AppContext.getBean("docApi"));}return docApi;
|
||||
}
|
||||
public void setDocApi(DocApi docApi) {
|
||||
this.docApi = docApi;
|
||||
}
|
||||
|
||||
private ISrcBeianDao srcBeianDao;
|
||||
public ISrcBeianDao getSrcBeianDao() {
|
||||
if (this.srcBeianDao == null) {this.srcBeianDao = ((ISrcBeianDao) AppContext.getBean("srcBeianDao"));}return srcBeianDao;
|
||||
}
|
||||
public void setSrcBeianDao(ISrcBeianDao srcBeianDao) {
|
||||
this.srcBeianDao = srcBeianDao;
|
||||
}
|
||||
|
||||
private AffairManager affairManager;
|
||||
public AffairManager getAffairManager() {
|
||||
if (this.affairManager == null) {this.affairManager = ((AffairManager) AppContext.getBean("affairManager"));}return affairManager;
|
||||
}
|
||||
public void setAffairManager(AffairManager srcBeianDao) {
|
||||
this.affairManager = affairManager;
|
||||
}
|
||||
|
||||
private ColManager colManager;
|
||||
public ColManager getColManager() {
|
||||
if (this.colManager == null) {this.colManager = ((ColManager) AppContext.getBean("colManager"));}return colManager;
|
||||
}
|
||||
public void setColManager(ColManager colManager) {
|
||||
this.colManager = colManager;
|
||||
}
|
||||
|
||||
private MultipleViewsPrintManagerImpl multipleViewsPrintManager;
|
||||
public MultipleViewsPrintManagerImpl getMultipleViewsPrintManager() {
|
||||
if (this.multipleViewsPrintManager == null) {this.multipleViewsPrintManager = ((MultipleViewsPrintManagerImpl) AppContext.getBean("multipleViewsPrintManager"));}return multipleViewsPrintManager;
|
||||
}
|
||||
public void setMultipleViewsPrintManager(
|
||||
MultipleViewsPrintManagerImpl multipleViewsPrintManager) {
|
||||
multipleViewsPrintManager = multipleViewsPrintManager;
|
||||
}
|
||||
|
||||
private CommentManager ctpCommentManager;
|
||||
public CommentManager getCommentManager() {
|
||||
if (this.ctpCommentManager == null) {this.ctpCommentManager = ((CommentManager) AppContext.getBean("ctpCommentManager"));}return ctpCommentManager;
|
||||
}
|
||||
public void setCommentManager(CommentManager ctpCommentManager) {
|
||||
this.ctpCommentManager = ctpCommentManager;
|
||||
}
|
||||
|
||||
private OrgManager orgManager;
|
||||
public OrgManager getOrgManager() {
|
||||
if (this.orgManager == null) {this.orgManager = ((OrgManager) AppContext.getBean("orgManager"));}return orgManager;
|
||||
}
|
||||
public void setOrgManager(OrgManager orgManager) {
|
||||
this.orgManager = orgManager;
|
||||
}
|
||||
|
||||
@POST
|
||||
@Path("/synchronizationbeian")
|
||||
@Produces({"application/json"})
|
||||
@Consumes({"application/json"})
|
||||
public Response synchronizationbeian(){
|
||||
try{
|
||||
// 查询数据库,查询出来某个文件夹在的所有文档信息,遍历查询到的所有ID,调用方法查询出来本地文档中心对象
|
||||
List<Long> ids = getSrcBeianDao().getdocResources();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
List<DocResourceBO> docResources = getDocApi().findDocResources(ids);
|
||||
for (int i = 0 ; i <docResources.size() ; i++ ){
|
||||
// 查询当前的流程ID。
|
||||
DocResourceBO docResource = docResources.get(i);
|
||||
// 根据流程ID查询事项
|
||||
CtpAffair ctpAffair = getAffairManager().get(docResource.getSourceId());
|
||||
// 通过截图方法将表单数据生成成为图片
|
||||
long colSummarId = ctpAffair.getObjectId();
|
||||
ColSummary summary = getColManager().getSummaryById(colSummarId);
|
||||
// log.info("formId:"+formId);
|
||||
log.info("affairId:"+ctpAffair.getId());
|
||||
log.info("summaryId:"+colSummarId);
|
||||
log.info("formId:"+summary.getFormid());
|
||||
String rightId = ContentUtil.findRightIdbyAffairIdOrTemplateId(ctpAffair, summary.getTempleteId());
|
||||
log.info("rightId:"+rightId);
|
||||
Map<String, Object> params = new HashMap<String, Object>();
|
||||
params.put("formId", summary.getFormid());
|
||||
params.put("affairId", ctpAffair.getId());
|
||||
params.put("rightId", rightId);
|
||||
params.put("summaryId", colSummarId);
|
||||
// 查询当前流程的审批信息,将审批信息保存和图片共同保存生成PDF文件
|
||||
List<Map<String,String>> approvalOpinions = new ArrayList<>();
|
||||
List<Comment> ctpCommentAlls = getCommentManager().getCommentAllByModuleId(ModuleType.collaboration,colSummarId); ;
|
||||
for(Comment comment: ctpCommentAlls){
|
||||
Map<String,String> approvalOpinion = new HashMap<>();
|
||||
String content = comment.getContent();
|
||||
approvalOpinion.put("content",content);
|
||||
Date createDate = comment.getCreateDate();
|
||||
approvalOpinion.put("createDate",sdf.format(createDate));
|
||||
// String moduleId = comment.getModuleId().toString();
|
||||
long createId = comment.getCreateId();
|
||||
V3xOrgMember member = getOrgManager().getMemberById(createId);
|
||||
approvalOpinion.put("memberName",member.getName());
|
||||
V3xOrgPost memberPost = getOrgManager().getPostById(member.getOrgPostId());
|
||||
approvalOpinion.put("memberPost",memberPost.getName());
|
||||
approvalOpinions.add(approvalOpinion);
|
||||
}
|
||||
Map<String, Object> result = getMultipleViewsPrintManager().print(params,approvalOpinions,ctpAffair.getSubject());
|
||||
// 上传pdf文件到流程平台。并且调用文档中心文档创建接口。生成文档中心备案数据。
|
||||
// for (Map.Entry<String, Object> entry : result.entrySet()) {
|
||||
// String path = entry.getValue().toString();
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
System.out.println(docResource.getId());
|
||||
}
|
||||
return success("1");
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return fail(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user