Merge remote-tracking branch 'origin/master'
3 files modified
11 files added
| | |
| | | /** |
| | | * 测试 |
| | | */ |
| | | TEST("test"), |
| | | TEST("attendanceType"), |
| | | |
| | | CLOCKTYPE("clockType") |
| | | ; |
| | | |
| | | |
| | | final String name; |
| | | |
| | | } |
| | |
| | | */ |
| | | USER_TYPE("user_type"), |
| | | ; |
| | | |
| | | final String name; |
| | | |
| | | } |
| | |
| | | <artifactId>blade-jfpts-api</artifactId> |
| | | <version>${bladex.project.version}</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>com.alibaba</groupId> |
| | | <artifactId>easyexcel</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.springblade</groupId> |
| | | <artifactId>blade-starter-excel</artifactId> |
| | | </dependency> |
| | | |
| | | </dependencies> |
| | | |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import io.swagger.annotations.*; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import lombok.AllArgsConstructor; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.constant.BladeConstant; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringPool; |
| | | import org.springblade.jfpt.attendance.excel.AttendanceExcel; |
| | | import org.springblade.jfpt.attendance.wrapper.AttendanceWrapper; |
| | | import org.springblade.system.user.entity.User; |
| | | import org.springblade.system.user.vo.UserVO; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.springblade.jfpt.attendance.entity.Attendance; |
| | | import org.springblade.jfpt.attendance.vo.AttendanceVO; |
| | | import org.springblade.jfpt.attendance.service.IAttendanceService; |
| | | import org.springblade.core.boot.ctrl.BladeController; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 控制器 |
| | | * |
| | | * @author BladeX |
| | | * @since 2021-03-03 |
| | | */ |
| | | @RestController |
| | | @AllArgsConstructor |
| | | @RequestMapping("/attendance") |
| | | @Api(value = "", tags = "接口") |
| | | public class AttendanceController extends BladeController { |
| | | |
| | | private final IAttendanceService attendanceService; |
| | | |
| | | /** |
| | | * 详情 |
| | | */ |
| | | @GetMapping("/detail") |
| | | @ApiOperationSupport(order = 1) |
| | | @ApiOperation(value = "详情", notes = "传入attendance") |
| | | public R<Attendance> detail(Attendance attendance) { |
| | | Attendance detail = attendanceService.getOne(Condition.getQueryWrapper(attendance)); |
| | | return R.data(detail); |
| | | } |
| | | |
| | | /** |
| | | * 分页 |
| | | */ |
| | | @GetMapping("/list") |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "分页", notes = "传入attendance") |
| | | public R<IPage<AttendanceVO>> list(Attendance attendance, Query query) { |
| | | IPage<Attendance> pages = attendanceService.page(Condition.getPage(query), Condition.getQueryWrapper(attendance)); |
| | | return R.data(AttendanceWrapper.build().pageVO(pages)); |
| | | } |
| | | |
| | | /** |
| | | * 自定义分页 |
| | | */ |
| | | @GetMapping("/page") |
| | | @ApiOperationSupport(order = 3) |
| | | @ApiOperation(value = "分页", notes = "传入attendance") |
| | | public R<IPage<AttendanceVO>> page(AttendanceVO attendance, Query query, Long department) { |
| | | IPage<Attendance> pages = attendanceService.selectAttendancePage(Condition.getPage(query), department, attendance); |
| | | return R.data(AttendanceWrapper.build().pageVO(pages)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 新增 |
| | | */ |
| | | @PostMapping("/save") |
| | | @ApiOperationSupport(order = 4) |
| | | @ApiOperation(value = "新增", notes = "传入attendance") |
| | | public R save(@Valid @RequestBody Attendance attendance) { |
| | | return R.status(attendanceService.save(attendance)); |
| | | } |
| | | |
| | | /** |
| | | * 修改 |
| | | */ |
| | | @PostMapping("/update") |
| | | @ApiOperationSupport(order = 5) |
| | | @ApiOperation(value = "修改", notes = "传入attendance") |
| | | public R update(@Valid @RequestBody Attendance attendance) { |
| | | return R.status(attendanceService.updateById(attendance)); |
| | | } |
| | | |
| | | /** |
| | | * 新增或修改 |
| | | */ |
| | | @PostMapping("/submit") |
| | | @ApiOperationSupport(order = 6) |
| | | @ApiOperation(value = "新增或修改", notes = "传入attendance") |
| | | public R submit(@Valid @RequestBody Attendance attendance) { |
| | | return R.status(attendanceService.saveOrUpdate(attendance)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 删除 |
| | | */ |
| | | @PostMapping("/remove") |
| | | @ApiOperationSupport(order = 8) |
| | | @ApiOperation(value = "删除", notes = "传入ids") |
| | | public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { |
| | | return R.status(attendanceService.removeByIds(Func.toLongList(ids))); |
| | | } |
| | | |
| | | /** |
| | | * 导出用户 |
| | | */ |
| | | @GetMapping("/export-Attendance") |
| | | public void exportAttendane(String name, String beginTime, String endTime, String attendancetype, HttpServletResponse response) { |
| | | String beginTimes = null; |
| | | String endTimes = null; |
| | | String attendancetypes = null; |
| | | if (beginTime.equals("undefined ") && endTime.equals("undefined")) { |
| | | beginTimes=null; |
| | | endTimes=null; |
| | | attendancetypes=attendancetype; |
| | | } |
| | | else if (attendancetype.equals("undefined")){ |
| | | attendancetypes=null; |
| | | } |
| | | else { |
| | | beginTimes=beginTime; |
| | | endTimes=endTime; |
| | | attendancetypes=attendancetype; |
| | | } |
| | | |
| | | List<AttendanceExcel> list = attendanceService.exportAttendane(name, beginTimes, endTimes, attendancetypes); |
| | | ExcelUtil.export(response, "考勤数据" + DateUtil.time(), "考勤数据表", list, AttendanceExcel.class); |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.dto; |
| | | |
| | | import org.springblade.jfpt.attendance.entity.Attendance; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | /** |
| | | * 数据传输对象实体类 |
| | | * |
| | | * @author BladeX |
| | | * @since 2021-03-03 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | public class AttendanceDTO extends Attendance { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.*; |
| | | |
| | | import java.io.Serializable; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | |
| | | /** |
| | | * 实体类 |
| | | * |
| | | * @author BladeX |
| | | * @since 2021-03-03 |
| | | */ |
| | | @Data |
| | | @TableName("sys_attendance") |
| | | @ApiModel(value = "Attendance对象", description = "Attendance对象") |
| | | public class Attendance implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 姓名 |
| | | */ |
| | | @ApiModelProperty(value = "姓名") |
| | | private String name; |
| | | /** |
| | | * 编号 |
| | | */ |
| | | @ApiModelProperty(value = "编号") |
| | | private String number; |
| | | /** |
| | | * 部门 |
| | | */ |
| | | @ApiModelProperty(value = "部门") |
| | | private String department; |
| | | /** |
| | | * 天气 |
| | | */ |
| | | @ApiModelProperty(value = "天气") |
| | | private String weather; |
| | | /** |
| | | * 打卡时间 |
| | | */ |
| | | @ApiModelProperty(value = "打卡时间") |
| | | @TableField("clockTime") |
| | | private String clocktime; |
| | | /** |
| | | * 经度 |
| | | */ |
| | | @ApiModelProperty(value = "经度") |
| | | private String jd; |
| | | /** |
| | | * 纬度 |
| | | */ |
| | | @ApiModelProperty(value = "纬度") |
| | | private String wd; |
| | | /** |
| | | * 打卡类型 0:上班 1:下班 |
| | | */ |
| | | @ApiModelProperty(value = "打卡类型 0:上班 1:下班") |
| | | @TableField("clockType") |
| | | private String clocktype; |
| | | /** |
| | | * 考勤类型 0:正常 1:迟到 2:早退 3:外勤 |
| | | */ |
| | | @ApiModelProperty(value = "考勤类型 0:正常 1:迟到 2:早退 3:外勤") |
| | | @TableField("attendanceType") |
| | | private String attendancetype; |
| | | private String tenantId; |
| | | private String week; |
| | | private String address; |
| | | |
| | | @TableLogic |
| | | private Integer isDeleted; |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.excel; |
| | | |
| | | import com.alibaba.excel.annotation.ExcelIgnore; |
| | | import com.alibaba.excel.annotation.ExcelProperty; |
| | | import com.alibaba.excel.annotation.write.style.ColumnWidth; |
| | | import com.alibaba.excel.annotation.write.style.ContentRowHeight; |
| | | import com.alibaba.excel.annotation.write.style.HeadRowHeight; |
| | | import lombok.Data; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | | |
| | | /** |
| | | * UserExcel |
| | | * |
| | | * @author Chill |
| | | */ |
| | | @Data |
| | | @ColumnWidth(25) |
| | | @HeadRowHeight(20) |
| | | @ContentRowHeight(18) |
| | | public class AttendanceExcel implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @ColumnWidth(10) |
| | | @ExcelProperty("姓名") |
| | | private String name; |
| | | |
| | | @ColumnWidth(20) |
| | | @ExcelProperty("编号") |
| | | private String number; |
| | | |
| | | @ColumnWidth(15) |
| | | @ExcelProperty("部门") |
| | | private String department; |
| | | |
| | | @ColumnWidth(10) |
| | | @ExcelProperty("天气") |
| | | private String weather; |
| | | |
| | | @ColumnWidth(20) |
| | | @ExcelProperty("打卡时间") |
| | | private String clockTime; |
| | | |
| | | @ColumnWidth(15) |
| | | @ExcelProperty("打卡类型") |
| | | private String clockType; |
| | | |
| | | @ColumnWidth(15) |
| | | @ExcelProperty("考勤类型") |
| | | private String attendanceType; |
| | | |
| | | @ColumnWidth(15) |
| | | @ExcelProperty("星期") |
| | | private String week; |
| | | |
| | | @ColumnWidth(40) |
| | | @ExcelProperty("地址") |
| | | private String address; |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springblade.jfpt.attendance.entity.Attendance; |
| | | import org.springblade.jfpt.attendance.excel.AttendanceExcel; |
| | | import org.springblade.jfpt.attendance.vo.AttendanceVO; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.springblade.system.user.entity.User; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Mapper 接口 |
| | | * |
| | | * @author BladeX |
| | | * @since 2021-03-03 |
| | | */ |
| | | public interface AttendanceMapper extends BaseMapper<Attendance> { |
| | | |
| | | /** |
| | | * 自定义分页 |
| | | * |
| | | * @param page |
| | | * @param attendance |
| | | * @return |
| | | */ |
| | | List<Attendance> selectAttendancePage(IPage page, Long department, AttendanceVO attendance); |
| | | |
| | | |
| | | /** |
| | | * 获取导出用户数据 |
| | | * |
| | | * @param |
| | | * @return |
| | | */ |
| | | List<AttendanceExcel> exportAttendane(String name,String beginTimes,String endTimes,String attendancetypes); |
| | | |
| | | } |
| New file |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="org.springblade.jfpt.attendance.mapper.AttendanceMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="attendanceResultMap" type="org.springblade.jfpt.attendance.entity.Attendance"> |
| | | <id column="id" property="id"/> |
| | | <result column="name" property="name"/> |
| | | <result column="number" property="number"/> |
| | | <result column="department" property="department"/> |
| | | <result column="weather" property="weather"/> |
| | | <result column="clockTime" property="clocktime"/> |
| | | <result column="jd" property="jd"/> |
| | | <result column="wd" property="wd"/> |
| | | <result column="clockType" property="clocktype"/> |
| | | <result column="attendanceType" property="attendancetype"/> |
| | | <result column="tenant_id" property="tenantId"/> |
| | | <result column="week" property="week"/> |
| | | <result column="address" property="address"/> |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="selectAttendancePage" resultMap="attendanceResultMap"> |
| | | select * from sys_attendance where is_deleted = 0 |
| | | <if test="attendance.name!=null and attendance.name != ''"> |
| | | and name = #{attendance.name} |
| | | </if> |
| | | <if test="attendance.department!=null and attendance.department != ''"> |
| | | and department = #{department} |
| | | </if> |
| | | <if test="attendance.attendancetype!=null and attendance.attendancetype != ''"> |
| | | and attendancetype = #{attendance.attendancetype} |
| | | </if> |
| | | <if test="attendance.beginTime!=null and attendance.beginTime!=''"> |
| | | and clockTime>=#{attendance.beginTime} |
| | | </if> |
| | | <if test="attendance.endTime!=null and attendance.endTime!=''"> |
| | | and clockTime<=#{attendance.endTime} |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="exportAttendane" resultType="org.springblade.jfpt.attendance.excel.AttendanceExcel"> |
| | | SELECT id, name, number, department, weather, clockTime, clockType, attendanceType,week,address FROM sys_attendance where is_deleted = 0 |
| | | <if test="name!=null and name != ''"> |
| | | and name = #{name} |
| | | </if> |
| | | <if test="beginTimes!=null and beginTimes!=''"> |
| | | and clockTime>=#{beginTimes} |
| | | </if> |
| | | <if test="endTimes!=null and endTimes!=''"> |
| | | and clockTime<=#{endTimes} |
| | | </if> |
| | | <if test="attendancetypes!=null and attendancetypes!=''"> |
| | | and attendancetype=#{attendancetypes} |
| | | </if> |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import org.springblade.jfpt.attendance.entity.Attendance; |
| | | import org.springblade.jfpt.attendance.excel.AttendanceExcel; |
| | | import org.springblade.jfpt.attendance.vo.AttendanceVO; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.springblade.system.user.entity.User; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 服务类 |
| | | * |
| | | * @author BladeX |
| | | * @since 2021-03-03 |
| | | */ |
| | | public interface IAttendanceService extends IService<Attendance> { |
| | | |
| | | /** |
| | | * 自定义分页 |
| | | * |
| | | * @param page |
| | | * @param attendance |
| | | * @return |
| | | */ |
| | | IPage<Attendance> selectAttendancePage(IPage<Attendance> page, Long department, AttendanceVO attendance); |
| | | /** |
| | | * 导出用户数据 |
| | | * |
| | | * @return |
| | | */ |
| | | List<AttendanceExcel> exportAttendane(String name,String beginTimes,String endTimes,String attendancetypes); |
| | | } |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.service.impl; |
| | | |
| | | import org.springblade.core.tool.utils.StringUtil; |
| | | import org.springblade.jfpt.attendance.entity.Attendance; |
| | | import org.springblade.jfpt.attendance.excel.AttendanceExcel; |
| | | import org.springblade.jfpt.attendance.vo.AttendanceVO; |
| | | import org.springblade.jfpt.attendance.mapper.AttendanceMapper; |
| | | import org.springblade.jfpt.attendance.service.IAttendanceService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springblade.system.cache.DictBizCache; |
| | | import org.springblade.system.cache.SysCache; |
| | | import org.springblade.system.enums.DictBizEnum; |
| | | import org.springframework.stereotype.Service; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | |
| | | import java.util.List; |
| | | import java.util.concurrent.atomic.AtomicInteger; |
| | | |
| | | /** |
| | | * 服务实现类 |
| | | * |
| | | * @author BladeX |
| | | * @since 2021-03-03 |
| | | */ |
| | | @Service |
| | | public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attendance> implements IAttendanceService { |
| | | |
| | | @Override |
| | | public IPage<Attendance> selectAttendancePage(IPage<Attendance> page, Long department,AttendanceVO attendance) { |
| | | return page.setRecords(baseMapper.selectAttendancePage(page,department, attendance)); |
| | | } |
| | | |
| | | @Override |
| | | public List<AttendanceExcel> exportAttendane(String name,String beginTimes,String endTimes,String attendancetypes) { |
| | | List<AttendanceExcel> userList = baseMapper.exportAttendane(name, beginTimes, endTimes,attendancetypes); |
| | | userList.forEach(user -> { |
| | | user.setAttendanceType(DictBizCache.getValue(DictBizEnum.TEST,user.getAttendanceType())); |
| | | user.setClockType(DictBizCache.getValue(DictBizEnum.CLOCKTYPE,user.getClockType())); |
| | | user.setDepartment(StringUtil.join(SysCache.getDeptNames(user.getDepartment()))); |
| | | }); |
| | | return userList; |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.vo; |
| | | |
| | | import org.springblade.jfpt.attendance.entity.Attendance; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import io.swagger.annotations.ApiModel; |
| | | |
| | | /** |
| | | * 视图实体类 |
| | | * |
| | | * @author BladeX |
| | | * @since 2021-03-03 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = true) |
| | | @ApiModel(value = "AttendanceVO对象", description = "AttendanceVO对象") |
| | | public class AttendanceVO extends Attendance { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 部门名 |
| | | */ |
| | | private String deptName; |
| | | |
| | | private String beginTime; |
| | | private String endTime; |
| | | |
| | | |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.springblade.jfpt.attendance.wrapper; |
| | | |
| | | import org.springblade.core.mp.support.BaseEntityWrapper; |
| | | import org.springblade.core.tool.utils.BeanUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.jfpt.attendance.entity.Attendance; |
| | | import org.springblade.jfpt.attendance.vo.AttendanceVO; |
| | | import org.springblade.system.cache.DictCache; |
| | | import org.springblade.system.cache.SysCache; |
| | | import org.springblade.system.entity.Tenant; |
| | | import org.springblade.system.enums.DictEnum; |
| | | import org.springblade.system.user.entity.User; |
| | | import org.springblade.system.user.vo.UserVO; |
| | | |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 包装类,返回视图层所需的字段 |
| | | * |
| | | * @author Chill |
| | | */ |
| | | public class AttendanceWrapper extends BaseEntityWrapper<Attendance, AttendanceVO> { |
| | | |
| | | public static AttendanceWrapper build() { |
| | | return new AttendanceWrapper(); |
| | | } |
| | | |
| | | @Override |
| | | public AttendanceVO entityVO(Attendance attendance) { |
| | | AttendanceVO attendanceVO = Objects.requireNonNull(BeanUtil.copy(attendance, AttendanceVO.class)); |
| | | Tenant tenant = SysCache.getTenant(attendance.getTenantId()); |
| | | List<String> deptName = SysCache.getDeptNames(attendance.getDepartment()); |
| | | attendanceVO.setDeptName(Func.join(deptName)); |
| | | return attendanceVO; |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) |
| | | VALUES ('1367006439005184006', 1123598815738675201, 'attendance', '考勤打卡', 'menu', '/jfpts/attendance', NULL, 1, 1, 0, 1, NULL, 0); |
| | | INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) |
| | | VALUES ('1367006439005184007', '1367006439005184006', 'attendance_add', '新增', 'add', '/jfpts/attendance/add', 'plus', 1, 2, 1, 1, NULL, 0); |
| | | INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) |
| | | VALUES ('1367006439005184008', '1367006439005184006', 'attendance_edit', '修改', 'edit', '/jfpts/attendance/edit', 'form', 2, 2, 2, 1, NULL, 0); |
| | | INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) |
| | | VALUES ('1367006439005184009', '1367006439005184006', 'attendance_delete', '删除', 'delete', '/api/blade-jfpts/attendance/remove', 'delete', 3, 2, 3, 1, NULL, 0); |
| | | INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) |
| | | VALUES ('1367006439005184010', '1367006439005184006', 'attendance_view', '查看', 'view', '/jfpts/attendance/view', 'file-text', 4, 2, 2, 1, NULL, 0); |