예제 #1
0
  /**
   * 打开设计信息。
   *
   * @param funcId -- 功能ID
   * @param pageType -- 页面类型
   * @param realPath -- 系统路径
   * @return
   */
  public String loadDesign(String funcId, String pageType, String realPath) {
    if (funcId == null || funcId.length() == 0) {
      setMessage(JsMessage.getValue("pagedesign.funidisnull"));
      return _returnFaild;
    }
    if (pageType == null || pageType.length() == 0) {
      setMessage(JsMessage.getValue("pagedesign.pagetypeisnull"));
      return _returnFaild;
    }

    PageParser parse = null;
    if (pageType.indexOf("grid") >= 0) {
      parse = new GridPageParser();
    } else {
      parse = new FormPageParser();
    }

    // 设置系统路径
    parse.setRealPath(realPath);

    String ret = parse.parsePage(funcId, pageType);
    if (ret.equals(_returnFaild)) {
      setMessage(parse.getMessage());
      return _returnFaild;
    }
    String page = parse.getReturnData();

    // 返回给前台
    setReturnData(page);

    return _returnSuccess;
  }
예제 #2
0
  /**
   * 删除设计信息。
   *
   * @param funcId -- 功能ID
   * @param pageType -- 页面类型
   * @return
   */
  public String deleteDesign(String funcId, String pageType) {
    if (funcId == null || funcId.length() == 0) {
      setMessage(JsMessage.getValue("pagedesign.funidisnull"));
      return _returnFaild;
    }
    if (pageType == null || pageType.length() == 0) {
      setMessage(JsMessage.getValue("pagedesign.pagetypeisnull"));
      return _returnFaild;
    }

    String sql = "delete from fun_design where fun_id = ? and page_type = ? ";

    DaoParam param = _dao.createParam(sql);
    param.addStringValue(funcId);
    param.addStringValue(pageType);
    param.setDsName(DefineName.DESIGN_NAME);

    boolean ret = _dao.update(param);
    if (!ret) {
      setMessage(JsMessage.getValue("pagedesign.dserror"));
      return _returnFaild;
    }

    return _returnSuccess;
  }
예제 #3
0
  /**
   * 取配置信息,构建成JSON对象
   *
   * @param userId -- 用户信息
   * @return
   */
  public String getPortalJson(String userId) {
    // 取用户所属角色的模板信息
    List<Map<String, String>> lsTemp = queryTemplet(userId);
    if (lsTemp.isEmpty()) {
      // "构建首页失败,因为用户所属角色没有定义PORTAL模板!"
      setMessage(JsMessage.getValue("portalquery.notemp"));
      return _returnFaild;
    }

    // 构建PORTAL的JSON
    StringBuilder sbtemps = new StringBuilder();
    for (int i = 0, n = lsTemp.size(); i < n; i++) {
      Map<String, String> mpTemp = lsTemp.get(i);

      try {
        String tempJson = templetJson(mpTemp);

        sbtemps.append(tempJson);
        sbtemps.append((i < n - 1) ? ",\n" : "\n");
      } catch (BoException e) {
        _log.showError(e);
        setMessage(e.getMessage());
        return _returnFaild;
      }
    }

    String portalJson = "{portalnum:" + lsTemp.size() + ", portals:[\n" + sbtemps.toString() + "]}";
    _log.showDebug("---------portalJson=" + portalJson);
    setReturnData(portalJson);

    return _returnSuccess;
  }
예제 #4
0
  /**
   * 取列内容的JSON
   *
   * @param templetId -- 模板ID
   * @param templetName -- 模板名称
   * @return
   */
  private String colItemsJson(String templetId, String templetName) throws BoException {
    // 取模板栏目
    List<Map<String, String>> lsPort = queryPortlet(templetId);
    if (lsPort.isEmpty()) {
      // "构建首页失败,因为PORTAL模板【{0}】的栏目明细为空!"
      throw new BoException(JsMessage.getValue("portalquery.notempdet"), templetName);
    }

    StringBuilder sbitems = new StringBuilder();
    for (int i = 0, n = lsPort.size(); i < n; i++) {
      Map<String, String> mpPort = lsPort.get(i);

      sbitems.append("\t\t{id:'" + mpPort.get("portlet_id") + "', ");
      sbitems.append("title:'" + mpPort.get("portlet_title") + "', ");
      sbitems.append("colno:'" + mpPort.get("col_no") + "', ");
      sbitems.append("iconCls:'" + mpPort.get("iconcls") + "', ");
      sbitems.append("height:'" + mpPort.get("height") + "', ");
      sbitems.append("collapse:'" + mpPort.get("collapse") + "', ");
      sbitems.append("typecode:'" + mpPort.get("type_code") + "', ");
      sbitems.append("objectid:'" + mpPort.get("object_id") + "'}");
      sbitems.append((i < n - 1) ? ",\n" : "\n");
    }

    return sbitems.toString();
  }
예제 #5
0
  /**
   * 解析模板文件主要方法
   *
   * @param funcId
   * @return
   */
  public String parsePage(String funcId, String pageType) {
    if (funcId == null || funcId.length() == 0) {
      // "错误参数:功能ID不能为!"
      _log.showWarn(JsMessage.getValue("pageparser.idnull"));
      return _returnFaild;
    }

    String page = PageTemplet.getInstance().getPage(pageType);
    if (page == null || page.length() == 0) { // "读取GRID模板文件失败!"
      _log.showWarn(JsMessage.getValue("pageparser.notemp"));
      return _returnFaild;
    }

    // 取页面设计信息
    _designPage = readDesignPage(funcId, pageType);

    // 取功能定义信息
    _funid = funcId;
    _funDefine = FunDefineDao.queryFun(funcId);

    // 取页面名称
    String pageName = "";
    if (pageType.indexOf("grid") >= 0) {
      pageName = _funDefine.get("grid_page");
    } else {
      pageName = _funDefine.get("form_page");
    }
    if (pageName.length() == 0) {
      setMessage(JsMessage.getValue("pageparser.nopage"));
      return _returnFaild;
    }

    // 取元素模板文件
    _elementTpl = ElementTemplet.getInstance().getElementMap(pageType);

    // 解析页面中的参数
    page = parseParam(page, _param_regex);

    // 解析控件元素
    page = parseElement(page, _element_regex);

    // 解析信息返回前台
    page = page.trim();
    setReturnData(page);

    return _returnSuccess;
  }
예제 #6
0
  /**
   * 解析标签中的名字,如<element:page/>取page的值
   *
   * @param tag
   * @return
   */
  private String tagName(String tag) {
    if (tag == null || tag.length() == 0) { // "错误参数:标签为空!"
      _log.showWarn(JsMessage.getValue("pageparser.tagnull"));
      return "";
    }

    return tag.substring(tag.indexOf(":") + 1, tag.length() - 2);
  }
예제 #7
0
 /**
  * 修改公告状态为“新”
  *
  * @param msgId
  * @return
  */
 private void sendMsg(String msgId) throws BoException {
   String usql = "update plet_msg set msg_state = '1', send_date = ? where msg_id = ?";
   DaoParam param = _dao.createParam(usql);
   param.addDateValue(DateUtil.getTodaySec());
   param.addStringValue(msgId);
   boolean bu = _dao.update(param);
   if (!bu) {
     // "发布公告失败:修改公告状态为“新”失败!"
     throw new BoException(JsMessage.getValue("portlet.boarderror"));
   }
 }
예제 #8
0
  /**
   * 保存设计信息。
   *
   * @param funcId -- 功能ID
   * @param pageType -- 页面类型
   * @param content -- 设计信息
   * @return
   */
  public String saveDesign(String funcId, String pageType, String content) {
    if (funcId == null || funcId.length() == 0) {
      setMessage(JsMessage.getValue("pagedesign.funidisnull"));
      return _returnFaild;
    }
    if (pageType == null || pageType.length() == 0) {
      setMessage(JsMessage.getValue("pagedesign.pagetypeisnull"));
      return _returnFaild;
    }

    boolean ret = false;
    if (hasDesign(funcId, pageType)) {
      ret = updateDesign(funcId, pageType, content);
    } else {
      ret = insertDesign(funcId, pageType, content);
    }

    if (!ret) {
      setMessage(JsMessage.getValue("pagedesign.sserror"));
      return _returnFaild;
    }

    return _returnSuccess;
  }
예제 #9
0
  /**
   * 生成公告阅读记录
   *
   * @param msgId -- 消息ID
   * @param userId -- 用户ID
   * @param userName -- 用户名
   * @return
   */
  public String readBoard(String msgId, String userId, String userName) {
    Map<String, String> mpRead = FactoryUtil.newMap();
    mpRead.put("msg_id", msgId);
    mpRead.put("user_id", userId);
    mpRead.put("user_name", userName);
    mpRead.put("read_date", DateUtil.getTodaySec());

    String readId = DmDao.insert("plet_read", mpRead);
    if (readId == null || readId.length() == 0) {
      // "生成公告阅读记录失败!"
      setMessage(JsMessage.getValue("portlet.createboarderror"));
      return _returnFaild;
    }
    return _returnSuccess;
  }
예제 #10
0
  /**
   * 批量发布公告。
   *
   * @param keyIds -- 消息数组ID
   * @return
   */
  public String gridSendMsg(String[] keyIds) {
    if (keyIds == null || keyIds.length == 0) {
      // "发送消息ID为空!"
      setMessage(JsMessage.getValue("portlet.msgidisnull"));
      return _returnFaild;
    }

    // 发送消息
    try {
      for (int i = 0, n = keyIds.length; i < n; i++) {
        sendMsg(keyIds[i]);
      }
    } catch (BoException e) {
      _log.showError(e);
      setMessage(e.getMessage());
      return _returnFaild;
    }

    return _returnSuccess;
  }
예제 #11
0
  /**
   * 填充数据到表单对象。
   *
   * @param funId -- 报表所属功能ID
   * @param sheet -- 表格对象
   * @param mpData -- 表单数据
   * @param lsField -- 字段信息
   * @param curPage -- 当前页数
   * @param sumPage -- 总页数
   * @return
   */
  public static HSSFSheet fillForm(
      String funId,
      HSSFSheet sheet,
      Map<String, String> mpData,
      List<Map<String, String>> lsField,
      int curPage,
      int sumPage) {
    if (lsField == null || mpData == null) {
      return sheet;
    }
    if (lsField.isEmpty() || mpData.isEmpty()) {
      _log.showDebug("data is empty or field is null!");
      return sheet;
    }

    // 单元格的值
    String strValue = "";
    for (int i = 0, n = lsField.size(); i < n; i++) {
      Map<String, String> mpField = lsField.get(i);

      String strStyle = mpField.get("format"); // 字段格式
      String isOutZero = mpField.get("is_outzero"); // 0是否输出
      if (isOutZero == null) isOutZero = "1";
      String strColName = mpField.get("display"); // 字段名称
      String strColCode = (mpField.get("col_code")).toLowerCase(); // 字段编码
      String strColTag = mpField.get("combo_code"); // 标签

      int[] posi = getPosition(mpField.get("col_pos"));
      if (posi.length != 2) {
        _log.showWarn(strColName + " [" + mpField.get("col_pos") + "] position is error!");
        continue;
      }

      if (strColCode.equalsIgnoreCase("{CURUSERNAME}")) {
        // 当前用户
        if (_mpUser != null) strValue = _mpUser.get("user_name");
      } else if (strColCode.equalsIgnoreCase("{CURDATE}")) {
        // 当前日期
        strValue = DateUtil.getToday();
      } else if (strColCode.equalsIgnoreCase("{CURDEPTNAME}")) {
        // 当前部门
        if (_mpUser != null) strValue = _mpUser.get("dept_name");
        else strValue = "";
      } else if (strColCode.equalsIgnoreCase("{CURPAGENUM}")) {
        // 当前所在页数
        strValue = Integer.toString(curPage);
      } else if (strColCode.equalsIgnoreCase("{CURSUMPAGE}")) {
        // 当前共页数
        strValue = Integer.toString(sumPage);
      } else {
        // 设置cell的显示值,如果是图片字段,则不用处理
        if (!strStyle.equals("image")) {
          strValue = mpData.get(strColCode);
          strValue = (strValue != null) ? strValue : "";
          strValue = (strValue.equalsIgnoreCase("null")) ? "" : strValue;

          // 取选项显示值
          strValue = getComboTitle(strValue, strColTag);
          // 转换数据格式
          strValue = convertValue(strValue, strStyle);
          if (isOutZero.equals("0")) strValue = getZeroOut(strValue, strStyle);
        }
      }

      // 获取指定的单元格
      HSSFRow row = sheet.getRow(posi[0]);
      if (row == null) row = sheet.createRow(posi[0]);
      HSSFCell cell = row.getCell(posi[1]);
      if (cell == null) cell = row.createCell(posi[1]);
      // 填充单元格内容
      if (!strStyle.equals("image")) {
        cell.setCellValue(strValue.trim());
      } else {
        // 如果填充图片不成功能,则填写文字
        if (!printCellImage(funId, strColCode, mpData, cell)) {
          cell.setCellValue(JsMessage.getValue("report.xlsutil.noimage"));
        }
      }
    }

    return sheet;
  }