maven
2025-08-13 c9e784140d837cb27a4f93935b08bbb739d47c8e
Merge remote-tracking branch 'origin/pim_yys'
已修改10个文件
已添加7个文件
609 ■■■■■ 文件已修改
src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/IApproveProcessService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/vo/ApproveGetAndUpdateVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/common/enums/FileNameType.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/lavorissue/mapper/LavorIssueMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/lavorissue/pojo/LaborIssue.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/lavorissue/service/LavorIssueService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/lavorissue/service/impl/LavorIssueServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-hysn.yml 219 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/account/AccountFileMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/lavorissue/LavorIssueMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/system/SysUserDeptMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/approve/controller/ApproveProcessController.java
@@ -13,6 +13,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
@@ -50,7 +51,7 @@
     */
    @PostMapping("/add")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult add(@RequestBody ApproveProcessVO approveProcessVO) throws ParseException {
    public AjaxResult add(@RequestBody ApproveProcessVO approveProcessVO) throws Exception {
        if (approveProcessVO == null) {
            return AjaxResult.warn("参数不能为空");
        }
@@ -79,7 +80,7 @@
     */
    @PostMapping("/update")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult update(@RequestBody ApproveGetAndUpdateVo approveGetAndUpdateVo) {
    public AjaxResult update(@RequestBody ApproveGetAndUpdateVo approveGetAndUpdateVo) throws IOException {
        if (approveGetAndUpdateVo == null) {
            return AjaxResult.warn("参数不能为空");
        }
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -3,9 +3,11 @@
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.sales.pojo.CommonFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -24,6 +26,9 @@
    @TableId(type = IdType.AUTO)
    private Long id;
    @TableField(exist = false)
    private List<CommonFile> commonFileList;
    /**
     * æµç¨‹ç¼–号
     */
src/main/java/com/ruoyi/approve/service/IApproveProcessService.java
@@ -9,6 +9,7 @@
import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.project.system.domain.SysDept;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
@@ -17,7 +18,7 @@
     * æ·»åŠ å®¡æ‰¹æµç¨‹
     * @param approveProcessVO å®¡æ‰¹æµç¨‹VO对象
     */
    void addApprove(ApproveProcessVO approveProcessVO) throws ParseException;
    void addApprove(ApproveProcessVO approveProcessVO) throws  Exception;
    /**
     * æ ¹æ®éƒ¨é—¨id查询部门信息
     * @param deptIds éƒ¨é—¨ID数组
@@ -28,7 +29,7 @@
    void delApprove(Long[] ids);
    void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo);
    void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) throws IOException;
    ApproveProcess getApproveById(String id);
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -14,11 +14,15 @@
import com.ruoyi.approve.utils.DailyRedisCounter;
import com.ruoyi.approve.vo.ApproveGetAndUpdateVo;
import com.ruoyi.approve.vo.ApproveProcessVO;
import com.ruoyi.common.enums.FileNameType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.other.service.impl.TempFileServiceImpl;
import com.ruoyi.project.system.domain.SysDept;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysDeptMapper;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.sales.mapper.CommonFileMapper;
import com.ruoyi.sales.pojo.CommonFile;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +32,7 @@
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
@@ -52,9 +57,11 @@
    private final IApproveNodeService approveNodeService;
    private final SysUserMapper sysUserMapper;
    private final ApproveProcessMapper approveProcessMapper;
    private final TempFileServiceImpl tempFileService;
    private final CommonFileMapper commonFileMapper;
    @Override
    public void addApprove(ApproveProcessVO approveProcessVO) throws ParseException {
    public void addApprove(ApproveProcessVO approveProcessVO) throws  Exception {
        SysUser sysUser = sysUserMapper.selectUserById(approveProcessVO.getApproveUser());
        SysDept sysDept = sysDeptMapper.selectDeptById(approveProcessVO.getApproveDeptId());
        String[] split = approveProcessVO.getApproveUserIds().split(",");
@@ -103,6 +110,8 @@
        save(approveProcess);
        //初始化审批节点
        approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approveID,approveProcessVO.getApproveDeptId());
        // é™„件绑定
        tempFileService.migrateTempFilesToFormal(approveProcess.getId(), approveProcessVO.getTempFileIds(), FileNameType.ApproveProcess.getValue());
    }
    @Override
@@ -118,6 +127,13 @@
    @Override
    public IPage<ApproveProcess> listAll(Page page,ApproveProcess approveProcess) {
        IPage<ApproveProcess> approveProcessIPage = approveProcessMapper.listPage(page,approveProcess);
        List<ApproveProcess> records = approveProcessIPage.getRecords();
        for (ApproveProcess record : records) {
            List<CommonFile> commonFiles = commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                    .eq(CommonFile::getCommonId, record.getId())
                    .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue()));
            record.setCommonFileList(commonFiles);
        }
        return approveProcessIPage;
    }
@@ -143,6 +159,9 @@
        queryWrapper.eq(ApproveProcess::getTenantId, SecurityUtils.getLoginUser().getTenantId());
        queryWrapper.last("limit 1");
        ApproveProcess one = getOne(queryWrapper);
        one.setCommonFileList(commonFileMapper.selectList(new LambdaQueryWrapper<CommonFile>()
                .eq(CommonFile::getCommonId, one.getId())
                .eq(CommonFile::getType, FileNameType.ApproveProcess.getValue())));
        return one;
    }
@@ -150,7 +169,7 @@
    @Override
    public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) {
    public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) throws IOException {
        ApproveProcess approve = approveProcessMapper.selectById(approveGetAndUpdateVo.getId());
        approve.setApproveUserIds(approveGetAndUpdateVo.getApproveUserIds());
        approve.setApproveReason(approveGetAndUpdateVo.getApproveReason());
@@ -189,6 +208,7 @@
            approveNodeMapper.updateById(approveNode);
            i++;
        }
        tempFileService.migrateTempFilesToFormal(approve.getId(), approveGetAndUpdateVo.getTempFileIds(), FileNameType.ApproveProcess.getValue());
    }
src/main/java/com/ruoyi/approve/vo/ApproveGetAndUpdateVo.java
@@ -1,11 +1,15 @@
package com.ruoyi.approve.vo;
import com.ruoyi.sales.pojo.CommonFile;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class ApproveGetAndUpdateVo {
    private List<String> tempFileIds;
    //审批id
    @NotBlank(message = "流程编号不能为空")
    private String id;
src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
@@ -1,12 +1,16 @@
package com.ruoyi.approve.vo;
import com.ruoyi.sales.pojo.CommonFile;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class ApproveProcessVO {
    private List<String> tempFileIds;
    private Long id;
src/main/java/com/ruoyi/common/enums/FileNameType.java
@@ -1,5 +1,7 @@
package com.ruoyi.common.enums;
import com.ruoyi.approve.pojo.ApproveProcess;
public enum FileNameType {
    SALE(1),      // é”€å”®
@@ -8,7 +10,8 @@
    PURCHASELEDGER(4),
    MEASURING(5),  //计量器具台账
    MEASURINGRecord(6),//计量器具台账记录
    ApproveNode(7);  //协同审批审核
    ApproveNode(7),  //协同审批节点审核
    ApproveProcess(8);  //协同审批主数据
    private final int value;
src/main/java/com/ruoyi/lavorissue/controller/LavorIssueController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
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.domain.SysDept;
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.transaction.annotation.Transactional;
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("劳保发放-添加")
    @Transactional(rollbackFor = Exception.class)
    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("劳保发放-修改")
    @Transactional(rollbackFor = Exception.class)
    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("劳保发放-删除")
    @Transactional(rollbackFor = Exception.class)
    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();
        SysDept sysDept = sysDeptMapper.selectDeptById(tenantId);
        if(sysDept == null){
            throw new RuntimeException("部门不存在!");
        }
        list.forEach(item -> {
            item.setDeptName(sysDept.getDeptName());
        });
        util.exportExcel(response, list , "劳保台账");
    }
}
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();
}
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;
}
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);
}
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;
    }
}
src/main/java/com/ruoyi/other/service/impl/TempFileServiceImpl.java
@@ -85,6 +85,7 @@
     *
     * @param businessId  ä¸šåŠ¡ID(销售台账ID)
     * @param tempFileIds ä¸´æ—¶æ–‡ä»¶ID列表
     * @param fileType     æ–‡ä»¶ç±»åž‹(来自FileNameType)
     * @throws IOException æ–‡ä»¶æ“ä½œå¼‚常
     */
    public void migrateTempFilesToFormal(Long businessId, List<String> tempFileIds, Integer fileType) throws IOException {
src/main/resources/application-hysn.yml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,219 @@
# é¡¹ç›®ç›¸å…³é…ç½®
ruoyi:
  # åç§°
  name: RuoYi
  # ç‰ˆæœ¬
  version: 3.8.9
  # ç‰ˆæƒå¹´ä»½
  copyrightYear: 2025
  # æ–‡ä»¶è·¯å¾„ ç¤ºä¾‹ï¼ˆ Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
  profile: /javaWork/product-inventory-management/file
  # èŽ·å–ip地址开关
  addressEnabled: false
  # éªŒè¯ç ç±»åž‹ math æ•°å­—计算 char å­—符验证
  captchaType: math
# å¼€å‘环境配置
server:
  # æœåŠ¡å™¨çš„HTTP端口,默认为8080
  port: 8092
  servlet:
    # åº”用的访问路径
    context-path: /
  tomcat:
    # tomcat的URI编码
    uri-encoding: UTF-8
    # è¿žæŽ¥æ•°æ»¡åŽçš„æŽ’队数,默认为100
    accept-count: 1000
    threads:
      # tomcat最大线程数,默认为200
      max: 800
      # Tomcat启动初始化的线程数,默认值10
      min-spare: 100
# æ—¥å¿—配置
logging:
  level:
    com.ruoyi: warn
    org.springframework: warn
minio:
  endpoint: http://114.132.189.42/
  port: 7019
  secure: false
  accessKey: admin
  secretKey: 12345678
  preview-expiry: 24 # é¢„览地址默认24小时
  default-bucket: uploadPath
# ç”¨æˆ·é…ç½®
user:
  password:
    # å¯†ç æœ€å¤§é”™è¯¯æ¬¡æ•°
    maxRetryCount: 5
    # å¯†ç é”å®šæ—¶é—´ï¼ˆé»˜è®¤10分钟)
    lockTime: 10
# Spring配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.mysql.cj.jdbc.Driver
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://114.132.189.42:9004/product-inventory-management-hysn?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: 123456
      # ä»Žåº“数据源
      slave:
        # ä»Žæ•°æ®æºå¼€å…³/默认关闭
        enabled: false
        url:
        username:
        password:
      # åˆå§‹è¿žæŽ¥æ•°
      initialSize: 5
      # æœ€å°è¿žæŽ¥æ± æ•°é‡
      minIdle: 10
      # æœ€å¤§è¿žæŽ¥æ± æ•°é‡
      maxActive: 20
      # é…ç½®èŽ·å–è¿žæŽ¥ç­‰å¾…è¶…æ—¶çš„æ—¶é—´
      maxWait: 60000
      # é…ç½®è¿žæŽ¥è¶…æ—¶æ—¶é—´
      connectTimeout: 30000
      # é…ç½®ç½‘络超时时间
      socketTimeout: 60000
      # é…ç½®é—´éš”多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # é…ç½®ä¸€ä¸ªè¿žæŽ¥åœ¨æ± ä¸­æœ€å°ç”Ÿå­˜çš„æ—¶é—´ï¼Œå•位是毫秒
      minEvictableIdleTimeMillis: 300000
      # é…ç½®ä¸€ä¸ªè¿žæŽ¥åœ¨æ± ä¸­æœ€å¤§ç”Ÿå­˜çš„æ—¶é—´ï¼Œå•位是毫秒
      maxEvictableIdleTimeMillis: 900000
      # é…ç½®æ£€æµ‹è¿žæŽ¥æ˜¯å¦æœ‰æ•ˆ
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      webStatFilter:
        enabled: true
      statViewServlet:
        enabled: true
        # è®¾ç½®ç™½åå•,不填则允许所有访问
        allow:
        url-pattern: /druid/*
        # æŽ§åˆ¶å°ç®¡ç†ç”¨æˆ·åå’Œå¯†ç 
        login-username: ruoyi
        login-password: 123456
      filter:
        stat:
          enabled: true
          # æ…¢SQL记录
          log-slow-sql: true
          slow-sql-millis: 1000
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
  # èµ„源信息
  messages:
    # å›½é™…化资源文件路径
    basename: i18n/messages
  # æ–‡ä»¶ä¸Šä¼ 
  servlet:
    multipart:
      # å•个文件大小
      max-file-size: 1GB
      # è®¾ç½®æ€»ä¸Šä¼ çš„æ–‡ä»¶å¤§å°
      max-request-size: 2GB
  # æœåŠ¡æ¨¡å—
  devtools:
    restart:
      # çƒ­éƒ¨ç½²å¼€å…³
      enabled: false
  # redis é…ç½®
  redis:
    # åœ°å€
    host: 127.0.0.1
#    host: 172.17.0.1
    # ç«¯å£ï¼Œé»˜è®¤ä¸º6379
    port: 6379
    # æ•°æ®åº“索引
    database: 5
    # å¯†ç 
    password: root2022!
#    password:
    # è¿žæŽ¥è¶…æ—¶æ—¶é—´
    timeout: 10s
    lettuce:
      pool:
        # è¿žæŽ¥æ± ä¸­çš„æœ€å°ç©ºé—²è¿žæŽ¥
        min-idle: 0
        # è¿žæŽ¥æ± ä¸­çš„æœ€å¤§ç©ºé—²è¿žæŽ¥
        max-idle: 8
        # è¿žæŽ¥æ± çš„æœ€å¤§æ•°æ®åº“连接数
        max-active: 8
        # #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1ms
# token配置
token:
  # ä»¤ç‰Œè‡ªå®šä¹‰æ ‡è¯†
  header: Authorization
  # ä»¤ç‰Œå¯†é’¥
  secret: abcdefghijklmnopqrstuvwxyz
  # ä»¤ç‰Œæœ‰æ•ˆæœŸï¼ˆé»˜è®¤30分钟)
  expireTime: 450
# MyBatis Plus配置
mybatis-plus:
  # æœç´¢æŒ‡å®šåŒ…别名   æ ¹æ®è‡ªå·±çš„项目来
  typeAliasesPackage: com.ruoyi.**.pojo
  # é…ç½®mapper的扫描,找到所有的mapper.xml映射文件
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # åŠ è½½å…¨å±€çš„é…ç½®æ–‡ä»¶
  configLocation: classpath:mybatis/mybatis-config.xml
  global-config:
    enable-sql-runner: true
    db-config:
      id-type: auto
# PageHelper分页插件
pagehelper:
  helperDialect: mysql
  supportMethodsArguments: true
  params: count=countSql
# Swagger配置
swagger:
  # æ˜¯å¦å¼€å¯swagger
  enabled: false
  # è¯·æ±‚前缀
  pathMapping: /dev-api
# é˜²æ­¢XSS攻击
xss:
  # è¿‡æ»¤å¼€å…³
  enabled: true
  # æŽ’除链接(多个用逗号分隔)
  excludes: /system/notice
  # åŒ¹é…é“¾æŽ¥
  urlPatterns: /system/*,/monitor/*,/tool/*
# ä»£ç ç”Ÿæˆ
gen:
  # ä½œè€…
  author: ruoyi
  # é»˜è®¤ç”ŸæˆåŒ…路径 system éœ€æ”¹æˆè‡ªå·±çš„æ¨¡å—名称 å¦‚ system monitor tool
  packageName: com.ruoyi.project.system
  # è‡ªåŠ¨åŽ»é™¤è¡¨å‰ç¼€ï¼Œé»˜è®¤æ˜¯true
  autoRemovePre: false
  # è¡¨å‰ç¼€ï¼ˆç”Ÿæˆç±»åä¸ä¼šåŒ…含表前缀,多个用逗号分隔)
  tablePrefix: sys_
  # æ˜¯å¦å…è®¸ç”Ÿæˆæ–‡ä»¶è¦†ç›–到本地(自定义路径),默认不允许
  allowOverwrite: false
file:
  temp-dir: /javaWork/product-inventory-management/file/temp/uploads
  upload-dir: /javaWork/product-inventory-management/file/prod/uploads
src/main/resources/mapper/account/AccountFileMapper.xml
@@ -7,6 +7,9 @@
        FROM account_file
        where
        1=1
        <if test="accountFile.accountId != null and accountFile.accountId != ''">
            AND account_id = #{accountFile.accountId}
        </if>
        <if test="accountFile.name != null and accountFile.name != '' ">
            AND name = #{accountFile.name}
        </if>
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>
src/main/resources/mapper/system/SysUserDeptMapper.xml
@@ -19,7 +19,7 @@
            </if>
            <if test="userDeptVo.userName != null and userDeptVo.userName != '' ">
                AND T1.user_id IN (
                SELECT user_id FROM sys_user WHERE nick_name LIKE CONCAT('%',#{userDeptVo.userName},'%')
                SELECT user_id FROM sys_user WHERE user_name LIKE CONCAT('%',#{userDeptVo.userName},'%')
                )
            </if>
        </where>