fuliqi
2024-11-27 e4e164666e4f2ad7ab2229242055e143a79c80bc
文件上传对象+主管部门下拉
7个文件已修改
6个文件已添加
365 ■■■■■ 已修改文件
business/src/main/java/com/ycl/controller/ProjectInfoController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/domain/entity/File.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/mapper/FileMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/FileService.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/service/impl/FileServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/resources/mapper/FileMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/src/main/java/com/ycl/common/utils/ProjectCodeGenerator.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/java/com/ycl/web/controller/system/SysDeptController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/resources/application-dev.yml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/resources/application-prod.yml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
start/src/main/resources/application.yml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system/src/main/java/com/ycl/system/service/ISysDeptService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
business/src/main/java/com/ycl/controller/ProjectInfoController.java
@@ -3,6 +3,7 @@
import com.ycl.common.base.Result;
import com.ycl.common.group.Add;
import com.ycl.common.group.Update;
import com.ycl.common.utils.ProjectCodeGenerator;
import com.ycl.domain.form.ProjectInfoForm;
import com.ycl.domain.query.ProjectInfoQuery;
import com.ycl.service.ProjectInfoService;
@@ -79,4 +80,13 @@
    public Result list() {
        return projectInfoService.all();
    }
    /**
     * 生成项目编号
     * @return 项目编号
     */
    @GetMapping("/getProjectCode")
    public Result generateProjectCode() {
        return Result.ok().data(ProjectCodeGenerator.generateProjectCode());
    };
}
business/src/main/java/com/ycl/domain/entity/File.java
New file
@@ -0,0 +1,48 @@
package com.ycl.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.system.domain.base.AbsEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
 * 文件表
 *
 * @author flq
 * @since 2024-11-22
 */
@Data
@TableName("t_file")
public class File extends AbsEntity {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Integer id;
    /**
     * 文件路径
     */
    private String url;
    /**
     * 关联的各种业务的id
     */
    private Long busId;
    /**
     * 文件分类
     */
    private String type;
    /**
     * 文件名
     */
    private String name;
    /**
     * 文件原始名
     */
    private String originalName;
}
business/src/main/java/com/ycl/mapper/FileMapper.java
New file
@@ -0,0 +1,23 @@
package com.ycl.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.domain.entity.File;
import org.apache.ibatis.annotations.Mapper;
/**
 * 项目文件关联表 Mapper 接口
 *
 * @author flq
 * @since 2024-11-27
 */
@Mapper
public interface FileMapper extends BaseMapper<File> {
    /**
     * id查找项目文件关联表
     * @param id
     * @return
     */
    File getById(Integer id);
}
business/src/main/java/com/ycl/service/FileService.java
New file
@@ -0,0 +1,46 @@
package com.ycl.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.common.base.Result;
import com.ycl.domain.entity.File;
import java.util.List;
/**
 * 项目文件关联表 服务类
 *
 * @author flq
 * @since 2024-11-27
 */
public interface FileService extends IService<File> {
    /**
     * 添加
     * @param file
     * @return
     */
    Result add(File file);
    /**
     * 批量删除
     * @param ids
     * @return
     */
    Result remove(List<String> ids);
    /**
     * id删除
     * @param id
     * @return
     */
    Result removeById(String id);
    /**
     * 根据id查找
     * @param id
     * @return
     */
    Result detail(Integer id);
}
business/src/main/java/com/ycl/service/impl/FileServiceImpl.java
New file
@@ -0,0 +1,72 @@
package com.ycl.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.base.Result;
import com.ycl.domain.entity.File;
import com.ycl.mapper.FileMapper;
import com.ycl.service.FileService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.util.List;
/**
 * 项目文件关联表 服务实现类
 *
 * @author flq
 * @since 2024-11-27
 */
@Service
@RequiredArgsConstructor
public class FileServiceImpl extends ServiceImpl<FileMapper, File> implements FileService {
    private final FileMapper fileMapper;
    /**
     * 添加
     * @param
     * @return
     */
    @Override
    public Result add(File file) {
        baseMapper.insert(file);
        return Result.ok("添加成功");
    }
    /**
     * 批量删除
     * @param ids
     * @return
     */
    @Override
    public Result remove(List<String> ids) {
        baseMapper.deleteBatchIds(ids);
        return Result.ok("删除成功");
    }
    /**
     * id删除
     * @param id
     * @return
     */
    @Override
    public Result removeById(String id) {
        baseMapper.deleteById(id);
        return Result.ok("删除成功");
    }
    /**
     * 根据id查找
     * @param id
     * @return
     */
    @Override
    public Result detail(Integer id) {
        File vo = baseMapper.getById(id);
        Assert.notNull(vo, "记录不存在");
        return Result.ok().data(vo);
    }
}
business/src/main/resources/mapper/FileMapper.xml
New file
@@ -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.ycl.mapper.FileMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ycl.domain.entity.File">
        <result column="url" property="url" />
        <result column="bus_id" property="busId" />
        <result column="type" property="type" />
        <result column="name" property="name" />
        <result column="original_name" property="originalName" />
    </resultMap>
    <select id="getById" resultMap="BaseResultMap">
        SELECT
            TF.url,
            TF.bus_id,
            TF.type,
            TF.name,
            TF.original_name,
            TF.id
        FROM
            t_file TF
        WHERE
            TF.id = #{id} AND TF.deleted = 0
    </select>
</mapper>
common/src/main/java/com/ycl/common/utils/ProjectCodeGenerator.java
New file
@@ -0,0 +1,49 @@
package com.ycl.common.utils;
import java.util.Random;
/**
 * 项目代码生成工具类
 *
 * @Author: ljx
 * @CreateTime: 2024-11-04 15:06
 */
public class ProjectCodeGenerator {
    private static final String PROJECT_PREFIX = "SHXM-"; // 项目编号前缀
    private static final String ENGINEERING_PREFIX = "SHGC-";
    private static final Random RANDOM = new Random();
    /**
     * 根据当前时间戳和特定代码生成项目编号
     * @return 生成的项目编号
     */
    public static String generateProjectCode() {
        // 获取当前时间的时间戳
        long timestamp = System.currentTimeMillis();
        // 生成随机数,增加唯一性
        int randomNum = RANDOM.nextInt(1000);
        // 拼接前缀、时间戳和随机数生成项目编号
        return PROJECT_PREFIX + timestamp + String.format("%03d", randomNum);
    }
    /**
     * 生成工程编码
     * @return 生成工程编号
     */
    public static String generateEngineeringCode() {
        // 获取当前时间的时间戳
        long timestamp = System.currentTimeMillis();
        // 生成随机数,增加唯一性
        int randomNum = RANDOM.nextInt(1000);
        // 拼接前缀、时间戳和随机数生成工程编号
        return ENGINEERING_PREFIX + timestamp + String.format("%03d", randomNum);
    }
    public static void main(String[] args) {
        // 测试生成项目编号
        String projectCode = generateEngineeringCode();
        System.out.println("Generated Project Code: " + projectCode);
    }
}
start/src/main/java/com/ycl/web/controller/system/SysDeptController.java
@@ -2,6 +2,8 @@
import java.util.List;
import com.ycl.common.base.Result;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,7 +37,10 @@
public class SysDeptController extends BaseController {
    private final ISysDeptService deptService;
    //业主端id
    private final static Long userPortId = 101L;
    //审批端id
    private final static Long approvalPortId = 102L;
    /**
     * 获取部门列表
     */
@@ -131,4 +136,12 @@
        deptService.checkDeptDataScope(deptId);
        return toAjax(deptService.deleteDeptById(deptId));
    }
    @GetMapping("/approvalList")
    @ApiOperation(value = "审批部门下拉列表", notes = "审批部门下拉列表")
    public Result approvalList() {
        SysDept dept = new SysDept();
        dept.setParentId(approvalPortId);
        return deptService.all(dept);
    }
}
start/src/main/resources/application-dev.yml
@@ -1,3 +1,19 @@
# 项目相关配置
ycl:
    # 名称
    name: projectManagement
    # 版本
    version: 1.0.0
    # 版权年份
    copyrightYear: 2024
    # 文件路径 示例( Windows配置D:/projectManagement/uploadPath,Linux配置 /home/projectManagement/uploadPath)
    profile: D:/projectManagement/uploadPath
    # 获取ip地址开关
    addressEnabled: false
    # 验证码类型 math 数字计算 char 字符验证
    captchaType: math
# 数据源配置
spring:
    # redis 配置
start/src/main/resources/application-prod.yml
@@ -1,3 +1,17 @@
# 项目相关配置
ycl:
    # 名称
    name: projectManagement
    # 版本
    version: 1.0.0
    # 版权年份
    copyrightYear: 2024
    # 文件路径 示例( Windows配置D:/projectManagement/uploadPath,Linux配置 /home/projectManagement/uploadPath)
    profile: /home/projectManagement/uploadPath
    # 获取ip地址开关
    addressEnabled: false
    # 验证码类型 math 数字计算 char 字符验证
    captchaType: math
# 数据源配置
spring:
start/src/main/resources/application.yml
@@ -1,18 +1,3 @@
# 项目相关配置
ycl:
  # 名称
  name: RuoYi
  # 版本
  version: 1.0.0
  # 版权年份
  copyrightYear: 2024
  # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
  profile: D:/ruoyi/uploadPath
  # 获取ip地址开关
  addressEnabled: false
  # 验证码类型 math 数字计算 char 字符验证
  captchaType: math
# mybatis plus配置
mybatis-plus:
system/src/main/java/com/ycl/system/service/ISysDeptService.java
@@ -1,6 +1,8 @@
package com.ycl.system.service;
import java.util.List;
import com.ycl.common.base.Result;
import com.ycl.common.core.domain.TreeSelect;
import com.ycl.common.core.domain.entity.SysDept;
@@ -121,4 +123,10 @@
     * @return 结果
     */
    public int deleteDeptById(Long deptId);
    /**
     * 列表
     * @return
     */
    Result all(SysDept dept);
}
system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
@@ -4,6 +4,9 @@
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
import com.ycl.common.base.Result;
import com.ycl.system.domain.base.BaseSelect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ycl.common.annotation.DataScope;
@@ -335,4 +338,20 @@
    {
        return getChildList(list, t).size() > 0;
    }
    /**
     * 部门下拉列表
     * @return
     */
    @Override
    public Result all(SysDept dept) {
        List<BaseSelect> vos = deptMapper.selectDeptList(dept).stream().map(sysDept -> {
                    BaseSelect baseSelect = new BaseSelect();
                    baseSelect.setId(Integer.parseInt(sysDept.getDeptId() + ""));
                    baseSelect.setValue(sysDept.getDeptName());
                    return baseSelect;
                }
        ).collect(Collectors.toList());
        return Result.ok().data(vos);
    }
}