流程发布表单保存时保存文件类型到主表

This commit is contained in:
lihongyu 2023-01-09 00:35:04 +08:00
parent be52bcd966
commit d83318f519
3 changed files with 82 additions and 66 deletions

View File

@ -51,75 +51,12 @@ public class ApplyTasAfterkComplete extends ExecuteListener implements ExecuteLi
ProcessStatusAPIManager.getInstance().batchUpdateApprovalStatus(ctx.getTaskInstance().getProcessInstId(), true); ProcessStatusAPIManager.getInstance().batchUpdateApprovalStatus(ctx.getTaskInstance().getProcessInstId(), true);
//任务提交后重新生成手册 //任务提交后重新生成手册
List<BO> bolistN = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(processInstId).list(); List<BO> bolistN = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(processInstId).list();
ArrayList<String> arr = new ArrayList<String>();
if(bolistN.size()>0) {
for (BO bo : bolistN) {
try {
typeList(arr, bo.getString("PUBLISHFILEID"));
} catch (Exception e) {
// TODO: handle exception
}
}
}
List<BO> bolistC = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(processInstId).list(); List<BO> bolistC = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(processInstId).list();
if(bolistC.size()>0) { //List<BO> bolistS = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_S).bindId(processInstId).list();
for (BO bo : bolistC) {
try {
typeList(arr, bo.getString("CHANGEDFILEIDNEW"));
} catch (Exception e) {
// TODO: handle exception
}
}
}
List<BO> bolistS = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_S).bindId(processInstId).list();
if(bolistS.size()>0) {
for (BO bo : bolistS) {
try {
typeList(arr, bo.getString("STOPFILEID"));
} catch (Exception e) {
// TODO: handle exception
}
}
}
//保存发布文件的类型到主表
if((arr.contains("表单模板")||arr.contains("操作指导"))&&!arr.contains("制度模型")&&!arr.contains("EPC模型")&&!arr.contains("泳道图")) {
SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "操作指导/表单模板");
}else {
SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "制度模型/EPC模型/泳道图");
}
Timestamp nowTime = new Timestamp(System.currentTimeMillis()); Timestamp nowTime = new Timestamp(System.currentTimeMillis());
BO bo = SDK.getBOAPI().query(PublisherConstant.BOTABLENAME).detailByBindId(processInstId); BO bo = SDK.getBOAPI().query(PublisherConstant.BOTABLENAME).detailByBindId(processInstId);
updateEffectiveDateProperty(processInstId, bo, nowTime, bolistN, bolistC); updateEffectiveDateProperty(processInstId, bo, nowTime, bolistN, bolistC);
} }
public ArrayList<String> typeList(ArrayList<String> arr,String plId){
String sql = "SELECT PLMETHODID,EXT3 FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '"+plId+"'";
RowMap map = DBSql.getMap(sql);
if(map!=null) {
String methodId = map.getString("PLMETHODID");
if("control.policy".equals(methodId)) {
String fileType = map.getString("EXT3");
if("I/O_L4".equals(fileType)) {
arr.add("操作指导");
}else {
arr.add("制度模型");
}
}else if("data.form".equals(methodId)) {
arr.add("表单模板");
}else if("process.epc".equals(methodId)) {
arr.add("EPC模型");
}else if("process.flowchart".equals(methodId)) {
arr.add("泳道图");
}
}
return arr;
}
private void updateEffectiveDateProperty(String processInstId, BO bo, Timestamp publishDate, List<BO> bolistN, List<BO> bolistC) { private void updateEffectiveDateProperty(String processInstId, BO bo, Timestamp publishDate, List<BO> bolistN, List<BO> bolistC) {
// 对epc表单制度图进行生效日期更新和手册重新生成 // 对epc表单制度图进行生效日期更新和手册重新生成
// epc:process.epc effective_date // epc:process.epc effective_date

View File

@ -5,11 +5,14 @@ import java.util.List;
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache; import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel; import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
import com.actionsoft.apps.coe.pal.publisher.constant.PublisherConstant;
import com.actionsoft.bpms.bo.engine.BO; import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext; import com.actionsoft.bpms.bpmn.engine.core.delegate.ProcessExecutionContext;
import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener; import com.actionsoft.bpms.bpmn.engine.listener.ExecuteListener;
import com.actionsoft.bpms.bpmn.engine.listener.ListenerConst; import com.actionsoft.bpms.bpmn.engine.listener.ListenerConst;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.TaskInstance; import com.actionsoft.bpms.bpmn.engine.model.run.delegate.TaskInstance;
import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.bpms.util.UUIDGener; import com.actionsoft.bpms.util.UUIDGener;
import com.actionsoft.sdk.local.SDK; import com.actionsoft.sdk.local.SDK;
import com.actionsoft.sdk.local.api.BOQueryAPI; import com.actionsoft.sdk.local.api.BOQueryAPI;
@ -29,6 +32,7 @@ public class SubFormAfterSave extends ExecuteListener {
} }
public void execute(ProcessExecutionContext param) throws Exception { public void execute(ProcessExecutionContext param) throws Exception {
String processInstId = param.getProcessInstance().getId();
//记录ID //记录ID
String boId = param.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BOID); String boId = param.getParameterOfString(ListenerConst.FORM_EVENT_PARAM_BOID);
//表单ID //表单ID
@ -110,15 +114,90 @@ public class SubFormAfterSave extends ExecuteListener {
} }
} }
} }
SDK.getBOAPI().create(boName, boList, bindId, uid); SDK.getBOAPI().create(boName, boList, bindId, uid);
// 该记录是否新建的状态由于机制调整BO对象中的ID是不为空的不能通过ID判断记录是否处于新建状态还是修改状态 // 该记录是否新建的状态由于机制调整BO对象中的ID是不为空的不能通过ID判断记录是否处于新建状态还是修改状态
boolean isCreate = param.getParameterOfBoolean(ListenerConst.FORM_EVENT_PARAM_ISCREATE); boolean isCreate = param.getParameterOfBoolean(ListenerConst.FORM_EVENT_PARAM_ISCREATE);
if (isCreate) { if (isCreate) {
SDK.getBOAPI().remove(boName, boId); SDK.getBOAPI().remove(boName, boId);
} }
//保存文件类型到主表
saveFileType(processInstId);
} }
} }
//保存文件类型到主表
saveFileType(processInstId);
} }
public String saveFileType(String processInstId) {
List<BO> bolistN = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_N).bindId(processInstId).list();
ArrayList<String> arr = new ArrayList<String>();
if(bolistN.size()>0) {
for (BO bo : bolistN) {
try {
typeList(arr, bo.getString("PUBLISHFILEID"));
} catch (Exception e) {
// TODO: handle exception
}
}
}
List<BO> bolistC = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_C).bindId(processInstId).list();
if(bolistC.size()>0) {
for (BO bo : bolistC) {
try {
typeList(arr, bo.getString("CHANGEDFILEIDNEW"));
} catch (Exception e) {
// TODO: handle exception
}
}
}
List<BO> bolistS = SDK.getBOAPI().query(PublisherConstant.BOSUBTABLE_S).bindId(processInstId).list();
if(bolistS.size()>0) {
for (BO bo : bolistS) {
try {
typeList(arr, bo.getString("STOPFILEID"));
} catch (Exception e) {
// TODO: handle exception
}
}
}
//保存发布文件的类型到主表
if((arr.contains("表单模板")||arr.contains("操作指导"))&&!arr.contains("制度模型")&&!arr.contains("EPC模型")&&!arr.contains("泳道图")) {
DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET RELEASE_THE_TITLE = '操作指导/表单模板' WHERE BINDID = '"+processInstId+"'");
//SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "操作指导/表单模板");
}else {
DBSql.update("UPDATE BO_ACT_COE_PUBLISH SET RELEASE_THE_TITLE = '制度模型/EPC模型/泳道图' WHERE BINDID = '"+processInstId+"'");
//SDK.getBOAPI().updateByBindId("BO_ACT_COE_PUBLISH", processInstId, "RELEASE_THE_TITLE", "制度模型/EPC模型/泳道图");
}
return processInstId;
}
public ArrayList<String> typeList(ArrayList<String> arr,String plId){
String sql = "SELECT PLMETHODID,EXT3 FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID = '"+plId+"'";
RowMap map = DBSql.getMap(sql);
if(map!=null) {
String methodId = map.getString("PLMETHODID");
if("control.policy".equals(methodId)) {
String fileType = map.getString("EXT3");
if("I/O_L4".equals(fileType)) {
arr.add("操作指导");
}else {
arr.add("制度模型");
}
}else if("data.form".equals(methodId)) {
arr.add("表单模板");
}else if("process.epc".equals(methodId)) {
arr.add("EPC模型");
}else if("process.flowchart".equals(methodId)) {
arr.add("泳道图");
}
}
return arr;
}
} }

View File

@ -1430,7 +1430,7 @@ public class ProcessEndAfterEvent extends ExecuteListener implements ExecuteList
String sql_n = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid + "'"; String sql_n = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid + "'";
RowMap map = DBSql.getMap(sql_n); RowMap map = DBSql.getMap(sql_n);
PALRepositoryModel palRepositoryModel = PALRepositoryCache.getCache().get(publishfileid); PALRepositoryModel palRepositoryModel = PALRepositoryCache.getCache().get(publishfileid);
jsonObject_ehsq.put("version", palRepositoryModel.getVersion()+""); jsonObject_ehsq.put("version", "V"+palRepositoryModel.getVersion()+"");
jsonObject_ehsq.put("releasedate", simpleDateFormat.format(new Date())); jsonObject_ehsq.put("releasedate", simpleDateFormat.format(new Date()));
jsonObject_ehsq.put("effectivedate", simpleDateFormat.format(new Date())); jsonObject_ehsq.put("effectivedate", simpleDateFormat.format(new Date()));
jsonObject_ehsq.put("authorcode", processExecutionContext.getTaskInstance().getTarget()); // jsonObject_ehsq.put("authorcode","00116465"); jsonObject_ehsq.put("authorcode", processExecutionContext.getTaskInstance().getTarget()); // jsonObject_ehsq.put("authorcode","00116465");
@ -1538,7 +1538,7 @@ public class ProcessEndAfterEvent extends ExecuteListener implements ExecuteList
String sql_n = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid + "'"; String sql_n = "select * from APP_ACT_COE_PAL_REPOSITORY where id = '" + publishfileid + "'";
RowMap map = DBSql.getMap(sql_n); RowMap map = DBSql.getMap(sql_n);
PALRepositoryModel palRepositoryModel = PALRepositoryCache.getCache().get(publishfileid); PALRepositoryModel palRepositoryModel = PALRepositoryCache.getCache().get(publishfileid);
jsonObject_ehsq.put("version", palRepositoryModel.getVersion()+""); jsonObject_ehsq.put("version", "V"+palRepositoryModel.getVersion()+"");
jsonObject_ehsq.put("releasedate", simpleDateFormat.format(new Date())); jsonObject_ehsq.put("releasedate", simpleDateFormat.format(new Date()));
jsonObject_ehsq.put("effectivedate", simpleDateFormat.format(new Date())); jsonObject_ehsq.put("effectivedate", simpleDateFormat.format(new Date()));
jsonObject_ehsq.put("authorcode", processExecutionContext.getTaskInstance().getTarget()); jsonObject_ehsq.put("authorcode", processExecutionContext.getTaskInstance().getTarget());