考勤组

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',
dept_id bigint(20) default null comment '部门ID',
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系统用户',
email varchar(50) 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;
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.utils.SecurityUtils;
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.domain.AjaxResult;
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.service.ISysPostService;
import com.ruoyi.project.system.service.ISysRoleService;
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
private ISysPostService postService;
@Autowired
private IBaseAttendanceGroupService groupService;
@Autowired
private TokenService tokenService;
@ -63,6 +61,16 @@ public class SysUserController extends BaseController
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)
@PreAuthorize("@ss.hasPermi('system:user:export')")
@GetMapping("/export")
@ -103,6 +111,7 @@ public class SysUserController extends BaseController
AjaxResult ajax = AjaxResult.success();
ajax.put("roles", roleService.selectRoleAll());
ajax.put("posts", postService.selectPostAll());
ajax.put("groups", groupService.selectGroupAll());
if (StringUtils.isNotNull(userId))
{
ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));

View File

@ -15,7 +15,7 @@ import com.ruoyi.framework.web.domain.BaseEntity;
/**
* 用户对象 sys_user
*
*
* @author ruoyi
*/
public class SysUser extends BaseEntity
@ -30,12 +30,16 @@ public class SysUser extends BaseEntity
@Excel(name = "部门编号", type = Type.IMPORT)
private Long deptId;
/** 部门ID */
@Excel(name = "考勤组标识", type = Type.IMPORT)
private String groupId;
/** 用户账号 */
@Excel(name = "登录名称")
private String userName;
/** 用户昵称 */
@Excel(name = "用户")
/** 用户姓名 */
@Excel(name = "用户")
private String nickName;
/** 用户邮箱 */
@ -130,7 +134,17 @@ public class SysUser extends BaseEntity
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()
{
return nickName;
@ -295,12 +309,13 @@ public class SysUser extends BaseEntity
{
this.postIds = postIds;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId())
.append("deptId", getDeptId())
.append("groupId", getGroupId())
.append("userName", getUserName())
.append("nickName", getNickName())
.append("email", getEmail())

View File

@ -8,14 +8,14 @@ import com.ruoyi.project.system.domain.SysUser;
/**
* 用户表 数据层
*
*
* @author ruoyi
*/
public interface SysUserMapper
{
/**
* 根据条件分页查询用户列表
*
*
* @param sysUser 用户信息
* @return 用户信息集合信息
*/
@ -23,7 +23,7 @@ public interface SysUserMapper
/**
* 通过用户名查询用户
*
*
* @param userName 用户名
* @return 用户对象信息
*/
@ -31,7 +31,7 @@ public interface SysUserMapper
/**
* 通过用户ID查询用户
*
*
* @param userId 用户ID
* @return 用户对象信息
*/
@ -39,7 +39,7 @@ public interface SysUserMapper
/**
* 新增用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@ -47,7 +47,7 @@ public interface SysUserMapper
/**
* 修改用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@ -55,7 +55,7 @@ public interface SysUserMapper
/**
* 修改用户头像
*
*
* @param userName 用户名
* @param avatar 头像地址
* @return 结果
@ -64,7 +64,7 @@ public interface SysUserMapper
/**
* 重置用户密码
*
*
* @param userName 用户名
* @param password 密码
* @return 结果
@ -73,7 +73,7 @@ public interface SysUserMapper
/**
* 通过用户ID删除用户
*
*
* @param userId 用户ID
* @return 结果
*/
@ -81,7 +81,7 @@ public interface SysUserMapper
/**
* 批量删除用户信息
*
*
* @param userIds 需要删除的用户ID
* @return 结果
*/
@ -89,7 +89,7 @@ public interface SysUserMapper
/**
* 校验用户名称是否唯一
*
*
* @param userName 用户名称
* @return 结果
*/

View File

@ -1,26 +1,38 @@
package com.ruoyi.project.system.service;
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;
/**
* 用户 业务层
*
*
* @author ruoyi
*/
public interface ISysUserService
{
/**
* 根据条件分页查询用户列表
*
*
* @param user 用户信息
* @return 用户信息集合信息
*/
public List<SysUser> selectUserList(SysUser user);
/**
* 构建前端所需要数据
*
* @param users 用户列表
* @return 用户列表
*/
public Map<String,String> buildUserSelect(List<SysUser> users);
/**
* 通过用户名查询用户
*
*
* @param userName 用户名
* @return 用户对象信息
*/
@ -28,7 +40,7 @@ public interface ISysUserService
/**
* 通过用户ID查询用户
*
*
* @param userId 用户ID
* @return 用户对象信息
*/
@ -36,7 +48,7 @@ public interface ISysUserService
/**
* 根据用户ID查询用户所属角色组
*
*
* @param userName 用户名
* @return 结果
*/
@ -44,7 +56,7 @@ public interface ISysUserService
/**
* 根据用户ID查询用户所属岗位组
*
*
* @param userName 用户名
* @return 结果
*/
@ -52,7 +64,7 @@ public interface ISysUserService
/**
* 校验用户名称是否唯一
*
*
* @param userName 用户名称
* @return 结果
*/
@ -76,14 +88,14 @@ public interface ISysUserService
/**
* 校验用户是否允许操作
*
*
* @param user 用户信息
*/
public void checkUserAllowed(SysUser user);
/**
* 新增用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@ -91,7 +103,7 @@ public interface ISysUserService
/**
* 修改用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@ -99,7 +111,7 @@ public interface ISysUserService
/**
* 修改用户状态
*
*
* @param user 用户信息
* @return 结果
*/
@ -107,7 +119,7 @@ public interface ISysUserService
/**
* 修改用户基本信息
*
*
* @param user 用户信息
* @return 结果
*/
@ -115,7 +127,7 @@ public interface ISysUserService
/**
* 修改用户头像
*
*
* @param userName 用户名
* @param avatar 头像地址
* @return 结果
@ -124,7 +136,7 @@ public interface ISysUserService
/**
* 重置用户密码
*
*
* @param user 用户信息
* @return 结果
*/
@ -132,7 +144,7 @@ public interface ISysUserService
/**
* 重置用户密码
*
*
* @param userName 用户名
* @param password 密码
* @return 结果
@ -141,7 +153,7 @@ public interface ISysUserService
/**
* 通过用户ID删除用户
*
*
* @param userId 用户ID
* @return 结果
*/
@ -149,7 +161,7 @@ public interface ISysUserService
/**
* 批量删除用户信息
*
*
* @param userIds 需要删除的用户ID
* @return 结果
*/
@ -157,11 +169,12 @@ public interface ISysUserService
/**
* 导入用户数据
*
*
* @param userList 用户数据列表
* @param isUpdateSupport 是否更新支持如果已存在则进行更新数据
* @param operName 操作用户
* @return 结果
*/
public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName);
}

View File

@ -1,7 +1,8 @@
package com.ruoyi.project.system.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import com.ruoyi.project.system.domain.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.StringUtils;
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.SysRoleMapper;
import com.ruoyi.project.system.mapper.SysUserMapper;
@ -27,7 +23,7 @@ import com.ruoyi.project.system.service.ISysUserService;
/**
* 用户 业务层处理
*
*
* @author ruoyi
*/
@Service
@ -55,7 +51,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 根据条件分页查询用户列表
*
*
* @param user 用户信息
* @return 用户信息集合信息
*/
@ -66,9 +62,40 @@ public class SysUserServiceImpl implements ISysUserService
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;
}
/**
* 通过用户名查询用户
*
*
* @param userName 用户名
* @return 用户对象信息
*/
@ -80,7 +107,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 通过用户ID查询用户
*
*
* @param userId 用户ID
* @return 用户对象信息
*/
@ -92,7 +119,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 查询用户所属角色组
*
*
* @param userName 用户名
* @return 结果
*/
@ -114,7 +141,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 查询用户所属岗位组
*
*
* @param userName 用户名
* @return 结果
*/
@ -136,7 +163,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 校验用户名称是否唯一
*
*
* @param userName 用户名称
* @return 结果
*/
@ -189,7 +216,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 校验用户是否允许操作
*
*
* @param user 用户信息
*/
public void checkUserAllowed(SysUser user)
@ -202,7 +229,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增保存用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@ -221,7 +248,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 修改保存用户信息
*
*
* @param user 用户信息
* @return 结果
*/
@ -243,7 +270,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 修改用户状态
*
*
* @param user 用户信息
* @return 结果
*/
@ -255,7 +282,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 修改用户基本信息
*
*
* @param user 用户信息
* @return 结果
*/
@ -267,8 +294,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 修改用户头像
*
* @param userId 用户ID
*
* @param avatar 头像地址
* @return 结果
*/
@ -279,7 +305,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 重置用户密码
*
*
* @param user 用户信息
* @return 结果
*/
@ -291,7 +317,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 重置用户密码
*
*
* @param userName 用户名
* @param password 密码
* @return 结果
@ -304,7 +330,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增用户角色信息
*
*
* @param user 用户对象
*/
public void insertUserRole(SysUser user)
@ -330,7 +356,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增用户岗位信息
*
*
* @param user 用户对象
*/
public void insertUserPost(SysUser user)
@ -356,7 +382,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 通过用户ID删除用户
*
*
* @param userId 用户ID
* @return 结果
*/
@ -372,7 +398,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 批量删除用户信息
*
*
* @param userIds 需要删除的用户ID
* @return 结果
*/
@ -387,7 +413,7 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 导入用户数据
*
*
* @param userList 用户数据列表
* @param isUpdateSupport 是否更新支持如果已存在则进行更新数据
* @param operName 操作用户

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">
<id property="userId" column="user_id" />
<result property="deptId" column="dept_id" />
<result property="groupId" column="group_id" />
<result property="userName" column="user_name" />
<result property="nickName" column="nick_name" />
<result property="email" column="email" />
@ -26,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<association property="dept" column="dept_id" javaType="SysDept" resultMap="deptResult" />
<collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
</resultMap>
<resultMap id="deptResult" type="SysDept">
<id property="deptId" column="dept_id" />
<result property="parentId" column="parent_id" />
@ -35,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="leader" column="leader" />
<result property="status" column="dept_status" />
</resultMap>
<resultMap id="RoleResult" type="SysRole">
<id property="roleId" column="role_id" />
<result property="roleName" column="role_name" />
@ -44,9 +45,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="dataScope" column="data_scope" />
<result property="status" column="role_status" />
</resultMap>
<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,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
@ -54,9 +55,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id
</sql>
<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
where u.del_flag = '0'
<if test="userName != null and userName != ''">
@ -80,33 +81,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<!-- 数据范围过滤 -->
${dataScope}
</select>
<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
<include refid="selectUserVo"/>
where u.user_name = #{userName}
</select>
<select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
<include refid="selectUserVo"/>
where u.user_id = #{userId}
</select>
<select id="checkUserNameUnique" parameterType="String" resultType="int">
select count(1) from sys_user where user_name = #{userName}
</select>
<select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
select user_id, phonenumber from sys_user where phonenumber = #{phonenumber}
</select>
<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
select user_id, email from sys_user where email = #{email}
</select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user(
<if test="userId != null and userId != 0">user_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="nickName != null and nickName != ''">nick_name,</if>
<if test="email != null and email != ''">email,</if>
@ -121,6 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
)values(
<if test="userId != null and userId != ''">#{userId},</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="nickName != null and nickName != ''">#{nickName},</if>
<if test="email != null and email != ''">#{email},</if>
@ -134,11 +137,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sysdate()
)
</insert>
<update id="updateUser" parameterType="SysUser">
update sys_user
<set>
<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="nickName != null and nickName != ''">nick_name = #{nickName},</if>
<if test="email != null and email != ''">email = #{email},</if>
@ -155,28 +159,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</set>
where user_id = #{userId}
</update>
<update id="updateUserStatus" parameterType="SysUser">
update sys_user set status = #{status} where user_id = #{userId}
</update>
<update id="updateUserAvatar" parameterType="SysUser">
update sys_user set avatar = #{avatar} where user_name = #{userName}
</update>
<update id="resetUserPwd" parameterType="SysUser">
update sys_user set password = #{password} where user_name = #{userName}
</update>
<delete id="deleteUserById" parameterType="Long">
delete from sys_user where user_id = #{userId}
</delete>
<delete id="deleteUserByIds" parameterType="Long">
update sys_user set del_flag = '2' where user_id in
<foreach collection="array" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</foreach>
</delete>
</mapper>
</mapper>