zoukankan      html  css  js  c++  java
  • 报餐对比

    /**
    	 * 报餐对比
    	 * @param mealType
    	 * @param posoptime
    	 * @return
    	 */
    	@Override
    	public List<ConsumptionMachine> getMealComparison(String mealType, Date posoptime) {
    		//根据时间和餐别查询 报餐表
    		List<ConsumptionMeal>mealList=consumptionMachineMapper.getMealComparison(mealType,posoptime);
    		log.info("mealList.size====="+mealList.size());
    		//根据时间和餐别查询 消费机信息表
    		ConsumptionMachine bean =new ConsumptionMachine();
    		bean.setTenantId(ConsumptionConstant.TENANT_ID);
    		bean.setMealType(mealType);
    		//bean.setPosoptime(posoptime);
    		//将日期类型转换成字符 获取年月日
    		bean.setStartDate(posoptime);
    		bean.setEndDate(CMDateTimeUtil.getNowDateTime(posoptime," 23:59:59"));
    		log.info("getNowDateTime===="+CMDateTimeUtil.getNowDateTime(posoptime," 23:59:59"));
    		List<ConsumptionMachine>consumptionList=consumptionMachineMapper.getConsumptionMachineList(bean);
    		log.info("consumptionList========="+consumptionList);
    		List<ConsumptionMeal> toList=new ArrayList<>();
    		if(Func.isNotEmpty(mealList)&&Func.isNotEmpty(consumptionList)){
    			for(ConsumptionMeal meal:mealList){
    				for(ConsumptionMachine consumption:consumptionList){
    					//如果工号相同 从报餐list中移除
    					if(meal.getMealUserCode().equals(consumption.getAccount())){
    						toList.add(meal);
    					}
    				}
    			}
    		}
    		// 循环移除正常的人员信息
    		if(Func.isNotEmpty(toList)){
    			if(mealList.containsAll(toList)){
    				mealList.removeAll(toList);
    			}
    		}
    
    		//删除后剩下的就是报餐没有吃饭的人
    		log.info("mealList============"+mealList.size());
    		List<ConsumptionMachine>returnList=new ArrayList<>();
    		if(Func.isNotEmpty(toList)){
    			for(ConsumptionMeal meal1:mealList){
    				ConsumptionMachine machine=new ConsumptionMachine();
    				machine.setDeptname(meal1.getApplyDeptName());
    				machine.setName(meal1.getMealUserName());
    				machine.setMealType(meal1.getMealTypeName());
    				machine.setPosoptime(meal1.getMealDate());
    				returnList.add(machine);
    			}
    
    		}
    		return returnList;
    	}
    	/**
    	 * 刷卡对比 查看谁没有报餐刷卡了
    	 * @param mealType
    	 * @param posoptime
    	 * @return
    	 */
    	@Override
    	public List<ConsumptionMachine> getConsumptionComparison(String mealType, Date posoptime) {
    		//根据时间和餐别查询 报餐表
    		List<ConsumptionMeal>mealList=consumptionMachineMapper.getMealComparison(mealType,posoptime);
    		//根据时间和餐别查询 消费机信息表
    		ConsumptionMachine bean =new ConsumptionMachine();
    		bean.setTenantId(ConsumptionConstant.TENANT_ID);
    		bean.setMealType(mealType);
    		//bean.setPosoptime(posoptime);
    		//将日期类型转换成字符 获取年月日
    		bean.setStartDate(posoptime);
    		bean.setEndDate(CMDateTimeUtil.getNowDateTime(posoptime," 23:59:59"));
    		List<ConsumptionMachine>consumptionList=consumptionMachineMapper.getConsumptionMachineList(bean);
    		log.info("consumptionList========="+consumptionList);
    		List<ConsumptionMachine>toMachineList=new ArrayList<>(); //报餐了 也刷卡了的人员列表
    		if(Func.isNotEmpty(mealList)&&Func.isNotEmpty(consumptionList)){
    			for(ConsumptionMachine machine:consumptionList){
    				for(ConsumptionMeal meal:mealList){
    					if(meal.getMealUserCode().equals(machine.getAccount())){
    						toMachineList.add(machine);
    					}
    				}
    			}
    		}
    		//从消费机信息中移除报餐了同时也刷卡的人员,剩下的是刷卡了没有报餐
    		if(Func.isNotEmpty(toMachineList)){
    			if(consumptionList.containsAll(toMachineList)){
    				consumptionList.removeAll(toMachineList);
    			}
    		}
    		return consumptionList;
    	}
    	/**
    	 * 报餐刷卡综合对比
    	 * @param mealType
    	 * @param posoptime
    	 * @return
    	 */
    	@Override
    	public List<ExcelConsumptionMachine> getSynthesizeComparison(String mealType, Date posoptime) {
    		log.info("报餐刷卡综合对比mealType===="+mealType+"---posoptime===="+posoptime);
    		//根据日期餐别查询报餐信息,如果没有差别查询一日三餐
    		List<ConsumptionMeal>mealList=consumptionMachineMapper.getMealComparison(mealType,posoptime);
    		log.info("mealList======"+mealList);
    		//将报餐信息转入消费实体类,放入新的消费list,
    		List<ExcelConsumptionMachine>toList=new ArrayList<>();
    		if(Func.isNotEmpty(mealList)){
    			for(ConsumptionMeal meal:mealList){
    				ExcelConsumptionMachine machine=new ExcelConsumptionMachine();
    				machine.setMealDate(meal.getMealDate());
    				machine.setName(meal.getMealUserName());
    				machine.setMealType(meal.getMealTypeName());
    				machine.setAccount(meal.getMealUserCode());
    				toList.add(machine);
    			}
    		}
    		//根据时间和餐别查询 消费机信息表 如果餐别为空查询一日三餐
    		ConsumptionMachine bean =new ConsumptionMachine();
    		bean.setTenantId(ConsumptionConstant.TENANT_ID);
    		bean.setMealType(mealType);
    		//bean.setPosoptime(posoptime);
    		//将日期类型转换成字符 获取年月日
    		bean.setStartDate(posoptime);
    		bean.setEndDate(CMDateTimeUtil.getNowDateTime(posoptime," 23:59:59"));
    		List<ExcelConsumptionMachine>consumptionList=consumptionMachineMapper.getExcelConsumptionMachineList(bean);
    		log.info("根据时间和餐别查询 消费机信息表consumptionList======="+consumptionList);
    		if(Func.isNotEmpty(toList)&& Func.isNotEmpty(consumptionList)){
    			log.info("toList========"+toList);
    			log.info("consumptionList===="+consumptionList);
    			for(ExcelConsumptionMachine machine1:toList){
    				for(ExcelConsumptionMachine machine2:consumptionList){
    					//如果报餐人工号和消费工号相同,该用户报餐了也刷卡吃饭了
    					if(machine1.getAccount().equals(machine2.getAccount())&& machine1.getMealType().equals(machine2.getMealType()) ){
    						//正常
    						machine1.setStatus(ConsumptionConstant.STATUS1);
    						machine1.setPosoptime(machine2.getPosoptime());
    						machine1.setDeptname("");
    						//将信息和消费列表信息同步,用于筛选对象是否存在
    						//就餐日期
    						machine2.setMealDate(machine1.getMealDate());
    						machine2.setStatus(ConsumptionConstant.STATUS1);
    						machine2.setDeptname("");
    					}
    
    				}
    
    			}
    			//筛选出消费了没有报餐的人将信息放入返回list
    			for(ExcelConsumptionMachine machine3:consumptionList){
    				//如果list中不存在,用户消费了没有报餐
    				if(!toList.contains(machine3)){
    					//未报餐
    					machine3.setStatus(ConsumptionConstant.STATUS2);
    					toList.add(machine3);
    				}
    			}
    			//如果刷卡时间为空,用户报餐了未刷卡
    			for(ExcelConsumptionMachine machine4:toList){
    				if(Func.isEmpty(machine4.getPosoptime())){
    					//未刷卡
    					machine4.setStatus(ConsumptionConstant.STATUS3);
    				}
    			}
    			//将部门名称放入list中
    			for(ExcelConsumptionMachine machine5:toList){
    				//根据工号获取部门部门id
    				List<String>strList=consumptionMachineMapper.getDeptId(ConsumptionConstant.TENANT_ID,machine5.getAccount());
    				//根据部门id获取部门名称
    				if(Func.isNotEmpty(strList)){
    					String deptName=consumptionMachineMapper.getDeptName(ConsumptionConstant.TENANT_ID,Long.valueOf(strList.get(0).split(",")[0]));
    					//部门名称
    					machine5.setDeptname(deptName);
    				}
    			}
    		}
    		return toList;
    	}
    

      

  • 相关阅读:
    Linux管理用户和组
    const,static,volatile关键字的作用
    Linux 常用命令
    sizeof与strlen的区别
    不使用库函数的字符串处理
    Linux 编译命令参数
    Linux环境变量PATH
    c++ 使用Redis
    二分查找法
    php实现双色球算法
  • 原文地址:https://www.cnblogs.com/xianz666/p/14331167.html
Copyright © 2011-2022 走看看