智慧保安后台管理-外网项目备份
guoshilong
2023-12-20 f9477aa1eef13a6b53228a02811b7ba19eff0f50
请假功能
6 files modified
7 files added
305 ■■■■■ changed files
src/main/java/org/springblade/common/config/BladeConfiguration.java 1 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/ExamPaperService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/leave/controller/LeavesController.java 112 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/leave/entity/Leave.java 53 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/leave/mapper/LeavesMapper.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/leave/mapper/LeavesMapper.xml 35 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/leave/service/ILeaveService.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/leave/service/impl/LeavesServiceImpl.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/leave/vo/LeaveVO.java 21 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/config/BladeConfiguration.java
@@ -88,6 +88,7 @@
        //考试大屏接口
        secureRegistry.excludePathPatterns("/exampaper/getList");
        secureRegistry.excludePathPatterns("/exampaper/getLatest");
        secureRegistry.excludePathPatterns("/exam/examinationNote/getDpDetail");
        secureRegistry.excludePathPatterns("/signInRecords/signSituation/pie");
        secureRegistry.excludePathPatterns("/signInRecords/signSituation/bar");
src/main/java/org/springblade/modules/exam/controller/ExamPaperController.java
@@ -139,6 +139,18 @@
        return R.data(list);
    }
    /**
     * 查询列表
     *
     * @param examPaperVO 查询参数
     * @return
     */
    @GetMapping("/getLatest")
    public R getLatest(ExamPaperVO examPaperVO) {
        ExamPaperVO latest= examPaperService.getLatest(examPaperVO);
        return R.data(latest);
    }
    /**
     * 新增
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java
@@ -175,4 +175,6 @@
    List<ExamSubjectChoicesVO> simulateQueryRandomSubjectList();
    List<ExamPaperVO> getList(@Param("vo") ExamPaperVO examPaperVO);
    ExamPaperVO getLatest(@Param("vo") ExamPaperVO examPaperVO);
}
src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
@@ -602,6 +602,16 @@
        <if test="vo.examTime != null and vo.examTime != ''">
            AND DATE_FORMAT(start_time,'%Y-%m-%d') = DATE_FORMAT(#{vo.examTime},'%Y-%m-%d')
        </if>
        ORDER BY start_time DESC
    </select>
    <select id="getLatest" resultType="org.springblade.modules.exam.vo.ExamPaperVO">
        SELECT * FROM ksxt_exam
        where 1=1
        <if test="vo.examTime != null and vo.examTime != ''">
            AND DATE_FORMAT(start_time,'%Y-%m-%d') = DATE_FORMAT(#{vo.examTime},'%Y-%m-%d')
        </if>
        ORDER BY start_time DESC
        LIMIT 1
    </select>
src/main/java/org/springblade/modules/exam/service/ExamPaperService.java
@@ -158,4 +158,6 @@
     * @return
     */
    List<ExamPaperVO> getList(ExamPaperVO examPaperVO);
    ExamPaperVO getLatest(ExamPaperVO examPaperVO);
}
src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
@@ -423,4 +423,9 @@
    public List<ExamPaperVO> getList(ExamPaperVO examPaperVO) {
        return baseMapper.getList(examPaperVO);
    }
    @Override
    public ExamPaperVO getLatest(ExamPaperVO examPaperVO) {
        return baseMapper.getLatest(examPaperVO);
    }
}
src/main/java/org/springblade/modules/leave/controller/LeavesController.java
New file
@@ -0,0 +1,112 @@
package org.springblade.modules.leave.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.leave.entity.Leave;
import org.springblade.modules.leave.service.ILeaveService;
import org.springblade.modules.leave.vo.LeaveVO;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@RestController
@AllArgsConstructor
@RequestMapping("/leave")
@Api(value = "", tags = "接口")
public class LeavesController extends BladeController {
    private final ILeaveService leaveService;
    /**
     * 详情
     */
    @GetMapping("/detail")
    @ApiOperationSupport(order = 1)
    @ApiOperation(value = "详情", notes = "传入leave")
    public R detail(Leave leave) {
        Leave detail = leaveService.getOne(Condition.getQueryWrapper(leave));
        return R.data(detail);
    }
    /**
     * 分页
     */
    @GetMapping("/list")
    @ApiOperationSupport(order = 2)
    @ApiOperation(value = "分页", notes = "传入leave")
    public R<IPage<Leave>> list(Leave leave, Query query) {
        IPage<Leave> pages = leaveService.page(Condition.getPage(query), Condition.getQueryWrapper(leave));
        return R.data(pages);
    }
    /**
     * 自定义分页
     */
    @GetMapping("/page")
    @ApiOperationSupport(order = 3)
    @ApiOperation(value = "分页", notes = "传入leave")
    public R<IPage<LeaveVO>> page(LeaveVO leaveVO, Query query) {
        return R.data(leaveService.getPage(Condition.getPage(query), leaveVO));
    }
    /**
     * 新增
     */
    @PostMapping("/save")
    public R save(@Valid @RequestBody Leave leave) {
        return R.status(leaveService.save(leave));
    }
    /**
     * 修改
     */
    @PostMapping("/update")
    @ApiOperationSupport(order = 5)
    @ApiOperation(value = "修改", notes = "传入leave")
    public R update(@Valid @RequestBody Leave leave) {
        return R.status(leaveService.updateById(leave));
    }
    /**
     * 新增或修改
     */
    @PostMapping("/submit")
    @ApiOperationSupport(order = 6)
    @ApiOperation(value = "新增或修改", notes = "传入leave")
    public R submit(@Valid @RequestBody Leave leave) {
        return R.status(leaveService.saveOrUpdate(leave));
    }
    /**
     * 新增或修改
     */
    @PostMapping("/audit")
    public R audit(@RequestBody Leave leave) {
        return R.status(leaveService.audit(leave));
    }
    /**
     * 删除
     */
    @PostMapping("/remove")
    @ApiOperationSupport(order = 8)
    @ApiOperation(value = "删除", notes = "传入ids")
    public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
        return R.status(leaveService.removeByIds(Func.toLongList(ids)));
    }
}
src/main/java/org/springblade/modules/leave/entity/Leave.java
New file
@@ -0,0 +1,53 @@
package org.springblade.modules.leave.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@TableName("sys_leave")
public class Leave extends BaseEntity {
    //请假原因
    private String reason;
    @DateTimeFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date startTime;
    @DateTimeFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date endTime;
    @DateTimeFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JsonFormat(
        pattern = "yyyy-MM-dd HH:mm:ss"
    )
    private Date auditTime;
    private String urls;
    //审核状态(1、通过;2不通过;10待审核)
    private String auditStatus;
    //审核明细
    private String auditDetail;
    //审核人
    private String auditUser;
}
src/main/java/org/springblade/modules/leave/mapper/LeavesMapper.java
New file
@@ -0,0 +1,13 @@
package org.springblade.modules.leave.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.leave.entity.Leave;
import org.springblade.modules.leave.vo.LeaveVO;
import java.util.List;
public interface LeavesMapper extends BaseMapper<Leave> {
    List<LeaveVO> getPage(IPage<LeaveVO> page, @Param("vo") LeaveVO leaveVO);
}
src/main/java/org/springblade/modules/leave/mapper/LeavesMapper.xml
New file
@@ -0,0 +1,35 @@
<?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="org.springblade.modules.leave.mapper.LeavesMapper">
    <select id="getPage" resultType="org.springblade.modules.leave.vo.LeaveVO">
        SELECT l.*,
               bu.real_name as applyName,
               bu1.real_name as auditName
               FROM sys_leave l
        LEFT JOIN blade_user bu ON bu.id = l.create_user
        LEFT JOIN blade_user bu1 ON bu1.id = l.audit_user
        where l.is_deleted = 0
        <if test="vo.applyName != null and vo.applyName !='' ">
            AND bu.real_name LIKE CONCAT('%', #{vo.applyName} , '%')
        </if>
        <if test="vo.auditName != null and vo.auditName !='' ">
            AND bu1.real_name LIKE CONCAT('%', #{vo.auditName} , '%')
        </if>
        <if test="vo.applyStartTime!=null and vo.applyStartTime!=''">
            and date_format(l.create_time,'%Y-%m-%d')&gt;=#{vo.applyStartTime}
        </if>
        <if test="vo.applyEndTime!=null and vo.applyEndTime!=''">
            and date_format(l.create_time,'%Y-%m-%d')&lt;=#{vo.applyEndTime}
        </if>
        <if test="vo.leaveDay != null ">
            and datediff(l.start_time,l.end_time) &lt;=#{vo.leaveDay}
        </if>
        <if test="vo.auditStatus != null and vo.auditStatus !=''">
            and l.audit_status = #{vo.auditStatus}
        </if>
        ORDER BY l.create_time DESC
    </select>
</mapper>
src/main/java/org/springblade/modules/leave/service/ILeaveService.java
New file
@@ -0,0 +1,13 @@
package org.springblade.modules.leave.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sun.org.apache.xpath.internal.operations.Bool;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.leave.entity.Leave;
import org.springblade.modules.leave.vo.LeaveVO;
public interface ILeaveService extends BaseService<Leave> {
    IPage<LeaveVO> getPage(IPage<LeaveVO> page, LeaveVO leaveVO);
    Boolean audit(Leave leave);
}
src/main/java/org/springblade/modules/leave/service/impl/LeavesServiceImpl.java
New file
@@ -0,0 +1,26 @@
package org.springblade.modules.leave.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.modules.leave.entity.Leave;
import org.springblade.modules.leave.mapper.LeavesMapper;
import org.springblade.modules.leave.service.ILeaveService;
import org.springblade.modules.leave.vo.LeaveVO;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class LeavesServiceImpl extends BaseServiceImpl<LeavesMapper, Leave> implements ILeaveService {
    @Override
    public IPage<LeaveVO> getPage(IPage<LeaveVO> page, LeaveVO leaveVO) {
        return page.setRecords(baseMapper.getPage(page,leaveVO));
    }
    @Override
    public Boolean audit(Leave leave) {
        leave.setAuditTime(new Date());
        return updateById(leave);
    }
}
src/main/java/org/springblade/modules/leave/vo/LeaveVO.java
New file
@@ -0,0 +1,21 @@
package org.springblade.modules.leave.vo;
import lombok.Data;
import org.springblade.modules.leave.entity.Leave;
@Data
public class LeaveVO extends Leave {
    //申请人
    private String applyName;
    //审核人
    private String auditName;
    private String applyStartTime;
    private String applyEndTime;
    //请假天数范围
    private Integer leaveDay;
}