/**
   * 批量删除通讯费属性信息
   *
   * @return String
   */
  public String comsPayCommunicationDelete() {
    Authuser user = (Authuser) request.getSession().getAttribute("currentUser");

    // 获得要删除的对象ID集
    String[] idListstr = request.getParameter("ComsPayCommunicationIds").split(",");

    if (idListstr != null && idListstr.length > 0) {
      try {
        HashMap batchMap = new HashMap();
        for (String id : idListstr) {
          batchMap.put(id.trim(), id.trim());
        }
        List<String> batchList = comsPayCommunicationService.findByBatchMap(batchMap);
        if (batchList != null && batchList.size() > 0) {
          for (String id : batchList) {
            // 删除通讯费
            comsPayCommunicationService.removeComsPayCommunication(id.trim());
            // 加上审计日志
            new LogAssistant(
                    user.getUsername().trim(),
                    request.getRemoteAddr() + ":" + TrackOpterationEnum.DELETE.getOperation(),
                    "删除通讯费[" + id.trim() + "]成功")
                .logUserOpt();
            message = this.getText("il8n.app.optSuccess");
          }
        }
      } catch (BeInUseException e) {
        // message = "要删除通讯费失败,请联系系统管理员";
        this.setErrMessage("要删除通讯费失败,请联系系统管理员");
      }
      message = "删除通讯费成功";
    } else {
      // message = "删除通讯费失败,请重新操作";
      this.setErrMessage("删除通讯费失败,请重新操作");
    }
    return SUCCESS;
  }
  /**
   * 修改指定的通讯费信息
   *
   * @return String
   */
  public String comsPayCommunicationUpdate() {
    ComsPayCommunication ComsPayCommunication =
        (ComsPayCommunication) request.getSession().getAttribute("ComsPayCommunication");
    Authuser user = (Authuser) request.getSession().getAttribute("currentUser");

    ComsPayCommunication.setReimbursedNum(reimbursedNum);
    ComsPayCommunication.setReimbursedMoney(reimbursedMoney);
    ComsPayCommunication.setReimbursedType(reimbursedType);
    ComsPayCommunication.setInvoiceCode(invoiceCode);
    ComsPayCommunication.setTermid(termid);
    ComsPayCommunication.setTermno(termnos);
    ComsPayCommunication.setTermseq(termSeqs);
    ComsPayCommunication.setAddress(address);
    ComsPayCommunication.setItemUid(addItemUid); // 从终端表取得项目编号
    ComsPayCommunication.setCostTypeCode("100016");
    ComsPayCommunication.setRealCost(realCost);

    ComsPayCommunication.setOrgInnerCode01(orgInnerCode01);
    ComsPayCommunication.setOrgInnerCode02(orgInnerCode02);
    ComsPayCommunication.setOrgInnerCode03(orgInnerCode03);

    ComsPayCommunication.setRemark(remark);
    ComsPayCommunication.setPayState("1");
    ComsPayCommunication.setTransactionPerson(tsPerson);
    ComsPayCommunication.setUserid(user.getUserid());
    ComsPayCommunication.setSubmitDate(DateConvert.Date2String(new java.util.Date()));
    ComsPayCommunication.setCostDate(startCostDate);

    try {
      // 修改通讯费
      comsPayCommunicationService.updateComsPayCommunication(ComsPayCommunication);
      // 加上审计日志
      new LogAssistant(
              user.getUsername().trim(),
              request.getRemoteAddr() + ":" + TrackOpterationEnum.UPDATE.getOperation(),
              "修改通讯费[" + payUid + "]成功")
          .logUserOpt();
      this.message = "修改通讯费信息成功!";
    } catch (RuntimeException re) {
      message = "发生内部异常,修改通讯费[" + payUid + "]失败!请与管理员联系";
      log.error(message + ",Error Message:" + re.getMessage());
    }

    return SUCCESS;
  }
  /**
   * 编辑指定的通讯费支付信息
   *
   * @return String
   */
  public String comsPayCommunicationEdit() {
    String batchNum = String.valueOf(request.getParameter("ComsPayCommunicationId"));

    Object[] comsPayCommunication = comsPayCommunicationService.findByBatchNum(batchNum);
    // 根据批次号得到终端信息列表
    if (comsPayCommunication != null && comsPayCommunication.length > 0) {
      if (comsPayCommunication[0] != null && !comsPayCommunication[0].equals("")) {
        this.costTypeCode = comsPayCommunication[0].toString();
      }
      if (comsPayCommunication[1] != null && !comsPayCommunication[1].equals("")) {
        this.payTotalMoney = Double.parseDouble(comsPayCommunication[1].toString());
      }
      if (comsPayCommunication[2] != null && !comsPayCommunication[2].equals("")) {
        this.startCostDate =
            DateConvert.convertAtoB(comsPayCommunication[2].toString(), "yyyyMM", "yyyy-MM");
      }
      if (comsPayCommunication[3] != null && !comsPayCommunication[3].equals("")) {
        this.endCostDate =
            DateConvert.convertAtoB(comsPayCommunication[3].toString(), "yyyyMM", "yyyy-MM");
      }
      if (comsPayCommunication[4] != null && !comsPayCommunication[4].equals("")) {
        this.reimbursedMoney = Double.parseDouble(comsPayCommunication[4].toString());
      }
      if (comsPayCommunication[5] != null && !comsPayCommunication[5].equals("")) {
        this.reimbursedNum = comsPayCommunication[5].toString();
      }
      if (comsPayCommunication[6] != null && !comsPayCommunication[6].equals("")) {
        this.reimbursedType = comsPayCommunication[6].toString();
      }
      if (comsPayCommunication[7] != null && !comsPayCommunication[7].equals("")) {
        this.remark = comsPayCommunication[7].toString();
      }
      if (comsPayCommunication[8] != null && !comsPayCommunication[8].equals("")) {
        this.tsPerson = comsPayCommunication[8].toString();
      }
      if (comsPayCommunication[9] != null && !comsPayCommunication[9].equals("")) {
        this.invoiceCode = comsPayCommunication[9].toString();
      }
    }
    this.termList = comsPayCommunicationService.findTermListByBatchNum(batchNum);

    /**
     * ComsPayCommunication ComsPayCommunication = comsPayCommunicationService.findById(id);
     * this.payUid = ComsPayCommunication.getPayUid(); this.address =
     * ComsPayCommunication.getAddress(); this.costTypeCode =
     * ComsPayCommunication.getCostTypeCode(); this.orgInnerCode01 =
     * ComsPayCommunication.getOrgInnerCode01(); this.orgInnerCode02 =
     * ComsPayCommunication.getOrgInnerCode02(); this.orgInnerCode03 =
     * ComsPayCommunication.getOrgInnerCode03(); this.addItemUid =
     * ComsPayCommunication.getItemUid(); this.termid = ComsPayCommunication.getTermid();
     * this.termnos = ComsPayCommunication.getTermno(); this.termSeqs =
     * ComsPayCommunication.getTermseq();
     *
     * <p>this.startCostDate = ComsPayCommunication.getCostDate(); this.endCostDate =
     * ComsPayCommunication.getCostDate(); this.invoiceCode =ComsPayCommunication.getInvoiceCode();
     * //this.itemUids = ComsPayCommunication.getItemUid(); ComsProject comsProject =
     * comsProjectDao.findById(ComsPayCommunication.getItemUid()); this.itemName =
     * comsProject.getItemName(); this.realCost = ComsPayCommunication.getRealCost();
     * this.reimbursedMoney = ComsPayCommunication.getReimbursedMoney(); this.reimbursedNum =
     * ComsPayCommunication.getReimbursedNum(); this.reimbursedType =
     * ComsPayCommunication.getReimbursedType(); this.remark = ComsPayCommunication.getRemark();
     * this.payState = ComsPayCommunication.getPayState(); this.tsPerson =
     * ComsPayCommunication.getTransactionPerson();
     *
     * <p>request.getSession().setAttribute("ComsPayCommunication", ComsPayCommunication);
     */
    return SUCCESS;
  }
  /**
   * 添加通讯费支付信息
   *
   * @return String
   */
  public String comsPayCommunicationAdd() {
    Authuser user = (Authuser) request.getSession().getAttribute("currentUser");
    /** 得到支付期间 */
    Date startDate = DateConvert.Convert(startCostDate + "-01");
    Date endDate = DateConvert.Convert(endCostDate + "-01");

    int months = AppCommonVarRegiter.countMonthSpace(startDate, endDate);
    double realPayCost = 0;
    // 如果有多个月份需要平分支付金额
    if (payTotalMoney != 0 && months != 0 && (sTermNo != null && sTermNo.length > 0)) {
      realPayCost = payTotalMoney / (months * sTermNo.length);
    }
    String batchNum = UUID.randomUUID().toString();
    List<ComsPayCommunication> addList = new ArrayList<ComsPayCommunication>();

    if (sTermNo != null && sTermNo.length > 0) {
      for (int j = 0; j < sTermNo.length; j++) {
        String termBatchNum = UUID.randomUUID().toString();
        for (int i = 0; i < months; i++) {
          String date = DateConvert.getNextMonth(startDate, i, "yyyyMM");
          ComsPayCommunication ComsPayCommunication = new ComsPayCommunication();
          ComsPayCommunication.setReimbursedNum(reimbursedNum);
          ComsPayCommunication.setReimbursedMoney(reimbursedMoney);
          ComsPayCommunication.setReimbursedType(reimbursedType);
          ComsPayCommunication.setInvoiceCode(invoiceCode);
          ComsPayCommunication.setTermid(Integer.parseInt(sTermInfoId[j].trim()));
          ComsPayCommunication.setTermno(sTermNo[j].trim());
          ComsPayCommunication.setTermseq(sTermSeq[j].trim());
          ComsPayCommunication.setAddress(sAddress[j].trim());
          ComsPayCommunication.setItemUid(sItemUid[j].trim()); // 从终端表取得项目编号
          ComsPayCommunication.setOrgInnerCode01(sOrgInnerCode01[j]);
          ComsPayCommunication.setOrgInnerCode02(sOrgInnerCode02[j]);
          ComsPayCommunication.setOrgInnerCode03(sOrgInnerCode03[j]);
          ComsPayCommunication.setRemark(remark);
          ComsPayCommunication.setCostTypeCode("100016");
          ComsPayCommunication.setPayState("1");
          ComsPayCommunication.setTransactionPerson(tsPerson);
          ComsPayCommunication.setUserid(user.getUserid());
          ComsPayCommunication.setSubmitDate(DateConvert.Date2String(new java.util.Date()));
          ComsPayCommunication.setCostDate(date);
          ComsPayCommunication.setRealCost(realPayCost);
          ComsPayCommunication.setPayTotalMoney(payTotalMoney);
          ComsPayCommunication.setBatchNum(batchNum);
          ComsPayCommunication.setTermBatchNum(termBatchNum);
          addList.add(ComsPayCommunication);
        }
      }
    }
    // 添加通讯费支付
    String errMessage = comsPayCommunicationService.batchSave(addList);
    // 加上审计日志
    if (errMessage != null) {
      this.setErrMessage(errMessage);
      return INPUT;
    } else {
      String msg =
          "添加通讯费支付终端号为["
              + termnos
              + "],终端序列号为["
              + termSeqs
              + "],"
              + "支付成本期从["
              + startCostDate
              + "]到["
              + endCostDate
              + "] 成功";
      new LogAssistant(
              user.getUsername().trim(),
              request.getRemoteAddr() + ":" + TrackOpterationEnum.ADD.getOperation(),
              msg)
          .logUserOpt();
      this.message = "添加通讯费支付登记成功!";
    }

    return SUCCESS;
  }