205 lines
8.9 KiB
Java
205 lines
8.9 KiB
Java
package com.ruoyi.business.controller;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.ruoyi.common.core.controller.BaseController;
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
import com.ruoyi.common.core.page.TableDataInfo;
|
|
import com.ruoyi.common.core.redis.RedisCache;
|
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
|
import com.ruoyi.database.domain.PoliceLeaveApproval;
|
|
import com.ruoyi.database.domain.dto.ApprovaltDto;
|
|
import com.ruoyi.database.domain.gwglLog;
|
|
import com.ruoyi.database.service.PoliceLeaveApprovalService;
|
|
import com.ruoyi.database.service.gwglLogService;
|
|
import com.ruoyi.system.service.ISysDeptService;
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* @Description PoliceLeaveApprovalController
|
|
* @Author lijingtong
|
|
* @Date 2025-05-29
|
|
*/
|
|
@RestController
|
|
@RequiredArgsConstructor
|
|
@Api(tags = "民警请假审批")
|
|
@RequestMapping("/PoliceLeaveApproval")
|
|
public class PoliceLeaveApprovalController extends BaseController {
|
|
|
|
private final PoliceLeaveApprovalService policeLeaveApprovalService;
|
|
private final ISysDeptService deptService;
|
|
private final ISysUserService userService;
|
|
private final gwglLogService gwglLogService;
|
|
|
|
@RequestMapping("/list")
|
|
@ApiOperation("查询")
|
|
public TableDataInfo list(PoliceLeaveApproval policeLeaveApproval) {
|
|
SysUser user = getLoginUser().getUser();
|
|
List<SysDept> sysDepts = deptService.selectAllDeptList();
|
|
// 局领导
|
|
List<SysUser> users = userService.getList("131000");
|
|
// 部门领导
|
|
List<String> leader = sysDepts.stream().map(SysDept::getLeader).collect(Collectors.toList());
|
|
// 局党委和分管局成员
|
|
List<String> leaderLeader = sysDepts.stream().map(SysDept::getLeaderLeader).distinct().collect(Collectors.toList());
|
|
|
|
startPage();
|
|
|
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
String fTime = policeLeaveApproval.getFTime();
|
|
String eTime = policeLeaveApproval.getETime();
|
|
LocalDateTime time = LocalDateTime.parse(fTime, dtf);
|
|
LocalDateTime time1 = LocalDateTime.parse(eTime, dtf);
|
|
QueryWrapper<PoliceLeaveApproval> queryWrapper = new QueryWrapper<>(policeLeaveApproval);
|
|
queryWrapper.orderByDesc("create_time");
|
|
if (fTime != null && fTime != null) {
|
|
queryWrapper.between("create_time", time, time1);
|
|
}
|
|
if (leader.contains(user.getNickName())) {
|
|
// 部门领导和政治处侍昌鑫看普通民警
|
|
queryWrapper.eq("user_type", 0);
|
|
queryWrapper.eq("state", 0);
|
|
} else if ("侍昌鑫".equals(user.getNickName())) {
|
|
queryWrapper.in("user_type", 0,1);
|
|
queryWrapper.eq("state", 0);
|
|
} else if ("admin".equals(user.getUserName())) {
|
|
// 管理员看所有
|
|
}else if ("刘成志".equals(user.getNickName()) || "陈列".equals(user.getNickName())){
|
|
// 主要局领导
|
|
queryWrapper.eq("state", 3);
|
|
} else if (leaderLeader.contains(user.getNickName())) {
|
|
// 分管局
|
|
queryWrapper.eq("user_type", 1);
|
|
}else if (users.contains(user.getNickName()) ) {
|
|
// 局领导
|
|
queryWrapper.eq("user_type", 1);
|
|
|
|
}else {
|
|
// 自己看自己
|
|
queryWrapper.eq("user_id", user.getUserId());
|
|
}
|
|
List<PoliceLeaveApproval> list = policeLeaveApprovalService.list(new QueryWrapper<>(policeLeaveApproval));
|
|
long size = list.size();
|
|
return getDataTableEnhance(list, size);
|
|
}
|
|
|
|
@ApiOperation("新增或修改民警请(休)假审批表 传id为修改 不传id为新增")
|
|
@PostMapping("/add")
|
|
public AjaxResult add(@RequestBody PoliceLeaveApproval policeLeaveApproval) {
|
|
List<SysDept> sysDepts = deptService.selectAllDeptList();
|
|
// 部门领导
|
|
List<String> leader = sysDepts.stream().map(SysDept::getLeader).collect(Collectors.toList());
|
|
// 局党委和分管局成员
|
|
List<String> leaderLeader = sysDepts.stream().map(SysDept::getLeaderLeader).distinct().collect(Collectors.toList());
|
|
|
|
SysUser user = getLoginUser().getUser();
|
|
if (policeLeaveApproval.getId() == null) {
|
|
policeLeaveApproval.setName(user.getNickName());
|
|
policeLeaveApproval.setIdCard(user.getIdCard());
|
|
policeLeaveApproval.setPhone(user.getPhonenumber());
|
|
policeLeaveApproval.setState(0);
|
|
policeLeaveApproval.setDeptName(user.getDept().getDeptName());
|
|
policeLeaveApproval.setCreateBy(user.getNickName());
|
|
policeLeaveApproval.setUserId(user.getUserId());
|
|
policeLeaveApproval.setDeptId(user.getDeptId());
|
|
policeLeaveApproval.setApplyNo(OrderNumberGenerator());
|
|
if (leader.contains(user.getNickName())) {
|
|
// 单位领导
|
|
policeLeaveApproval.setUserType(1);
|
|
} else if (leaderLeader.contains(user.getNickName())) {
|
|
// 局党委和分管局成员
|
|
policeLeaveApproval.setUserType(2);
|
|
} else {
|
|
// 普通民警
|
|
policeLeaveApproval.setUserType(0);
|
|
}
|
|
boolean result = policeLeaveApprovalService.save(policeLeaveApproval);
|
|
if (!result) {
|
|
return AjaxResult.error("新增民警请(休)假审批表失败");
|
|
}
|
|
return AjaxResult.success(result);
|
|
} else {
|
|
policeLeaveApproval.setUpdateBy(user.getNickName());
|
|
boolean result = policeLeaveApprovalService.updateById(policeLeaveApproval);
|
|
if (!result) {
|
|
return AjaxResult.error("修改民警请(休)假审批表失败");
|
|
}
|
|
return AjaxResult.success(result);
|
|
}
|
|
}
|
|
|
|
@ApiOperation("删除民警请(休)假审批表")
|
|
@DeleteMapping("/{id}")
|
|
public AjaxResult delete(@PathVariable Long id) {
|
|
boolean result = policeLeaveApprovalService.removeById(id);
|
|
if (!result) {
|
|
return AjaxResult.error("删除民警请(休)假审批表失败");
|
|
}
|
|
return AjaxResult.success(result);
|
|
}
|
|
|
|
@ApiOperation("查询流程详情")
|
|
@GetMapping("/state/{id}")
|
|
public AjaxResult state(@PathVariable Long id) {
|
|
PoliceLeaveApproval policeLeaveApproval = policeLeaveApprovalService.getById(id);
|
|
if (policeLeaveApproval == null) {
|
|
return AjaxResult.error("查询approval流程失败");
|
|
}
|
|
return AjaxResult.success(policeLeaveApproval);
|
|
}
|
|
|
|
@ApiOperation("审批")
|
|
@PostMapping("/approval")
|
|
public AjaxResult approval(@RequestBody ApprovaltDto dto) {
|
|
Long id = dto.getId();
|
|
SysUser user = getLoginUser().getUser();
|
|
Integer state = dto.getState();
|
|
PoliceLeaveApproval policeLeaveApproval = policeLeaveApprovalService.getById(id);
|
|
policeLeaveApproval.setState(state);
|
|
boolean result = policeLeaveApprovalService.updateById(policeLeaveApproval);
|
|
gwglLog gwglLog = new gwglLog();
|
|
gwglLog.setApplyNo(policeLeaveApproval.getApplyNo());
|
|
gwglLog.setDeptId(policeLeaveApproval.getDeptId());
|
|
gwglLog.setDeptName(policeLeaveApproval.getDeptName());
|
|
gwglLog.setUserId(policeLeaveApproval.getUserId());
|
|
gwglLog.setUserName(policeLeaveApproval.getName());
|
|
gwglLog.setCreateTime(policeLeaveApproval.getCreateTime());
|
|
gwglLog.setReason(policeLeaveApproval.getReason());
|
|
gwglLog.setResult(state);
|
|
gwglLog.setApplyNo(policeLeaveApproval.getApplyNo());
|
|
gwglLog.setType(1);
|
|
gwglLog.setChecker(user.getNickName());
|
|
gwglLog.setCheckTime(LocalDateTime.now());
|
|
gwglLog.setCheckState(state);
|
|
boolean result1 = gwglLogService.save(gwglLog);
|
|
if (!result || !result1) {
|
|
return AjaxResult.error("审批非工作日饮酒报备单失败");
|
|
}
|
|
|
|
return AjaxResult.success("审批请(休)假成功");
|
|
}
|
|
|
|
|
|
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
|
private static final String DATA_KEY = "DDATAKEY:";
|
|
|
|
public static String OrderNumberGenerator() {
|
|
String format = sdf.format(new Date());
|
|
RedisCache bean = SpringUtils.getBean(RedisCache.class);
|
|
bean.setCacheObject(DATA_KEY + format, bean.getCacheObject(DATA_KEY + format) == null ? 1 : (Integer) (bean.getCacheObject(DATA_KEY + format)) + 1);
|
|
return format + String.format("%04d", (Integer) (bean.getCacheObject(DATA_KEY + format)));
|
|
}
|
|
}
|