考勤组

This commit is contained in:
西城念云 2020-02-24 08:28:16 +08:00
parent ff05b3b24d
commit ea9c3b2f02
20 changed files with 1721 additions and 97 deletions

View File

@ -43,7 +43,7 @@ create table sys_user (
user_id bigint(20) not null auto_increment comment '用户ID', user_id bigint(20) not null auto_increment comment '用户ID',
dept_id bigint(20) default null comment '部门ID', dept_id bigint(20) default null comment '部门ID',
user_name varchar(30) not null comment '用户账号', user_name varchar(30) not null comment '用户账号',
nick_name varchar(30) not null comment '用户昵称', nick_name varchar(30) not null comment '用户姓名',
user_type varchar(2) default '00' comment '用户类型00系统用户', user_type varchar(2) default '00' comment '用户类型00系统用户',
email varchar(50) default '' comment '用户邮箱', email varchar(50) default '' comment '用户邮箱',
phonenumber varchar(11) default '' comment '手机号码', phonenumber varchar(11) default '' comment '手机号码',

View File

@ -0,0 +1,282 @@
package com.ruoyi.project.mr.api;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.utils.IdUtils;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.framework.config.RuoYiConfig;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.mr.base.domain.BaseAttendanceRecord;
import com.ruoyi.project.mr.base.service.IBaseAttendanceRecordService;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.NotBlank;
import java.io.IOException;
import java.util.Date;
/**
* swagger 考勤信息方法
*
* @author ruoyi
*/
@Api(tags = "考勤记录")
@RestController
@RequestMapping("/mr/base")
public class KQRecordController extends BaseController {
@Autowired
private IBaseAttendanceRecordService baseAttendanceRecordService;
// 令牌秘钥
@Value("${token.apiSecret}")
private String apiSecret;
@ApiOperation(value = "考勤记录", notes = "添加考勤记录")
@PostMapping("/save")
@ResponseBody
public AjaxResult save(@RequestHeader(value = "signature", required = false) String secret,@Validated @RequestBody RecordEntity record)
{
if (!apiSecret.equals(secret)) {
return AjaxResult.error(400, MessageUtils.message("api.error.msg"));
}else{
record.setId(IdUtils.fastUUID());
BaseAttendanceRecord baseAttendanceRecord = new BaseAttendanceRecord();
baseAttendanceRecord.setId(record.getId());
baseAttendanceRecord.setDeptName(record.getDept_name());
baseAttendanceRecord.setUserName(record.getUser_name());
baseAttendanceRecord.setPhonenumber(record.getPhonenumber());
baseAttendanceRecord.setClasses(record.getClasses());
baseAttendanceRecord.setWorkDate(record.getWork_date());
baseAttendanceRecord.setPunchDate(record.getPunch_date());
baseAttendanceRecord.setTimeQuantum(record.getTime_quantum());
baseAttendanceRecord.setPunchType(record.getPunch_type());
baseAttendanceRecord.setPunchTime(record.getPunch_time());
baseAttendanceRecord.setStatus(record.getStatus());
baseAttendanceRecord.setPicUrl(record.getPic_url());
baseAttendanceRecord.setAddress(record.getAddress());
baseAttendanceRecord.setCreateBy(record.getCreate_by());
baseAttendanceRecord.setRemark(record.getRemark());
int i = baseAttendanceRecordService.insertBaseAttendanceRecord(baseAttendanceRecord);
if(i > 0){
return AjaxResult.success(record);
}else {
return AjaxResult.error(400, MessageUtils.message("api.error.msg"));
}
}
}
@ApiOperation(value = "图片上传", notes = "添加图片上传地址")
@PostMapping(value = "/upload", consumes = "multipart/*", headers = "content-type=multipart/form-data")
@ResponseBody
public AjaxResult save(@RequestHeader(value = "signature", required = false) String secret,@RequestParam("avatarfile") MultipartFile file) throws IOException
{
if (!file.isEmpty())
{
String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
return AjaxResult.success(avatar);
}else{
return AjaxResult.error(400, MessageUtils.message("api.error.msg"));
}
}
}
@ApiModel("考勤实体")
class RecordEntity
{
@ApiModelProperty(value = "UUID", name = "id", hidden = true)
private String id;
@ApiModelProperty(value = "考勤组名称", name = "dept_name", required = true, example = "默认考勤组")
@NotBlank(message = "默认考勤组不允许为空,请输入")
private String dept_name;
@ApiModelProperty(value = "姓名", name = "user_name", required = true, example = "张三")
private String user_name;
@ApiModelProperty(value = "考勤组名称", name = "phonenumber", required = true, example = "15677777777")
@NotBlank(message = "手机号不允许为空,请输入")
private String phonenumber;
@ApiModelProperty(value = "班次", name = "classes", required = true, example = "1")
private String classes;
@ApiModelProperty(value = "工作日期", name = "work_date", required = true, example = "2019-02-13")
private Date work_date;
@ApiModelProperty(value = "打卡日期", name = "punch_date", required = true, example = "2019-02-13")
private Date punch_date;
@ApiModelProperty(value = "时间段", name = "time_quantum", required = true, example = "8:30-18:30")
private String time_quantum;
@ApiModelProperty(value = "打卡类型", name = "punch_type", required = true, example = "0")
private String punch_type;
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
@ApiModelProperty(value = "打卡时间", name = "punch_time", required = true, example = "2020-02-13 15:25:55")
private Date punch_time;
@ApiModelProperty(value = "状态", name = "status", required = true, example = "0")
private String status;
@ApiModelProperty(value = "拍照路径", name = "pic_url", required = true, example = "111")
private String pic_url;
@ApiModelProperty(value = "地址", name = "address", required = true, example = "河南省焦作市示范区明仁药业")
private String address;
@ApiModelProperty(value = "创建人", name = "create_by", required = true, example = "张三")
private String create_by;
@ApiModelProperty(value = "备注", name = "remark", example = "疫情期间,在家打卡")
private String remark;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDept_name() {
return dept_name;
}
public void setDept_name(String dept_name) {
this.dept_name = dept_name;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getPhonenumber() {
return phonenumber;
}
public void setPhonenumber(String phonenumber) {
this.phonenumber = phonenumber;
}
public String getClasses() {
return classes;
}
public void setClasses(String classes) {
this.classes = classes;
}
public Date getWork_date() {
return work_date;
}
public void setWork_date(Date work_date) {
this.work_date = work_date;
}
public Date getPunch_date() {
return punch_date;
}
public void setPunch_date(Date punch_date) {
this.punch_date = punch_date;
}
public String getTime_quantum() {
return time_quantum;
}
public void setTime_quantum(String time_quantum) {
this.time_quantum = time_quantum;
}
public String getPunch_type() {
return punch_type;
}
public void setPunch_type(String punch_type) {
this.punch_type = punch_type;
}
public Date getPunch_time() {
return punch_time;
}
public void setPunch_time(Date punch_time) {
this.punch_time = punch_time;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getPic_url() {
return pic_url;
}
public void setPic_url(String pic_url) {
this.pic_url = pic_url;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCreate_by() {
return create_by;
}
public void setCreate_by(String create_by) {
this.create_by = create_by;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public RecordEntity()
{
}
public RecordEntity(String id, @NotBlank(message = "默认考勤组不允许为空,请输入") String dept_name, String user_name, @NotBlank(message = "手机号不允许为空,请输入") String phonenumber, String classes, Date work_date, Date punch_date, String time_quantum, String punch_type, Date punch_time, String status, String pic_url, String address, String create_by, String remark) {
this.id = id;
this.dept_name = dept_name;
this.user_name = user_name;
this.phonenumber = phonenumber;
this.classes = classes;
this.work_date = work_date;
this.punch_date = punch_date;
this.time_quantum = time_quantum;
this.punch_type = punch_type;
this.punch_time = punch_time;
this.status = status;
this.pic_url = pic_url;
this.address = address;
this.create_by = create_by;
this.remark = remark;
}
}

View File

@ -0,0 +1,106 @@
package com.ruoyi.project.mr.base.controller;
import java.util.List;
import com.ruoyi.common.utils.IdUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.project.mr.base.domain.BaseAttendanceGroup;
import com.ruoyi.project.mr.base.service.IBaseAttendanceGroupService;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.page.TableDataInfo;
/**
* 考勤组管理Controller
*
* @author mr
* @date 2020-02-03
*/
@RestController
@RequestMapping("/base/group")
public class BaseAttendanceGroupController extends BaseController
{
@Autowired
private IBaseAttendanceGroupService baseAttendanceGroupService;
/**
* 查询考勤组管理列表
*/
@PreAuthorize("@ss.hasPermi('base:group:list')")
@GetMapping("/list")
public TableDataInfo list(BaseAttendanceGroup baseAttendanceGroup)
{
startPage();
List<BaseAttendanceGroup> list = baseAttendanceGroupService.selectBaseAttendanceGroupList(baseAttendanceGroup);
return getDataTable(list);
}
/**
* 导出考勤组管理列表
*/
@PreAuthorize("@ss.hasPermi('base:group:export')")
@Log(title = "考勤组管理", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(BaseAttendanceGroup baseAttendanceGroup)
{
List<BaseAttendanceGroup> list = baseAttendanceGroupService.selectBaseAttendanceGroupList(baseAttendanceGroup);
ExcelUtil<BaseAttendanceGroup> util = new ExcelUtil<BaseAttendanceGroup>(BaseAttendanceGroup.class);
return util.exportExcel(list, "group");
}
/**
* 获取考勤组管理详细信息
*/
@PreAuthorize("@ss.hasPermi('base:group:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return AjaxResult.success(baseAttendanceGroupService.selectBaseAttendanceGroupById(id));
}
/**
* 新增考勤组管理
*/
@PreAuthorize("@ss.hasPermi('base:group:add')")
@Log(title = "考勤组管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody BaseAttendanceGroup baseAttendanceGroup)
{
baseAttendanceGroup.setId(IdUtils.fastUUID());
return toAjax(baseAttendanceGroupService.insertBaseAttendanceGroup(baseAttendanceGroup));
}
/**
* 修改考勤组管理
*/
@PreAuthorize("@ss.hasPermi('base:group:edit')")
@Log(title = "考勤组管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody BaseAttendanceGroup baseAttendanceGroup)
{
return toAjax(baseAttendanceGroupService.updateBaseAttendanceGroup(baseAttendanceGroup));
}
/**
* 删除考勤组管理
*/
@PreAuthorize("@ss.hasPermi('base:group:remove')")
@Log(title = "考勤组管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(baseAttendanceGroupService.deleteBaseAttendanceGroupByIds(ids));
}
}

View File

@ -0,0 +1,99 @@
package com.ruoyi.project.mr.base.controller;
import com.ruoyi.common.utils.IdUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.framework.web.page.TableDataInfo;
import com.ruoyi.project.mr.base.domain.BaseAttendanceRecord;
import com.ruoyi.project.mr.base.service.IBaseAttendanceRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 考勤记录Controller
*
* @author mr
* @date 2020-02-07
*/
@RestController
@RequestMapping("/base/record")
public class BaseAttendanceRecordController extends BaseController
{
@Autowired
private IBaseAttendanceRecordService baseAttendanceRecordService;
/**
* 查询考勤记录列表
*/
@PreAuthorize("@ss.hasPermi('base:record:list')")
@GetMapping("/list")
public TableDataInfo list(BaseAttendanceRecord baseAttendanceRecord)
{
startPage();
List<BaseAttendanceRecord> list = baseAttendanceRecordService.selectBaseAttendanceRecordList(baseAttendanceRecord);
return getDataTable(list);
}
/**
* 导出考勤记录列表
*/
@PreAuthorize("@ss.hasPermi('base:record:export')")
@Log(title = "考勤记录", businessType = BusinessType.EXPORT)
@GetMapping("/export")
public AjaxResult export(BaseAttendanceRecord baseAttendanceRecord)
{
List<BaseAttendanceRecord> list = baseAttendanceRecordService.selectBaseAttendanceRecordList(baseAttendanceRecord);
ExcelUtil<BaseAttendanceRecord> util = new ExcelUtil<BaseAttendanceRecord>(BaseAttendanceRecord.class);
return util.exportExcel(list, "record");
}
/**
* 获取考勤记录详细信息
*/
@PreAuthorize("@ss.hasPermi('base:record:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id)
{
return AjaxResult.success(baseAttendanceRecordService.selectBaseAttendanceRecordById(id));
}
/**
* 新增考勤记录
*/
@PreAuthorize("@ss.hasPermi('base:record:add')")
@Log(title = "考勤记录", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody BaseAttendanceRecord baseAttendanceRecord)
{
baseAttendanceRecord.setId(IdUtils.fastUUID());
return toAjax(baseAttendanceRecordService.insertBaseAttendanceRecord(baseAttendanceRecord));
}
/**
* 修改考勤记录
*/
@PreAuthorize("@ss.hasPermi('base:record:edit')")
@Log(title = "考勤记录", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody BaseAttendanceRecord baseAttendanceRecord)
{
return toAjax(baseAttendanceRecordService.updateBaseAttendanceRecord(baseAttendanceRecord));
}
/**
* 删除考勤记录
*/
@PreAuthorize("@ss.hasPermi('base:record:remove')")
@Log(title = "考勤记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids)
{
return toAjax(baseAttendanceRecordService.deleteBaseAttendanceRecordByIds(ids));
}
}

View File

@ -0,0 +1,150 @@
package com.ruoyi.project.mr.base.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
/**
* 考勤组管理对象 base_attendance_group
*
* @author mr
* @date 2020-02-03
*/
public class BaseAttendanceGroup extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** UUID */
private String id;
/** 考勤组名称 */
@Excel(name = "考勤组名称")
private String attendanceName;
/** 成员 */
private String attendancePeople;
/** 日历 */
private String calendarId;
/** 定位地址 */
private String address;
/** 定位误差 */
private String addError;
/** 拍照设置 */
@Excel(name = "拍照设置")
private String photoSet;
/** 班次类型 */
@Excel(name = "班次类型")
private String classType;
/** 班次 */
@Excel(name = "班次")
private String classes;
public void setId(String id)
{
this.id = id;
}
public String getId()
{
return id;
}
public void setAttendanceName(String attendanceName)
{
this.attendanceName = attendanceName;
}
public String getAttendanceName()
{
return attendanceName;
}
public void setAttendancePeople(String attendancePeople)
{
this.attendancePeople = attendancePeople;
}
public String getAttendancePeople()
{
return attendancePeople;
}
public void setCalendarId(String calendarId)
{
this.calendarId = calendarId;
}
public String getCalendarId()
{
return calendarId;
}
public void setAddress(String address)
{
this.address = address;
}
public String getAddress()
{
return address;
}
public void setAddError(String addError)
{
this.addError = addError;
}
public String getAddError()
{
return addError;
}
public void setPhotoSet(String photoSet)
{
this.photoSet = photoSet;
}
public String getPhotoSet()
{
return photoSet;
}
public void setClassType(String classType)
{
this.classType = classType;
}
public String getClassType()
{
return classType;
}
public void setClasses(String classes)
{
this.classes = classes;
}
public String getClasses()
{
return classes;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("attendanceName", getAttendanceName())
.append("attendancePeople", getAttendancePeople())
.append("calendarId", getCalendarId())
.append("address", getAddress())
.append("addError", getAddError())
.append("photoSet", getPhotoSet())
.append("classType", getClassType())
.append("classes", getClasses())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,211 @@
package com.ruoyi.project.mr.base.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import java.util.Date;
/**
* 考勤记录对象 base_attendance_record
*
* @author mr
* @date 2020-02-07
*/
public class BaseAttendanceRecord extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** UUID */
private String id;
/** 考勤组名称 */
@Excel(name = "考勤组名称")
private String deptName;
/** 姓名 */
@Excel(name = "姓名")
private String userName;
/** 手机号码 */
@Excel(name = "手机号码")
private String phonenumber;
/** 班次 */
@Excel(name = "班次")
private String classes;
/** 工作日期 */
@Excel(name = "工作日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date workDate;
/** 打卡日期 */
@Excel(name = "打卡日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date punchDate;
/** 时间段 */
@Excel(name = "时间段")
private String timeQuantum;
/** 打卡类型 */
@Excel(name = "打卡类型")
private String punchType;
/** 打卡时间 */
@Excel(name = "打卡时间", width = 50, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date punchTime;
/** 状态 */
@Excel(name = "状态")
private String status;
/** 拍照路径 */
@Excel(name = "拍照路径")
private String picUrl;
/** 定位地址 */
@Excel(name = "定位地址")
private String address;
public void setId(String id)
{
this.id = id;
}
public String getId()
{
return id;
}
public void setDeptName(String deptName)
{
this.deptName = deptName;
}
public String getDeptName()
{
return deptName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getUserName()
{
return userName;
}
public void setPhonenumber(String phonenumber)
{
this.phonenumber = phonenumber;
}
public String getPhonenumber()
{
return phonenumber;
}
public void setClasses(String classes)
{
this.classes = classes;
}
public String getClasses()
{
return classes;
}
public void setWorkDate(Date workDate)
{
this.workDate = workDate;
}
public Date getWorkDate()
{
return workDate;
}
public void setPunchDate(Date punchDate)
{
this.punchDate = punchDate;
}
public Date getPunchDate()
{
return punchDate;
}
public void setTimeQuantum(String timeQuantum)
{
this.timeQuantum = timeQuantum;
}
public String getTimeQuantum()
{
return timeQuantum;
}
public void setPunchType(String punchType)
{
this.punchType = punchType;
}
public String getPunchType()
{
return punchType;
}
public void setPunchTime(Date punchTime)
{
this.punchTime = punchTime;
}
public Date getPunchTime()
{
return punchTime;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
public void setPicUrl(String picUrl)
{
this.picUrl = picUrl;
}
public String getPicUrl()
{
return picUrl;
}
public void setAddress(String address)
{
this.address = address;
}
public String getAddress()
{
return address;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("deptName", getDeptName())
.append("userName", getUserName())
.append("phonenumber", getPhonenumber())
.append("classes", getClasses())
.append("workDate", getWorkDate())
.append("punchDate", getPunchDate())
.append("timeQuantum", getTimeQuantum())
.append("punchType", getPunchType())
.append("punchTime", getPunchTime())
.append("status", getStatus())
.append("picUrl", getPicUrl())
.append("address", getAddress())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

View File

@ -0,0 +1,70 @@
package com.ruoyi.project.mr.base.mapper;
import com.ruoyi.project.mr.base.domain.BaseAttendanceGroup;
import com.ruoyi.project.system.domain.SysPost;
import java.util.List;
/**
* 考勤组管理Mapper接口
*
* @author mr
* @date 2020-02-03
*/
public interface BaseAttendanceGroupMapper
{
/**
* 查询考勤组管理
*
* @param id 考勤组管理ID
* @return 考勤组管理
*/
public BaseAttendanceGroup selectBaseAttendanceGroupById(String id);
/**
* 查询考勤组管理列表
*
* @param baseAttendanceGroup 考勤组管理
* @return 考勤组管理集合
*/
public List<BaseAttendanceGroup> selectBaseAttendanceGroupList(BaseAttendanceGroup baseAttendanceGroup);
/**
* 查询所有考勤组
*
* @return 考勤组列表
*/
public List<BaseAttendanceGroup> selectGroupAll();
/**
* 新增考勤组管理
*
* @param baseAttendanceGroup 考勤组管理
* @return 结果
*/
public int insertBaseAttendanceGroup(BaseAttendanceGroup baseAttendanceGroup);
/**
* 修改考勤组管理
*
* @param baseAttendanceGroup 考勤组管理
* @return 结果
*/
public int updateBaseAttendanceGroup(BaseAttendanceGroup baseAttendanceGroup);
/**
* 删除考勤组管理
*
* @param id 考勤组管理ID
* @return 结果
*/
public int deleteBaseAttendanceGroupById(String id);
/**
* 批量删除考勤组管理
*
* @param ids 需要删除的数据ID
* @return 结果
*/
public int deleteBaseAttendanceGroupByIds(String[] ids);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.project.mr.base.mapper;
import com.ruoyi.project.mr.base.domain.BaseAttendanceRecord;
import java.util.List;
/**
* 考勤记录Mapper接口
*
* @author mr
* @date 2020-02-07
*/
public interface BaseAttendanceRecordMapper
{
/**
* 查询考勤记录
*
* @param id 考勤记录ID
* @return 考勤记录
*/
public BaseAttendanceRecord selectBaseAttendanceRecordById(String id);
/**
* 查询考勤记录列表
*
* @param baseAttendanceRecord 考勤记录
* @return 考勤记录集合
*/
public List<BaseAttendanceRecord> selectBaseAttendanceRecordList(BaseAttendanceRecord baseAttendanceRecord);
/**
* 新增考勤记录
*
* @param baseAttendanceRecord 考勤记录
* @return 结果
*/
public int insertBaseAttendanceRecord(BaseAttendanceRecord baseAttendanceRecord);
/**
* 修改考勤记录
*
* @param baseAttendanceRecord 考勤记录
* @return 结果
*/
public int updateBaseAttendanceRecord(BaseAttendanceRecord baseAttendanceRecord);
/**
* 删除考勤记录
*
* @param id 考勤记录ID
* @return 结果
*/
public int deleteBaseAttendanceRecordById(String id);
/**
* 批量删除考勤记录
*
* @param ids 需要删除的数据ID
* @return 结果
*/
public int deleteBaseAttendanceRecordByIds(String[] ids);
}

View File

@ -0,0 +1,70 @@
package com.ruoyi.project.mr.base.service;
import com.ruoyi.project.mr.base.domain.BaseAttendanceGroup;
import com.ruoyi.project.system.domain.SysPost;
import java.util.List;
/**
* 考勤组管理Service接口
*
* @author mr
* @date 2020-02-03
*/
public interface IBaseAttendanceGroupService
{
/**
* 查询考勤组管理
*
* @param id 考勤组管理ID
* @return 考勤组管理
*/
public BaseAttendanceGroup selectBaseAttendanceGroupById(String id);
/**
* 查询考勤组管理列表
*
* @param baseAttendanceGroup 考勤组管理
* @return 考勤组管理集合
*/
public List<BaseAttendanceGroup> selectBaseAttendanceGroupList(BaseAttendanceGroup baseAttendanceGroup);
/**
* 查询所有考勤组
*
* @return 考勤组列表
*/
public List<BaseAttendanceGroup> selectGroupAll();
/**
* 新增考勤组管理
*
* @param baseAttendanceGroup 考勤组管理
* @return 结果
*/
public int insertBaseAttendanceGroup(BaseAttendanceGroup baseAttendanceGroup);
/**
* 修改考勤组管理
*
* @param baseAttendanceGroup 考勤组管理
* @return 结果
*/
public int updateBaseAttendanceGroup(BaseAttendanceGroup baseAttendanceGroup);
/**
* 批量删除考勤组管理
*
* @param ids 需要删除的考勤组管理ID
* @return 结果
*/
public int deleteBaseAttendanceGroupByIds(String[] ids);
/**
* 删除考勤组管理信息
*
* @param id 考勤组管理ID
* @return 结果
*/
public int deleteBaseAttendanceGroupById(String id);
}

View File

@ -0,0 +1,61 @@
package com.ruoyi.project.mr.base.service;
import com.ruoyi.project.mr.base.domain.BaseAttendanceRecord;
import java.util.List;
/**
* 考勤记录Service接口
*
* @author mr
* @date 2020-02-07
*/
public interface IBaseAttendanceRecordService
{
/**
* 查询考勤记录
*
* @param id 考勤记录ID
* @return 考勤记录
*/
public BaseAttendanceRecord selectBaseAttendanceRecordById(String id);
/**
* 查询考勤记录列表
*
* @param baseAttendanceRecord 考勤记录
* @return 考勤记录集合
*/
public List<BaseAttendanceRecord> selectBaseAttendanceRecordList(BaseAttendanceRecord baseAttendanceRecord);
/**
* 新增考勤记录
*
* @param baseAttendanceRecord 考勤记录
* @return 结果
*/
public int insertBaseAttendanceRecord(BaseAttendanceRecord baseAttendanceRecord);
/**
* 修改考勤记录
*
* @param baseAttendanceRecord 考勤记录
* @return 结果
*/
public int updateBaseAttendanceRecord(BaseAttendanceRecord baseAttendanceRecord);
/**
* 批量删除考勤记录
*
* @param ids 需要删除的考勤记录ID
* @return 结果
*/
public int deleteBaseAttendanceRecordByIds(String[] ids);
/**
* 删除考勤记录信息
*
* @param id 考勤记录ID
* @return 结果
*/
public int deleteBaseAttendanceRecordById(String id);
}

View File

@ -0,0 +1,108 @@
package com.ruoyi.project.mr.base.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.project.system.domain.SysPost;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.project.mr.base.mapper.BaseAttendanceGroupMapper;
import com.ruoyi.project.mr.base.domain.BaseAttendanceGroup;
import com.ruoyi.project.mr.base.service.IBaseAttendanceGroupService;
/**
* 考勤组管理Service业务层处理
*
* @author mr
* @date 2020-02-03
*/
@Service
public class BaseAttendanceGroupServiceImpl implements IBaseAttendanceGroupService
{
@Autowired
private BaseAttendanceGroupMapper baseAttendanceGroupMapper;
/**
* 查询考勤组管理
*
* @param id 考勤组管理ID
* @return 考勤组管理
*/
@Override
public BaseAttendanceGroup selectBaseAttendanceGroupById(String id)
{
return baseAttendanceGroupMapper.selectBaseAttendanceGroupById(id);
}
/**
* 查询考勤组管理列表
*
* @param baseAttendanceGroup 考勤组管理
* @return 考勤组管理
*/
@Override
public List<BaseAttendanceGroup> selectBaseAttendanceGroupList(BaseAttendanceGroup baseAttendanceGroup)
{
return baseAttendanceGroupMapper.selectBaseAttendanceGroupList(baseAttendanceGroup);
}
/**
* 查询所有考勤组
*
* @return 考勤组列表
*/
@Override
public List<BaseAttendanceGroup> selectGroupAll()
{
return baseAttendanceGroupMapper.selectGroupAll();
}
/**
* 新增考勤组管理
*
* @param baseAttendanceGroup 考勤组管理
* @return 结果
*/
@Override
public int insertBaseAttendanceGroup(BaseAttendanceGroup baseAttendanceGroup)
{
baseAttendanceGroup.setCreateTime(DateUtils.getNowDate());
return baseAttendanceGroupMapper.insertBaseAttendanceGroup(baseAttendanceGroup);
}
/**
* 修改考勤组管理
*
* @param baseAttendanceGroup 考勤组管理
* @return 结果
*/
@Override
public int updateBaseAttendanceGroup(BaseAttendanceGroup baseAttendanceGroup)
{
baseAttendanceGroup.setUpdateTime(DateUtils.getNowDate());
return baseAttendanceGroupMapper.updateBaseAttendanceGroup(baseAttendanceGroup);
}
/**
* 批量删除考勤组管理
*
* @param ids 需要删除的考勤组管理ID
* @return 结果
*/
@Override
public int deleteBaseAttendanceGroupByIds(String[] ids)
{
return baseAttendanceGroupMapper.deleteBaseAttendanceGroupByIds(ids);
}
/**
* 删除考勤组管理信息
*
* @param id 考勤组管理ID
* @return 结果
*/
@Override
public int deleteBaseAttendanceGroupById(String id)
{
return baseAttendanceGroupMapper.deleteBaseAttendanceGroupById(id);
}
}

View File

@ -0,0 +1,96 @@
package com.ruoyi.project.mr.base.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.project.mr.base.mapper.BaseAttendanceRecordMapper;
import com.ruoyi.project.mr.base.domain.BaseAttendanceRecord;
import com.ruoyi.project.mr.base.service.IBaseAttendanceRecordService;
/**
* 考勤记录Service业务层处理
*
* @author mr
* @date 2020-02-07
*/
@Service
public class BaseAttendanceRecordServiceImpl implements IBaseAttendanceRecordService
{
@Autowired
private BaseAttendanceRecordMapper baseAttendanceRecordMapper;
/**
* 查询考勤记录
*
* @param id 考勤记录ID
* @return 考勤记录
*/
@Override
public BaseAttendanceRecord selectBaseAttendanceRecordById(String id)
{
return baseAttendanceRecordMapper.selectBaseAttendanceRecordById(id);
}
/**
* 查询考勤记录列表
*
* @param baseAttendanceRecord 考勤记录
* @return 考勤记录
*/
@Override
public List<BaseAttendanceRecord> selectBaseAttendanceRecordList(BaseAttendanceRecord baseAttendanceRecord)
{
return baseAttendanceRecordMapper.selectBaseAttendanceRecordList(baseAttendanceRecord);
}
/**
* 新增考勤记录
*
* @param baseAttendanceRecord 考勤记录
* @return 结果
*/
@Override
public int insertBaseAttendanceRecord(BaseAttendanceRecord baseAttendanceRecord)
{
baseAttendanceRecord.setCreateTime(DateUtils.getNowDate());
return baseAttendanceRecordMapper.insertBaseAttendanceRecord(baseAttendanceRecord);
}
/**
* 修改考勤记录
*
* @param baseAttendanceRecord 考勤记录
* @return 结果
*/
@Override
public int updateBaseAttendanceRecord(BaseAttendanceRecord baseAttendanceRecord)
{
baseAttendanceRecord.setUpdateTime(DateUtils.getNowDate());
return baseAttendanceRecordMapper.updateBaseAttendanceRecord(baseAttendanceRecord);
}
/**
* 批量删除考勤记录
*
* @param ids 需要删除的考勤记录ID
* @return 结果
*/
@Override
public int deleteBaseAttendanceRecordByIds(String[] ids)
{
return baseAttendanceRecordMapper.deleteBaseAttendanceRecordByIds(ids);
}
/**
* 删除考勤记录信息
*
* @param id 考勤记录ID
* @return 结果
*/
@Override
public int deleteBaseAttendanceRecordById(String id)
{
return baseAttendanceRecordMapper.deleteBaseAttendanceRecordById(id);
}
}

View File

@ -1,18 +1,5 @@
package com.ruoyi.project.system.controller; package com.ruoyi.project.system.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ServletUtils;
@ -25,10 +12,18 @@ import com.ruoyi.framework.security.service.TokenService;
import com.ruoyi.framework.web.controller.BaseController; import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.framework.web.page.TableDataInfo; import com.ruoyi.framework.web.page.TableDataInfo;
import com.ruoyi.project.mr.base.service.IBaseAttendanceGroupService;
import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.service.ISysPostService; import com.ruoyi.project.system.service.ISysPostService;
import com.ruoyi.project.system.service.ISysRoleService; import com.ruoyi.project.system.service.ISysRoleService;
import com.ruoyi.project.system.service.ISysUserService; import com.ruoyi.project.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/** /**
* 用户信息 * 用户信息
@ -48,6 +43,9 @@ public class SysUserController extends BaseController
@Autowired @Autowired
private ISysPostService postService; private ISysPostService postService;
@Autowired
private IBaseAttendanceGroupService groupService;
@Autowired @Autowired
private TokenService tokenService; private TokenService tokenService;
@ -63,6 +61,16 @@ public class SysUserController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
/**
* 获取用户
*/
@GetMapping("/userSelect")
public AjaxResult userSelect(SysUser user)
{
List<SysUser> users = userService.selectUserList(user);
return AjaxResult.success(userService.buildUserSelect(users));
}
@Log(title = "用户管理", businessType = BusinessType.EXPORT) @Log(title = "用户管理", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:user:export')") @PreAuthorize("@ss.hasPermi('system:user:export')")
@GetMapping("/export") @GetMapping("/export")
@ -103,6 +111,7 @@ public class SysUserController extends BaseController
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("roles", roleService.selectRoleAll()); ajax.put("roles", roleService.selectRoleAll());
ajax.put("posts", postService.selectPostAll()); ajax.put("posts", postService.selectPostAll());
ajax.put("groups", groupService.selectGroupAll());
if (StringUtils.isNotNull(userId)) if (StringUtils.isNotNull(userId))
{ {
ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId)); ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));

View File

@ -30,12 +30,16 @@ public class SysUser extends BaseEntity
@Excel(name = "部门编号", type = Type.IMPORT) @Excel(name = "部门编号", type = Type.IMPORT)
private Long deptId; private Long deptId;
/** 部门ID */
@Excel(name = "考勤组标识", type = Type.IMPORT)
private String groupId;
/** 用户账号 */ /** 用户账号 */
@Excel(name = "登录名称") @Excel(name = "登录名称")
private String userName; private String userName;
/** 用户昵称 */ /** 用户姓名 */
@Excel(name = "用户") @Excel(name = "用户")
private String nickName; private String nickName;
/** 用户邮箱 */ /** 用户邮箱 */
@ -130,7 +134,17 @@ public class SysUser extends BaseEntity
this.deptId = deptId; this.deptId = deptId;
} }
@Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") public String getGroupId()
{
return groupId;
}
public void setGroupId(String groupId)
{
this.groupId = groupId;
}
@Size(min = 0, max = 30, message = "用户名称长度不能超过30个字符")
public String getNickName() public String getNickName()
{ {
return nickName; return nickName;
@ -301,6 +315,7 @@ public class SysUser extends BaseEntity
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId()) .append("userId", getUserId())
.append("deptId", getDeptId()) .append("deptId", getDeptId())
.append("groupId", getGroupId())
.append("userName", getUserName()) .append("userName", getUserName())
.append("nickName", getNickName()) .append("nickName", getNickName())
.append("email", getEmail()) .append("email", getEmail())

View File

@ -1,6 +1,10 @@
package com.ruoyi.project.system.service; package com.ruoyi.project.system.service;
import java.util.List; import java.util.List;
import java.util.Map;
import com.ruoyi.framework.web.domain.TreeSelect;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser; import com.ruoyi.project.system.domain.SysUser;
/** /**
@ -18,6 +22,14 @@ public interface ISysUserService
*/ */
public List<SysUser> selectUserList(SysUser user); public List<SysUser> selectUserList(SysUser user);
/**
* 构建前端所需要数据
*
* @param users 用户列表
* @return 用户列表
*/
public Map<String,String> buildUserSelect(List<SysUser> users);
/** /**
* 通过用户名查询用户 * 通过用户名查询用户
* *
@ -164,4 +176,5 @@ public interface ISysUserService
* @return 结果 * @return 结果
*/ */
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName); public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
} }

View File

@ -1,7 +1,8 @@
package com.ruoyi.project.system.service.impl; package com.ruoyi.project.system.service.impl;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import com.ruoyi.project.system.domain.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -12,11 +13,6 @@ import com.ruoyi.common.exception.CustomException;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.framework.aspectj.lang.annotation.DataScope; import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
import com.ruoyi.project.system.domain.SysPost;
import com.ruoyi.project.system.domain.SysRole;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.domain.SysUserPost;
import com.ruoyi.project.system.domain.SysUserRole;
import com.ruoyi.project.system.mapper.SysPostMapper; import com.ruoyi.project.system.mapper.SysPostMapper;
import com.ruoyi.project.system.mapper.SysRoleMapper; import com.ruoyi.project.system.mapper.SysRoleMapper;
import com.ruoyi.project.system.mapper.SysUserMapper; import com.ruoyi.project.system.mapper.SysUserMapper;
@ -66,6 +62,37 @@ public class SysUserServiceImpl implements ISysUserService
return userMapper.selectUserList(user); return userMapper.selectUserList(user);
} }
/**
* 构建前端所需要数据信息
*
* @param users 用户列表
* @return 用户列表
*/
public Map<String,String> buildUser(List<SysUser> users)
{
Map<String,String> map = new HashMap<String,String>();
for (Iterator<SysUser> iterator = users.iterator(); iterator.hasNext();){
SysUser user = (SysUser) iterator.next();
map.put(user.getUserName(),user.getNickName());
}
return map;
}
/**
* 查询用户列表
*
* @param users 用户信息
* @return 用户信息集合信息
*/
@Override
public Map<String,String> buildUserSelect(List<SysUser> users)
{
Map<String,String> userList = buildUser(users);
return userList;
}
/** /**
* 通过用户名查询用户 * 通过用户名查询用户
* *
@ -268,7 +295,6 @@ public class SysUserServiceImpl implements ISysUserService
/** /**
* 修改用户头像 * 修改用户头像
* *
* @param userId 用户ID
* @param avatar 头像地址 * @param avatar 头像地址
* @return 结果 * @return 结果
*/ */

View File

@ -0,0 +1,114 @@
<?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="com.ruoyi.project.mr.base.mapper.BaseAttendanceGroupMapper">
<resultMap type="BaseAttendanceGroup" id="BaseAttendanceGroupResult">
<result property="id" column="ID" />
<result property="attendanceName" column="attendance_name" />
<result property="attendancePeople" column="attendance_people" />
<result property="calendarId" column="calendar_id" />
<result property="address" column="address" />
<result property="addError" column="add_error" />
<result property="photoSet" column="photo_set" />
<result property="classType" column="class_type" />
<result property="classes" column="classes" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectBaseAttendanceGroupVo">
select ID, attendance_name, attendance_people, calendar_id, address, add_error, photo_set, class_type, classes, create_by, create_time, update_by, update_time, remark from base_attendance_group
</sql>
<select id="selectBaseAttendanceGroupList" parameterType="BaseAttendanceGroup" resultMap="BaseAttendanceGroupResult">
<include refid="selectBaseAttendanceGroupVo"/>
<where>
<if test="attendanceName != null and attendanceName != ''"> and attendance_name like concat('%', #{attendanceName}, '%')</if>
<if test="photoSet != null and photoSet != ''"> and photo_set = #{photoSet}</if>
<if test="classType != null and classType != ''"> and class_type = #{classType}</if>
<if test="classes != null and classes != ''"> and classes = #{classes}</if>
</where>
</select>
<select id="selectGroupAll" resultMap="BaseAttendanceGroupResult">
<include refid="selectBaseAttendanceGroupVo"/>
</select>
<select id="selectBaseAttendanceGroupById" parameterType="String" resultMap="BaseAttendanceGroupResult">
<include refid="selectBaseAttendanceGroupVo"/>
where ID = #{id}
</select>
<insert id="insertBaseAttendanceGroup" parameterType="BaseAttendanceGroup">
insert into base_attendance_group
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null and id != ''">ID,</if>
<if test="attendanceName != null and attendanceName != ''">attendance_name,</if>
<if test="attendancePeople != null and attendancePeople != ''">attendance_people,</if>
<if test="calendarId != null and calendarId != ''">calendar_id,</if>
<if test="address != null and address != ''">address,</if>
<if test="addError != null and addError != ''">add_error,</if>
<if test="photoSet != null and photoSet != ''">photo_set,</if>
<if test="classType != null and classType != ''">class_type,</if>
<if test="classes != null and classes != ''">classes,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="createTime != null ">create_time,</if>
<if test="updateBy != null and updateBy != ''">update_by,</if>
<if test="updateTime != null ">update_time,</if>
<if test="remark != null and remark != ''">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null and id != ''">#{id},</if>
<if test="attendanceName != null and attendanceName != ''">#{attendanceName},</if>
<if test="attendancePeople != null and attendancePeople != ''">#{attendancePeople},</if>
<if test="calendarId != null and calendarId != ''">#{calendarId},</if>
<if test="address != null and address != ''">#{address},</if>
<if test="addError != null and addError != ''">#{addError},</if>
<if test="photoSet != null and photoSet != ''">#{photoSet},</if>
<if test="classType != null and classType != ''">#{classType},</if>
<if test="classes != null and classes != ''">#{classes},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="createTime != null ">#{createTime},</if>
<if test="updateBy != null and updateBy != ''">#{updateBy},</if>
<if test="updateTime != null ">#{updateTime},</if>
<if test="remark != null and remark != ''">#{remark},</if>
</trim>
</insert>
<update id="updateBaseAttendanceGroup" parameterType="BaseAttendanceGroup">
update base_attendance_group
<trim prefix="SET" suffixOverrides=",">
<if test="attendanceName != null and attendanceName != ''">attendance_name = #{attendanceName},</if>
<if test="attendancePeople != null and attendancePeople != ''">attendance_people = #{attendancePeople},</if>
<if test="calendarId != null and calendarId != ''">calendar_id = #{calendarId},</if>
<if test="address != null and address != ''">address = #{address},</if>
<if test="addError != null and addError != ''">add_error = #{addError},</if>
<if test="photoSet != null and photoSet != ''">photo_set = #{photoSet},</if>
<if test="classType != null and classType != ''">class_type = #{classType},</if>
<if test="classes != null and classes != ''">classes = #{classes},</if>
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
<if test="createTime != null ">create_time = #{createTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="updateTime != null ">update_time = #{updateTime},</if>
<if test="remark != null and remark != ''">remark = #{remark},</if>
</trim>
where ID = #{id}
</update>
<delete id="deleteBaseAttendanceGroupById" parameterType="String">
delete from base_attendance_group where ID = #{id}
</delete>
<delete id="deleteBaseAttendanceGroupByIds" parameterType="String">
delete from base_attendance_group where ID in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,129 @@
<?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="com.ruoyi.project.mr.base.mapper.BaseAttendanceRecordMapper">
<resultMap type="BaseAttendanceRecord" id="BaseAttendanceRecordResult">
<result property="id" column="id" />
<result property="deptName" column="dept_name" />
<result property="userName" column="user_name" />
<result property="phonenumber" column="phonenumber" />
<result property="classes" column="classes" />
<result property="workDate" column="work_date" />
<result property="punchDate" column="punch_date" />
<result property="timeQuantum" column="time_quantum" />
<result property="punchType" column="punch_type" />
<result property="punchTime" column="punch_time" />
<result property="status" column="status" />
<result property="picUrl" column="pic_url" />
<result property="address" column="address" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectBaseAttendanceRecordVo">
select id, dept_name, user_name, phonenumber, classes, work_date, punch_date, time_quantum, punch_type, punch_time, status, pic_url, address, create_by, create_time, update_by, update_time, remark from base_attendance_record
</sql>
<select id="selectBaseAttendanceRecordList" parameterType="BaseAttendanceRecord" resultMap="BaseAttendanceRecordResult">
<include refid="selectBaseAttendanceRecordVo"/>
<where>
<if test="deptName != null and deptName != ''"> and dept_name like concat('%', #{deptName}, '%')</if>
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
<if test="phonenumber != null and phonenumber != ''"> and phonenumber = #{phonenumber}</if>
<if test="classes != null and classes != ''"> and classes = #{classes}</if>
<if test="workDate != null "> and work_date = #{workDate}</if>
<if test="punchType != null and punchType != ''"> and punch_type = #{punchType}</if>
<if test="status != null and status != ''"> and status = #{status}</if>
</where>
</select>
<select id="selectBaseAttendanceRecordById" parameterType="String" resultMap="BaseAttendanceRecordResult">
<include refid="selectBaseAttendanceRecordVo"/>
where id = #{id}
</select>
<insert id="insertBaseAttendanceRecord" parameterType="BaseAttendanceRecord">
insert into base_attendance_record
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null and id != ''">id,</if>
<if test="deptName != null and deptName != ''">dept_name,</if>
<if test="userName != null and userName != ''">user_name,</if>
<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
<if test="classes != null and classes != ''">classes,</if>
<if test="workDate != null ">work_date,</if>
<if test="punchDate != null ">punch_date,</if>
<if test="timeQuantum != null and timeQuantum != ''">time_quantum,</if>
<if test="punchType != null and punchType != ''">punch_type,</if>
<if test="punchTime != null ">punch_time,</if>
<if test="status != null and status != ''">status,</if>
<if test="picUrl != null and picUrl != ''">pic_url,</if>
<if test="address != null and address != ''">address,</if>
<if test="createBy != null and createBy != ''">create_by,</if>
<if test="createTime != null ">create_time,</if>
<if test="updateBy != null and updateBy != ''">update_by,</if>
<if test="updateTime != null ">update_time,</if>
<if test="remark != null and remark != ''">remark,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null and id != ''">#{id},</if>
<if test="deptName != null and deptName != ''">#{deptName},</if>
<if test="userName != null and userName != ''">#{userName},</if>
<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
<if test="classes != null and classes != ''">#{classes},</if>
<if test="workDate != null ">#{workDate},</if>
<if test="punchDate != null ">#{punchDate},</if>
<if test="timeQuantum != null and timeQuantum != ''">#{timeQuantum},</if>
<if test="punchType != null and punchType != ''">#{punchType},</if>
<if test="punchTime != null ">#{punchTime},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="picUrl != null and picUrl != ''">#{picUrl},</if>
<if test="address != null and address != ''">#{address},</if>
<if test="createBy != null and createBy != ''">#{createBy},</if>
<if test="createTime != null ">#{createTime},</if>
<if test="updateBy != null and updateBy != ''">#{updateBy},</if>
<if test="updateTime != null ">#{updateTime},</if>
<if test="remark != null and remark != ''">#{remark},</if>
</trim>
</insert>
<update id="updateBaseAttendanceRecord" parameterType="BaseAttendanceRecord">
update base_attendance_record
<trim prefix="SET" suffixOverrides=",">
<if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="phonenumber != null and phonenumber != ''">phonenumber = #{phonenumber},</if>
<if test="classes != null and classes != ''">classes = #{classes},</if>
<if test="workDate != null ">work_date = #{workDate},</if>
<if test="punchDate != null ">punch_date = #{punchDate},</if>
<if test="timeQuantum != null and timeQuantum != ''">time_quantum = #{timeQuantum},</if>
<if test="punchType != null and punchType != ''">punch_type = #{punchType},</if>
<if test="punchTime != null ">punch_time = #{punchTime},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="picUrl != null and picUrl != ''">pic_url = #{picUrl},</if>
<if test="address != null and address != ''">address = #{address},</if>
<if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
<if test="createTime != null ">create_time = #{createTime},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="updateTime != null ">update_time = #{updateTime},</if>
<if test="remark != null and remark != ''">remark = #{remark},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteBaseAttendanceRecordById" parameterType="String">
delete from base_attendance_record where id = #{id}
</delete>
<delete id="deleteBaseAttendanceRecordByIds" parameterType="String">
delete from base_attendance_record where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="SysUser" id="SysUserResult"> <resultMap type="SysUser" id="SysUserResult">
<id property="userId" column="user_id" /> <id property="userId" column="user_id" />
<result property="deptId" column="dept_id" /> <result property="deptId" column="dept_id" />
<result property="groupId" column="group_id" />
<result property="userName" column="user_name" /> <result property="userName" column="user_name" />
<result property="nickName" column="nick_name" /> <result property="nickName" column="nick_name" />
<result property="email" column="email" /> <result property="email" column="email" />
@ -46,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectUserVo"> <sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, select u.user_id, u.dept_id, u.group_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status, d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u from sys_user u
@ -56,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u select u.user_id, u.dept_id,u.group_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' where u.del_flag = '0'
<if test="userName != null and userName != ''"> <if test="userName != null and userName != ''">
@ -107,6 +108,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
insert into sys_user( insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if> <if test="userId != null and userId != 0">user_id,</if>
<if test="deptId != null and deptId != 0">dept_id,</if> <if test="deptId != null and deptId != 0">dept_id,</if>
<if test="groupId != null and groupId != ''">group_id,</if>
<if test="userName != null and userName != ''">user_name,</if> <if test="userName != null and userName != ''">user_name,</if>
<if test="nickName != null and nickName != ''">nick_name,</if> <if test="nickName != null and nickName != ''">nick_name,</if>
<if test="email != null and email != ''">email,</if> <if test="email != null and email != ''">email,</if>
@ -121,6 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
)values( )values(
<if test="userId != null and userId != ''">#{userId},</if> <if test="userId != null and userId != ''">#{userId},</if>
<if test="deptId != null and deptId != ''">#{deptId},</if> <if test="deptId != null and deptId != ''">#{deptId},</if>
<if test="groupId != null and groupId != ''">#{groupId},</if>
<if test="userName != null and userName != ''">#{userName},</if> <if test="userName != null and userName != ''">#{userName},</if>
<if test="nickName != null and nickName != ''">#{nickName},</if> <if test="nickName != null and nickName != ''">#{nickName},</if>
<if test="email != null and email != ''">#{email},</if> <if test="email != null and email != ''">#{email},</if>
@ -139,6 +142,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update sys_user update sys_user
<set> <set>
<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if> <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
<if test="groupId != null and groupId != ''">group_id = #{groupId},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if> <if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if> <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="email != null and email != ''">email = #{email},</if> <if test="email != null and email != ''">email = #{email},</if>