liding
2025-03-18 d34aa4f61a58b1833eaeda5e3abbb553578c6bcc
车间管理模块,产品车间绑定
已修改4个文件
已添加9个文件
347 ■■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/controller/CapacityScopeController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/pojo/Product.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/ProductService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/WorkShopController.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/dto/WorkShopDto.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopFileMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/WorkShopMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShop.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/WorkShopFile.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopFileService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/WorkShopService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/WorkShopServiceImpl.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
    }
}
basic-server/src/main/java/com/ruoyi/basic/pojo/Product.java
@@ -54,4 +54,16 @@
     * å¤–键:structure_test_object表id
     */
    private Integer objectId;
    /**
     * å¤–键:work_shop表id
     */
    @ApiModelProperty(value = "车间id")
    private Integer workShopId;
    /**
     * è½¦é—´å
     */
    @ApiModelProperty(value = "车间名称")
    private String workShopName;
}
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);
}
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));
    }
}
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));
    }
}
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 {
}
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> {
 }
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 é’ˆå¯¹è¡¨ã€work_shop(车间名称)】的数据库操作Mapper
 * @createDate 2024-03-12 16:17:55
 * @Entity com.yuanchu.mom.pojo.InsOrder
 */
public interface WorkShopMapper extends BaseMapper<WorkShop> {
}
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;
}
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;
}
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 é’ˆå¯¹è¡¨ã€work_shop(车间名称)】的数据库操作Service
 * @createDate 2024-03-17
 */
public interface WorkShopFileService extends IService<WorkShop> {
}
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 é’ˆå¯¹è¡¨ã€work_shop(车间名称)】的数据库操作Service
 * @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);
}
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 é’ˆå¯¹è¡¨ã€work_shop(车间名称)】的数据库操作Service实现
 * @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. è§£æžç»å¯¹è·¯å¾„(优先使用配置的绝对路径,否则基于项目根目录)
            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;
        }
    }
}