/** 获得累计借方和累计贷方 张列 */
 public List getLendsMoney(String bookId, String officeName) throws Exception {
   List list = null;
   List temp_list = new ArrayList();
   try {
     if (officeName.equals("")) {
       list = this.getDatainitialize(bookId);
       return list;
     }
     // 获得科目代码和科目名称
     list = this.getDatainitialize(bookId);
     if (list == null) {
       return list;
     }
     Iterator it = list.iterator();
     while (it.hasNext()) {
       DatainitializeDTO temp_datainitializeDTO = (DatainitializeDTO) it.next();
       String subjectCode = temp_datainitializeDTO.getSubjectCode();
       DatainitializeDTO datainitializeDTO =
           accountantCredenceDAO.getLendsMoney(subjectCode, officeName, bookId);
       datainitializeDTO.setSubjectCode(temp_datainitializeDTO.getSubjectCode());
       datainitializeDTO.setSubjectName(temp_datainitializeDTO.getSubjectName());
       temp_list.add(datainitializeDTO);
     }
   } catch (Exception e) {
     e.printStackTrace();
   }
   return temp_list;
 }
 /** 获得科目代码和科目名称 张列 */
 public List getDatainitialize(String bookId) throws Exception {
   List list = null;
   try {
     list = accountantCredenceDAO.getDatainitalizeInfo(bookId);
   } catch (Exception e) {
     e.printStackTrace();
   }
   return list;
 }
 /**
  * FN101 账套状态 0可用,1为禁用
  *
  * @param bookId
  * @return
  * @throws Exception 张列
  */
 public String getBookST(String bookId) throws Exception {
   String stutas = "";
   try {
     stutas = accountantCredenceDAO.getBookST(bookId);
   } catch (Exception e) {
     e.printStackTrace();
   }
   return stutas;
 }
 /**
  * 判断FN201里是否存在SUMMAY=1 and OFFICE=所选办事处的记录
  *
  * @param bookId
  * @param officeName
  * @return
  * @throws Exception 张列
  */
 public List is_SummayOffice(final String bookId, final String officeName) throws Exception {
   return accountantCredenceDAO.is_SummayOffice(bookId, officeName);
 }
  /**
   * * 插入FN311 OP_SYS=财务系统 OP_MODEL=初始数据 OP_BUTTON=2 OP_IP=操作员ip OP_TIME=系统时间 OPERATOR=操作员 插入FN201:
   * BOOK_ID=所属账套 SUBJECT_CODE=科目代码 SUMMAY=1 DEBIT=累计借方 CREDIT=累计贷方 MAKEBILL=操作员 OFFICE=所选办事处
   *
   * @param datainitializeDTO 张列
   * @param securityInfo
   * @throws Exception
   */
  public void insertSummaryOffice(List list, SecurityInfo securityInfo) throws Exception {
    try {
      if (list.size() != 0) {
        DatainitializeDTO datainitializeDTO1 = (DatainitializeDTO) list.get(0);
        // 插入FN311
        FnOperateLog fnOperateLog = new FnOperateLog();
        fnOperateLog.setOpSys(BusiLogConst.OP_SYSTEM_TYPE_FINANCE + "");
        fnOperateLog.setOpModel(BusiLogConst.FN_OP_BOOKMNG_DATAINITIALIZE + "");
        fnOperateLog.setOpButton("1");
        fnOperateLog.setOpIp(securityInfo.getUserIp());
        fnOperateLog.setOpTime(new Date());
        fnOperateLog.setOperator(securityInfo.getUserName());
        fnOperateLog.setBookId(datainitializeDTO1.getBookId());
        fnOperateLogDAO.insert(fnOperateLog);
        Iterator it = list.iterator();
        while (it.hasNext()) {
          DatainitializeDTO datainitializeDTO = (DatainitializeDTO) it.next();
          //          if(datainitializeDTO.getDebit().equals("0") &&
          // datainitializeDTO.getCredit().equals("0")){
          //            continue;
          //          }else{
          // 插入 FN201
          AccountantCredence accountantCredence = new AccountantCredence();
          accountantCredence.setBookId(datainitializeDTO.getBookId());
          accountantCredence.setSubjectCode(datainitializeDTO.getSubjectCode());
          accountantCredence.setSummay(bookParameterDAO.getSummay(datainitializeDTO.getBookId()));

          accountantCredence.setDebit(new BigDecimal(datainitializeDTO.getDebit()));
          accountantCredence.setCredit(new BigDecimal(datainitializeDTO.getCredit()));

          accountantCredence.setMakebill(securityInfo.getUserName());
          accountantCredence.setOffice(datainitializeDTO.getOfficeName());
          accountantCredence.setCredenceSt("2");
          // 年
          String date1 = bookDAO.getUseYearmonth(datainitializeDTO.getBookId()) + "01";
          DateFormat df = new SimpleDateFormat("yyyyMMdd");
          String year = "";
          try {
            Date d1 = df.parse(date1);
            // System.out.println("d1=="+df.format(d1));
            Calendar g = Calendar.getInstance();
            g.setTime(d1);
            g.add(Calendar.DATE, -1);
            Date d2 = g.getTime();
            // System.out.println("d2======="+df.format(d2));
            year = df.format(d2);
          } catch (ParseException exx) {
            exx.printStackTrace();
          }
          accountantCredence.setCredenceDate(year);
          accountantCredence.setSettDate(year);
          // 如果是(损益类科目)直接把FN201中的(损益结转字段置为2)
          if (subjectDAO
              .getSortcodeByCode_WL(datainitializeDTO.getSubjectCode(), securityInfo)
              .equals("4")) {
            accountantCredence.setIncDecSt("2");
          }
          if (subjectDAO
              .getProperyByCode_WL(datainitializeDTO.getSubjectCode(), securityInfo)
              .equals("0")) {
            // 如果是(银行属性的科目)直接把(银行账结转状态置为2)
            accountantCredence.setBankAccSt("2");
          }
          if (subjectDAO
              .getProperyByCode_WL(datainitializeDTO.getSubjectCode(), securityInfo)
              .equals("1")) {
            // 如果是(现金属性的科目)直接把(现金账结转状态置为2)
            accountantCredence.setCashAccSt("2");
          }
          accountantCredenceDAO.insert(accountantCredence);
          //          }
        }
        Iterator it1 = list.iterator();
        while (it1.hasNext()) {
          DatainitializeDTO datainitializeDTO11 = (DatainitializeDTO) it1.next();
          //          if(datainitializeDTO11.getYesterdayRemainingSum().equals("0") ||
          // datainitializeDTO11.getBalaceDirection().equals("2")){
          //            continue;
          //          }
          AccountantCredence accountantCredence = new AccountantCredence();
          accountantCredence.setBookId(datainitializeDTO11.getBookId());
          accountantCredence.setSubjectCode(datainitializeDTO11.getSubjectCode());
          accountantCredence.setSummay(
              bookParameterDAO.getSummay4(datainitializeDTO11.getBookId()));
          if (datainitializeDTO11.getBalaceDirection().equals("0")) {
            BigDecimal temp =
                new BigDecimal(datainitializeDTO11.getYesterdayRemainingSum())
                    .subtract(new BigDecimal(datainitializeDTO11.getDebit()))
                    .add(new BigDecimal(datainitializeDTO11.getCredit()))
                    .subtract(new BigDecimal(datainitializeDTO11.getYesterdayDebit()))
                    .add(new BigDecimal(datainitializeDTO11.getYesterdayCredit()));
            accountantCredence.setDebit(temp);
            accountantCredence.setCredit(new BigDecimal("0.00"));
          }
          if (datainitializeDTO11.getBalaceDirection().equals("1")) {
            BigDecimal temp =
                new BigDecimal(datainitializeDTO11.getYesterdayRemainingSum())
                    .subtract(new BigDecimal(datainitializeDTO11.getCredit()))
                    .add(new BigDecimal(datainitializeDTO11.getDebit()))
                    .subtract(new BigDecimal(datainitializeDTO11.getYesterdayCredit()))
                    .add(new BigDecimal(datainitializeDTO11.getYesterdayDebit()));
            accountantCredence.setDebit(new BigDecimal("0.00"));
            accountantCredence.setCredit(temp);
          }
          if (datainitializeDTO11.getBalaceDirection().equals("2")) {
            {
              BigDecimal temp_yeaterdayDebit =
                  new BigDecimal(datainitializeDTO11.getYesterdayDebit());
              BigDecimal temp_debit = new BigDecimal(datainitializeDTO11.getDebit());
              BigDecimal temp_yeaterdayCredit =
                  new BigDecimal(datainitializeDTO11.getYesterdayCredit());
              BigDecimal temp_credit = new BigDecimal(datainitializeDTO11.getCredit());
              //            BigDecimal temp =
              // temp_yeaterdayDebit.add(temp_debit).subtract(temp_yeaterdayCredit).subtract(temp_credit);
              BigDecimal temp =
                  temp_yeaterdayCredit
                      .add(temp_credit)
                      .subtract(temp_yeaterdayDebit)
                      .subtract(temp_debit);
              if (temp.compareTo(new BigDecimal(0)) > 0) {
                accountantCredence.setDebit(temp.abs());
                accountantCredence.setCredit(new BigDecimal("0.00"));
              }
              if (temp.compareTo(new BigDecimal(0)) < 0) {
                accountantCredence.setDebit(new BigDecimal("0.00"));
                accountantCredence.setCredit(temp.abs());
              }
              if (temp.compareTo(new BigDecimal(0)) == 0) {
                //                if(temp_yeaterdayDebit.compareTo(new BigDecimal(0))==0 &&
                // temp_debit.compareTo(new BigDecimal(0))==0 && temp_yeaterdayCredit.compareTo(new
                // BigDecimal(0))==0 && temp_credit.compareTo(new BigDecimal(0))==0 ){
                //                  continue;
                //                }else{
                accountantCredence.setDebit(new BigDecimal("0.00"));
                accountantCredence.setCredit(new BigDecimal("0.00"));
                //                }
              }
            }
          }

          accountantCredence.setMakebill(securityInfo.getUserName());
          accountantCredence.setOffice(datainitializeDTO11.getOfficeName());
          accountantCredence.setCredenceSt("2");

          // 年
          String year =
              (Integer.parseInt(
                          bookDAO.getUseYearmonth(datainitializeDTO11.getBookId()).substring(0, 4))
                      - 2)
                  + "1231";
          accountantCredence.setCredenceDate(year);
          accountantCredence.setSettDate(year);

          // 如果是(损益类科目)直接把FN201中的(损益结转字段置为2)
          if (subjectDAO
              .getSortcodeByCode_WL(datainitializeDTO11.getSubjectCode(), securityInfo)
              .equals("4")) {
            accountantCredence.setIncDecSt("2");
          }
          if (subjectDAO
              .getProperyByCode_WL(datainitializeDTO11.getSubjectCode(), securityInfo)
              .equals("0")) {
            // 如果是(银行属性的科目)直接把(银行账结转状态置为2)
            accountantCredence.setBankAccSt("2");
          }
          if (subjectDAO
              .getProperyByCode_WL(datainitializeDTO11.getSubjectCode(), securityInfo)
              .equals("1")) {
            // 如果是(现金属性的科目)直接把(现金账结转状态置为2)
            accountantCredence.setCashAccSt("2");
          }
          accountantCredenceDAO.insert(accountantCredence);
        }
        Iterator it2 = list.iterator();
        while (it2.hasNext()) {
          DatainitializeDTO datainitializeDTO2 = (DatainitializeDTO) it2.next();
          //          if(datainitializeDTO2.getYesterdayDebit().equals("0") &&
          // datainitializeDTO2.getYesterdayCredit().equals("0")){
          //            continue;
          //          }
          AccountantCredence accountantCredence = new AccountantCredence();
          accountantCredence.setBookId(datainitializeDTO2.getBookId());
          accountantCredence.setSubjectCode(datainitializeDTO2.getSubjectCode());
          accountantCredence.setSummay(bookParameterDAO.getSummay5(datainitializeDTO2.getBookId()));

          accountantCredence.setDebit(new BigDecimal(datainitializeDTO2.getYesterdayDebit()));
          accountantCredence.setCredit(new BigDecimal(datainitializeDTO2.getYesterdayCredit()));

          accountantCredence.setMakebill(securityInfo.getUserName());
          accountantCredence.setOffice(datainitializeDTO2.getOfficeName());
          accountantCredence.setCredenceSt("2");

          // 年
          String year =
              (Integer.parseInt(
                          bookDAO.getUseYearmonth(datainitializeDTO2.getBookId()).substring(0, 4))
                      - 1)
                  + "1231";
          accountantCredence.setCredenceDate(year);
          accountantCredence.setSettDate(year);

          // 如果是(损益类科目)直接把FN201中的(损益结转字段置为2)
          if (subjectDAO
              .getSortcodeByCode_WL(datainitializeDTO2.getSubjectCode(), securityInfo)
              .equals("4")) {
            accountantCredence.setIncDecSt("2");
          }
          if (subjectDAO
              .getProperyByCode_WL(datainitializeDTO2.getSubjectCode(), securityInfo)
              .equals("0")) {
            // 如果是(银行属性的科目)直接把(银行账结转状态置为2)
            accountantCredence.setBankAccSt("2");
          }
          if (subjectDAO
              .getProperyByCode_WL(datainitializeDTO2.getSubjectCode(), securityInfo)
              .equals("1")) {
            // 如果是(现金属性的科目)直接把(现金账结转状态置为2)
            accountantCredence.setCashAccSt("2");
          }
          accountantCredenceDAO.insert(accountantCredence);
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }