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