/**
   * * 删除FN201 FN201.SUMMAY=1 and FN201.OFFICE=所选办事处的记录 插入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 deleteSummaryOffice(List list, SecurityInfo securityInfo) throws Exception {
    try {
      DatainitializeDTO datainitializeDTO1 = (DatainitializeDTO) list.get(0);
      // 删除 FN201
      accountantCredenceDAO.delete_ZL(
          datainitializeDTO1.getBookId(), datainitializeDTO1.getOfficeName());
      accountantCredenceDAO.delete_ZL1(
          datainitializeDTO1.getBookId(), datainitializeDTO1.getOfficeName());
      accountantCredenceDAO.delete_ZL2(
          datainitializeDTO1.getBookId(), datainitializeDTO1.getOfficeName());
      // 插入FN311
      FnOperateLog fnOperateLog = new FnOperateLog();
      fnOperateLog.setOpSys(BusiLogConst.OP_SYSTEM_TYPE_FINANCE + "");
      fnOperateLog.setOpModel(BusiLogConst.FN_OP_BOOKMNG_DATAINITIALIZE + "");
      fnOperateLog.setOpButton("2");
      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 datainitializeDTO22 = (DatainitializeDTO) it2.next();
        //        if(datainitializeDTO22.getYesterdayDebit().equals("0") &&
        // datainitializeDTO22.getYesterdayCredit().equals("0")){
        //          continue;
        //        }
        AccountantCredence accountantCredence = new AccountantCredence();
        accountantCredence.setBookId(datainitializeDTO22.getBookId());
        accountantCredence.setSubjectCode(datainitializeDTO22.getSubjectCode());
        accountantCredence.setSummay(bookParameterDAO.getSummay5(datainitializeDTO22.getBookId()));

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

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

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

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