数据结构的妙用

当需要遍历一次删掉遍历到的记录的时候不可用list,应该将list转化为linklist再转化为queue,然后用queue.pool()

FinancialSalesOrderCondition financialSalesOrder = new FinancialSalesOrderCondition();
financialSalesOrder.setIsPaging(false);
financialSalesOrder.setUserId(Long.valueOf(userId));
financialSalesOrder.setStatus("0");
Pagination<FinancialSalesOrder> soders= selectByCondition(financialSalesOrder);
List<FinancialSalesOrder>  soder= soders.getData();
financialSalesOrder.setIsPaging(false);
financialSalesOrder.setUserId(Long.valueOf(userId));
financialSalesOrder.setStatus("9");
Pagination<FinancialSalesOrder> soders1= selectByCondition(financialSalesOrder);
if(soder!=null && soder.size()>0){
   soder.addAll(soders1.getData());
}else{
   soder=soders1.getData();
}
Queue<FinancialSalesOrder> queue1 = new LinkedList(soder);
comAssign(record, userId, queue1,1);
protected void comAssign(List<FinancialSalesOrder> record, String userId, Queue<FinancialSalesOrder> queue,int flag) throws Exception {
      //按照顺序给每个座席平均分配,如果座席数量不够则有多少名单分派多少名单,多出的座席空置。前台用脚本分配,手动可以修改
if(null!=record.get(0).getOrderAssign() && record.get(0).getOrderAssign().size()>0){//选择坐席,最终提交为准
         //数量变化页面js处理,不足校验前台处理,以最终数量为准
         //根据等额数量,将名单等额分配到选中的座席上,未勾选的座席不做分派,如果座席不够分配则弹窗提示“名单不足,请重新输入等额数量!
DBServerHelpBo dBServerHelpBo= new DBServerHelpBo();
         dBServerHelpBo.setIpStr("10.100.84.38");
         dBServerHelpBo.setServerType("LC");
         dBServerHelpBo.setBussType("TS-"+record.get(0).getBatchName());
         dBServerHelpBo.setBatchSaveSize("1");
         dBServerHelpBo.setToday(new Date());
         dBServerHelpBo.setsDateFmt("yyyyMMdd");
         dBServerHelpBo.setsNoFmt("000000");
         dBServerHelpBo.setNum(queue.size());
         String custId="";
         for(FinancialSalesOrderAssign os :record.get(0).getOrderAssign()){
            //每一个坐席的分配数和坐席id
for(int ct=0;ct<os.getAssignCount();ct++) {
               FinancialSalesOrder od= queue.poll();
               if(od.getOrderno()==null || "".equals(od.getOrderno())) {
                  dBServerHelpBo.setBussType("TS-" + od.getBatchName());
                  custId = serialContext.getSerialNo(dBServerHelpBo);
               }
               if(flag==0){
                  od.setEmpId(os.getAssignEmpId());
                  od.setTemId(os.getAssignTemId());
               }else{
                  od.setTemId(os.getAssignTemId());
                  od.setEmpId("");
               }
               od.setStatus(record.get(0).getStatus());
                  od.setOrderno(custId);
               assignRecoverOrder(od);
            }
         }
      }
}

猜你喜欢

转载自yuhuiblog6338999322098842.iteye.com/blog/2412036