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); } }