package com.yc.service.panel; import com.yc.entity.FormLoadParameterEntity; import com.yc.factory.FactoryBean; import com.yc.sdk.shopping.util.SettingKey; import com.yc.service.BaseService; import com.yc.service.impl.DBHelper; import com.yc.utils.SessionKey; import oracle.net.aso.b; import org.apache.commons.collections.map.HashedMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.BadSqlGrammarException; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.net.URLDecoder; import java.net.URLEncoder; import java.sql.SQLException; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; /** * * @author pengbei * */ @Service("PanelManage") public class PanelManageImpl implements PanelManageDao { @Autowired SqlDBHelperIfc sqlDBHelperIfc; @Autowired SystemSettingsDao systemSettingsBo; @Autowired GfieldApprovedButtonIfc gButtonIfc; // 针对多表 private List> multiList = new ArrayList<>(); /** * 获得页面上真正显示的Id (不是数据库的列字段了) * * @param filed 匹配数控字段的map集合的Key * @param mapValue 数据库字段 * @return 网页的控件Id */ public String getMapsKay(Map> maplist, String filed, String mapValue) { String yeId = ""; for (String key : maplist.keySet()) { if (maplist.get(key).get(filed).trim().equals(mapValue)) { yeId = key; break; } } return yeId; } /** * 加载单据信息 */ // @Override public List> getFromEnd(String sql, String tableis, String where, int formType, HttpServletRequest request) throws Exception { HttpSession session = request.getSession(); sql = getRepSql(sql); List> listInfo = null; Map mapDoc = null; String lookUpSql = ""; try { where = isSpecialChar(where) ? URLEncoder.encode(where, "UTF-8") : where; // xin 2020-5-19 10:14:20 where = URLDecoder.decode(where, "utf-8");// by danaus 2020/5/1 23:02 } catch (Exception e) {// 出错表示不需要解码 } if (";22;18;19;7;".indexOf(";" + String.valueOf(formType) + ";") != -1) {// 类型窗体处理 try { listInfo = new ArrayList>(); where = where.replaceAll("like", ";pb#").replaceAll("=", ";pb#").replace("@~", "").replaceAll("'", ""); String[] valueS = where.split("and"); String[] cols = null; HashMap map = new HashMap(); for (int i = 0; i < valueS.length; i++) { cols = valueS[i].split(";pb#"); if (cols.length > 1) { map.put(cols[0].trim().toLowerCase(), cols[1].trim()); } else { } } map.put("doc_size", 0);// 让其赋默认值 listInfo.add(map); } catch (ArrayIndexOutOfBoundsException e) {// 数组越界异常捕获 throw e; } catch (Exception e) { throw e; } } else { try { lookUpSql = sql + tableis + ((where != null && !where.equals("")) ? " where " + where : ""); lookUpSql = lookUpSql.replace("!", ""); listInfo = sqlDBHelperIfc.getHashMapObj(lookUpSql);// 获取对应单号数据 mapDoc = (listInfo != null && listInfo.size() > 0) ? listInfo.get(0) : new HashMap(); Pattern pattern = Pattern.compile("\\w+doccode\\s*="); if (";5;8;16;496;498;".indexOf(";" + String.valueOf(formType) + ";") != -1) {// 加入同一筛选条件下的上下单号 if (listInfo.size() > 0) { String nextSql = ""; Matcher matcher = pattern.matcher(lookUpSql.toLowerCase()); if (matcher.find()) { lookUpSql = lookUpSql.toLowerCase().replace(matcher.group(), "doccode="); } StringBuffer docAndDoc = new StringBuffer(); // 去掉空格,by danaus 2020/12/3 16:02 nextSql = lookUpSql.toLowerCase().replaceAll("doccode\\s*=\\s*'.*?'", "1=1") .replaceFirst("top\\s*\\d*\\s*\\*", "top 1 doccode ") + " order by doccode asc "; docAndDoc.append(getSqlDoc(nextSql, session));// 第一单 nextSql = lookUpSql.toLowerCase().replaceAll("doccode\\s*=\\s*", "doccode < ") .replaceFirst("top\\s*\\d*\\s*\\*", "top 1 doccode ") + " order by doccode desc "; docAndDoc.append(";").append(getSqlDoc(nextSql, session));// 上一单 nextSql = docAndDoc.toString(); mapDoc.put("updoc", nextSql); docAndDoc.delete(0, docAndDoc.length()); nextSql = lookUpSql.toLowerCase().replaceAll("doccode\\s*=\\s*\\S*", "1=1") .replaceFirst("top\\s*\\d*\\s*\\*", "top 1 doccode ") + " order by doccode desc "; docAndDoc.append(getSqlDoc(nextSql, session));// 最后一单 nextSql = lookUpSql.toLowerCase().replaceAll("doccode\\s*=\\s*", "doccode > ") .replaceFirst("top\\s*\\d*\\s*\\*", "top 1 doccode ") + " order by doccode asc "; docAndDoc.append(";").append(getSqlDoc(nextSql, session));// 下一单 nextSql = docAndDoc.toString(); mapDoc.put("nextdoc", nextSql); docAndDoc = null; } else { if (where.indexOf("1=2") == -1) {// 是否是新单据状态 // 上面的方法没有查到该单据并且不是新单据后,这里执行是否有权限查看或单据已经不存在的返回提示---xin // 2015-9-22 14:43:37 try { List> isDoc = null; String w = "1=2"; Pattern pattern1 = Pattern.compile("and\\s*\\(\\s*");// 去掉and后面在()里的权限条件 Matcher matcher = pattern1.matcher(where.toLowerCase()); if (matcher.find()) { w = where.toLowerCase().split("and\\s*\\(\\s*")[0]; } else { pattern1 = Pattern.compile("doccode\\s*=\\s*\\S*"); matcher = pattern1.matcher(where.toLowerCase()); if (matcher.find()) { w = where; } } String isDoccode = sql + tableis + " where " + w;// 组装没有权限限制的sql isDoccode = isDoccode.replace("!", ""); isDoc = sqlDBHelperIfc.getHashMapObj(isDoccode);// 查询是否存在数据 if (isDoc != null && isDoc.size() > 0) {// 返回提示 throw new Exception("提示:你没有权限查看【" + w.split("'")[1] + "】的内容,请联系制单人【" + DBHelper.getValue(isDoc.get(0), "entername") + "】"); } } catch (Exception e) { throw e; } } // if (tableis.equals("_sys_formid_Help")) { // } mapDoc.put("updoc", ";");// mapDoc 中都为小写key mapDoc.put("nextdoc", ";"); } } mapDoc.put("doc_size", listInfo.size());// 判断单据需要 mapDoc.put("yic", "t");// 这一个字段已经没有用处,新的模板里已经删除。这个字段以后需要删除掉 xin // 2019-3-1 10:10:44 listInfo.clear(); listInfo.add(mapDoc); } catch (SQLException | BadSqlGrammarException ee) { throw ee; } catch (Exception e) { throw e; } finally { } } return listInfo; } /** * 获得单号 * * @param sqlString 获得单号sql * @return 单号 * @throws SQLException */ private String getSqlDoc(String sqlString, HttpSession session) throws SQLException { List> listInfoDoc = null; try { // SpObserver.setDBtoInstance("_" + // session.getAttribute(SessionKey.DATA_BASE_ID)); listInfoDoc = sqlDBHelperIfc.getHashMapObj(sqlString); } catch (Exception e) { throw e; } finally { // SpObserver.setDBtoInstance(); } return listInfoDoc.size() > 0 ? (listInfoDoc.get(0).get("doccode") == null ? "" : listInfoDoc.get(0).get("doccode").toString()) : ""; } /** * 替换掉sql语句中如:&formid&=9801之类的&formid&写法 此时直接可以为 formid 解决设置冲突而这样写时的错误 * * @param sql * @return */ private String getRepSql(String sql) { Map parm = new HashMap(); List list = DBHelper.getStrRepInfo(sql, "&"); boolean bol = ((sql.indexOf("'&") != -1 && sql.indexOf("&'") != -1) ? true : false); for (String id : list) { parm.put((bol ? "'" : "") + "&" + id + "&" + (bol ? "'" : ""), id); } sql = DBHelper.getRep(parm, sql); return sql; } /** * 复单的时候进入 */ @Override public List> getFromEnd(String sql, String tableis, String where, int formType, String copy, HttpServletRequest request) throws Exception { List> lics = new ArrayList>(); List> lic = new ArrayList>(); try { lic = getFromEnd(sql, tableis, where, formType, request); if (copy.equals("1") && DBHelper.getValueInt(lic.get(0), "formid") != 0) {// 复单时候进入 lics = systemSettingsBo.selectAll(Integer.parseInt(lic.get(0).get("formid").toString()), 0); @SuppressWarnings("rawtypes") Iterator iter = lic.get(0).entrySet().iterator(); while (iter.hasNext()) { @SuppressWarnings("rawtypes") Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); for (int c = 0; c < lics.size(); c++) { if ((key.toString().toLowerCase()) .equals(lics.get(c).get("fieldid").toString().toLowerCase())) { if (lics.get(c).get("iscopyexclude") == null) {//复单时是否排除 lics.get(c).put("iscopyexclude", "0"); } if (Integer.parseInt(lics.get(c).get("iscopyexclude").toString()) == 1) { lic.get(0).put(key.toString(), ""); } break; } } } } lic.get(0).put("doccode", ""); lic.get(0).put("docstatus", 0); } catch (Exception e) { throw new Exception("复单出错:" + e.getMessage()); } return lic; } /** * 返回单据状态 * */ @Override public String getDocstatus(String where, int formid, String tabs, HttpServletRequest request) throws Exception { String docStatus = "0"; String docSql = "select top 1 docstatus from " + tabs + " where " + where; try { List> docList = sqlDBHelperIfc.getHashMapObj(docSql); docStatus = DBHelper.getValueInt(docList.get(0), "docstatus") + ""; } catch (Exception e) { return docStatus; } finally { } return docStatus; } @Override public int getCancelButton(String sql) { BaseService b = (BaseService) FactoryBean.getBean("BaseService"); int ex = 0; // try{ ex = b.getSimpleJdbcTemplate().queryForObject(sql, Integer.class); // }catch(Exception e){ // } return ex; } /** * 针对496全是面板加载问题 wherePan 加载时得到的条件 where 9770功能号设置的关联关系 map 各个面板的集合 以功能号为key * map为值 */ @Override public String getMultiTableWhere(String wherePan, int FT, String FK, String SeekGroupID, Boolean bol) throws Exception { try { if (bol) { for (Map docMap : multiList) { if (DBHelper.getValueInt(docMap, "formid") == FT) { wherePan = SeekGroupID + "='" + DBHelper.getValue(docMap, FK) + "'"; break; } } } else { multiList.clear(); } } catch (Exception e) { return wherePan; } finally { } return wherePan;// 返回关联关系后的where条件。 } @Override public void getMultiTableList(Map multi) { this.multiList.add(multi); } /** * 判断是否含有特殊字符 * * @param str * @return true为包含,false为不包含 */ public static boolean isSpecialChar(String str) { String regEx = "[ _`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]|\n|\r|\t"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); return m.find(); } /** * 加载功能号数据信息 xin 2021-1-26 09:32:34 */ @Override public List> getFormLoad(FormLoadParameterEntity formLoad) throws Exception { try { List> formList = new ArrayList<>(); Map map = new HashMap(); // 特定类型窗体处理 if (";22;18;19;7;".indexOf(";" + formLoad.getFormType() + ";") != -1 && !formLoad.isHasCopy()) { try { String where = formLoad.getSqlWhere(); where = where.replaceAll("like", ";pb#").replaceAll("=", ";pb#"); where = where.replaceAll("@~", "").replaceAll("'", ""); String[] s = where.split("and"); String[] p = null; for (int i = 0; i < s.length; i++) { p = s[i].split(";pb#"); if (p.length > 1) { map.put(p[0].trim().toLowerCase(), p[1].trim()); } else { } } map.put("doc_size", 0);// 让其赋默认值 formList.add(map); return formList; } catch (ArrayIndexOutOfBoundsException e) { throw new Exception("加载功能号数据信息【" + formLoad.getFormType() + "】类型时,条件值出现数组越界。"); } catch (Exception e) { throw new Exception("加载功能号数据信息【" + formLoad.getFormType() + "】类型时出错。"); } } boolean hasData = ((";5;8;16;496;498;".indexOf(";" + formLoad.getFormType() + ";") != -1) ? true : false);// 是否为单据类型数据 // 表示已读 xin 2021-1-26 16:29:16 String readSql = "set nocount on \n " + "update a set a.isread=1 from t219001 a where a.usercode='" + formLoad.getSession().getAttribute(SessionKey.USERCODE) + "' " + "and a.formid=" + formLoad.getFormId() + " and a.formtype=" + formLoad.getFormType() + " and a.doccode='" + formLoad.getDoccode() + "' \n "; String sql = formLoad.getSql() + formLoad.getTableName() + (!"".equals(formLoad.getSqlWhere()) ? " where " + formLoad.getSqlWhere() : ""); sql = sql.replace("!", ""); List> list = sqlDBHelperIfc.getHashMapObj((hasData ? readSql : "") + sql);// 获取对应单号数据信息 if (list != null && list.size() > 0) {// 查询到单据信息的时候 map.putAll(list.get(0));// 把数据信息赋给map // 如果是复单进入 if (formLoad.isHasCopy() && formLoad.getFormId() != 0) { List> fieldList = systemSettingsBo.selectAll(formLoad.getFormId(), 0); for(Map fMap : fieldList) { //iscopyexclude表示复单时是否排除这个字段,1表示需要排除掉 if(DBHelper.getValueInt(fMap, "iscopyexclude")==1) { String value=DBHelper.getValue(map, DBHelper.getValue(fMap, "fieldid")); if(!"".equals(value)){ map.put(DBHelper.getValue(fMap, "fieldid").toLowerCase(), "");//直接赋空值 } } } map.put("doccode", ""); map.put("docstatus", 0); formList.add(map); return formList; } // 是单据类型数据 if (hasData) { String nextSql = ""; Pattern pattern = Pattern.compile("\\w+doccode\\s*="); Matcher matcher = pattern.matcher(sql.toLowerCase()); if (matcher.find()) { sql = sql.toLowerCase().replace(matcher.group(), "doccode="); } StringBuffer docAndDoc = new StringBuffer(); // 去掉空格,by danaus 2020/12/3 16:02 nextSql = sql.toLowerCase().replaceAll("doccode\\s*=\\s*'.*?'", "1=1") .replaceFirst("top\\s*\\d*\\s*\\*", "top 1 doccode ") + " order by doccode asc "; docAndDoc.append(getSqlDoc(nextSql, formLoad.getSession()));// 第一单 nextSql = sql.toLowerCase().replaceAll("doccode\\s*=\\s*", "doccode < ") .replaceFirst("top\\s*\\d*\\s*\\*", "top 1 doccode ") + " order by doccode desc "; docAndDoc.append(";").append(getSqlDoc(nextSql, formLoad.getSession()));// 上一单 nextSql = docAndDoc.toString(); map.put("updoc", nextSql); docAndDoc.delete(0, docAndDoc.length()); nextSql = sql.toLowerCase().replaceAll("doccode\\s*=\\s*\\S*", "1=1") .replaceFirst("top\\s*\\d*\\s*\\*", "top 1 doccode ") + " order by doccode desc "; docAndDoc.append(getSqlDoc(nextSql, formLoad.getSession()));// 最后一单 nextSql = sql.toLowerCase().replaceAll("doccode\\s*=\\s*", "doccode > ") .replaceFirst("top\\s*\\d*\\s*\\*", "top 1 doccode ") + " order by doccode asc "; docAndDoc.append(";").append(getSqlDoc(nextSql, formLoad.getSession()));// 下一单 nextSql = docAndDoc.toString(); map.put("nextdoc", nextSql); } }else {// 查询不到单据信息 if (!"".equals(formLoad.getDoccode())) {// 有单号。但是查询不到数据 sql = formLoad.getSql() + formLoad.getTableName() + " where doccode='" + formLoad.getDoccode() + "'"; List> docList = sqlDBHelperIfc.getHashMapObj(sql);// 获取对应单号数据信息 if (docList != null && docList.size() > 0) {// 单号能查询到数据,说明之前的查询设置了权限。当前的账号没权限查看 throw new Exception("提示:你没有权限查看【" + formLoad.getDoccode() + "】的内容,请联系制单人【" + DBHelper.getValue(docList.get(0), "entername") + "】"); } } } map.put("doc_size", list.size());// 判断单据需要 formList.add(map); return formList; } catch (Exception e) { throw e; } } /** * OA审核加载新界面数据 xin 2021-2-1 09:33:18 * @param formId * @param docState * @param doccode * @param request * @return * @throws Exception */ public List getOAVerifyMethod(int formId, int docState, String doccode, HttpServletRequest request) throws Exception { try { List lMap = new ArrayList<>(); List> bList = gButtonIfc.getTopOaButton(formId);// 获取审核按钮集合 if (bList != null && bList.size() > 0) { List>> oList = new ArrayList<>();// 存放排序好的审核按钮 List> listInfo = new ArrayList<>();// 存放当前单据的详细信息数据 String but = "declare ";// 声明属性 String sql = "";// 查询当前单据能显示出来的审核按钮 String gets = "";// 返回声明的属性值 String HDTable = "";// 当前单据查询的表 String upId = ""; for (Map butMap : bList) { // 这里对审核按钮进行排序组装处理 String id = DBHelper.getValue(butMap, "fieldid"); if (!upId.equals(id)) { List> fList = new ArrayList<>(); fList = bList.stream().filter(b -> id.equals(b.get("fieldid"))).collect(Collectors.toList()); if (fList.size() > 0) { oList.add(fList); upId = id; } } } Map sysMap = systemSettingsBo.getFormIdInTable(formId);// 获取审核的单据表名 if (sysMap != null) { HDTable = DBHelper.getValue(sysMap, "HDTable").trim();// 获取表名 // 获取当前单据的详细信息数据 listInfo = sqlDBHelperIfc .getHashMapObj("select * from " + HDTable + " where doccode='" + doccode + "'"); } // 遍历组装需要查询的审核按钮 for (int i = 0; i < bList.size(); i++) { Map map = bList.get(i); but += "@but" + DBHelper.getValue(map, "buttonID") + " int"; sql += "@but" + DBHelper.getValue(map, "buttonID") + "= (case when " + (DBHelper.getValueInt(map, "editStatus") == 0 ? "" : "DocStatus in (" + DBHelper.getValueInt(map, "editStatus") + ") and ") + (!"".equals(DBHelper.getValue(map, "showItemExpression")) ? DBHelper.getValRepShi(formId, DBHelper.getValue(map, "showItemExpression"), request.getSession(), listInfo.get(0), false)// 这里需要对设置有会话值或替换值进行处理 : "curchecker like '%," + request.getSession().getAttribute(SessionKey.USERCODE) + ",%'") + " then 1 else 0 end ) \n"; gets += "@but" + DBHelper.getValue(map, "buttonID") + " as '" + DBHelper.getValue(map, "buttonID") + "'"; if ((i + 1) < bList.size()) { but += ","; sql += ","; gets += ","; } } // 组装sql语句 sql = but + "\n set nocount on \n select " + sql + " from " + HDTable + " where DocCode='" + doccode + "' \n" + "select " + gets; // 获取到当前单据显示出来的审核按钮 。0表示不需要显示,1表示要显示。 List> listbut = sqlDBHelperIfc.getHashMapObj(sql); if (listbut != null && listbut.size() > 0) { // 组装 lMap = getButList(oList, listbut.get(0), listInfo.get(0), request); } return lMap; } else { throw new Exception("获取不到当前单据的审核按钮信息。"); } } catch (Exception e) { throw e; } } /** * 组装审核按钮 * @param oList * @param mapbut * @param mapInfo * @param request * @return */ private List getButList(List>> oList,Map mapbut, Map mapInfo, HttpServletRequest request) throws SQLException { try { String userCode = (String) request.getSession().getAttribute(SessionKey.USERCODE); List buttons = new ArrayList<>(); List nameList = new ArrayList<>(); List oaButList = new ArrayList<>(); List dataList = new ArrayList<>(); Boolean bol = false; for (List> butList : oList) { List name = new ArrayList<>(); List clickList = new ArrayList<>(); List date = new ArrayList<>(); List> but = new ArrayList<>(); String ccusercodes = ""; String id=""; for (Map buttonMap : butList) { int state = DBHelper.getValueInt(mapbut, DBHelper.getValue(buttonMap, "buttonID"));// 按状态,0表示不显示,1表示显示。 if (state == 1) {// 显示状态进入 // 是当前审核人的话 bol=true bol = (DBHelper.getValueInt(buttonMap, "editStatus") == DBHelper.getValueInt(mapInfo, "DocStatus") ? true : bol); // 当前审核人审核结束后,但是撤销按钮有显示的话 bol=true if(DBHelper.getValue(mapInfo, "CurChecked").contains(userCode) && !DBHelper.getValue(mapInfo, "CurChecker").contains(userCode)) { bol=true; } if (name.size() == 0) { String namev=DBHelper.getValue(buttonMap, "fieldName"); if(namev.indexOf("!")!=-1){//有查询 String sql=DBHelper.getValRepShi(namev, request.getSession(), mapInfo, false); List> listbut = sqlDBHelperIfc.getHashMapObj(sql.replace("!", "")); name.add(DBHelper.getValue(listbut.get(0), ""));// 显示的审核名 }else{ name.add(namev);// 显示的审核名 } } if (clickList.size() == 0) {// 显示当前审核页卡的按钮 clickList.add((bol ? "layui-show" : "")); id=DBHelper.getValue(buttonMap, "fieldid").toLowerCase(); clickList.add(id);// 字段 ccusercodes = DBHelper.getValue(buttonMap, "fieldid").toLowerCase().replace("memo", "ccusercodes"); clickList.add(ccusercodes);// 抄送字段 } // 查询按钮集合中是否有当前字段,有则在此上加按钮 String onclick = ""; String pawString = (DBHelper.getValueInt(buttonMap, "isShowPwdEdit") == 1) ? "true" : "false";// 弹出密码框 String ReturnCurChecker = DBHelper.getValue(buttonMap, "ReturnCurChecker"); String ReturnCurCheckerName = DBHelper.getValue(buttonMap, "ReturnCurCheckerName"); boolean isInspection = (DBHelper.getValueInt(buttonMap, "isInspection") == 1 ? true : false);// 是否禁止必录检查 String getBtnStr = pawString + ",'" + DBHelper.getValueInt(buttonMap, "formid") + "'," + "'" + SettingKey.getHostUrl(request) + "/',this," + isInspection + ",'" + DBHelper.getValue(buttonMap, "ExternalURL") + "'," + DBHelper.getValueInt(buttonMap, "UrlShowLocation") + "," + DBHelper.getValue(buttonMap, "buttonID"); String url1 = DBHelper.getValueInt(buttonMap, "FT") + "/" + DBHelper.getValueInt(buttonMap, "FTFormType") + "/index.jsp"; switch (DBHelper.getValueInt(buttonMap, "SelectChecker")) { case 0: onclick = "window.parent.getBtn(" + getBtnStr + ");"; break; case 1: onclick = "window.parent.createPopSelect('" + ReturnCurChecker + "','" + ReturnCurCheckerName + "'," + getBtnStr + ");"; break; case 2: onclick = "window.parent.mulChoice2('" + DBHelper.getValue(buttonMap, "FK") + "','" + DBHelper.getValue(buttonMap, "SeekGroupID") + "','" + DBHelper.getValue(buttonMap, "sPremissField") + "','" + DBHelper.getValue(buttonMap, "dPremissField") + "','" + DBHelper.getValue(buttonMap, "FKeFilter") + "','" + SettingKey.getHostUrl(request) + "/app'+spellPath+'" + url1 + "'," + getBtnStr + ");"; break; default: break; } String par = DBHelper.getValue(buttonMap, "fieldid").toLowerCase() + ";" + DBHelper.getValue(buttonMap, "docitem"); Map parMap = new HashMap<>(); parMap.put("click", "getccusercodes('"+id+"','" + ccusercodes + "');window.parent.setOa('" + par + "');" + onclick); parMap.put("butname", DBHelper.getValue(buttonMap, "ButtonName")); parMap.put("iocn", getIocnText(DBHelper.getValue(buttonMap, "ButtonName"))); parMap.put("id", DBHelper.getValueInt(buttonMap, "buttonID")); but.add(parMap); } if (date.size() == 0) {// 显示流程跟踪 String namev=DBHelper.getValue(buttonMap, "fieldName"); if(namev.indexOf("!")!=-1){//有查询 String sql=DBHelper.getValRepShi(namev, request.getSession(), mapInfo, false); List> listbut = sqlDBHelperIfc.getHashMapObj(sql.replace("!", "")); date.add(DBHelper.getValue(listbut.get(0), "")); }else{ date.add(namev); } String userName = DBHelper.getValue(mapInfo, DBHelper.getValue(buttonMap, "fieldid").toLowerCase().replace("memo", "username")); String dates = DBHelper.getValue(mapInfo, DBHelper.getValue(buttonMap, "fieldid").toLowerCase().replace("memo", "date")); date.add(bol ? "" : userName); date.add(bol ? "" : dates); date.add(bol ? "" : "process-active"); date.add(bol ? "" : DBHelper.getValue(mapInfo, DBHelper.getValue(buttonMap, "fieldid"))); } } if (name != null && name.size() == 1) { name.add((bol ? "layui-this" : ""));// 显示当前审核页卡 nameList.add(name); } if (clickList != null && clickList.size() > 0) { clickList.add(but); oaButList.add(clickList); } if (date != null && date.size() > 0) { dataList.add(date); } } // 下面的顺序不能乱,会影响界面显示 buttons.add(nameList); buttons.add(oaButList); buttons.add(dataList); return buttons; } catch (Exception e) { throw e; } } /** * 获取审核按钮图标 * @param docitem * @return */ private String getIocnText(String docitem) { String iocn = ""; if(docitem.contains("通过")){ iocn="icon-tongguo";//通过 }else if(docitem.contains("驳回")){ iocn="icon-bohui";//驳回 }else if(docitem.contains("驳回上")){ iocn="icon-bohuidao";//驳回上一级 }else if(docitem.contains("撤销")){ iocn="icon-chexiao";//撤销 }else if(docitem.contains("保存")){ iocn="icon-baocun";//保存 } // switch (docitem) { // case 10: // iocn="icon-tongguo";//通过 // break; // case 20: // iocn="icon-bohui";//驳回 // break; // case 30: // iocn="icon-bohuidao";//驳回上一级 // break; // case 40: // iocn="icon-chexiao";//撤销 // break; // case 50: // iocn="icon-baocun";//保存 // break; // default: // break; // } return iocn; } }