diff --git a/ruoyi/sql/ry_20191202.sql b/ruoyi/sql/ry_20191202.sql index 2a48cb977..cd21f382c 100644 --- a/ruoyi/sql/ry_20191202.sql +++ b/ruoyi/sql/ry_20191202.sql @@ -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 '手机号码', diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/api/KQRecordController.java b/ruoyi/src/main/java/com/ruoyi/project/mr/api/KQRecordController.java new file mode 100644 index 000000000..e7b6a00e1 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/api/KQRecordController.java @@ -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; + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/controller/BaseAttendanceGroupController.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/controller/BaseAttendanceGroupController.java new file mode 100644 index 000000000..d694b4435 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/controller/BaseAttendanceGroupController.java @@ -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 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 list = baseAttendanceGroupService.selectBaseAttendanceGroupList(baseAttendanceGroup); + ExcelUtil util = new ExcelUtil(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)); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/controller/BaseAttendanceRecordController.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/controller/BaseAttendanceRecordController.java new file mode 100644 index 000000000..3e7c215b3 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/controller/BaseAttendanceRecordController.java @@ -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 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 list = baseAttendanceRecordService.selectBaseAttendanceRecordList(baseAttendanceRecord); + ExcelUtil util = new ExcelUtil(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)); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/domain/BaseAttendanceGroup.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/domain/BaseAttendanceGroup.java new file mode 100644 index 000000000..83e21dea0 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/domain/BaseAttendanceGroup.java @@ -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(); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/domain/BaseAttendanceRecord.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/domain/BaseAttendanceRecord.java new file mode 100644 index 000000000..0fd392ab4 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/domain/BaseAttendanceRecord.java @@ -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(); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/mapper/BaseAttendanceGroupMapper.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/mapper/BaseAttendanceGroupMapper.java new file mode 100644 index 000000000..a1f471f51 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/mapper/BaseAttendanceGroupMapper.java @@ -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 selectBaseAttendanceGroupList(BaseAttendanceGroup baseAttendanceGroup); + + /** + * 查询所有考勤组 + * + * @return 考勤组列表 + */ + public List 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); +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/mapper/BaseAttendanceRecordMapper.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/mapper/BaseAttendanceRecordMapper.java new file mode 100644 index 000000000..7b19e74ec --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/mapper/BaseAttendanceRecordMapper.java @@ -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 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); +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/IBaseAttendanceGroupService.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/IBaseAttendanceGroupService.java new file mode 100644 index 000000000..4fbe92914 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/IBaseAttendanceGroupService.java @@ -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 selectBaseAttendanceGroupList(BaseAttendanceGroup baseAttendanceGroup); + + /** + * 查询所有考勤组 + * + * @return 考勤组列表 + */ + public List 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); +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/IBaseAttendanceRecordService.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/IBaseAttendanceRecordService.java new file mode 100644 index 000000000..0b8afeb31 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/IBaseAttendanceRecordService.java @@ -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 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); +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/impl/BaseAttendanceGroupServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/impl/BaseAttendanceGroupServiceImpl.java new file mode 100644 index 000000000..177c892b3 --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/impl/BaseAttendanceGroupServiceImpl.java @@ -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 selectBaseAttendanceGroupList(BaseAttendanceGroup baseAttendanceGroup) + { + return baseAttendanceGroupMapper.selectBaseAttendanceGroupList(baseAttendanceGroup); + } + + /** + * 查询所有考勤组 + * + * @return 考勤组列表 + */ + @Override + public List 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); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/impl/BaseAttendanceRecordServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/impl/BaseAttendanceRecordServiceImpl.java new file mode 100644 index 000000000..4ab2585ec --- /dev/null +++ b/ruoyi/src/main/java/com/ruoyi/project/mr/base/service/impl/BaseAttendanceRecordServiceImpl.java @@ -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 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); + } +} diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java index fff65b0ad..b96baf8ea 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/controller/SysUserController.java @@ -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 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)); diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/domain/SysUser.java b/ruoyi/src/main/java/com/ruoyi/project/system/domain/SysUser.java index 1a1963d68..3452479e8 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/domain/SysUser.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/domain/SysUser.java @@ -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()) diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java b/ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java index bb073350f..a1e5cedc6 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/mapper/SysUserMapper.java @@ -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 结果 */ diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java index 3b79a1d9a..22bf3e92e 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/ISysUserService.java @@ -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 selectUserList(SysUser user); + /** + * 构建前端所需要数据 + * + * @param users 用户列表 + * @return 用户列表 + */ + public Map buildUserSelect(List 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 userList, Boolean isUpdateSupport, String operName); + } diff --git a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java index 77affcb80..ca6d1ce91 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi/src/main/java/com/ruoyi/project/system/service/impl/SysUserServiceImpl.java @@ -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 buildUser(List users) + { + Map map = new HashMap(); + + for (Iterator iterator = users.iterator(); iterator.hasNext();){ + SysUser user = (SysUser) iterator.next(); + map.put(user.getUserName(),user.getNickName()); + } + + return map; + } + + /** + * 查询用户列表 + * + * @param users 用户信息 + * @return 用户信息集合信息 + */ + @Override + public Map buildUserSelect(List users) + { + Map 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 操作用户 diff --git a/ruoyi/src/main/resources/mybatis/base/BaseAttendanceGroupMapper.xml b/ruoyi/src/main/resources/mybatis/base/BaseAttendanceGroupMapper.xml new file mode 100644 index 000000000..e26d9755e --- /dev/null +++ b/ruoyi/src/main/resources/mybatis/base/BaseAttendanceGroupMapper.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + insert into base_attendance_group + + ID, + attendance_name, + attendance_people, + calendar_id, + address, + add_error, + photo_set, + class_type, + classes, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{id}, + #{attendanceName}, + #{attendancePeople}, + #{calendarId}, + #{address}, + #{addError}, + #{photoSet}, + #{classType}, + #{classes}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update base_attendance_group + + attendance_name = #{attendanceName}, + attendance_people = #{attendancePeople}, + calendar_id = #{calendarId}, + address = #{address}, + add_error = #{addError}, + photo_set = #{photoSet}, + class_type = #{classType}, + classes = #{classes}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where ID = #{id} + + + + delete from base_attendance_group where ID = #{id} + + + + delete from base_attendance_group where ID in + + #{id} + + + + diff --git a/ruoyi/src/main/resources/mybatis/base/BaseAttendanceRecordMapper.xml b/ruoyi/src/main/resources/mybatis/base/BaseAttendanceRecordMapper.xml new file mode 100644 index 000000000..c4246a21b --- /dev/null +++ b/ruoyi/src/main/resources/mybatis/base/BaseAttendanceRecordMapper.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + insert into base_attendance_record + + 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, + + + #{id}, + #{deptName}, + #{userName}, + #{phonenumber}, + #{classes}, + #{workDate}, + #{punchDate}, + #{timeQuantum}, + #{punchType}, + #{punchTime}, + #{status}, + #{picUrl}, + #{address}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update base_attendance_record + + dept_name = #{deptName}, + user_name = #{userName}, + phonenumber = #{phonenumber}, + classes = #{classes}, + work_date = #{workDate}, + punch_date = #{punchDate}, + time_quantum = #{timeQuantum}, + punch_type = #{punchType}, + punch_time = #{punchTime}, + status = #{status}, + pic_url = #{picUrl}, + address = #{address}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from base_attendance_record where id = #{id} + + + + delete from base_attendance_record where id in + + #{id} + + + + diff --git a/ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml b/ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml index 2e6969cb7..3e7846d63 100644 --- a/ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml +++ b/ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml @@ -7,6 +7,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -26,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -35,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -44,9 +45,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - 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 - + - + - + - + - + - + - + insert into sys_user( user_id, dept_id, + group_id, user_name, nick_name, email, @@ -121,6 +123,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" )values( #{userId}, #{deptId}, + #{groupId}, #{userName}, #{nickName}, #{email}, @@ -134,11 +137,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sysdate() ) - + update sys_user dept_id = #{deptId}, + group_id = #{groupId}, user_name = #{userName}, nick_name = #{nickName}, email = #{email}, @@ -155,28 +159,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} - + update sys_user set status = #{status} where user_id = #{userId} - + update sys_user set avatar = #{avatar} where user_name = #{userName} - + update sys_user set password = #{password} where user_name = #{userName} - + delete from sys_user where user_id = #{userId} - + update sys_user set del_flag = '2' where user_id in #{userId} - + - - \ No newline at end of file + +