当需要遍历一次删掉遍历到的记录的时候不可用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); } } } }