流程发布自动编号修改
This commit is contained in:
parent
755b1b27ce
commit
a0cfb4bd64
@ -1,5 +1,7 @@
|
||||
package com.actionsoft.apps.coe.pal.publisher.client.util;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.actionsoft.bpms.bo.engine.BO;
|
||||
import com.actionsoft.bpms.commons.database.RowMap;
|
||||
import com.actionsoft.bpms.util.DBSql;
|
||||
@ -7,8 +9,6 @@ import com.actionsoft.bpms.util.UUIDGener;
|
||||
import com.actionsoft.bpms.util.UtilString;
|
||||
import com.actionsoft.sdk.local.SDK;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author baizp
|
||||
* @Description: 生成流程编号工具
|
||||
@ -22,101 +22,286 @@ public class ProcesNumberUtil {
|
||||
* @param regionCode
|
||||
* @return
|
||||
*/
|
||||
public synchronized String getProcessNum(String levelCode, String regionCode) {
|
||||
String querySql = "select ID,NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'";
|
||||
RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode));
|
||||
//如果没有就新增
|
||||
if (result == null) {
|
||||
String sql = "insert into BO_ACT_PROCESSNUMBER (ID,LEVELNUM,REGIONCODE,NUMBERS) values ('%s', '%s', '%s',%s)";
|
||||
String id = UUIDGener.getUUID();
|
||||
DBSql.update(String.format(sql, id, levelCode, regionCode, 1));
|
||||
return "01";
|
||||
}
|
||||
int nowNum = result.getInt("NUMBERS");
|
||||
String updateSql = "update BO_ACT_PROCESSNUMBER set NUMBERS=%s where ID='%s'";
|
||||
DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID")));
|
||||
if (nowNum < 10) {
|
||||
return "0" + nowNum;
|
||||
}
|
||||
public String getProcessNum(String levelCode, String regionCode,String plcategory) {
|
||||
int nowNum = 1;
|
||||
//流程编号
|
||||
if (plcategory.contains("process")) {
|
||||
String querySql = "select ID,PROCESS_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'";
|
||||
RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode));
|
||||
//如果没有就新增
|
||||
if (result == null) {
|
||||
String sql = "insert into BO_ACT_PROCESSNUMBER (ID,LEVELNUM,REGIONCODE,PROCESS_NUMBERS,SYSTEM_NUMBERS,FORM_NUMBERS) values ('%s', '%s', '%s', %s, %s, %s)";
|
||||
String id = UUIDGener.getUUID();
|
||||
int update = DBSql.update(String.format(sql, id, levelCode, regionCode, nowNum + 1, 1, 1));
|
||||
return "01";
|
||||
}
|
||||
nowNum = result.getInt("PROCESS_NUMBERS");
|
||||
String updateSql = "update BO_ACT_PROCESSNUMBER set PROCESS_NUMBERS=%s where ID='%s'";
|
||||
DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID")));
|
||||
if (nowNum < 10) {
|
||||
return "0" + nowNum;
|
||||
}
|
||||
|
||||
} else if (plcategory.contains("control")) {
|
||||
//制度编号
|
||||
String querySql = "select ID,SYSTEM_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'";
|
||||
RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode));
|
||||
//如果没有就新增
|
||||
if (result == null) {
|
||||
String sql = "insert into BO_ACT_PROCESSNUMBER (ID,LEVELNUM,REGIONCODE,PROCESS_NUMBERS,SYSTEM_NUMBERS,FORM_NUMBERS) values ('%s', '%s', '%s', %s, %s, %s)";
|
||||
String id = UUIDGener.getUUID();
|
||||
DBSql.update(String.format(sql, id, levelCode, regionCode, 1, 1, 1));
|
||||
return "01";
|
||||
}
|
||||
nowNum = result.getInt("SYSTEM_NUMBERS");
|
||||
String updateSql = "update BO_ACT_PROCESSNUMBER set SYSTEM_NUMBERS=%s where ID='%s'";
|
||||
DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID")));
|
||||
if (nowNum < 10) {
|
||||
return "0" + nowNum;
|
||||
}
|
||||
|
||||
} else if (plcategory.contains("form")) {
|
||||
//表单编号
|
||||
String querySql = "select ID,FORM_NUMBERS from BO_ACT_PROCESSNUMBER where LEVELNUM = '%s' and REGIONCODE='%s'";
|
||||
RowMap result = DBSql.getMap(String.format(querySql, levelCode, regionCode));
|
||||
//如果没有就新增
|
||||
if (result == null) {
|
||||
String sql = "insert into BO_ACT_PROCESSNUMBER (ID,LEVELNUM,REGIONCODE,PROCESS_NUMBERS,SYSTEM_NUMBERS,FORM_NUMBERS) values ('%s', '%s', '%s', %s, %s, %s)";
|
||||
String id = UUIDGener.getUUID();
|
||||
DBSql.update(String.format(sql, id, levelCode, regionCode, 1, 1, 1));
|
||||
return "01";
|
||||
}
|
||||
nowNum = result.getInt("FORM_NUMBERS");
|
||||
String updateSql = "update BO_ACT_PROCESSNUMBER set FORM_NUMBERS=%s where ID='%s'";
|
||||
DBSql.update(String.format(updateSql, nowNum + 1, result.getString("ID")));
|
||||
if (nowNum < 10) {
|
||||
return "0" + nowNum;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
return nowNum + "";
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成编号并写入数据库
|
||||
* @param bindId
|
||||
* @return
|
||||
*/
|
||||
public String getNumber(String bindId) {
|
||||
System.out.println("生成编号并写入数据库===============");
|
||||
//查询出主表数据
|
||||
BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId);
|
||||
//根据主表数据查询出权限的编码
|
||||
String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s'" +
|
||||
" and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'";
|
||||
RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"), mainData.getString("LEVEL_1_PROCESS_NAME")
|
||||
, mainData.getString("LEVEL_2_PROCESS_NAME"), mainData.getString("LEVEL_3_PROCESS_NAME"), mainData.getString("ADAPT_REGION_NAME"), mainData.getString("APPLICABLE_PRODUCT")));
|
||||
//获取所有的流程编码 如果为空则为00
|
||||
String orgCode = authData.getString("ORGCODE");
|
||||
String levelOne = authData.getString("LEVEL_1_PROCESS_ID");
|
||||
String levelTwo = authData.getString("LEVEL_2_PROCESS_ID");
|
||||
String levelThree = authData.getString("LEVEL_3_PROCESS_ID");
|
||||
String regionCode = authData.getString("ADAPT_REGION_CODE");
|
||||
String productCode = authData.getString("APPLICABLE_PRODUCT_CODE");
|
||||
//查询出所有的发布流程
|
||||
List<BO> dataList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N").addQuery("BINDID=", bindId).list();
|
||||
//依次生成编号~并回填 修改
|
||||
if(UtilString.isNotEmpty(levelTwo)){
|
||||
levelTwo =levelTwo.substring(levelTwo.indexOf(".")+1,levelTwo.length());
|
||||
}else{
|
||||
levelTwo = "00";
|
||||
}
|
||||
if(UtilString.isNotEmpty(levelThree)){
|
||||
levelThree =levelThree.substring(levelThree.lastIndexOf(".")+1,levelThree.length());
|
||||
}else{
|
||||
levelThree = "00";
|
||||
}
|
||||
String levelnum = levelOne + "." + levelTwo + "." + levelThree;
|
||||
/**
|
||||
* 生成编号并写入数据库
|
||||
*
|
||||
* @param bindId
|
||||
* @return
|
||||
*/
|
||||
public String getNumber(String bindId) {
|
||||
|
||||
String updateSql = "update BO_ACT_COE_PUBLISH_N set PUBLISH_NUMBER='%s' where ID = '%s'";
|
||||
for (BO nowData : dataList) {
|
||||
String number = getProcessNum(levelnum, orgCode);
|
||||
String publishfileid=nowData.getString("PUBLISHFILEID");
|
||||
System.out.println("生成编号并写入数据库===============");
|
||||
|
||||
RowMap rowMap=DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='"+publishfileid+"' AND"
|
||||
+ " ISUSE = 1 ");
|
||||
String name = "00R00";
|
||||
String fileName = "file_number";
|
||||
String plver= "1.0";
|
||||
if(rowMap!=null){
|
||||
String plcategory=rowMap.getString("PLMETHODID");
|
||||
String plvers=rowMap.getString("PLVER");
|
||||
if(plcategory.contains("process")){
|
||||
name = number + "/P"+number;
|
||||
}else if(plcategory.contains("control")){
|
||||
name = "00/R00";
|
||||
}else if(plcategory.contains("form")){
|
||||
fileName = "form_number";
|
||||
name = "00/T00";
|
||||
}
|
||||
if(!"".equals(plvers)) {
|
||||
if(plvers.length()>1) {
|
||||
plver = plvers.substring(0,1)+"."+plvers.substring(plvers.length()-1,plvers.length());
|
||||
}else {
|
||||
plver = plvers.substring(0,1)+".0";
|
||||
}
|
||||
}
|
||||
}
|
||||
// 查询出所有的发布流程
|
||||
List<BO> dataList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_N").addQuery("BINDID=", bindId).list();
|
||||
// 查询出所有的变更流程
|
||||
List<BO> changList = SDK.getBOAPI().query("BO_ACT_COE_PUBLISH_C").addQuery("BINDID=", bindId).list();
|
||||
if (changList.size() != 0) {
|
||||
for (BO changData : changList) {
|
||||
String publish_numner = changData.getString("PUBLISH_NUMBER");
|
||||
String changFileId = changData.getString("CHANGEFILEID");
|
||||
String changAfterFileId = changData.getString("CHANGEDFILEIDNEW");
|
||||
if(UtilString.isEmpty(publish_numner)) {
|
||||
RowMap rowMap = DBSql.getMap("SELECT * FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='" + changFileId + "'");
|
||||
String Vsion1Id = DBSql.getString("SELECT ID FROM APP_ACT_COE_PAL_REPOSITORY WHERE PLRID='"
|
||||
+ rowMap.getString("PLRID") + "' AND" + " PLVER = 1 ");
|
||||
String publish_number = DBSql.getString(
|
||||
"SELECT PUBLISH_NUMBER FROM BO_ACT_COE_PUBLISH_N WHERE PUBLISHFILEID ='" + Vsion1Id + "'");
|
||||
|
||||
if (UtilString.isNotEmpty(publish_number)) {
|
||||
// 设置模型ID
|
||||
String plver = "2.0";
|
||||
String plvers = rowMap.getString("PLVER");
|
||||
if (!"".equals(plvers)) {
|
||||
if (plvers.length() > 1) {
|
||||
plver = plvers.substring(0, 1) + "."
|
||||
+ plvers.substring(plvers.length() - 1, plvers.length());
|
||||
} else {
|
||||
plver = plvers.substring(0, 1) + ".0";
|
||||
}
|
||||
}
|
||||
|
||||
String new_number = publish_number.replaceAll("V1.0", "V"+plver);
|
||||
String updateSql = "update BO_ACT_COE_PUBLISH_C set PUBLISH_NUMBER='%s' where CHANGEDFILEIDNEW = '%s'";
|
||||
//更新子表文件编码属性
|
||||
int update = DBSql.update(String.format(updateSql, new_number, changAfterFileId));
|
||||
System.out.println("更新子表文件编号:" + update + "--->" + new_number);
|
||||
String fileName = "file_number";
|
||||
if (rowMap != null) {
|
||||
String plcategory = rowMap.getString("PLMETHODID");
|
||||
if (plcategory.contains("form")) {
|
||||
fileName = "form_number";
|
||||
}
|
||||
|
||||
}
|
||||
//更新模型文件编码属性
|
||||
String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'";
|
||||
int update2 = DBSql.update(String.format(updateAttrsql, new_number, fileName, changAfterFileId));
|
||||
System.out.println("更新模型文件编号:" + update2 + "--->" + new_number);
|
||||
}else {
|
||||
|
||||
|
||||
// 查询出主表数据
|
||||
BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId);
|
||||
// 根据主表数据查询出权限的编码
|
||||
String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s'"
|
||||
+ " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'";
|
||||
RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"),
|
||||
mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"),
|
||||
mainData.getString("LEVEL_3_PROCESS_NAME"), mainData.getString("ADAPT_REGION_NAME"),
|
||||
mainData.getString("APPLICABLE_PRODUCT")));
|
||||
// 获取所有的流程编码 如果为空则为00
|
||||
String orgCode = authData.getString("ORGCODE");
|
||||
String levelOne = authData.getString("LEVEL_1_PROCESS_ID");
|
||||
String levelTwo = authData.getString("LEVEL_2_PROCESS_ID");
|
||||
String levelThree = authData.getString("LEVEL_3_PROCESS_ID");
|
||||
String regionCode = authData.getString("ADAPT_REGION_CODE");
|
||||
String productCode = authData.getString("APPLICABLE_PRODUCT_CODE");
|
||||
|
||||
String processNum = levelnum + "." + name +"V"+plver+orgCode + regionCode + productCode;
|
||||
String s = nowData.getId();
|
||||
int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase()));
|
||||
System.out.println("表单文件编号回填:"+update+"--->"+processNum);
|
||||
String publishFileId = nowData.getString("PUBLISHFILEID");
|
||||
String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'";
|
||||
int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, publishFileId));
|
||||
System.out.println("模型文件编号回填:"+update2+"--->"+processNum);
|
||||
//更新流程绩效的编号----规则没看懂
|
||||
}
|
||||
return "OK";
|
||||
}
|
||||
// 依次生成编号~并回填 修改
|
||||
if (UtilString.isNotEmpty(levelTwo)) {
|
||||
levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length());
|
||||
} else {
|
||||
levelTwo = "00";
|
||||
}
|
||||
if (UtilString.isNotEmpty(levelThree)) {
|
||||
levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length());
|
||||
} else {
|
||||
levelThree = "00";
|
||||
}
|
||||
String levelnum = levelOne + "." + levelTwo + "." + levelThree;
|
||||
|
||||
String updateSql = "update BO_ACT_COE_PUBLISH_C set PUBLISH_NUMBER='%s' where ID = '%s'";
|
||||
rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='"
|
||||
+ changAfterFileId + "' AND" + " ISUSE = 1 ");
|
||||
String name = "00R00";
|
||||
String fileName = "file_number";
|
||||
String plver = "1.0";
|
||||
if (rowMap != null) {
|
||||
String plcategory = rowMap.getString("PLMETHODID");
|
||||
String plvers = rowMap.getString("PLVER");
|
||||
String number = getProcessNum(levelnum, orgCode,plcategory);
|
||||
if (plcategory.contains("process")) {
|
||||
name = number + "/P" + number;
|
||||
} else if (plcategory.contains("control")) {
|
||||
name = number + "/R" + number;
|
||||
} else if (plcategory.contains("form")) {
|
||||
fileName = "form_number";
|
||||
name = number + "/T" + number;
|
||||
}
|
||||
if (!"".equals(plvers)) {
|
||||
if (plvers.length() > 1) {
|
||||
plver = plvers.substring(0, 1) + "."
|
||||
+ plvers.substring(plvers.length() - 1, plvers.length());
|
||||
} else {
|
||||
plver = plvers.substring(0, 1) + ".0";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String processNum = levelnum + "." + name + "V" + plver + orgCode + regionCode + productCode;
|
||||
String s = changData.getId();
|
||||
int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase()));
|
||||
System.out.println("更新表单文件编号回填:" + update + "--->" + processNum+" 文件id"+s);
|
||||
String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'";
|
||||
int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, changAfterFileId));
|
||||
System.out.println("更新模型文件编号回填:" + update2 + "--->" + processNum +" 文件id"+changAfterFileId);
|
||||
// 更新流程绩效的编号----规则没看懂
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (dataList.size() != 0) {
|
||||
// 查询出主表数据
|
||||
BO mainData = SDK.getBOAPI().getByProcess("BO_ACT_COE_PUBLISH", bindId);
|
||||
// 根据主表数据查询出权限的编码
|
||||
String qxSql = "select * from BO_ACT_AUTH_INFO where ORGNAME='%s' and LEVEL_1_PROCESS_NAME='%s' and LEVEL_2_PROCESS_NAME='%s' and LEVEL_3_PROCESS_NAME='%s'"
|
||||
+ " and ADAPT_REGION_NAME = '%s' and APPLICABLE_PRODUCT='%s'";
|
||||
RowMap authData = DBSql.getMap(String.format(qxSql, mainData.getString("ADAPT_NAME_THE_COMPANY"),
|
||||
mainData.getString("LEVEL_1_PROCESS_NAME"), mainData.getString("LEVEL_2_PROCESS_NAME"),
|
||||
mainData.getString("LEVEL_3_PROCESS_NAME"), mainData.getString("ADAPT_REGION_NAME"),
|
||||
mainData.getString("APPLICABLE_PRODUCT")));
|
||||
// 获取所有的流程编码 如果为空则为00
|
||||
String orgCode = authData.getString("ORGCODE");
|
||||
String levelOne = authData.getString("LEVEL_1_PROCESS_ID");
|
||||
String levelTwo = authData.getString("LEVEL_2_PROCESS_ID");
|
||||
String levelThree = authData.getString("LEVEL_3_PROCESS_ID");
|
||||
String regionCode = authData.getString("ADAPT_REGION_CODE");
|
||||
String productCode = authData.getString("APPLICABLE_PRODUCT_CODE");
|
||||
|
||||
// 依次生成编号~并回填 修改
|
||||
if (UtilString.isNotEmpty(levelTwo)) {
|
||||
levelTwo = levelTwo.substring(levelTwo.indexOf(".") + 1, levelTwo.length());
|
||||
} else {
|
||||
levelTwo = "00";
|
||||
}
|
||||
if (UtilString.isNotEmpty(levelThree)) {
|
||||
levelThree = levelThree.substring(levelThree.lastIndexOf(".") + 1, levelThree.length());
|
||||
} else {
|
||||
levelThree = "00";
|
||||
}
|
||||
String levelnum = levelOne + "." + levelTwo + "." + levelThree;
|
||||
|
||||
String updateSql = "update BO_ACT_COE_PUBLISH_N set PUBLISH_NUMBER='%s' where ID = '%s'";
|
||||
for (BO nowData : dataList) {
|
||||
String publish_numner = nowData.getString("PUBLISH_NUMBER");
|
||||
if(UtilString.isEmpty(publish_numner)) {
|
||||
String publishfileid = nowData.getString("PUBLISHFILEID");
|
||||
RowMap rowMap = DBSql.getMap("SELECT PLVER,PLMETHODID FROM APP_ACT_COE_PAL_REPOSITORY WHERE ID='"
|
||||
+ publishfileid + "' AND" + " ISUSE = 1 ");
|
||||
String name = "00R00";
|
||||
String fileName = "file_number";
|
||||
String plver = "1.0";
|
||||
if (rowMap != null) {
|
||||
String plcategory = rowMap.getString("PLMETHODID");
|
||||
String plvers = rowMap.getString("PLVER");
|
||||
String number = getProcessNum(levelnum, orgCode,plcategory);
|
||||
if (plcategory.contains("process")) {
|
||||
name = number + "/P" + number;
|
||||
} else if (plcategory.contains("control")) {
|
||||
name = number + "/R" + number;
|
||||
} else if (plcategory.contains("form")) {
|
||||
fileName = "form_number";
|
||||
name = number + "/T" + number;
|
||||
}
|
||||
if (!"".equals(plvers)) {
|
||||
if (plvers.length() > 1) {
|
||||
plver = plvers.substring(0, 1) + "."
|
||||
+ plvers.substring(plvers.length() - 1, plvers.length());
|
||||
} else {
|
||||
plver = plvers.substring(0, 1) + ".0";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String processNum = levelnum + "." + name + "V" + plver + orgCode + regionCode + productCode;
|
||||
String s = nowData.getId();
|
||||
int update = DBSql.update(String.format(updateSql, processNum, s.toLowerCase()));
|
||||
System.out.println("表单文件编号回填:" + update + "--->" + processNum);
|
||||
String publishFileId = nowData.getString("PUBLISHFILEID");
|
||||
String updateAttrsql = "update APP_ACT_COE_PAL_PROP set PROPERTYVALUE='%s' where PROPERTYID='%s' AND PLID='%s'";
|
||||
int update2 = DBSql.update(String.format(updateAttrsql, processNum, fileName, publishFileId));
|
||||
System.out.println("模型文件编号回填:" + update2 + "--->" + processNum);
|
||||
// 更新流程绩效的编号----规则没看懂
|
||||
}
|
||||
}
|
||||
}
|
||||
return "OK";
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user