From d34aa4f61a58b1833eaeda5e3abbb553578c6bcc Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 18 三月 2025 09:19:27 +0800
Subject: [PATCH] 车间管理模块,产品车间绑定

---
 basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java      |    8 +
 inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkShopDto.java                  |    6 +
 basic-server/src/main/java/com/ruoyi/basic/service/ProductService.java               |    2 
 inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShopFile.java                |   47 +++++++
 inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShop.java                    |   32 +++++
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopMapper.java            |   12 ++
 inspect-server/src/main/java/com/ruoyi/inspect/controller/WorkShopController.java    |   60 ++++++++++
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WorkShopServiceImpl.java |  115 +++++++++++++++++++
 basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java   |    6 +
 basic-server/src/main/java/com/ruoyi/basic/pojo/Product.java                         |   12 ++
 inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopService.java          |   23 +++
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopFileMapper.java        |   12 ++
 inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopFileService.java      |   12 ++
 13 files changed, 347 insertions(+), 0 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
index e927343..f46439b 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java
@@ -390,4 +390,10 @@
         }
         return Result.success();
     }
+
+    @ApiOperation(value = "鏇存柊杞﹂棿")
+    @PostMapping("/updateWorkShop")
+    public Result updateWorkShop(Integer productId,Integer workShopId,String name) {
+        return Result.success(productService.updateWorkShop(productId,workShopId,name));
+    }
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/Product.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/Product.java
index 0847231..890de17 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/Product.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/Product.java
@@ -54,4 +54,16 @@
      * 澶栭敭锛歴tructure_test_object琛╥d
      */
     private Integer objectId;
+
+    /**
+     * 澶栭敭锛歸ork_shop琛╥d
+     */
+    @ApiModelProperty(value = "杞﹂棿id")
+    private Integer workShopId;
+    /**
+     * 杞﹂棿鍚�
+     */
+    @ApiModelProperty(value = "杞﹂棿鍚嶇О")
+    private String workShopName;
+
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/ProductService.java b/basic-server/src/main/java/com/ruoyi/basic/service/ProductService.java
index 6fdc7c2..ce6219d 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/ProductService.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/ProductService.java
@@ -25,4 +25,6 @@
     int delProduct(Integer id);
 
     void importPartExcel(List<StructureTestObjectData> list);
+
+    int updateWorkShop(Integer productId, Integer workShopId, String name);
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
index d1786cb..ba585df 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
@@ -185,4 +185,12 @@
             }
         });
     }
+
+    @Override
+    public int updateWorkShop(Integer productId, Integer workShopId,String name) {
+        return productMapper.update(null, Wrappers.<Product>lambdaUpdate()
+                .set(Product::getWorkShopId, workShopId)
+                .set(Product::getWorkShopName, name)
+                .eq(Product::getId, productId));
+    }
 }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/WorkShopController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/WorkShopController.java
new file mode 100644
index 0000000..8165801
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/WorkShopController.java
@@ -0,0 +1,60 @@
+package com.ruoyi.inspect.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.Result;
+import com.ruoyi.inspect.dto.WorkShopDto;
+import com.ruoyi.inspect.service.WorkShopFileService;
+import com.ruoyi.inspect.service.WorkShopService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/workShop")
+@Api(tags = "杞﹂棿")
+public class WorkShopController {
+
+    private WorkShopService workShopService;
+    private WorkShopFileService workShopFileService;
+
+
+
+    @ApiOperation(value = "鏌ヨ杞﹂棿鍚嶇О")
+    @GetMapping("/selectWorkShop")
+    public Result selectInsOrderParameter(Page page, WorkShopDto workShopDto) {
+        return Result.success(workShopService.selectWorkShop(page, workShopDto));
+    }
+
+    @ApiOperation(value = "娣诲姞杞﹂棿鍚嶇О鏁版嵁")
+    @PostMapping("/addOrUpdateWorkShop")
+    public Result<?> addWorkShop(@RequestBody WorkShopDto workShopDto) {
+        return Result.success(workShopService.addWorkShop(workShopDto));
+    }
+
+    @ApiOperation(value = "鍒犻櫎妫�楠屽崟妯℃澘")
+    @DeleteMapping("/delWorkShop")
+    public Result<?> delWorkShop(Integer id) {
+        return Result.success(workShopService.delWorkShop(id));
+    }
+
+    @ApiOperation(value = "杞﹂棿鏂囦欢涓婁紶")
+    @PostMapping("/uploadFile")
+    public Result uploadFile(Integer id, MultipartFile file) {
+        return Result.success(workShopService.uploadFile(id,file));
+    }
+
+    @ApiOperation(value = "鏌ヨ杞﹂棿鏂囦欢")
+    @GetMapping("/fileList")
+    public Result fileList() {
+        return Result.success(workShopFileService.list());
+    }
+
+    @ApiOperation(value = "鍒犻櫎闄勪欢")
+    @DeleteMapping("/delFile")
+    public Result<?> delFile(Integer id) {
+        return Result.success(workShopFileService.removeById(id));
+    }
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkShopDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkShopDto.java
new file mode 100644
index 0000000..91aaea4
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkShopDto.java
@@ -0,0 +1,6 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.WorkShop;
+
+public class WorkShopDto extends WorkShop {
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopFileMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopFileMapper.java
new file mode 100644
index 0000000..1ed85b9
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopFileMapper.java
@@ -0,0 +1,12 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.WorkShopFile;
+
+/**
+ * 妫�楠屽崟涓嬬殑闄勪欢鍒楄〃 Mapper 鎺ュ彛
+ * @since 2025-03-17
+ */
+public interface WorkShopFileMapper extends BaseMapper<WorkShopFile> {
+
+ }
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopMapper.java
new file mode 100644
index 0000000..c89e4ad
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopMapper.java
@@ -0,0 +1,12 @@
+package com.ruoyi.inspect.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.inspect.pojo.WorkShop;
+
+/**
+ * @description 閽堝琛ㄣ�恮ork_shop(杞﹂棿鍚嶇О)銆戠殑鏁版嵁搴撴搷浣淢apper
+ * @createDate 2024-03-12 16:17:55
+ * @Entity com.yuanchu.mom.pojo.InsOrder
+ */
+public interface WorkShopMapper extends BaseMapper<WorkShop> {
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShop.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShop.java
new file mode 100644
index 0000000..9d8f950
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShop.java
@@ -0,0 +1,32 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 杞﹂棿鍚嶇О
+ * @TableName work_shop
+ */
+@Data
+@TableName("work_shop")
+public class WorkShop implements Serializable {
+
+    /**
+     * 涓婚敭id
+     */
+    @ApiModelProperty(value = "涓婚敭id")
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 缂栧彿
+     */
+    @ApiModelProperty(value = "杞﹂棿鍚嶇О")
+    private String name;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShopFile.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShopFile.java
new file mode 100644
index 0000000..3d4e4be
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShopFile.java
@@ -0,0 +1,47 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+
+@Getter
+@Setter
+@TableName("work_shop_file")
+@ApiModel(value = "WorkShopFile瀵硅薄", description = "杞﹂棿鍚嶇О鐨勯檮浠跺垪琛�")
+public class WorkShopFile {
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("鍏宠仈 妫�楠屽崟澶栭敭id")
+    private Integer workShopId;
+
+    @ApiModelProperty("绫诲瀷")
+    private Integer type;
+
+    @ApiModelProperty("闄勪欢璺緞")
+    private String fileUrl;
+
+    @ApiModelProperty("闄勪欢鍚嶇О")
+    private String fileName;
+
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    @ApiModelProperty("涓婁紶浜�")
+    @TableField(exist = false, select = false)
+    private String name;
+
+    @TableField(fill = FieldFill.INSERT)
+    @ApiModelProperty("涓婁紶鏃堕棿")
+    private LocalDateTime createTime;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopFileService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopFileService.java
new file mode 100644
index 0000000..322dab6
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopFileService.java
@@ -0,0 +1,12 @@
+package com.ruoyi.inspect.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.inspect.pojo.WorkShop;
+
+/**
+ * @description 閽堝琛ㄣ�恮ork_shop(杞﹂棿鍚嶇О)銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2024-03-17
+ */
+public interface WorkShopFileService extends IService<WorkShop> {
+    
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopService.java
new file mode 100644
index 0000000..aeef588
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopService.java
@@ -0,0 +1,23 @@
+package com.ruoyi.inspect.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.inspect.dto.WorkShopDto;
+import com.ruoyi.inspect.pojo.WorkShop;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @description 閽堝琛ㄣ�恮ork_shop(杞﹂棿鍚嶇О)銆戠殑鏁版嵁搴撴搷浣淪ervice
+ * @createDate 2024-03-17
+ */
+public interface WorkShopService extends IService<WorkShop> {
+
+    IPage<WorkShopDto> selectWorkShop(Page page, WorkShopDto workShopDto);
+
+    int addWorkShop(WorkShopDto workShopDto);
+
+    int delWorkShop(Integer id);
+
+    int uploadFile(Integer id, MultipartFile file);
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WorkShopServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WorkShopServiceImpl.java
new file mode 100644
index 0000000..bf21c2e
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WorkShopServiceImpl.java
@@ -0,0 +1,115 @@
+package com.ruoyi.inspect.service.impl;
+
+import cn.hutool.core.lang.UUID;
+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.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.inspect.dto.WorkShopDto;
+import com.ruoyi.inspect.mapper.*;
+import com.ruoyi.inspect.pojo.*;
+import com.ruoyi.inspect.service.*;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * @description 閽堝琛ㄣ�恮ork_shop(杞﹂棿鍚嶇О)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+ * @createDate 2024-03-12 16:17:55
+ */
+@Service
+public class WorkShopServiceImpl extends ServiceImpl<WorkShopMapper, WorkShop> implements WorkShopService {
+
+    @Resource
+    private WorkShopMapper workShopMapper;
+    @Resource
+    private WorkShopFileMapper workShopFileMapper;
+
+    @Value("${wordUrl}")
+    private String wordUrl;
+
+    @Value("${file.path}")
+    private String imgUrl;
+
+
+    @Override
+    public IPage<WorkShopDto> selectWorkShop(Page page, WorkShopDto workShopDto) {
+        return workShopMapper.selectPage(page, QueryWrappers.queryWrappers(workShopDto));
+    }
+
+    @Override
+    public int addWorkShop(WorkShopDto workShopDto) {
+        if (workShopDto.getId() == null) {
+            return workShopMapper.insert(workShopDto);
+        } else {
+            return workShopMapper.updateById(workShopDto);
+        }
+    }
+
+    @Override
+    public int delWorkShop(Integer id) {
+        return workShopMapper.deleteById(id);
+    }
+    
+    @Override
+    public int uploadFile(Integer id, MultipartFile file) {
+        String username = SecurityUtils.getUsername();
+        String urlString;
+        String pathName;
+        String path;
+        String filename = file.getOriginalFilename();
+        String contentType = file.getContentType();
+        WorkShopFile workShopFile = new WorkShopFile();
+        workShopFile.setWorkShopId(id);
+        workShopFile.setFileName(filename);
+        if (contentType != null && contentType.startsWith("image/")) {
+            // 鏄浘鐗�
+            path = imgUrl;
+            workShopFile.setType(1);
+        } else {
+            // 鏄枃浠�
+            path = wordUrl;
+            workShopFile.setType(2);
+        }
+        try {
+            // 1. 瑙f瀽缁濆璺緞锛堜紭鍏堜娇鐢ㄩ厤缃殑缁濆璺緞锛屽惁鍒欏熀浜庨」鐩牴鐩綍锛�
+            String basePath = imgUrl.startsWith(File.separator) ? imgUrl : System.getProperty("user.dir") + File.separator + imgUrl;
+            File realpath = new File(basePath);
+
+            // 2. 鍒涘缓鐩綍锛堣褰曟棩蹇楋紝妫�鏌ユ槸鍚︽垚鍔燂級
+            if (!realpath.exists()) {
+                if (!realpath.mkdirs()) {
+                    System.err.println("鐩綍鍒涘缓澶辫触锛歿}");
+                    return 0;
+                }
+            }
+
+            // 3. 鐢熸垚鍞竴鏂囦欢鍚�
+            String uuid = UUID.randomUUID().toString().replace("-", "");
+            String suffix = filename.substring(filename.lastIndexOf("."));
+            pathName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + "_" + uuid + suffix;
+            File targetFile = new File(realpath, pathName);
+
+            // 4. 淇濆瓨鏂囦欢
+            file.transferTo(targetFile);
+            workShopFile.setFileUrl(pathName);
+            workShopFile.setName(username);
+            return workShopFileMapper.insert(workShopFile);
+        } catch (Exception e) {
+            e.printStackTrace();
+            System.err.println("闄勪欢涓婁紶閿欒");
+            return 0;
+        }
+    }
+
+}
+
+
+
+

--
Gitblit v1.9.3