From e4e164666e4f2ad7ab2229242055e143a79c80bc Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 27 十一月 2024 16:30:45 +0800
Subject: [PATCH] 文件上传对象+主管部门下拉

---
 start/src/main/resources/application-dev.yml                             |   16 ++
 business/src/main/java/com/ycl/mapper/FileMapper.java                    |   23 +++
 start/src/main/resources/application-prod.yml                            |   14 ++
 start/src/main/java/com/ycl/web/controller/system/SysDeptController.java |   15 ++
 start/src/main/resources/application.yml                                 |   15 --
 system/src/main/java/com/ycl/system/service/ISysDeptService.java         |    8 +
 business/src/main/java/com/ycl/service/impl/FileServiceImpl.java         |   72 ++++++++++
 business/src/main/java/com/ycl/controller/ProjectInfoController.java     |   10 +
 business/src/main/java/com/ycl/domain/entity/File.java                   |   48 ++++++
 business/src/main/java/com/ycl/service/FileService.java                  |   46 ++++++
 common/src/main/java/com/ycl/common/utils/ProjectCodeGenerator.java      |   49 +++++++
 system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java |   19 ++
 business/src/main/resources/mapper/FileMapper.xml                        |   30 ++++
 13 files changed, 349 insertions(+), 16 deletions(-)

diff --git a/business/src/main/java/com/ycl/controller/ProjectInfoController.java b/business/src/main/java/com/ycl/controller/ProjectInfoController.java
index 1d14514..7ce9b7c 100644
--- a/business/src/main/java/com/ycl/controller/ProjectInfoController.java
+++ b/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());
+    };
 }
diff --git a/business/src/main/java/com/ycl/domain/entity/File.java b/business/src/main/java/com/ycl/domain/entity/File.java
new file mode 100644
index 0000000..c71fac2
--- /dev/null
+++ b/business/src/main/java/com/ycl/domain/entity/File.java
@@ -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;
+
+}
diff --git a/business/src/main/java/com/ycl/mapper/FileMapper.java b/business/src/main/java/com/ycl/mapper/FileMapper.java
new file mode 100644
index 0000000..226d6fc
--- /dev/null
+++ b/business/src/main/java/com/ycl/mapper/FileMapper.java
@@ -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);
+
+}
diff --git a/business/src/main/java/com/ycl/service/FileService.java b/business/src/main/java/com/ycl/service/FileService.java
new file mode 100644
index 0000000..04891c9
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/FileService.java
@@ -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);
+
+}
diff --git a/business/src/main/java/com/ycl/service/impl/FileServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FileServiceImpl.java
new file mode 100644
index 0000000..7bced1f
--- /dev/null
+++ b/business/src/main/java/com/ycl/service/impl/FileServiceImpl.java
@@ -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);
+    }
+
+}
diff --git a/business/src/main/resources/mapper/FileMapper.xml b/business/src/main/resources/mapper/FileMapper.xml
new file mode 100644
index 0000000..686e6c2
--- /dev/null
+++ b/business/src/main/resources/mapper/FileMapper.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.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>
diff --git a/common/src/main/java/com/ycl/common/utils/ProjectCodeGenerator.java b/common/src/main/java/com/ycl/common/utils/ProjectCodeGenerator.java
new file mode 100644
index 0000000..30bf6e7
--- /dev/null
+++ b/common/src/main/java/com/ycl/common/utils/ProjectCodeGenerator.java
@@ -0,0 +1,49 @@
+package com.ycl.common.utils;
+
+import java.util.Random;
+
+/**
+ * 椤圭洰浠g爜鐢熸垚宸ュ叿绫�
+ *
+ * @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();
+
+    /**
+     * 鏍规嵁褰撳墠鏃堕棿鎴冲拰鐗瑰畾浠g爜鐢熸垚椤圭洰缂栧彿
+     * @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);
+    }
+}
diff --git a/start/src/main/java/com/ycl/web/controller/system/SysDeptController.java b/start/src/main/java/com/ycl/web/controller/system/SysDeptController.java
index f4d4b87..9eb0cea 100644
--- a/start/src/main/java/com/ycl/web/controller/system/SysDeptController.java
+++ b/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;
-
+    //涓氫富绔痠d
+    private final static Long userPortId = 101L;
+    //瀹℃壒绔痠d
+    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);
+    }
 }
diff --git a/start/src/main/resources/application-dev.yml b/start/src/main/resources/application-dev.yml
index 77a2e7d..4c99180 100644
--- a/start/src/main/resources/application-dev.yml
+++ b/start/src/main/resources/application-dev.yml
@@ -1,3 +1,19 @@
+# 椤圭洰鐩稿叧閰嶇疆
+ycl:
+    # 鍚嶇О
+    name: projectManagement
+    # 鐗堟湰
+    version: 1.0.0
+    # 鐗堟潈骞翠唤
+    copyrightYear: 2024
+    # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/projectManagement/uploadPath锛孡inux閰嶇疆 /home/projectManagement/uploadPath锛�
+    profile: D:/projectManagement/uploadPath
+    # 鑾峰彇ip鍦板潃寮�鍏�
+    addressEnabled: false
+    # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
+    captchaType: math
+
+
 # 鏁版嵁婧愰厤缃�
 spring:
     # redis 閰嶇疆
diff --git a/start/src/main/resources/application-prod.yml b/start/src/main/resources/application-prod.yml
index 1eac87f..8ae2b8e 100644
--- a/start/src/main/resources/application-prod.yml
+++ b/start/src/main/resources/application-prod.yml
@@ -1,3 +1,17 @@
+# 椤圭洰鐩稿叧閰嶇疆
+ycl:
+    # 鍚嶇О
+    name: projectManagement
+    # 鐗堟湰
+    version: 1.0.0
+    # 鐗堟潈骞翠唤
+    copyrightYear: 2024
+    # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/projectManagement/uploadPath锛孡inux閰嶇疆 /home/projectManagement/uploadPath锛�
+    profile: /home/projectManagement/uploadPath
+    # 鑾峰彇ip鍦板潃寮�鍏�
+    addressEnabled: false
+    # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
+    captchaType: math
 
 # 鏁版嵁婧愰厤缃�
 spring:
diff --git a/start/src/main/resources/application.yml b/start/src/main/resources/application.yml
index bc33f7c..f70d518 100644
--- a/start/src/main/resources/application.yml
+++ b/start/src/main/resources/application.yml
@@ -1,18 +1,3 @@
-# 椤圭洰鐩稿叧閰嶇疆
-ycl:
-  # 鍚嶇О
-  name: RuoYi
-  # 鐗堟湰
-  version: 1.0.0
-  # 鐗堟潈骞翠唤
-  copyrightYear: 2024
-  # 鏂囦欢璺緞 绀轰緥锛� Windows閰嶇疆D:/ruoyi/uploadPath锛孡inux閰嶇疆 /home/ruoyi/uploadPath锛�
-  profile: D:/ruoyi/uploadPath
-  # 鑾峰彇ip鍦板潃寮�鍏�
-  addressEnabled: false
-  # 楠岃瘉鐮佺被鍨� math 鏁板瓧璁$畻 char 瀛楃楠岃瘉
-  captchaType: math
-
 
 # mybatis plus閰嶇疆
 mybatis-plus:
diff --git a/system/src/main/java/com/ycl/system/service/ISysDeptService.java b/system/src/main/java/com/ycl/system/service/ISysDeptService.java
index 7e09ebe..1b608dc 100644
--- a/system/src/main/java/com/ycl/system/service/ISysDeptService.java
+++ b/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);
 }
diff --git a/system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java b/system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
index a54ad3f..f356ada 100644
--- a/system/src/main/java/com/ycl/system/service/impl/SysDeptServiceImpl.java
+++ b/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);
+    }
 }

--
Gitblit v1.8.0