/*
   * 查询学习中心指标按批次和中心Id
   *
   * @see net.cedu.biz.enrollment.BranchEnrollQuotaBiz#
   * findBranchEnrollQuotaByBtachIdAndBranchId(int, int)
   */
  public BranchEnrollQuota findBranchEnrollQuotaByBtachIdAndBranchId(int batchId, int branchId)
      throws Exception {
    BranchEnrollQuota beq = null;
    PageParame p = new PageParame();
    String hqlparam = "";
    List<Object> list = new ArrayList<Object>();
    if (batchId != 0) {
      hqlparam += " and batchId=" + Constants.PLACEHOLDER;
      list.add(batchId);
    }
    if (branchId != 0) {
      hqlparam += " and branchId=" + Constants.PLACEHOLDER;
      list.add(branchId);
    }
    hqlparam += " and deleteFlag=";
    list.add(Constants.DELETE_FALSE);
    p.setHqlConditionExpression(hqlparam);
    p.setValues(list.toArray());
    Long[] branchenrollquotaids = branchenrollquotaDao.getIDs(p);
    if (branchenrollquotaids != null && branchenrollquotaids.length != 0) {

      for (int i = 0; i < branchenrollquotaids.length; i++) {
        // 修改人董溟浩,原作者循环取最后一个,逻辑有问题,所以改为跳过之前的直接取最后一个
        if (i == branchenrollquotaids.length - 1) {
          beq = new BranchEnrollQuota();
          beq = this.findBranchEnrollQuotaById(Integer.valueOf(branchenrollquotaids[i].toString()));
          GlobalEnrollBatch globalenrollbatch =
              globalenrollbatchBiz.findGlobalEnrollBatchById(beq.getBatchId());
          if (globalenrollbatch != null) {
            beq.setBatchName(globalenrollbatch.getBatch());
          }
          Branch branch = branchBiz.findBranchById(beq.getBranchId());
          if (branch != null) {
            beq.setBranchName(branch.getName());
          }
        }
      }
    }
    return beq;
  }
  /*
   * 查询所有学习中心(分配指标)按批次
   *
   * @see net.cedu.biz.admin.BranchBiz#findBranchByBtachId(int,
   * net.cedu.model.page.PageResult)
   */
  public List<Branch> findBranchByBtachId(int batchId, PageResult<Branch> pr) throws Exception {
    List<Branch> branchlst = null;
    PageParame p = new PageParame();
    String hqlparam = "";
    List<Object> list = new ArrayList<Object>();
    hqlparam += " and parentId > " + Constants.PLACEHOLDER;
    list.add(BranchEnum.Parent.value());
    hqlparam += "and deleteFlag=" + Constants.PLACEHOLDER;
    list.add(Constants.DELETE_FALSE);
    p.setHqlConditionExpression(hqlparam);
    p.setValues(list.toArray());
    Long[] branchids = branchBiz.findBranchIds(p);
    //		int year = 0;
    //		int month = 0;
    //		int oldyear = Integer.valueOf(ResourcesTool.getText("enrollment",
    //				"year"));
    //		List<GlobalEnrollBatch> glst = new ArrayList<GlobalEnrollBatch>();

    if (branchids != null && branchids.length != 0) {
      branchlst = new ArrayList<Branch>();
      // Map key:branch value:当前批次指标
      Map<String, Integer> batchTargetMap =
          branchenrollquotaDao.findBranchEnrollQuotaMapByBatch(batchId);
      // 上一批次id
      int lastBatchId = globalenrollbatchBiz.findLastGlobalEnrollBatchIdByGlobalBatchId(batchId);
      Map<String, Integer> lastBatchTargetMap = new HashMap<String, Integer>();
      Map<String, Integer> lastBatchCompleteTargetMap = new HashMap<String, Integer>();
      if (lastBatchId != 0) {
        // Map key:branch value:上一批次指标
        lastBatchTargetMap = branchenrollquotaDao.findBranchEnrollQuotaMapByBatch(lastBatchId);
        // Map key:branch value:上一批次完成指标
        lastBatchCompleteTargetMap =
            studentDao.getCompleteCountAllByGlobalEnrollBatchId(lastBatchId);
      }
      for (int i = 0; i < branchids.length; i++) {
        // 内存获取
        Branch branchObj = branchBiz.findBranchById(Integer.valueOf(branchids[i].toString()));

        //				GlobalEnrollBatch geb = globalenrollbatchBiz
        //						.findGlobalEnrollBatchById(batchId);
        //				if (geb != null) {
        //					year = geb.getBelongYear();
        //				}
        //
        //				month = Integer.valueOf(geb.getBatch().substring(
        //						geb.getBatch().length() - 2));
        //				while (true) {
        //					if (year <= oldyear) {
        //						break;
        //					}
        //					glst = globalenrollbatchBiz
        //							.findGlobalEnrollBatchByYear(year);
        //					if (glst == null) {
        //						year--;
        //						continue;
        //					} else {
        //
        //						int batchid = BatchIdInt(glst, month);
        //						BranchEnrollQuota beq = this
        //								.findBranchEnrollQuotaByBtachIdAndBranchId(
        //										batchid, branchObj.getId());
        //						if (beq != null) {
        //							branchObj.setBatchTarget(beq.getTarget());
        //						}
        //						break;
        //					}
        //
        //				}
        // 员工数量
        branchObj.setUserCount(userBiz.countUserByOrgId(branchObj.getId()));
        // 上一批次指标
        Integer lastTarget = lastBatchTargetMap.get(branchObj.getId() + "");
        branchObj.setBatchTarget(lastTarget == null ? 0 : lastTarget);
        // 上一批次完成指标
        Integer lastCompleteTarget = lastBatchCompleteTargetMap.get(branchObj.getId() + "");
        branchObj.setBatchComplete(lastCompleteTarget == null ? 0 : lastCompleteTarget);
        // 当前批次指标
        Integer currentTarget = batchTargetMap.get(branchObj.getId() + "");
        branchObj.setCurrentBatchTarget(currentTarget == null ? 0 : currentTarget);
        branchlst.add(branchObj);
      }
    }
    return branchlst;
  }