From 2d9eb8ce14f1cbfe2f22ec4144f6bed4a52322f9 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期三, 13 八月 2025 16:29:49 +0800
Subject: [PATCH] yys  新增劳保管理

---
 src/main/java/com/ruoyi/lavorissue/mapper/LavorIssueMapper.java            |   27 ++++
 src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java          |   22 +++
 src/main/resources/mapper/lavorissue/LavorIssueMapper.xml                  |   30 +++++
 src/main/java/com/ruoyi/lavorissue/pojo/LaborIssue.java                    |  125 ++++++++++++++++++++
 src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java |   29 ++++
 src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java    |   90 +++++++++++++++
 6 files changed, 323 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java b/src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java
new file mode 100644
index 0000000..5af3220
--- /dev/null
+++ b/src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java
@@ -0,0 +1,90 @@
+package com.ruoyi.lavorissue.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.SecurityUtils;
+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.lavorissue.mapper.LavorIssueMapper;
+import com.ruoyi.lavorissue.pojo.LaborIssue;
+import com.ruoyi.lavorissue.service.LavorIssueService;
+import com.ruoyi.project.system.mapper.SysDeptMapper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/8/13 11:19
+ */
+@RestController
+@Api(tags = "鍔充繚鍙戞斁")
+@RequestMapping("/lavorIssue")
+public class LavorIssueController extends BaseController {
+
+    @Autowired
+    private LavorIssueService laborIssueService;
+
+    @Autowired
+    private LavorIssueMapper lavorIssueMapper;
+
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
+
+    @GetMapping("/listPage")
+    @Log(title = "鍔充繚鍙戞斁-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+    @ApiOperation("鍔充繚鍙戞斁-鍒嗛〉鏌ヨ")
+    public AjaxResult listPage(Page page, LaborIssue laborIssue){
+        IPage<LaborIssue> listPage = laborIssueService.listPage(page, laborIssue);
+        return AjaxResult.success(listPage);
+    }
+
+    @PostMapping("/add")
+    @Log(title = "鍔充繚鍙戞斁-娣诲姞", businessType = BusinessType.INSERT)
+    @ApiOperation("鍔充繚鍙戞斁-娣诲姞")
+    public AjaxResult add(@RequestBody LaborIssue laborIssue){
+        boolean save = laborIssueService.save(laborIssue);
+        return save ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    @PostMapping("/update")
+    @Log(title = "鍔充繚鍙戞斁-淇敼", businessType = BusinessType.UPDATE)
+    @ApiOperation("鍔充繚鍙戞斁-淇敼")
+    public AjaxResult update(@RequestBody LaborIssue laborIssue){
+        boolean update = laborIssueService.updateById(laborIssue);
+        return update ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    @DeleteMapping("/delete")
+    @Log(title = "鍔充繚鍙戞斁-鍒犻櫎", businessType = BusinessType.DELETE)
+    @ApiOperation("鍔充繚鍙戞斁-鍒犻櫎")
+    public AjaxResult delete(@RequestBody List<Long> ids){
+        boolean delete = laborIssueService.removeBatchByIds(ids);
+        return delete ? AjaxResult.success() : AjaxResult.error();
+    }
+
+
+    /**
+     * 鍔充繚鍙戞斁-瀵煎嚭
+     */
+    @Log(title = "鍔充繚鍙戞斁-瀵煎嚭", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation("鍔充繚鍙戞斁-瀵煎嚭")
+    public void export(HttpServletResponse response) {
+        Long tenantId = SecurityUtils.getLoginUser().getTenantId();
+        ExcelUtil<LaborIssue> util = new ExcelUtil<LaborIssue>(LaborIssue.class);
+        List<LaborIssue> list = lavorIssueMapper.list();
+        list.forEach(item -> {
+            item.setDeptName(sysDeptMapper.selectDeptById(tenantId).getDeptName());
+        });
+        util.exportExcel(response, list , "鍔充繚鍙拌处");
+    }
+
+}
diff --git a/src/main/java/com/ruoyi/lavorissue/mapper/LavorIssueMapper.java b/src/main/java/com/ruoyi/lavorissue/mapper/LavorIssueMapper.java
new file mode 100644
index 0000000..3623fba
--- /dev/null
+++ b/src/main/java/com/ruoyi/lavorissue/mapper/LavorIssueMapper.java
@@ -0,0 +1,27 @@
+package com.ruoyi.lavorissue.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.lavorissue.pojo.LaborIssue;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/8/13 11:17
+ */
+public interface LavorIssueMapper extends BaseMapper<LaborIssue> {
+
+    /**
+     * 鑾峰彇鍒楄〃
+     *
+     * @param page
+     * @param laborIssue
+     * @return
+     */
+    IPage<LaborIssue> listPage(Page page, @Param("req") LaborIssue laborIssue);
+
+    List<LaborIssue> list();
+}
diff --git a/src/main/java/com/ruoyi/lavorissue/pojo/LaborIssue.java b/src/main/java/com/ruoyi/lavorissue/pojo/LaborIssue.java
new file mode 100644
index 0000000..2772d6e
--- /dev/null
+++ b/src/main/java/com/ruoyi/lavorissue/pojo/LaborIssue.java
@@ -0,0 +1,125 @@
+package com.ruoyi.lavorissue.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @author :yys
+ * @date : 2025/8/13 11:12
+ */
+@Data
+@TableName("labor_issue")
+@ApiModel
+public class LaborIssue {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 閮ㄩ棬鍚嶇О
+     */
+    @ApiModelProperty("閮ㄩ棬鍚嶇О")
+    @Excel(name = "閮ㄩ棬鍚嶇О")
+    @TableField(exist = false)
+    private String deptName;
+
+    /**
+     * 鍛樺伐id
+     */
+    @ApiModelProperty("鍛樺伐id")
+    private Long staffId;
+
+    /**
+     * 鍛樺伐鍚嶇О
+     */
+    @ApiModelProperty("鍛樺伐鍚嶇О")
+    @Excel(name = "鍛樺伐鍚嶇О")
+    @TableField(exist = false)
+    private String staffName;
+
+    /**
+     * 鍛樺伐缂栧彿
+     */
+    @ApiModelProperty("鍛樺伐缂栧彿")
+    @Excel(name = "鍛樺伐缂栧彿")
+    @TableField(exist = false)
+    private String staffNo;
+
+    /**
+     * 闃插叿鍚嶇О-瀛楀吀
+     */
+    @ApiModelProperty("闃插叿鍚嶇О-瀛楀吀")
+    private String dictId;
+
+    /**
+     * 闃插叿鍚嶇О
+     */
+    @ApiModelProperty("闃插叿鍚嶇О")
+    @Excel(name = "闃插叿鍚嶇О")
+    @TableField(exist = false)
+    private String dictName;
+
+    /**
+     * 棰嗙敤鏁伴噺
+     */
+    @ApiModelProperty("棰嗙敤鏁伴噺")
+    @Excel(name = "棰嗙敤鏁伴噺")
+    private Long num;
+
+    /**
+     * 棰嗙敤鏃ユ湡
+     */
+    @ApiModelProperty("棰嗙敤鏃ユ湡")
+    @Excel(name = "棰嗙敤鏃ユ湡", width = 30, dateFormat = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date adoptedDate;
+
+    /**
+     * 绛惧悕
+     */
+    @Excel(name = "绛惧悕")
+    @TableField(exist = false)
+    private String sign;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    /**
+     * 淇敼鑰�
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java b/src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java
new file mode 100644
index 0000000..4779739
--- /dev/null
+++ b/src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java
@@ -0,0 +1,22 @@
+package com.ruoyi.lavorissue.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.lavorissue.pojo.LaborIssue;
+
+/**
+ * @author :yys
+ * @date : 2025/8/13 11:18
+ */
+public interface LavorIssueService extends IService<LaborIssue> {
+
+    /**
+     * 鏌ヨ鍒楄〃
+     *
+     * @param page
+     * @param laborIssue
+     * @return
+     */
+    IPage<LaborIssue> listPage(Page page, LaborIssue laborIssue);
+}
diff --git a/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java b/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java
new file mode 100644
index 0000000..ff492b2
--- /dev/null
+++ b/src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java
@@ -0,0 +1,29 @@
+package com.ruoyi.lavorissue.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.lavorissue.mapper.LavorIssueMapper;
+import com.ruoyi.lavorissue.pojo.LaborIssue;
+import com.ruoyi.lavorissue.service.LavorIssueService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author :yys
+ * @date : 2025/8/13 11:18
+ */
+@Service
+@Slf4j
+public class LavorIssueServiceImpl extends ServiceImpl<LavorIssueMapper, LaborIssue> implements LavorIssueService {
+
+    @Autowired
+    private LavorIssueMapper lavorIssueMapper;
+
+    @Override
+    public IPage<LaborIssue> listPage(Page page, LaborIssue laborIssue) {
+        IPage<LaborIssue> listPage = lavorIssueMapper.listPage(page, laborIssue);
+        return listPage;
+    }
+}
diff --git a/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml b/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml
new file mode 100644
index 0000000..88cf9aa
--- /dev/null
+++ b/src/main/resources/mapper/lavorissue/LavorIssueMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.lavorissue.mapper.LavorIssueMapper">
+
+    <select id="listPage" resultType="com.ruoyi.lavorissue.pojo.LaborIssue">
+        select
+        t1.*,
+               t2.staff_name as staffName,
+               t2.staff_no as staffNo,
+               t3.dict_label as dictName
+        from labor_issue t1
+        left join staff_join_leave_record t2 on t1.staff_id = t2.id
+        left join sys_dict_data t3 on t1.dict_id = t3.dict_value
+        <where>
+            <if test="req.staffName != null and req.staffName != ''">
+                and t2.staff_name like ('%',#{req.staffName},'%')
+            </if>
+        </where>
+    </select>
+    <select id="list" resultType="com.ruoyi.lavorissue.pojo.LaborIssue">
+        select
+            t1.*,
+            t2.staff_name as staffName,
+            t2.staff_no as staffNo,
+            t3.dict_label as dictName
+        from labor_issue t1
+                 left join staff_join_leave_record t2 on t1.staff_id = t2.id
+                 left join sys_dict_data t3 on t1.dict_id = t3.dict_value
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3