建设婚纱摄影网站的重要性,城建网官网,网站建设实验报告手写,哪里可以学家装设计师文章目录一、持久层1、CheckinMapper.xml2、CheckinMapper.java3、TbHolidaysDao.xml4、TbHolidaysDao.java5、TbWorkdayDao.xml6、TbWorkdayDao.java二、业务层1、 CheckinService.java三、conroller层1、编写 TbUserDao.xml 文件#xff0c;查询员工的入职日期。2、编写 TbU…
文章目录一、持久层1、CheckinMapper.xml2、CheckinMapper.java3、TbHolidaysDao.xml4、TbHolidaysDao.java5、TbWorkdayDao.xml6、TbWorkdayDao.java二、业务层1、 CheckinService.java三、conroller层1、编写 TbUserDao.xml 文件查询员工的入职日期。2、编写 TbUserDao.java 接口定义抽象方法。3、在 UserService.java4、实现查询考勤结果的Web方法一、持久层
1、CheckinMapper.xml
select idsearchTodayCheckin parameterTypeint resultTypeHashMapSELECTu.name,u.photo,d.dept_name AS deptName,ck.address,CASEWHEN ck.status1 THEN 正常WHEN ck.status2 THEN 迟到END AS status,DATE_FORMAT(ck.create_time,%H:%i) AS checkinTime,ck.dateFROM tb_user AS uLEFT JOIN tb_dept AS d ON u.dept_id d.idLEFT JOIN tb_checkin AS ck ON u.id ck.user_id AND ck.date CURRENT_DATEWHERE u.id #{userId} AND u.status1/selectselect idsearchCheckinDays parameterTypeint resultTypelongSELECT COUNT(*) AS countFROM tb_checkinWHERE user_id#{userId}/selectselect idsearchWeekCheckin parameterTypeHashMap resultTypeHashMapSELECTCAST(date AS CHAR) AS date,IF(status1,正常,迟到) AS statusFROM tb_checkinWHERE user_id#{userId} AND date BETWEEN #{startDate} AND #{endDate}/select2、CheckinMapper.java
Mapper
public interface TbCheckinDao {public HashMap searchTodayCheckin(int userId);public long searchCheckinDays(int userId);public ArrayListHashMap searchWeekCheckin(HashMap param);}3、TbHolidaysDao.xml
select idsearchHolidaysInRange parameterTypeHashMap resultTypeStringSELECT dateFROM tb_holidaysWHERE date BETWEEN #{startDate} AND #{endDate}/select4、TbHolidaysDao.java
public interface TbHolidaysDao {
……public ArrayListString searchHolidaysInRange(HashMap param);}5、TbWorkdayDao.xml
select idsearchWorkdayInRange parameterTypeHashMap resultTypeStringSELECT dateFROM tb_workdayWHERE date BETWEEN #{startDate} AND #{endDate}/select6、TbWorkdayDao.java
public interface TbWorkdayDao {……
public ArrayListString searchWorkdayInRange(HashMap param);
}
二、业务层
1、 CheckinService.java public class CheckinServiceImpl{……public HashMap searchTodayCheckin(int userId) {HashMap map checkinDao.searchTodayCheckin(userId);return map;}public long searchCheckinDays(int userId) {long days checkinDao.searchCheckinDays(userId);return days;}public ArrayListHashMap searchWeekCheckin(HashMap param) {ArrayListHashMap checkinList checkinDao.searchWeekCheckin(param);ArrayListString holidaysList holidaysDao.searchHolidaysInRange(param);ArrayListString workdayList workdayDao.searchWorkdayInRange(param);DateTime startDate DateUtil.parseDate(param.get(startDate).toString());DateTime endDate DateUtil.parseDate(param.get(endDate).toString());DateRange range DateUtil.range(startDate, endDate, DateField.DAY_OF_MONTH);ArrayList list new ArrayList();range.forEach(one - {String date one.toString(yyyy-MM-dd);//查看今天是不是假期或者工作日String type 工作日;if (one.isWeekend()) {type 节假日;}if (holidaysList ! null holidaysList.contains(date)) {type 节假日;} else if (workdayList ! null workdayList.contains(date)) {type 工作日;}String status ;//如果date1 date2返回数小于0date1date2返回0date1 date2 大于0if (type.equals(工作日) DateUtil.compare(one, DateUtil.date()) 0) {status 缺勤;boolean flagfalse;for (HashMapString, String map : checkinList) {if (map.containsValue(date)) {status map.get(status);flagtrue;break;}DateTime endTimeDateUtil.parse(DateUtil.today()constants.attendanceEndTime);String todayDateUtil.today();if(date.equals(today)DateUtil.date().isBefore(endTime)flagfalse)
{status;}}}HashMap map new HashMap();map.put(date, date);map.put(status, status);map.put(type, type);map.put(day, one.dayOfWeekEnum().toChinese(周));list.add(map);});return list;}}三、conroller层
1、编写 TbUserDao.xml 文件查询员工的入职日期。 select idsearchUserHiredate parameterTypeint resultTypeStringSELECT hiredate FROM tb_user WHERE id#{userId} AND status 1
/select2、编写 TbUserDao.java 接口定义抽象方法。 public interface TbUserDao {……public String searchUserHiredate(int userId);}3、在 UserService.java public class UserServiceImpl implements UserService {……Overridepublic String searchUserHiredate(int userId) {String hiredate userDao.searchUserHiredate(userId);return hiredate;}}4、实现查询考勤结果的Web方法 public class CheckinController {……Autowiredprivate UserService userService;Autowiredprivate SystemConstants constants;GetMapping(/searchTodayCheckin)ApiOperation(查询用户当日签到数据)public Result searchTodayCheckin(RequestHeader(token) String token) {int userId jwtUtil.getUserId(token);HashMap map checkinService.searchTodayCheckin(userId);map.put(attendanceTime, constants.attendanceTime);map.put(closingTime, constants.closingTime);long days checkinService.searchCheckinDays(userId);map.put(checkinDays, days);//判断日期是否在用户入职之前DateTime hiredate DateUtil.parse(userService.searchUserHiredate(userId));DateTime startDate DateUtil.beginOfWeek(DateUtil.date());if (startDate.isBefore(hiredate)) {startDate hiredate;}DateTime endDate DateUtil.endOfWeek(DateUtil.date());HashMap param new HashMap();param.put(startDate, startDate.toString());param.put(endDate, endDate.toString());param.put(userId, userId);ArrayListHashMap list checkinService.searchWeekCheckin(param);map.put(weekCheckin, list);return Result.ok().put(result, map);}}