2026-06-14代码初始提交
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
package com.seeyon.apps.src_edocInspection;
|
||||||
|
|
||||||
|
import com.seeyon.apps.common.plugin.api.APluginInfoApi;
|
||||||
|
import com.seeyon.apps.common.plugin.vo.ConfigVo;
|
||||||
|
import com.seeyon.apps.ydctu8c.constants.U8cConstants;
|
||||||
|
|
||||||
|
|
||||||
|
public class EdocInspectionPluginApi extends APluginInfoApi {
|
||||||
|
public EdocInspectionPluginApi() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPluginId() {
|
||||||
|
System.out.println(U8cConstants.getPluginId());
|
||||||
|
return U8cConstants.getPluginId();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCreateUser() {
|
||||||
|
return "橙阳科技";
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return "公文督办管理";
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigVo getDefaultConfig() {
|
||||||
|
ConfigVo configVo = new ConfigVo();
|
||||||
|
U8cConstants[] var2 = U8cConstants.values();
|
||||||
|
int var3 = var2.length;
|
||||||
|
|
||||||
|
for(int var4 = 0; var4 < var3; ++var4) {
|
||||||
|
U8cConstants value = var2[var4];
|
||||||
|
if (value != U8cConstants.plugin) {
|
||||||
|
configVo.getDevParams().put(value.name(), value.getDefaultValue());
|
||||||
|
configVo.getProdParams().put(value.name(), value.getDefaultValue());
|
||||||
|
configVo.getParamMap().put(value.name(), value.getDescription());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return configVo;
|
||||||
|
}
|
||||||
|
|
||||||
|
// public void registerCustomEvent(Map eventAndNodes) {
|
||||||
|
// eventAndNodes.put("propertyDispose", "资产管理待办推送");
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.seeyon.apps.src_edocInspection.constants;
|
||||||
|
|
||||||
|
public enum EdocInspectionConstants {
|
||||||
|
|
||||||
|
|
||||||
|
plugin("src_edocInspection","插件ID"),
|
||||||
|
loginName("","流程创建人名称"),
|
||||||
|
formCode("","流程模板编号")
|
||||||
|
;
|
||||||
|
EdocInspectionConstants(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,126 @@
|
|||||||
|
package com.seeyon.apps.src_edocInspection.event;
|
||||||
|
|
||||||
|
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.event.ACommonWorkflowEvent;
|
||||||
|
import com.seeyon.apps.ext.workflow.vo.FormDataVo;
|
||||||
|
import com.seeyon.apps.ext.workflow.vo.WorkflowEventContext;
|
||||||
|
import com.seeyon.apps.src_edocInspection.constants.EdocInspectionConstants;
|
||||||
|
import com.seeyon.apps.src_edocInspection.util.FormExportUtil;
|
||||||
|
import com.seeyon.cap4.form.bean.FormDataMasterBean;
|
||||||
|
import com.seeyon.ctp.common.AppContext;
|
||||||
|
import com.seeyon.ctp.services.ServiceException;
|
||||||
|
import com.seeyon.ctp.util.annotation.Inject;
|
||||||
|
import com.seeyon.v3x.services.form.FormFactory;
|
||||||
|
import com.seeyon.v3x.services.form.bean.FormExport;
|
||||||
|
import com.seeyon.v3x.services.form.bean.SubordinateFormExport;
|
||||||
|
import com.seeyon.v3x.services.form.bean.ValueExport;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class EdocInspectionEvent extends ACommonWorkflowEvent {
|
||||||
|
|
||||||
|
protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi");
|
||||||
|
|
||||||
|
public ConfigVo getHxinvoiceConfig() {
|
||||||
|
return cstConfigApi.getConfig(getPluginId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getId() {
|
||||||
|
return "edocInspectionEvent";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getLabel() {
|
||||||
|
return "公文督办流程创建提交前监听";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginId() {
|
||||||
|
return EdocInspectionConstants.getPluginId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getFormParse() {
|
||||||
|
return "json";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WorkFlowType[] getTypes() {
|
||||||
|
return new WorkFlowType[] { WorkFlowType.onBeforeFinishWorkItem };
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private FormFactory formFactory;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected WorkflowEventContext proceed(String request, FormDataVo formDataVo, WorkFlowType workFlowType, FormDataMasterBean formDataMasterBean) {
|
||||||
|
WorkflowEventContext context = new WorkflowEventContext();
|
||||||
|
ConfigVo configVo = getHxinvoiceConfig();
|
||||||
|
FormExportUtil formExportUtil = new FormExportUtil();
|
||||||
|
// 获取参数信息,解读枚举字段是否为推送流程
|
||||||
|
JSONObject req = JSONObject.parseObject(request);
|
||||||
|
String isPust = req.getString("isPust");
|
||||||
|
if("0".equals(isPust)){
|
||||||
|
context.setSuccess(true);
|
||||||
|
context.setErrMsg("不推送公文督办流程,跳过流程。");
|
||||||
|
return context;
|
||||||
|
}
|
||||||
|
// 解读data数据,json数据转流程数据
|
||||||
|
Map<String,Object> map = new HashMap<>();
|
||||||
|
List<List<Map<String, Object>>> allSubMapsList = new ArrayList<>();
|
||||||
|
// 解析JSON数据,区分主表字段和明细表字段
|
||||||
|
for (String key : req.keySet()) {
|
||||||
|
if ("ispust".equals(key)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Object value = req.get(key);
|
||||||
|
if (value instanceof JSONArray) {
|
||||||
|
JSONArray jsonArray = (JSONArray) value;
|
||||||
|
List<Map<String, Object>> subMaps = new ArrayList<>();
|
||||||
|
for (int i = 0; i < jsonArray.size(); i++) {
|
||||||
|
JSONObject item = jsonArray.getJSONObject(i);
|
||||||
|
Map<String, Object> subMap = new HashMap<>();
|
||||||
|
for (String subKey : item.keySet()) {
|
||||||
|
subMap.put(subKey, item.get(subKey));
|
||||||
|
}
|
||||||
|
subMaps.add(subMap);
|
||||||
|
}
|
||||||
|
allSubMapsList.add(subMaps);
|
||||||
|
} else {
|
||||||
|
map.put(key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 调用流程推送方法推送流程
|
||||||
|
FormExport formExport = new FormExport();
|
||||||
|
List<ValueExport> valueExports = formExportUtil.setFormValue(map);
|
||||||
|
List<SubordinateFormExport> subordinateFormExports = new ArrayList<>();
|
||||||
|
for (List<Map<String, Object>> subMaps : allSubMapsList) {
|
||||||
|
subordinateFormExports.addAll(formExportUtil.setSubordinateFormValue(subMaps));
|
||||||
|
}
|
||||||
|
formExport.setValues(valueExports);
|
||||||
|
formExport.setSubordinateForms(subordinateFormExports);
|
||||||
|
String loginName = configVo.getParamVal(EdocInspectionConstants.loginName.name());
|
||||||
|
String formCode = configVo.getParamVal(EdocInspectionConstants.formCode.name());
|
||||||
|
// 流程推送成功返回成功状态推送公文
|
||||||
|
try{
|
||||||
|
formFactory.importBusinessFormData(loginName, formCode,formExport, new String[] {});
|
||||||
|
context.setSuccess(true);
|
||||||
|
context.setErrMsg("公文督办流程创建成功");
|
||||||
|
} catch (ServiceException e) {
|
||||||
|
context.setSuccess(false);
|
||||||
|
context.setErrMsg("督办流程创建失败,请检查数据"+e);
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return context;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package com.seeyon.apps.src_edocInspection.util;
|
||||||
|
|
||||||
|
import com.seeyon.v3x.services.form.bean.RecordExport;
|
||||||
|
import com.seeyon.v3x.services.form.bean.SubordinateFormExport;
|
||||||
|
import com.seeyon.v3x.services.form.bean.ValueExport;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
//创建无流程表单数据处理工具类
|
||||||
|
public class FormExportUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置主表信息
|
||||||
|
* @param map 设置主表字段。Map<主表显示名称,主表数据>
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<ValueExport> setFormValue(Map<String, Object> map ){
|
||||||
|
// 创建返回值对象
|
||||||
|
List<ValueExport> valueExports = new ArrayList<ValueExport>();
|
||||||
|
ValueExport valueExport ;
|
||||||
|
// 获取参数信息(显示名称)
|
||||||
|
Set<String> keys = map.keySet();
|
||||||
|
if(keys.size()>0) {
|
||||||
|
// 对控件赋值
|
||||||
|
for (String key : keys) {
|
||||||
|
if(map.get(key) != null ){
|
||||||
|
valueExport = new ValueExport();
|
||||||
|
valueExport.setDisplayName(key);
|
||||||
|
valueExport.setValue(map.get(key).toString());
|
||||||
|
valueExports.add(valueExport);
|
||||||
|
}
|
||||||
|
// System.out.println(key+":"+map.get(key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return valueExports;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置从表信息
|
||||||
|
* @param lists 设置主表字段。List<Map<显示名称,数据值>>
|
||||||
|
*/
|
||||||
|
public List<SubordinateFormExport> setSubordinateFormValue(List<Map<String, Object>> lists){
|
||||||
|
List<SubordinateFormExport> subordinateFormExports = new ArrayList<SubordinateFormExport>();
|
||||||
|
SubordinateFormExport subordinateFormExport = new SubordinateFormExport();
|
||||||
|
List<RecordExport> recordExports = new ArrayList<RecordExport>();
|
||||||
|
List<ValueExport> valueExports;
|
||||||
|
RecordExport recordExport;
|
||||||
|
for(int i = 0 ; i < lists.size() ; i++) {
|
||||||
|
recordExport = new RecordExport();
|
||||||
|
valueExports = setFormValue(lists.get(i));
|
||||||
|
recordExport.setRecord(valueExports);
|
||||||
|
recordExports.add(recordExport);
|
||||||
|
}
|
||||||
|
subordinateFormExport.setValues(recordExports);
|
||||||
|
subordinateFormExports.add(subordinateFormExport);
|
||||||
|
|
||||||
|
return subordinateFormExports;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user