批量生成手册

This commit is contained in:
lihongyu 2022-10-18 14:21:48 +08:00
parent 432e000c40
commit 21f6bf8a5e
5 changed files with 549 additions and 121 deletions

View File

@ -9,6 +9,7 @@ import org.quartz.JobExecutionException;
import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryAPIManager;
import com.actionsoft.apps.coe.pal.pal.repository.PALRepositoryQueryAPIManager;
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
import com.actionsoft.apps.coe.pal.pal.repository.dao.CoeProcessLevelDaoFacotory;
import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepositoryPropertyDao;
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
import com.actionsoft.apps.coe.pal.pal.repository.util.CoeProcessLevelUtil;
@ -36,7 +37,7 @@ public class CreateOutputReportJob implements IJob {
String jobParameter = SDK.getJobAPI().getJobParameter(jobExecutionContext);
//CARA1();
CARA1();
/*
* System.err.println("本次共新增手册:" + createNum); System.err.println("本次共更新手册:" +
* updateNum);
@ -175,14 +176,15 @@ public class CreateOutputReportJob implements IJob {
}
//批量发布文件
public void CARA1() {
int updateNum = 0;
int createNum = 0;
UserContext _uc = UserContext.fromUID("admin");
ProcessInstance createProcessInstance = SDK.getProcessAPI().createProcessInstance("obj_7cb02971312c47febd508bdffa122614", "admin", "批量发布文件-");
TaskInstance taskInst = SDK.getProcessAPI().start(createProcessInstance).fetchActiveTasks().get(0);
String sql = "SELECT PLID,PLNAME FROM BO_EU_PAL_OUTPUTREPORT WHERE RESULT != '手册转换成功!'";
//String sql = "SELECT PLID,PLNAME FROM BO_EU_PAL_OUTPUTREPORT WHERE RESULT != '手册转换成功!'";
String sql = "SELECT PLNAME FROM BO_EU_PAL_PLFB ";
BO bo = new BO();
bo.set("OPTIONTYPE", "流程制度发布");
bo.set("PROCESS_TITLE", "文件发布_批量发布");
@ -192,24 +194,34 @@ public class CreateOutputReportJob implements IJob {
List<RowMap> maps = DBSql.getMaps(sql);
System.err.println("批量发布文件数量为:"+maps.size());
for (RowMap rowMap : maps) {
subBo = new BO();
String uuid = rowMap.getString("PLID");
subBo.set("PUBLISTHTYPE", "N");
subBo.set("PUBLISHFILENAME", rowMap.getString("PLNAME"));
subBo.set("PUBLISHDESC", "批量发布");
subBo.set("PUBLISHFILEID", uuid);
PALRepositoryModel model = PALRepositoryCache.getCache().get(uuid);
String sqly = "UPDATE BO_ACT_COE_PUBLISH_N SET PUBLISHDESC ='待删除' WHERE PUBLISHFILEID = '"+uuid+"'";
DBSql.update(sqly);
String taskId = "N";
try {
System.err.println("批量转换模型名称=========>"+rowMap.getString("PLNAME"));
taskId = createOutputReport(model, "7d3ca852-a0bd-42e6-80b1-3dcea6f55083", "admin","", uuid);
System.err.println("批量转换模型名称=========>"+rowMap.getString("PLNAME")+"===>"+taskId);
} catch (Exception e) {
String plname = rowMap.getString("PLNAME");
if(UtilString.isNotEmpty(plname)) {
PALRepositoryModel repositoryByName = getRepositoryByName("7d3ca852-a0bd-42e6-80b1-3dcea6f55083", plname);
//String sqls = "SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLNAME = '"+plname+"'";
//System.err.println("======sqls======="+sqls);
if(repositoryByName!=null) {
subBo = new BO();
//String uuid = rowMap.getString("PLID");
String uuid = repositoryByName.getId();
subBo.set("PUBLISTHTYPE", "N");
subBo.set("PUBLISHFILENAME", plname);
subBo.set("PUBLISHDESC", "批量发布");
subBo.set("PUBLISHFILEID", uuid);
PALRepositoryModel model = PALRepositoryCache.getCache().get(uuid);
String sqly = "UPDATE BO_ACT_COE_PUBLISH_N SET PUBLISHDESC ='待删除' WHERE PUBLISHFILEID = '"+uuid+"'";
DBSql.update(sqly);
String taskId = "N";
try {
System.err.println("批量转换模型名称=========>"+rowMap.getString("PLNAME"));
taskId = createOutputReport(model, "7d3ca852-a0bd-42e6-80b1-3dcea6f55083", "admin","", uuid);
System.err.println("批量转换模型名称=========>"+rowMap.getString("PLNAME")+"===>"+taskId);
} catch (Exception e) {
}
subBo.set("TASKID", taskId);
boList.add(subBo);
}
subBo.set("TASKID", taskId);
boList.add(subBo);
}
}
SDK.getBOAPI().create("BO_ACT_COE_PUBLISH_N", boList, createProcessInstance, _uc);
@ -250,6 +262,15 @@ public class CreateOutputReportJob implements IJob {
return taskId;
}
public static PALRepositoryModel getRepositoryByName(String wsId, String repositoryName) {
List<PALRepositoryModel> palRepositoryModels = CoeProcessLevelDaoFacotory.createCoeProcessLevel().getAllCoeProcessLevelByWsId(wsId);
for (PALRepositoryModel palRepositoryModel : palRepositoryModels) {
if (palRepositoryModel.getName().equals(repositoryName)&&palRepositoryModel.isUse()) {
return palRepositoryModel;
}
}
return null;
}
}

View File

@ -0,0 +1,146 @@
package com.actionsoft.apps.coe.pal.publisher.extend;
import java.util.List;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
import com.actionsoft.apps.coe.pal.pal.repository.designer.manage.CoeDesignerAPIManager;
import com.actionsoft.apps.coe.pal.pal.repository.designer.model.BaseModel;
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.schedule.IJob;
import com.actionsoft.bpms.server.UserContext;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.sdk.local.SDK;
import com.alibaba.fastjson.JSONObject;
import com.sun.org.apache.xalan.internal.xsltc.compiler.sym;
/**
* 批量修改文件发布状态
* @author Administrator
*
*/
public class CreateOutputReportJob2 implements IJob {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
int updateNum = 0;
int createNum = 0;
String sqls = "DELETE FROM BO_EU__PAL_NULL_L";
DBSql.update(sqls);
// String sql = "select ID from App_Act_Coe_Pal_Repository where PUBLISHDATE <
// to_date('2022/10/5 9:46:18 ','yyyy-mm-dd hh24:mi:ss')";
// String sql = "select ID from App_Act_Coe_Pal_Repository where PUBLISHDATE >
// '2022/7/5 9:46:18'";
String sql = "select ID from App_Act_Coe_Pal_Repository ";
// String sql = "select ID from App_Act_Coe_Pal_Repository where PLNAME =
// '测试文件测'";
List<RowMap> maps = DBSql.getMaps(sql);
for (RowMap rowMap : maps) {
String id = rowMap.getString("ID");
PALRepositoryModel model = PALRepositoryCache.getCache().get(id);
// 查询对应绩效模型中数据模型进行填充数据
/*
* String s = "SELECT * FROM BO_ACT_BATCH_PUBLIS_N WHERE PLNAME = '" +
* model.getName() + "'"; if (UtilString.isNotEmpty(DBSql.getString(s))) {
* String updataSql =
* "UPDATE App_Act_Coe_Pal_Repository SET ISPUBLISH = 0 , PUBLISHDATE = null WHERE ID = '"
* + id + "'"; updateNum += DBSql.update(updataSql);
* System.err.println("刷新为设计的模型:" + model.getName());
*
* }
*/
if (model != null) {
CoeDesignerAPIManager instance = CoeDesignerAPIManager.getInstance();
if (instance != null) {
BaseModel defineModel = null;
try {
defineModel = instance.getDefinition(id, 0);
} catch (Exception e) {
System.out.println("有问题的模型=====>" + model.getName());
}
if (null == defineModel) {
} else {
String define = defineModel.getDefinition();
JSONObject definition = JSONObject.parseObject(define);
JSONObject elements = definition.getJSONObject("elements");
if (elements.size() == 0) {
BO bo = new BO();
BO bo2 = new BO();
bo.set("PLNAME", model.getName());
PALRepositoryModel prmodel = PALRepositoryCache.getCache().get(model.getParentId());
if (prmodel != null) {
bo.set("FRAMEWORK", prmodel.getName());
bo2.set("FRAMEWORK", prmodel.getName());
}
bo.set("VERSION", model.getVersion());
bo2.set("VERSION", model.getVersion());
if(model.isPublish()) {
bo.set("ISPUBLISH","已发布");
bo2.set("ISPUBLISH","已发布");
}else {
bo.set("ISPUBLISH","未发布");
bo2.set("ISPUBLISH","未发布");
}
String methodId = model.getMethodId();
if (methodId.contains("data")) {
bo.set("TYPE", "表单");
bo2.set("TYPE", "表单");
createNum += SDK.getBOAPI().createDataBO("BO_EU__PAL_NULL_L", bo, UserContext.fromUID("admin"));
String sqlt ="UPDATE BO_EU_PAL_FILE1 SET FILESTATE = 0 WHERE PLNAME = '"+model.getName()+"'";
int a = DBSql.update(sqlt);
if(a!=0) {
System.err.println("刷新为设计的模型:" +model.getName());
updateNum += SDK.getBOAPI().createDataBO("BO_EU_PAL_FILE_NULL_L", bo2, UserContext.fromUID("admin"));
}
} else if (methodId.contains("control.policy")) {
bo.set("TYPE", "制度");
bo2.set("TYPE", "制度");
createNum += SDK.getBOAPI().createDataBO("BO_EU__PAL_NULL_L", bo, UserContext.fromUID("admin"));
String sqlt ="UPDATE BO_EU_PAL_FILE1 SET FILESTATE = 0 WHERE PLNAME = '"+model.getName()+"'";
int a = DBSql.update(sqlt);
if(a!=0) {
System.err.println("刷新为设计的模型:" +model.getName());
updateNum += SDK.getBOAPI().createDataBO("BO_EU_PAL_FILE_NULL_L", bo2, UserContext.fromUID("admin"));
}
} else if (methodId.contains("process")) {
bo.set("TYPE", "流程");
bo2.set("TYPE", "流程");
createNum += SDK.getBOAPI().createDataBO("BO_EU__PAL_NULL_L", bo, UserContext.fromUID("admin"));
String sqlt ="UPDATE BO_EU_PAL_FILE1 SET FILESTATE = 0 WHERE PLNAME = '"+model.getName()+"'";
int a = DBSql.update(sqlt);
if(a!=0) {
updateNum+=a;
System.err.println("刷新为设计的模型:" +model.getName());
}
}
/*
* String updataSql =
* "UPDATE App_Act_Coe_Pal_Repository SET ISPUBLISH = 0 , PUBLISHDATE = null WHERE ID = '"
* + id + "'"; DBSql.update(updataSql);
*/
}
}
}
}
}
System.err.println("更新文件表数量:" + updateNum);
System.err.println("本次共查询到的模型:" + createNum);
}
}

View File

@ -0,0 +1,271 @@
package com.actionsoft.apps.coe.pal.publisher.extend;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import com.actionsoft.apps.coe.pal.pal.repository.dao.PALRepositoryPropertyDao;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.ProcessInstance;
import com.actionsoft.bpms.bpmn.engine.model.run.delegate.TaskInstance;
import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.commons.mvc.view.ResponseObject;
import com.actionsoft.bpms.server.UserContext;
import com.actionsoft.bpms.server.bind.annotation.Controller;
import com.actionsoft.bpms.server.bind.annotation.Mapping;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.bpms.util.UUIDGener;
import com.actionsoft.bpms.util.UtilString;
import com.actionsoft.sdk.local.SDK;
import com.alibaba.fastjson.JSONObject;
import bsh.util.Util;
/*
* 新建流程
*/
@Controller
public class CreateProcessController {
@Mapping("com.awspaas.user.apps.xitongfankui.createProcess")
public JSONObject CheckUser(String sid,String processDefId) {
JSONObject result = new JSONObject();
UserContext uc = UserContext.fromSessionId(sid);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ProcessInstance processInst = SDK.getProcessAPI().createProcessInstance(processDefId, uc.getUID(), "流程管理平台问题反馈"+"-"+uc.getUserName()+"-"+df.format(new Date()));
TaskInstance taskInst = SDK.getProcessAPI().start(processInst).fetchActiveTasks().get(0);
String portalUrl = SDK.getPortalAPI().getPortalUrl();
String url = portalUrl + "/r/w?sid=" + uc.getSessionId()
+ "&cmd=CLIENT_BPM_FORM_MAIN_PAGE_OPEN&processInstId=" + processInst.getId() + "&taskInstId="
+ taskInst.getId() + "&openState=1&reloadedFile=1";
result.put("url",url);
return result;
}
// 批量移动文件架构
@Mapping("com.awspaas.user.apps.app.controller.movePalFile")
public ResponseObject move(String sid,String plname) {
ResponseObject ro = ResponseObject.newOkResponse();
System.err.println("开始移动文件=======>"+plname);
String sql = "SELECT * FROM BO_EU_PAL_FRAMEWORK_TOOL WHERE RESULT NOT LIKE '%成功%' ";
if(UtilString.isNotEmpty(plname)) {
sql = "SELECT * FROM BO_EU_PAL_FRAMEWORK_TOOL WHERE PALNAME ='"+plname+"'";
}
List<RowMap> maps = DBSql.getMaps(sql);
System.err.println("maps===>"+maps);
if(maps.size()>0) {
for (RowMap rowMap : maps) {
String plName = rowMap.getString("PALNAME");
String error = rowMap.getString("ERRORFRAMEWORK");
String right = rowMap.getString("CORRECTFRAMEWORK");
// 获取导入表的错误架构id
String sqlerror = "SELECT ID FROM App_Act_Coe_Pal_Repository WHERE PLNAME ='" + error + "'";
String maperrorId = DBSql.getString(sqlerror);
// 获取导入表的正确架构id
String sqlright = "SELECT ID FROM App_Act_Coe_Pal_Repository WHERE PLNAME ='" + right + "'";
String maprightId = DBSql.getString(sqlright);
// 获取文件id和父架构ID33
String sqlS = "SELECT ID,PLPARENTID FROM App_Act_Coe_Pal_Repository WHERE PLNAME ='" + plName + "'";
RowMap map = DBSql.getMap(sqlS);
String uuid = map.getString("ID");
String prId = map.getString("PLPARENTID");
// 获取文件库父架构名称
String sqlT = "SELECT PLNAME FROM App_Act_Coe_Pal_Repository WHERE ID ='" + prId + "'";
String prName = DBSql.getString(sqlT);
String prName3 = DBSql.getString(sqlT);
String substring = right.substring(right.lastIndexOf(".") + 2);
// 判断是否是导入表的错误架构
//
System.err.println("当前文件架构名=======>"+prName);
if (error.trim().equals(prName.trim())) {
String update = "UPDATE App_Act_Coe_Pal_Repository SET PLPARENTID = '" + maprightId + "' WHERE ID ='"
+ uuid + "'";
int update2 = DBSql.update(update);
PALRepositoryPropertyDao propertyDao = new PALRepositoryPropertyDao();
String name1 = right.substring(right.lastIndexOf(".") + 2).trim();
// 设置三级架构名称
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L3", name1);
// 设置二级架构名称
String sql2 = "SELECT PLPARENTID FROM App_Act_Coe_Pal_Repository WHERE ID ='" + maprightId + "'";
String prd2 = DBSql.getString(sql2);
String sqlp2 = "SELECT PLNAME,ID FROM App_Act_Coe_Pal_Repository WHERE ID ='" + prd2 + "'";
RowMap map2 = DBSql.getMap(sqlp2);
if (map2 != null) {
String uuid2 = map2.getString("ID");
String plName2 = map2.getString("PLNAME");
String name2 = plName2.substring(plName2.lastIndexOf(".") + 2).trim();
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L2", name2);
// 设置一级架构名称
String sql1 = "SELECT PLPARENTID FROM App_Act_Coe_Pal_Repository WHERE ID ='" + uuid2 + "'";
String prd1 = DBSql.getString(sql1);
String sqlp1 = "SELECT PLNAME,ID FROM App_Act_Coe_Pal_Repository WHERE ID ='" + prd1 + "'";
RowMap map1 = DBSql.getMap(sqlp1);
if (map1 != null) {
String uuid1 = map1.getString("ID");
String plName1 = map1.getString("PLNAME");
String name3 = plName1.substring(plName1.lastIndexOf(".") + 2).trim();
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L1", name3);
} else {
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L3", "/");
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L1", name2);
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L2", name1);
}
} else {
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L2", "/");
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L3", "/");
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L1", name1);
}
ro.put("result", "ok");
String result = "文件从【"+error+"】移动到【"+right+"】成功!";
String updateSql = "UPDATE BO_EU_PAL_FRAMEWORK_TOOL SET RESULT = '"+result+"',PAID = '"+uuid+"' WHERE PALNAME = '"+plName+"'";
DBSql.update(updateSql);
}else {
ro.put("result", "error");
String updateSql = "UPDATE BO_EU_PAL_FRAMEWORK_TOOL SET RESULT ='文件移动失败,架构不匹配!' WHERE PALNAME = '"+plName+"'";
DBSql.update(updateSql);
}
}
}
return ro;
}
@Mapping("com.awspaas.user.apps.xitongfankui.createPrem")
public JSONObject createPrem(String sid,String processDefId) {
JSONObject result = new JSONObject();
UserContext uc = UserContext.fromSessionId(sid);
List<BO> list = SDK.getBOAPI().query("BO_ACT_PUBLISH_SCOPE_IMPORT").list();
for (BO bos : list) {
String palName = bos.getString("PALNAME");
String orgPerm = bos.getString("ORGPERM");
String postPerm = bos.getString("POSTPERM");
String levelPrem = bos.getString("LEVELPERM");
String sendScope = bos.getString("SEND_SCOP");
StringBuffer orgSuccess = new StringBuffer();
StringBuffer orgFail = new StringBuffer();
StringBuffer orgPermBuf = new StringBuffer();
String[] orgPermArr = orgPerm.split("");
for (String str : orgPermArr) {
String dsql = "SELECT ID FROM ORGDEPARTMENT WHERE DEPARTMENTNAME = '"+str+"'";
String depId = DBSql.getString(dsql);
if(UtilString.isNotEmpty(depId)) {
if(str.equals(orgPermArr[orgPermArr.length-1])) {
orgPermBuf.append(depId);
}else {
orgPermBuf.append(depId).append(",");
}
}else {
orgFail.append(str).append(",");
}
}
bos.set("ORGFAIL", orgFail);
StringBuffer postFail = new StringBuffer();
StringBuffer postPermBuf = new StringBuffer();
String[] postPermArr = postPerm.split("");
for (String str : postPermArr) {
String postNbrSql = "SELECT POSITION_NBR FROM BO_EU_ORG_POSTS WHERE DESCR = '"+str+"'";
String postNbr = DBSql.getString(postNbrSql);
if(UtilString.isNotEmpty(postNbr)) {
if(str.equals(postPermArr[postPermArr.length-1])) {
postPermBuf.append(postNbr);
}else {
postPermBuf.append(postNbr).append(",");
}
}else {
postFail.append(str).append(",");
}
}
bos.set("POSTFAIL", postFail);
StringBuffer levelFail = new StringBuffer();
StringBuffer levelPremArrBuf = new StringBuffer();
String[] levelPremArr = levelPrem.split("");
for (String str : levelPremArr) {
String levelSql = "SELECT RANKSUB_NO FROM BO_ACT_PAL_LEVEL_SUB WHERE RANKSUB_NAME = '"+str+"'";
String leveNo = DBSql.getString(levelSql);
if(UtilString.isNotEmpty(leveNo)) {
if(str.equals(levelPremArr[levelPremArr.length-1])) {
levelPremArrBuf.append(str);
}else {
levelPremArrBuf.append(str).append(",");
}
}else {
levelFail.append(str).append(",");
}
}
bos.set("LEVELFAIL", postFail);
if("1".equals(sendScope)||orgPermBuf.length()!=0||postPermBuf.length()!=0||levelPremArrBuf.length()!=0) {
List<BO> premlist = new ArrayList<>();
String sqls = "SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLNAME = '"+palName+"'";
List<RowMap> maps = DBSql.getMaps(sqls);
Set<String> removeIds = new HashSet<>();
for (RowMap rowMap : maps) {
List<BO> delList = SDK.getBOAPI().query("BO_ACT_PUBLISH_PERM_SCOPE2").addQuery("PALVERSIONID=", rowMap.getString("PALVERSIONID")).list();
if (delList != null && delList.size() > 0) {
for (BO del : delList) {
removeIds.add(del.getId());
}
}
}
for (String removeId : removeIds) {
SDK.getBOAPI().remove("BO_ACT_PUBLISH_PERM_SCOPE2", removeId);
}
for (RowMap rowMap : maps) {
BO bo = new BO();
bo.set("PERMID", UUIDGener.getUUID());
bo.set("WSID", rowMap.getString("WSID"));
bo.set("PALVERSIONID", rowMap.getString("PLVERSIONID"));
bo.set("PALNAME", rowMap.getString("PLNAME"));
bo.set("PERMTYPE", sendScope);
bo.set("ORGPERM", orgPermBuf);
bo.set("POSTPERM", postPermBuf);
bo.set("LEVELPERM",levelPremArrBuf);
premlist.add(bo);
}
if (premlist.size() > 0) {
bos.set("RESULT", "导入成功!");
SDK.getBOAPI().update("BO_ACT_PUBLISH_SCOPE_IMPORT", bos);
SDK.getBOAPI().createDataBO("BO_ACT_PUBLISH_PERM_SCOPE2", premlist, uc);
SDK.getLogAPI().consoleInfo("[发布范围权限信息保存至范围权限表]更新成功");
}
}else {
bos.set("RESULT", "导入失败!");
SDK.getBOAPI().update("BO_ACT_PUBLISH_SCOPE_IMPORT", bos);
}
}
return result;
}
}

View File

@ -0,0 +1,90 @@
package com.actionsoft.apps.coe.pal.publisher.extend;
import java.util.List;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.actionsoft.apps.coe.pal.pal.repository.cache.PALRepositoryCache;
import com.actionsoft.apps.coe.pal.pal.repository.dao.CoeProcessLevelDaoFacotory;
import com.actionsoft.apps.coe.pal.pal.repository.model.PALRepositoryModel;
import com.actionsoft.bpms.bo.engine.BO;
import com.actionsoft.bpms.commons.database.RowMap;
import com.actionsoft.bpms.schedule.IJob;
import com.actionsoft.bpms.server.UserContext;
import com.actionsoft.bpms.util.DBSql;
import com.actionsoft.sdk.local.SDK;
/**
* 模型附件去重
* @author Administrator
*
*/
public class SelectPremJob implements IJob {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
List<PALRepositoryModel> palRepositoryModels = CoeProcessLevelDaoFacotory.createCoeProcessLevel()
.getAllCoeProcessLevelByWsId("7d3ca852-a0bd-42e6-80b1-3dcea6f55083");
for (PALRepositoryModel palRepositoryModel : palRepositoryModels) {
String methodId = palRepositoryModel.getMethodId();
if (!palRepositoryModel.getName().contains("测试") && palRepositoryModel.isUse()
&& ("process.epc".equals(methodId) || "control.policy".equals(methodId)
|| "data.form".equals(methodId) || "process.flowchart".equals(methodId))) {
String versionId = palRepositoryModel.getVersionId();
String sql = "SELECT * FROM BO_ACT_PUBLISH_PERM_SCOPE WHERE PALVERSIONID ='" + versionId + "'";
RowMap map = DBSql.getMap(sql);
if (map == null) {
BO bo = new BO();
bo.set("PALVERSIONID", versionId);
bo.set("PALNAME", palRepositoryModel.getName());
int level = palRepositoryModel.getLevel();
PALRepositoryModel prmodel = PALRepositoryCache.getCache().get(palRepositoryModel.getParentId());
if (prmodel != null) {
String name = prmodel.getName();
if (level == 2 || level == 5 || level == 6) {
if (name.contains("测试") || name.contains("练习")) {
continue;
}
} else if (level == 3) {
if (name.contains("测试") || name.contains("Test") || name.contains("培训")) {
continue;
}
} else if (level == 4) {
if (name.contains("测试") || name.contains("Test")) {
continue;
}
}
}
if (prmodel != null) {
bo.set("FRNAME", prmodel.getName());
}
bo.set("PALVERSIONID", versionId);
if ("process.epc".equals(methodId)) {
bo.set("FILETYPE", "流程模型");
} else if ("control.policy".equals(methodId)) {
bo.set("FILETYPE", "制度模型");
} else if ("data.form".equals(methodId)) {
bo.set("FILETYPE", "表单模型");
} else if ("process.flowchart".equals(methodId)) {
bo.set("FILETYPE", "泳道图模型");
}
if (palRepositoryModel.isPublish()) {
bo.set("IDPLUBSH", "已发布");
} else {
bo.set("IDPLUBSH", "未发布");
}
SDK.getBOAPI().createDataBO("BO_EU_PUBLISH_SCOPE_IMPORT", bo, UserContext.fromUID("admin"));
}
}
}
}
}

View File

@ -65,106 +65,6 @@ public class UpateFileStateController {
return ro;
}
// 批量移动文件架构
@Mapping("com.awspaas.user.apps.app.controller.movePalFile")
public ResponseObject move(String sid,String plname) {
ResponseObject ro = ResponseObject.newOkResponse();
System.err.println("开始移动文件=======>");
String sql = "SELECT * FROM BO_EU_PAL_FRAMEWORK_TOOL";
if(UtilString.isNotEmpty(plname)) {
sql = "SELECT * FROM BO_EU_PAL_FRAMEWORK_TOOL WHERE ='"+plname+"'";
}
List<RowMap> maps = DBSql.getMaps(sql);
for (RowMap rowMap : maps) {
String plName = rowMap.getString("PALNAME");
String error = rowMap.getString("ERRORFRAMEWORK");
String right = rowMap.getString("CORRECTFRAMEWORK");
// 获取导入表的错误架构id
String sqlerror = "SELECT ID FROM App_Act_Coe_Pal_Repository WHERE PLNAME ='" + error + "'";
String maperrorId = DBSql.getString(sqlerror);
// 获取导入表的正确架构id
String sqlright = "SELECT ID FROM App_Act_Coe_Pal_Repository WHERE PLNAME ='" + right + "'";
String maprightId = DBSql.getString(sqlright);
// 获取文件id和父架构ID33
String sqlS = "SELECT ID,PLPARENTID FROM App_Act_Coe_Pal_Repository WHERE PLNAME ='" + plName + "'";
RowMap map = DBSql.getMap(sqlS);
String uuid = map.getString("ID");
String prId = map.getString("PLPARENTID");
// 获取文件库父架构名称
String sqlT = "SELECT PLNAME FROM App_Act_Coe_Pal_Repository WHERE ID ='" + prId + "'";
String prName = DBSql.getString(sqlT);
String prName3 = DBSql.getString(sqlT);
String substring = right.substring(right.lastIndexOf(".") + 2);
// 判断是否是导入表的错误架构
//
System.err.println("当前文件架构名=======>"+prName);
if (error.equals(prName)) {
String update = "UPDATE App_Act_Coe_Pal_Repository SET PLPARENTID = '" + maprightId + "' WHERE ID ='"
+ uuid + "'";
int update2 = DBSql.update(update);
PALRepositoryPropertyDao propertyDao = new PALRepositoryPropertyDao();
String name1 = right.substring(right.lastIndexOf(".") + 2).trim();
// 设置三级架构名称
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L3", name1);
// 设置二级架构名称
String sql2 = "SELECT PLPARENTID FROM App_Act_Coe_Pal_Repository WHERE ID ='" + maprightId + "'";
String prd2 = DBSql.getString(sql2);
String sqlp2 = "SELECT PLNAME,ID FROM App_Act_Coe_Pal_Repository WHERE ID ='" + prd2 + "'";
RowMap map2 = DBSql.getMap(sqlp2);
if (map2 != null) {
String uuid2 = map2.getString("ID");
String plName2 = map2.getString("PLNAME");
String name2 = plName2.substring(plName2.lastIndexOf(".") + 2).trim();
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L2", name2);
// 设置一级架构名称
String sql1 = "SELECT PLPARENTID FROM App_Act_Coe_Pal_Repository WHERE ID ='" + uuid2 + "'";
String prd1 = DBSql.getString(sql1);
String sqlp1 = "SELECT PLNAME,ID FROM App_Act_Coe_Pal_Repository WHERE ID ='" + prd1 + "'";
RowMap map1 = DBSql.getMap(sqlp1);
if (map1 != null) {
String uuid1 = map1.getString("ID");
String plName1 = map1.getString("PLNAME");
String name3 = plName1.substring(plName1.lastIndexOf(".") + 2).trim();
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L1", name3);
} else {
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L3", "/");
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L1", name2);
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L2", name1);
}
} else {
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L2", "/");
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L3", "/");
propertyDao.updatePropertyByPropertyId(uuid, "Process_Architecture_L1", name1);
}
ro.put("result", "ok");
String result = "文件从【"+error+"】移动到【"+right+"】成功!";
String updateSql = "UPDATE BO_EU_PAL_FRAMEWORK_TOOL SET RESULT = '"+result+"',PAID = '"+uuid+"' WHERE PALNAME = '"+plName+"'";
DBSql.update(updateSql);
}else {
ro.put("result", "error");
String updateSql = "UPDATE BO_EU_PAL_FRAMEWORK_TOOL SET RESULT ='文件移动失败,架构不匹配!' WHERE PALNAME = '"+plName+"'";
DBSql.update(updateSql);
}
}
return null;
}
private String createOutputReport(PALRepositoryModel model, String wsId, String userId, String teamId, String uuid) {
String taskId = "";
if (model.getMethodId().contains("process.")) {