zoukankan      html  css  js  c++  java
  • 公司培训课时汇总

    /**
    	 * 公司培训课时汇总
    	 * @return
    	 */
    	@Override
    	public List<CompanyTrainingClassGather> getCompanyTrainingClassGather() {
    		List<CompanyTrainingClassGather> list=new ArrayList<>();
    		//查询部门表获取所有部门名称和部门id
    		List<Dept>deptList=deptUserEmployeeUtil.getDeptList(AuthUtil.getTenantId());
    		if(Func.isNotEmpty(deptList)){
    			String nowStartDate=getFirstDayOfMonth();//当月开始第一天
    			String nowEndDate=getLastDayOfMonth();//当月最后一天
    				for(Dept dept:deptList){
    					double twelveMonthTotal=0;//该部门12月培训总时长
    					CompanyTrainingClassGather trainingClassGather= new CompanyTrainingClassGather();
    					for(int i=1;i<=12;i++){
    						double sum=0;//每个部门该月培训总时长
    						trainingClassGather.setDeptName(dept.getDeptName());
    						String startDate=getFirstDayOfMonth(i);
    						String endDate=getLastDayOfMonth(i);
    						String deptId=String.valueOf(dept.getId());
    						//查询每个部门该月的培训时长
    						sum=employeeTrainingRecordMapper.getTrainingRecordTotalByDeptId(deptId,startDate,endDate,AuthUtil.getTenantId());
    						twelveMonthTotal+=sum;
    						//将每个部门的12月的培训时长放入对应的月份
    						switch (i) {
    							case 1:
    								//将一月份人员培训时长放入实体类类
    								trainingClassGather.setJanuary(String.valueOf(sum));
    								break;
    							case 2:
    								trainingClassGather.setFebruary(String.valueOf(sum));
    								break;
    							case 3:
    								trainingClassGather.setMarch(String.valueOf(sum));
    								break;
    							case 4:
    								trainingClassGather.setApril(String.valueOf(sum));
    								break;
    							case 5:
    								trainingClassGather.setMay(String.valueOf(sum));
    								break;
    							case 6:
    								trainingClassGather.setJune(String.valueOf(sum));
    								break;
    							case 7:
    								trainingClassGather.setJuly(String.valueOf(sum));
    								break;
    							case 8:
    								trainingClassGather.setAugust(String.valueOf(sum));
    								break;
    							case 9:
    								trainingClassGather.setSeptember(String.valueOf(sum));
    								break;
    							case 10:
    								trainingClassGather.setOctober(String.valueOf(sum));
    								break;
    							case 11:
    								trainingClassGather.setNovember(String.valueOf(sum));
    								break;
    							case 12:
    								trainingClassGather.setDecember(String.valueOf(sum));
    								break;
    						}
    					}
    					//根据部门id查询当前部门在职人数
    					List<AllEmployeeBasicInformation> deptUserSum= employeeTrainingRecordMapper.getDeptUserByDeptId(String.valueOf(dept.getId()),nowStartDate,nowEndDate,AuthUtil.getTenantId());
    					//计算部门员工培训时长平均值
    					if(Func.isNotEmpty(deptUserSum)){
    						double averageValue= twelveMonthTotal/deptUserSum.size();
    						trainingClassGather.setAverageValue(String.valueOf(averageValue));
    					}
    					//将每个部门12个月培训总时长放入实体类
    					trainingClassGather.setTotals(String.valueOf(twelveMonthTotal));
    					list.add(trainingClassGather);
    				}
    
    		}
    		return list;
    	}
    	/**
    	 * double类型相加
    	 * @param v1
    	 * @param v2
    	 * @return
    	 */
    	public double add(double v1, double v2) {
    		BigDecimal b1 = new BigDecimal(Double.toString(v1));
    		BigDecimal b2 = new BigDecimal(Double.toString(v2));
    		return b1.add(b2).doubleValue();
    	}
    
    	/**
    	 * 获得该月第一天
    	 * @param month
    	 * @return
    	 */
    	public String getFirstDayOfMonth(int month) {
    		Calendar cal = Calendar.getInstance();
    		// 设置月份
    		cal.set(Calendar.MONTH, month - 1);
    		// 获取某月最小天数
    		int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
    		// 设置日历中月份的最小天数
    		cal.set(Calendar.DAY_OF_MONTH, firstDay);
    		// 格式化日期
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		String firstDayOfMonth = sdf.format(cal.getTime());
    		return firstDayOfMonth;
    	}
    	/**
    	 * 获得该月最后一天
    	 *
    	 * @param month
    	 * @param month
    	 * @return
    	 */
    	public String getLastDayOfMonth(int month) {
    		Calendar cal = Calendar.getInstance();
    		// 设置月份
    		cal.set(Calendar.MONTH, month - 1);
    		// 获取某月最大天数
    		int lastDay=0;
    		//2月的平年瑞年天数
    		if(month==2) {
    			lastDay = cal.getLeastMaximum(Calendar.DAY_OF_MONTH);
    		}else {
    			lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    		}
    		// 设置日历中月份的最大天数
    		cal.set(Calendar.DAY_OF_MONTH, lastDay);
    		// 格式化日期
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		String lastDayOfMonth = sdf.format(cal.getTime());
    		return lastDayOfMonth;
    	}
    
    	/**
    	 * 获得现在月第一天
    	 * @param
    	 * @return
    	 */
    	public String getFirstDayOfMonth() {
    		Calendar cal = Calendar.getInstance();
    		int month = cal.get(Calendar.MONTH) + 1;
    		// 设置月份
    		cal.set(Calendar.MONTH, month - 1);
    		// 获取某月最小天数
    		int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
    		// 设置日历中月份的最小天数
    		cal.set(Calendar.DAY_OF_MONTH, firstDay);
    		// 格式化日期
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		String firstDayOfMonth = sdf.format(cal.getTime());
    		return firstDayOfMonth;
    	}
    	/**
    	 * 获得现在月最后一天
    	 *
    	 * @param
    	 * @return
    	 */
    	public String getLastDayOfMonth() {
    		Calendar cal = Calendar.getInstance();
    		// 设置月份
    		int month = cal.get(Calendar.MONTH) + 1;
    		cal.set(Calendar.MONTH, month - 1);
    		// 获取某月最大天数
    		int lastDay=0;
    		//2月的平年瑞年天数
    		if(month==2) {
    			lastDay = cal.getLeastMaximum(Calendar.DAY_OF_MONTH);
    		}else {
    			lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    		}
    		// 设置日历中月份的最大天数
    		cal.set(Calendar.DAY_OF_MONTH, lastDay);
    		// 格式化日期
    		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    		String lastDayOfMonth = sdf.format(cal.getTime());
    		return lastDayOfMonth;
    	}
    

      

  • 相关阅读:
    leetcode 116,117,129,145,199,230,337
    leetcode 897,JZ68,JZ17,95,96,105,113,114
    leetcode 404,530,543,563,572,589,617,637,700
    leetcode 397,784,898,100,101,104,108,110,111,112,226,235,257
    leetcode 78,137,187,260,393
    leetcode 169,190,191,665,342,476,1290
    leetcode 44,56,179,274,853,948
    leetcode 55,134,376,406,435,452,621
    leetcode 122,392,455,605,860,874,1005
    leetcode (堆->hard) 23,218,239,295,407,786
  • 原文地址:https://www.cnblogs.com/xianz666/p/14074639.html
Copyright © 2011-2022 走看看