提交 7356ad18 authored 作者: gongwenjie's avatar gongwenjie

Merge branch 'master' of git.yfzx.zjtys.com.cn:zjm/notes2.0

# Conflicts: # notes-attendance/src/main/java/com/zjty/tynotes/attendance/controller/AttendanceController.java
上级 ecce8496
package com.zjty.tynotes.attendance.controller;
import com.zjty.tynotes.attendance.entity.ApprovalInformation;
import com.zjty.tynotes.attendance.entity.WorkoverAppro;
import com.zjty.tynotes.attendance.entity.vo.request.PageRequest;
import com.zjty.tynotes.attendance.service.ApprovalInformationService;
import com.zjty.tynotes.misc.config.AutoDocument;
import com.zjty.tynotes.pas.entity.User;
import com.zjty.tynotes.pas.entity.vo.PageResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
......@@ -35,7 +38,7 @@ public class ApprovalController {
@ApiOperation(value = "提交审批", response = ApprovalInformation.class)
@PostMapping("/submit")
public ResponseEntity addUser(@RequestBody ApprovalInformation approvalInformation) {
public ResponseEntity submit(@RequestBody ApprovalInformation approvalInformation) {
ApprovalInformation approvalInformation1 = approvalInformationService.addApproval(approvalInformation);
if(approvalInformation1!=null){
return ok(approvalInformation1);
......@@ -79,11 +82,11 @@ public class ApprovalController {
@ApiOperation(value = "查找所有我提交的审批")
@GetMapping("findAllSubmitApproval/{userId}")
public ResponseEntity findAllSubmitApproval(@PathVariable String userId) {
@PostMapping("findAllSubmitApproval/{userId}")
public ResponseEntity findAllSubmitApproval(@RequestBody PageRequest pageRequest) {
try {
List<ApprovalInformation> approvalInformations = approvalInformationService.findAllApproval(userId);
return ok(approvalInformations);
PageResponse<ApprovalInformation> pageResponse = approvalInformationService.findAllApproval(pageRequest);
return ok(pageResponse);
} catch (Exception e) {
logger.error("查找自身提交的审批失败");
}
......@@ -92,9 +95,9 @@ public class ApprovalController {
@ApiOperation(value = "查找所有我审核的审批")
@GetMapping("/findAllAuditApproval/{userId}")
public ResponseEntity findAllAuditApproval(@PathVariable String userId) {
public ResponseEntity findAllAuditApproval(@RequestBody PageRequest pageRequest) {
try {
List<ApprovalInformation> approvalInformations = approvalInformationService.findAllAuditApproval(userId);
PageResponse<ApprovalInformation> approvalInformations = approvalInformationService.findAllAuditApproval(pageRequest);
return ok(approvalInformations);
} catch (Exception e) {
logger.error("查找所有我审核的审批");
......@@ -102,5 +105,50 @@ public class ApprovalController {
return ok("查找所有我审核的审批");
}
@ApiOperation(value = "提交加班申请", response = WorkoverAppro.class)
@PostMapping("/submitWorkover")
public ResponseEntity submitWorkover(@RequestBody WorkoverAppro workoverAppro) {
WorkoverAppro workoverAppro1 = approvalInformationService.addWorkoverApproval(workoverAppro);
if(workoverAppro1!=null){
return ok(workoverAppro1);
}
return ok("提交审批失败,是否可有加班时长");
}
@ApiOperation(value = "审批加班申请", response = ApprovalInformation.class)
@PostMapping("/approWorkover/{userId}/{status}")
public ResponseEntity approWorkover(@RequestBody WorkoverAppro workoverAppro,
@PathVariable String userId,@PathVariable String status) {
WorkoverAppro workoverAppro1 = approvalInformationService.approWorkover(workoverAppro,userId,status);
if(workoverAppro1!=null){
return ok(workoverAppro1);
}
return ok("提交审批失败,是否可有加班时长");
}
@ApiOperation(value = "查找所有我提交的加班审批")
@PostMapping("findAllSubmitWorkOverApproval")
public ResponseEntity findAllSubmitWorkOverApproval(@RequestBody PageRequest pageRequest) {
try {
PageResponse<WorkoverAppro> pageResponse = approvalInformationService.findAllSubmitWorkOverApproval(pageRequest);
return ok(pageResponse);
} catch (Exception e) {
logger.error("查找所有我提交的加班审批失败");
}
return ok("查找所有我提交的加班审批失败");
}
@ApiOperation(value = "查找所有我审核的加班审批")
@GetMapping("/findAllAuditWorkOverApproval/{userId}")
public ResponseEntity findAllAuditWorkOverApproval(@RequestBody PageRequest pageRequest) {
try {
PageResponse<WorkoverAppro> pageResponse = approvalInformationService.findAllAuditWorkOverApproval(pageRequest);
return ok(pageResponse);
} catch (Exception e) {
logger.error("查找所有我审核的审批");
}
return ok("查找所有我审核的审批");
}
}
package com.zjty.tynotes.attendance.dao;
import com.zjty.tynotes.attendance.entity.UserLateNum;
import org.springframework.data.mongodb.repository.MongoRepository;
/**
* @Author gwj
* @create 2020/4/13 8:56
*/
public interface UserLateNumDao extends MongoRepository<UserLateNum,String> {
UserLateNum findByUserIdAndDate(String userId,String date);
}
package com.zjty.tynotes.attendance.dao;
import com.zjty.tynotes.attendance.entity.UserSickNum;
import org.springframework.data.mongodb.repository.MongoRepository;
/**
* @Author gwj
* @create 2020/4/13 8:57
*/
public interface UserSickNumDao extends MongoRepository<UserSickNum,String> {
UserSickNum findByUserIdAndDate(String userId,String date);
}
package com.zjty.tynotes.attendance.dao;
import com.zjty.tynotes.attendance.entity.WorkoverAppro;
import org.springframework.data.mongodb.repository.MongoRepository;
import java.util.Date;
import java.util.List;
/**
* @Author gwj
* @create 2020/4/13 13:02
*/
public interface WorkoverApproDao extends MongoRepository<WorkoverAppro,String> {
WorkoverAppro findByApplyIdContainsAndStatusAndDate(String userId, String status, Date date);
List<WorkoverAppro> findAllByUserId(String userId);
List<WorkoverAppro> findAllByAuditIdAndStatusIn(List<String> userIds);
List<WorkoverAppro> findAllByStatusIn(List<String> userIds);
}
......@@ -41,7 +41,7 @@ public class ApprovalInformation {
@ApiModelProperty(value = "审核审批用户id",example = "1")
private String approvalUserIdTwo;
@ApiModelProperty(value = "审批类型,事假/调休/病假/加班/公出/出差",example = "事假/调休/病假/加班/公出/出差")
@ApiModelProperty(value = "审批类型,事假/调休/病假/公出/出差",example = "事假/调休/病假/公出/出差")
private String approvalType;
@ApiModelProperty(value = "审批状态,0代表待审批,1代表已通过,2代表已拒绝",example = "0/1/2")
......@@ -75,4 +75,8 @@ public class ApprovalInformation {
@ApiModelProperty(value = "当前用户所选择的审批部门id",example = "12dqweqe122")
private String departmentId;
@ApiModelProperty(value = "申请时间",example = "2020-04-03 09:00:00")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date applyTime;
}
package com.zjty.tynotes.attendance.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.validation.constraints.NotEmpty;
/**
* @Author gwj
* @create 2020/4/13 8:47
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "用户迟到次数", description = "用户迟到次数")
@Document(collection = "user_late")
public class UserLateNum {
@Id
@ApiModelProperty(value = "id",example = "1")
private String id;
@NotEmpty(message = "用户id")
@ApiModelProperty(value = "用户id",example = "eqsd12314rrqsad1233")
private String userId;
@ApiModelProperty(value = "时间,某年某月,格式2020-04",example = "2020-04")
private String date;
@ApiModelProperty(value = "迟到次数",example = "5")
private Integer lateNum;
}
package com.zjty.tynotes.attendance.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.validation.constraints.NotEmpty;
/**
* @Author gwj
* @create 2020/4/13 8:50
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "用户病假次数", description = "用户病假次数")
@Document(collection = "user_sick")
public class UserSickNum {
@Id
@ApiModelProperty(value = "id",example = "1")
private String id;
@NotEmpty(message = "用户id")
@ApiModelProperty(value = "用户id",example = "eqsd12314rrqsad1233")
private String userId;
@ApiModelProperty(value = "时间,某年某月,格式2020",example = "2020")
private String date;
@ApiModelProperty(value = "生病次数",example = "5")
private Integer sickNum;
}
package com.zjty.tynotes.attendance.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zjty.tynotes.pas.entity.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
import java.util.List;
/**
* @Author gwj
* @create 2020/4/13 10:37
* @des 加班申请类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "加班申请信息", description = "加班申请信息")
@Document(collection = "workover_appro")
public class WorkoverAppro {
@Id
@ApiModelProperty(value = "id",example = "1")
private String id;
@ApiModelProperty(value = "加班申请人编号",example = "1")
private String userId;
@ApiModelProperty(value = "加班的任务名",example = "1")
private String name;
@ApiModelProperty(value = "加班组员名单",example = "1")
private List<User> groupMenbers;
@ApiModelProperty(value = "部门id",example = "1")
private String departmentId;
@ApiModelProperty(value = "加班起始时间",example = "1")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date date;
@ApiModelProperty(value = "描述,加班事由",example = "1")
private String description;
@ApiModelProperty(value = "审批状态,0代表待审批,1代表已通过,2代表已拒绝",example = "1")
private String status;
@ApiModelProperty(value = "审批人id",example = "1")
private String auditId;
@ApiModelProperty(value = "申请时间",example = "2020-04-03 09:00:00")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date applyTime;
}
......@@ -34,13 +34,25 @@ public class UserAttenVo {
@ApiModelProperty(value = "迟到天数",example = "1")
private Integer lateDay;
@ApiModelProperty(value = "迟到1",example = "1")
private Integer lateOne;
@ApiModelProperty(value = "迟到2",example = "1")
private Integer lateTwo;
@ApiModelProperty(value = "迟到3",example = "1")
private Integer lateThree;
@ApiModelProperty(value = "迟到4",example = "1")
private Integer lateFour;
@ApiModelProperty(value = "早退天数",example = "1")
private Integer leaveEarlyDay;
@ApiModelProperty(value = "出差天数",example = "1")
private Float outWorkDay;
@ApiModelProperty(value = "假天数",example = "1")
@ApiModelProperty(value = "假天数",example = "1")
private Float sickLeaveDay;
@ApiModelProperty(value = "加班时长",example = "1")
......@@ -54,6 +66,10 @@ public class UserAttenVo {
this.realAttendanceDay = 0f;
this.outSideBusinessDay = 0f;
this.lateDay = 0;
this.lateOne = 0;
this.lateTwo = 0;
this.lateThree = 0;
this.lateFour = 0;
this.leaveEarlyDay = 0;
this.outWorkDay = 0f;
this.sickLeaveDay = 0f;
......
......@@ -15,11 +15,10 @@ import lombok.NoArgsConstructor;
@ApiModel(value = "个人考勤统计请求类", description = "个人考勤统计请求类")
public class AttenRequest {
private String id;
private String id;//用户id
private String date;
private String searchType;//0代表按月份查找,1代表按年份查找
private String startDate;//开始时间 格式:2020-04
private String endDate;//结束时间 格式:2020-05
}
package com.zjty.tynotes.attendance.entity.vo.request;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author gwj
* @create 2020/4/13 14:32
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageRequest {
/**
* 每页显示个数
*/
private int pageSize;
/**
* 当前页数
*/
private int currentPage;
/**
* 总页数
*/
private int totalPage;
/**
* 总记录数
*/
private int totalCount;
/**
* 访问人员id
*/
private String id;
}
package com.zjty.tynotes.attendance.service;
import com.zjty.tynotes.attendance.entity.ApprovalInformation;
import com.zjty.tynotes.attendance.entity.WorkoverAppro;
import com.zjty.tynotes.attendance.entity.vo.request.PageRequest;
import com.zjty.tynotes.pas.entity.vo.PageResponse;
import java.util.List;
......@@ -33,10 +36,46 @@ public interface ApprovalInformationService {
/**
* 查询所有用户自身提交的审批
* @param pageRequest
* @return
*/
PageResponse<ApprovalInformation> findAllApproval(PageRequest pageRequest);
/**
* 查找所有我审核的审批
* @param pageRequest
* @return
*/
PageResponse<ApprovalInformation> findAllAuditApproval(PageRequest pageRequest);
/**
* 提交加班申请单
* @param workoverAppro
* @return
*/
WorkoverAppro addWorkoverApproval(WorkoverAppro workoverAppro);
/**
* 审批加班申请单流程
* @param workoverAppro
* @param userId
* @param status
* @return
*/
WorkoverAppro approWorkover(WorkoverAppro workoverAppro, String userId, String status);
/**
* 查找所有自己提交的加班审批
* @param pageRequest
* @return
*/
List<ApprovalInformation> findAllApproval(String userId);
PageResponse<WorkoverAppro> findAllSubmitWorkOverApproval(PageRequest pageRequest);
List<ApprovalInformation> findAllAuditApproval(String userId);
/**
* 查找所有审核的加班审批
* @param pageRequest
* @return
*/
PageResponse<WorkoverAppro> findAllAuditWorkOverApproval(PageRequest pageRequest);
}
......@@ -58,7 +58,9 @@ public class CardTask {
@Autowired
private UserOverWorkDao userOverWorkDao;
@Autowired
private ApprovalInformationServiceImpl approvalInformationService;
private UserLateNumDao userLateNumDao;
@Autowired
private WorkoverApproDao workoverApproDao;
/**
* 定时任务,定时获取打卡信息.计算前天的个人考勤信息情况
......@@ -151,6 +153,7 @@ public class CardTask {
String workTime = config.getWorkTime();//上班时间
String afterWorkTime = config.getAfterWorkTime();//下班时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
workTime = "yyyy-MM-dd "+workTime;
afterWorkTime = "yyyy-MM-dd "+afterWorkTime;
SimpleDateFormat sdf1 = new SimpleDateFormat(workTime);
......@@ -200,7 +203,8 @@ public class CardTask {
});
}
ApprovalInformation approvalInformation1 = approvalInformationDao.findByUserIdAndStatusAndApprovalType(user.getId(), "1", "加班");
WorkoverAppro workoverAppro = workoverApproDao.findByApplyIdContainsAndStatusAndDate(user.getId(), "1", parse);
// ApprovalInformation approvalInformation1 = approvalInformationDao.findByUserIdAndStatusAndApprovalType(user.getId(), "1", "加班");
attendanceDetails.setUserId(user.getId());
if(cardResults1!=null){
List<CardResult> cardResults = new ArrayList<>();
......@@ -212,7 +216,7 @@ public class CardTask {
});
if(cardResults.size()>=2){
attendanceDetails.setLessCard(0);
if(approvalInformation1!=null){
if(workoverAppro!=null){
cardResults.forEach(cardResult -> {
if(cardResult.getCheckType()!=null && cardResult.getCheckType().equals("OffDuty")){
Long l = cardResult.getUserCheckTime().getTime() - date1.getTime();
......@@ -242,6 +246,19 @@ public class CardTask {
if(real>l&&real<=l1){
attendanceDetails.setIsLateDay(0);
attendanceDetails.setLateStatus(0);
String format2 = simpleDateFormat.format(startTime);
UserLateNum userLateNum = userLateNumDao.findByUserIdAndDate(user.getId(), format2);
if(userLateNum!=null){
userLateNum.setLateNum(userLateNum.getLateNum()+1);
}else{
UserLateNum userLateNum1 = new UserLateNum();
userLateNum1.setId(null);
userLateNum1.setDate(format2);
userLateNum1.setUserId(user.getId());
userLateNum1.setLateNum(1);
userLateNum = userLateNum1;
}
userLateNumDao.save(userLateNum);
}else if(real>l1&&real<=l2){
attendanceDetails.setIsLateDay(0);
attendanceDetails.setLateStatus(1);
......@@ -318,9 +335,10 @@ public class CardTask {
cardResults.add(cardResult);
}
});
ApprovalInformation approvalInformation1 = approvalInformationDao.findByUserIdAndStatusAndApprovalType(user.getId(), "1", "加班");
WorkoverAppro workoverAppro = workoverApproDao.findByApplyIdContainsAndStatusAndDate(user.getId(), "1", parse);
// ApprovalInformation approvalInformation1 = approvalInformationDao.findByUserIdAndStatusAndApprovalType(user.getId(), "1", "加班");
if(cardResults.size()>=2){
if(approvalInformation1!=null){
if(workoverAppro!=null){
cardResults.forEach(cardResult -> {
if(cardResult.getCheckType()!=null && cardResult.getCheckType().equals("OffDuty")){
Long l = cardResult.getUserCheckTime().getTime() - date1.getTime();
......
......@@ -582,7 +582,7 @@ public class UserServiceImpl implements IUserService {
if(authorities!=null){
authorities.forEach(authority -> authNames.add(authority.getName()));
}
if(authNames.contains("审批权限")&&role.getDepartmentId().equals(departmentId)){
if(authNames.contains("审批管理")&&role.getDepartmentId().equals(departmentId)){
return true;
}
}
......
......@@ -95,6 +95,10 @@ public class UserVo {
@ApiModelProperty(value = "平均评分",example = "10")
private Double averageScore;
@ApiModelProperty(value = "平均工作量",example = "10")
private Double averageWorkNum;
// @NotNull(message = "角色Id不可为空")
// @ApiModelProperty(value = "角色id",example = "1")
......
......@@ -158,6 +158,7 @@ public class UserManageServiceImpl implements UserManageService {
userVo.setAverageScore(userWorkData.getAverageScore());
userVo.setCompletedCount(userWorkData.getCompletedNum());
userVo.setWorkingCount(userWorkData.getUnCompletedNum());
userVo.setAverageWorkNum(userWorkData.getAverageWorkNum());
}
}else{
UserWorkData userWorkData = internalService.personnelWorkMsg(user.getId(), pageRequest.getStartTime(), pageRequest.getEndTime());
......@@ -165,6 +166,7 @@ public class UserManageServiceImpl implements UserManageService {
userVo.setAverageScore(userWorkData.getAverageScore());
userVo.setCompletedCount(userWorkData.getCompletedNum());
userVo.setWorkingCount(userWorkData.getUnCompletedNum());
userVo.setAverageWorkNum(userWorkData.getAverageWorkNum());
}
}
userVos.add(userVo);
......@@ -189,6 +191,7 @@ public class UserManageServiceImpl implements UserManageService {
userVo.setAverageScore(userWorkData.getAverageScore());
userVo.setCompletedCount(userWorkData.getCompletedNum());
userVo.setWorkingCount(userWorkData.getUnCompletedNum());
userVo.setAverageWorkNum(userWorkData.getAverageWorkNum());
}
}else{
UserWorkData userWorkData = internalService.personnelWorkMsg(user.getId(), pageRequest.getStartTime(), pageRequest.getEndTime());
......@@ -196,6 +199,7 @@ public class UserManageServiceImpl implements UserManageService {
userVo.setAverageScore(userWorkData.getAverageScore());
userVo.setCompletedCount(userWorkData.getCompletedNum());
userVo.setWorkingCount(userWorkData.getUnCompletedNum());
userVo.setAverageWorkNum(userWorkData.getAverageWorkNum());
}
}
userVos.add(userVo);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论