工单自动平均分配给工号
最近一个需求,需要上游分配的工单平均分配给所有工号,每个人相差1-2张工单。
算法实现思路:参考了负载均衡轮询的思想。但是发现这个算法并不符合要求,所以将此算法改造一下,让其符合需求。
以下代码需要根据实际改造,仅供参考!!!后期会持续优化。
核心代码:
private static List<StaffInfo> NotDistributeStaff=new CopyOnWriteArrayList<StaffInfo>();
@Autowired
protected ISheetService iSheetService;
@Autowired
protected ISheetLogService iSheetLogService;
@Autowired
protected IStaffService iStaffService;
Logger logger=Logger.getLogger(AssignJobHandler.class);
@Override
public ReturnT<String> execute(String param) throws Exception {
//每天早上九点开始清除记忆未分配工单的用户
clearStaff();
logger.info("记忆中存在的员工数量"+NotDistributeStaff.size());
// 查询需要分配工单的工号
List<StaffInfo> staffs = iStaffService.queryStaff();
// 查询当天需要分配的工单号
List<BusiSheet> sheets = iSheetService.