Skip to content

Commit

Permalink
🎨 refactor: improve WorkflowAPI and cprouter/refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
ruan4261 committed Feb 27, 2021
1 parent 6905bd2 commit cd1695d
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 46 deletions.
92 changes: 68 additions & 24 deletions src/main/java/weaver/micro/devkit/api/WorkflowAPI.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public final class WorkflowAPI {
/** 流程中的签字意见类型映射 */
static final Map<String, String> LOG_TYPE_MAPPER = new HashMap<String, String>() {

public Map<String, String> construct() {
{
super.put("0", "批准");
super.put("1", "保存");
super.put("2", "提交");
Expand All @@ -34,15 +34,45 @@ public Map<String, String> construct() {
super.put("e", "强制归档");
super.put("t", "抄送");
super.put("s", "督办");
return this;
}

@Override
public String put(String key, String value) {
throw new UnsupportedOperationException();
}

}.construct();
@Override
public void putAll(Map<? extends String, ? extends String> m) {
throw new UnsupportedOperationException();
}

@Override
public String remove(Object key) {
throw new UnsupportedOperationException();
}

@Override
public void clear() {
throw new UnsupportedOperationException();
}

public String putIfAbsent(String key, String value) {
throw new UnsupportedOperationException();
}

public boolean remove(Object key, Object value) {
throw new UnsupportedOperationException();
}

public boolean replace(String key, String oldValue, String newValue) {
throw new UnsupportedOperationException();
}

public String replace(String key, String value) {
throw new UnsupportedOperationException();
}

};

/**
* 根据requestId获取流程实例标题
Expand Down Expand Up @@ -77,14 +107,14 @@ public static List<Map<String, String>> queryRemarkList(final int requestId) {

while (rs.next()) {
Map<String, String> map = new HashMap<String, String>();
map.put("logid", Util.null2String(rs.getString("logid")));// 签字日志id
map.put("nodeid", Util.null2String(rs.getString("nodeid")));// 节点id
map.put("nodename", Util.null2String(rs.getString("nodename")));// 节点名称
map.put("operator", Util.null2String(rs.getString("operator")));// 操作者的id
map.put("logtype", Util.null2String(LOG_TYPE_MAPPER.get(rs.getString("logtype"))));// 签字类型
map.put("remark", Util.delHtml(Util.null2String(rs.getString("remark"))));// 签字意见
map.put("operatedate", Util.null2String(rs.getString("operatedate")));// 操作日期
map.put("operatetime", Util.null2String(rs.getString("operatetime")));// 操作时间
map.put("logid", rs.getString("logid"));// 签字日志id
map.put("nodeid", rs.getString("nodeid"));// 节点id
map.put("nodename", rs.getString("nodename"));// 节点名称
map.put("operator", rs.getString("operator"));// 操作者的id
map.put("logtype", LOG_TYPE_MAPPER.get(rs.getString("logtype")));// 签字类型
map.put("remark", Util.delHtml(rs.getString("remark")));// 签字意见
map.put("operatedate", rs.getString("operatedate"));// 操作日期
map.put("operatetime", rs.getString("operatetime"));// 操作时间
result.add(map);
}
return result;
Expand Down Expand Up @@ -112,7 +142,7 @@ public static Map<String, String> queryFieldMapper(int billId, int orderId) {

rs.execute(sql);
while (rs.next()) {
result.put(Util.null2String(rs.getString("fieldname")).toLowerCase(), Util.null2String(rs.getString("id")));
result.put(rs.getString("fieldname"), rs.getString("id"));
}

return result;
Expand Down Expand Up @@ -159,9 +189,9 @@ public static String queryTableName(final int workflowId) {
}

/**
* 流程存为文档
* 在E8系统中,这个接口是同步的。
* 在E9系统中,这个接口是异步的,无法保证何时完成文档转换,调用完本接口再通过接口查询文档不能及时获取到文档。
* 流程存为文档.
* 在E9系统中,接口是异步执行的,无法保证何时完成文档转换.
* 调用本接口可实现同步操作.
*
* @param requestId 请求id
* @return 是否成功
Expand Down Expand Up @@ -277,7 +307,7 @@ public static List<Map<String, String>> queryRequestDetailData(String billTableN
String sql = "select id from " + billTableName + " where requestid = '" + requestId + "'";
rs.execute(sql);
if (!rs.next()) return result;
int mainid = Util.getIntValue(rs.getString("id"));
int mainid = rs.getInt("id");

// 获取明细表名
String detailTableName = getDetailTableNameByBillTableNameAndOrderId(billTableName, orderId);
Expand Down Expand Up @@ -305,11 +335,16 @@ public static List<Map<String, String>> getRequestDetailData(int billId, int req
* 根据logid获取节点名称
*/
public static String getNodeNameByLogId(int logId) {
int nodeid = Util.getIntValue(CommonAPI.querySingleField("select nodeid from workflow_requestlog where logid=" + logId, "nodeid"));
int nodeid = Util.getIntValue(
CommonAPI.querySingleField(
"select nodeid from workflow_requestlog where logid=" + logId,
"nodeid"));
if (nodeid == -1)
return EMPTY;

return CommonAPI.querySingleField("select nodename from workflow_nodebase where id=" + nodeid, "nodename");
return CommonAPI.querySingleField(
"select nodename from workflow_nodebase where id=" + nodeid,
"nodename");
}

/**
Expand All @@ -333,7 +368,8 @@ public static int getFieldIdByFieldName(int billId, int orderId, String name) {

rs.execute(sql);
if (!rs.next())
throw new RuntimeException("No such field, input : billId=" + billId + ", orderId=" + orderId + ", field(notExist)=" + name);
throw new RuntimeException("No such field, input : billId=" + billId
+ ", orderId=" + orderId + ", field(notExist)=" + name);

return rs.getInt("id");
}
Expand All @@ -346,9 +382,11 @@ public static int getFieldIdByFieldName(int billId, int orderId, String name) {
*/
public static String getDropdownBoxValue(int fieldId, int valueIdx) {
RecordSet rs = new RecordSet();
rs.execute("select selectvalue,selectname from workflow_selectitem where fieldid=" + fieldId + " and selectvalue=" + valueIdx);
rs.execute("select selectvalue,selectname from workflow_selectitem where fieldid=" + fieldId
+ " and selectvalue=" + valueIdx);
if (!rs.next())
throw new RuntimeException("No such select item, input : fieldId=" + fieldId + ", selectvalue=" + valueIdx);
throw new RuntimeException("No such select item, input : fieldId=" + fieldId
+ ", selectvalue=" + valueIdx);

return rs.getString("selectname");
}
Expand All @@ -371,7 +409,10 @@ public static String getDetailTableNameByBillIdAndOrderId(int billId, int orderI
if (orderId == 0)
return getBillTableNameByBillId(billId);

return CommonAPI.querySingleField("select tablename from workflow_billdetailtable where billid=" + billId + " and orderid=" + orderId, "tablename");
return CommonAPI.querySingleField(
"select tablename from workflow_billdetailtable where billid=" + billId
+ " and orderid=" + orderId,
"tablename");
}

public static String getDetailTableNameByBillTableNameAndOrderId(String billTableName, int orderId) {
Expand Down Expand Up @@ -414,7 +455,8 @@ public static int[] getCurrentNodeOperatorByRequestId(int requestId) {
rs.execute("select userid" +
" from workflow_currentoperator" +
" where groupdetailid in" +
" (select id from workflow_groupdetail where groupid in (select id from workflow_nodegroup where nodeid = " + nodeId + "))" +
" (select id from workflow_groupdetail where groupid in" +
" (select id from workflow_nodegroup where nodeid = " + nodeId + "))" +
" and requestid = " + requestId);

// result
Expand Down Expand Up @@ -444,7 +486,9 @@ public static int getCreator(int requestId) {
* @param requestId 流程唯一标识
*/
public static int getCreatorIdByRequestId(int requestId) {
return Cast.o2Integer(CommonAPI.querySingleField("select creater from workflow_requestbase where requestid=" + requestId, "creater"));
return Cast.o2Integer(CommonAPI.querySingleField(
"select creater from workflow_requestbase where requestid=" + requestId,
"creater"));
}

/**
Expand Down
46 changes: 24 additions & 22 deletions web/WEB-INF/micro/devkit/cprouter/refactor.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,46 @@
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
// custom page router mode refactoring
int modeid = Util.getIntValue(request.getParameter("modeid"));
String mode = "uf_cprouter";
String dest = "/micro/devkit/cprouter/router.jsp";
// confirm start program
String verify = Util.null2String(request.getParameter("auth"));
if (verify.equals("1")) {
out.print("认证通过, 开始重构.<br>");
out.print("认证通过, 开始重构, 模块id: " + modeid + ".<br>");
} else {
out.print("请通过auth参数确认执行重构.");
out.print("请通过auth, modeid参数确认执行重构.");
return;
}
String mode = "uf_cprouter";
int modeid = -1;// 需要手动修改
String dest = "/micro/devkit/cprouter/router.jsp";
RecordSet exe = new RecordSet();// 执行
RecordSet rs = new RecordSet();// 查询
RecordSet rs = new RecordSet();
// 一般数据库使用null做比较时会返回null, 所以为null的数据不会被查询出来
String sql = String.format("select id,custompage from workflow_base where custompage<>'%s'", dest);
out.print(sql + "<br>");
rs.execute(sql);
while (rs.next()) {
int id = rs.getInt("id");
String custompage = rs.getString("custompage");
out.print("Origin: workflowid=" + id + ",custompage=" + custompage + "<br>");
if (custompage.equals(""))
continue;
out.print("Origin: workflowid=" + id + ",custompage=" + custompage + "<br>");
// 数据录入建模
try {
if (!custompage.equals("")) {
// 原先存在custompage
Map<String, Object> data = new HashMap<String, Object>(8);
data.put("workflowid", id);
data.put("model", 0);
data.put("load_order", 0);
data.put("custompage", custompage);
data.put("disable", 0);
data.put("describe", "Automatic created by refactoring program.");
ModeAPI.createModeData(mode, modeid, 1, data);
}
// 原先存在custompage
Map<String, Object> data = new HashMap<String, Object>();
data.put("workflowid", id);
data.put("model", 0);
data.put("load_order", 0);
data.put("custompage", custompage);
data.put("disable", 0);
data.put("describe", "Automatic created by refactoring program.");
ModeAPI.createModeData(mode, modeid, 1, data);
} catch (Exception e) {
out.print(e.toString() + "<br>");
out.print("<h2 style=\"color: red\">Please roll back manually.</h2><br>");
Expand All @@ -56,7 +58,7 @@
// 覆盖所有流程的custompage
sql = String.format("update workflow_base set custompage='%s'", dest);
out.print(sql + "<br>");
exe.execute(sql);
rs.execute(sql);
out.print("<br>重构完成");
%>

0 comments on commit cd1695d

Please # to comment.