From e713714eb3796ac4d67495f823aa633535b3ad15 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 26 三月 2025 13:33:19 +0800
Subject: [PATCH] 1.外购件检验 2.标准方法导入
---
inspect-server/src/main/java/com/ruoyi/inspect/dto/InspectionPurchasedDto.java | 13 +
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InspectionPurchasedServiceImpl.java | 95 +++++++++
basic-server/src/main/java/com/ruoyi/basic/service/WorkShopFileService.java | 4
basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopFileServiceImpl.java | 43 ++++
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InspectionPurchasedMapper.java | 16 +
basic-server/src/main/java/com/ruoyi/basic/controller/WorkShopController.java | 8
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InspectionPurchased.java | 73 +++++++
inspect-server/src/main/java/com/ruoyi/inspect/service/InspectionPurchasedService.java | 26 ++
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardMethod.java | 10 +
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodServiceImpl.java | 190 ++++++++++--------
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java | 33 ++
inspect-server/src/main/java/com/ruoyi/inspect/controller/InspectionPurchasedController.java | 49 ++++
12 files changed, 468 insertions(+), 92 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/WorkShopController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/WorkShopController.java
index 624b04b..b66db32 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/WorkShopController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/WorkShopController.java
@@ -34,7 +34,7 @@
return Result.success(workShopService.addWorkShop(workShopDto));
}
- @ApiOperation(value = "鍒犻櫎妫�楠屽崟妯℃澘")
+ @ApiOperation(value = "鍒犻櫎杞﹂棿鍚嶇О鏁版嵁")
@DeleteMapping("/delWorkShop")
public Result<?> delWorkShop(Integer id) {
return Result.success(workShopService.delWorkShop(id));
@@ -57,4 +57,10 @@
public Result<?> delFile(Integer id) {
return Result.success(workShopFileService.delFile(id));
}
+
+ @ApiOperation(value = "鏌ヨ闄勪欢鍒楄〃")
+ @GetMapping("/partFileList")
+ public Result partFileList(Page page,@RequestParam("partNo") String partNo) {
+ return Result.success(workShopFileService.partFileList(page,partNo));
+ }
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/StandardMethod.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/StandardMethod.java
index 6d5ec08..d636789 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/StandardMethod.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/StandardMethod.java
@@ -1,5 +1,6 @@
package com.ruoyi.basic.pojo;
+import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
@@ -21,38 +22,47 @@
@TableId(type = IdType.AUTO)
private Integer id;
+ @ExcelProperty("棰嗗煙")
private String field;
+ @ExcelProperty("妫�楠屽璞�")
@ApiModelProperty("妫�楠屽璞�")
private String structureTestObjectId;
/**
* 鏍囧噯缂栧彿
*/
+ @ExcelProperty("鏍囧噯缂栧彿")
@ApiModelProperty(value = "鏍囧噯缂栧彿")
private String code;
/**
* 鏍囧噯鏂规硶
*/
+ @ExcelProperty("鏍囧噯鎻忚堪")
@ApiModelProperty(value = "鏍囧噯鎻忚堪")
private String name;
+ @ExcelProperty("鏍囧噯鎻忚堪EN")
@ApiModelProperty(value = "鏍囧噯鎻忚堪EN")
private String nameEn;
/**
* 澶囨敞
*/
+ @ExcelProperty("澶囨敞")
@ApiModelProperty(value = "澶囨敞")
private String remark;
+ @ExcelProperty("璧勮川")
@ApiModelProperty(value = "璧勮川")
private String qualificationId;
+ @ExcelProperty("鏄惁浜у搧鏍囧噯")
@ApiModelProperty(value = "鏄惁浜у搧鏍囧噯")
private Integer isProduct;
+ @ExcelProperty("鏄惁鍚敤")
@ApiModelProperty(value = "鏄惁鍚敤")
private Integer isUse;
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/WorkShopFileService.java b/basic-server/src/main/java/com/ruoyi/basic/service/WorkShopFileService.java
index 562ffa1..987ef12 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/WorkShopFileService.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/WorkShopFileService.java
@@ -1,6 +1,8 @@
package com.ruoyi.basic.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.basic.pojo.WorkShopFile;
@@ -11,4 +13,6 @@
public interface WorkShopFileService extends IService<WorkShopFile> {
int delFile(Integer id);
+
+ IPage<WorkShopFile> partFileList(Page page,String partNo);
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodServiceImpl.java
index 44566bd..e78edbf 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodServiceImpl.java
@@ -1,7 +1,10 @@
package com.ruoyi.basic.service.impl;
import cn.hutool.json.JSONUtil;
-import cn.hutool.poi.excel.ExcelUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -131,22 +134,115 @@
@Transactional(rollbackFor = Exception.class)
@Override
public void inputExcel(MultipartFile file) throws IOException {
+
// 瀛樺偍妫�娴嬪璞ist
- List<Object> structureTestObjectIdList = new ArrayList<>();
+ Set<Object> structureTestObjectIdSet = new HashSet<>();
List<StandardMethod> result = new ArrayList<>();
- ExcelUtil.readBySax(file.getInputStream(), 0, (i, l, list) -> {
- // 鍘婚櫎绗竴琛岃〃澶�
- if (l == 0) {
- return;
+
+ EasyExcel.read(file.getInputStream(), StandardMethod.class, new AnalysisEventListener<StandardMethod>() {
+ @Override
+ public void invoke(StandardMethod data, AnalysisContext context) {
+ // 鍘婚櫎绗竴琛岃〃澶达紝EasyExcel 鑷姩澶勭悊琛ㄥご锛岃繖閲屾棤闇�棰濆澶勭悊
+ // 瀛樺偍鍞竴妫�娴嬪璞�
+ String structureTestObjectId = data.getStructureTestObjectId();
+ Object idObj = getFirstIdFromJson(structureTestObjectId);
+ if (idObj != null) {
+ structureTestObjectIdSet.add(idObj);
+ }
+ result.add(data);
}
- // 瀛樺偍鍞竴妫�娴嬪璞�
- if (!structureTestObjectIdList.contains(list.get(2))) {
- structureTestObjectIdList.add(list.get(2));
+
+ @Override
+ public void doAfterAllAnalysed(AnalysisContext context) {
+ // 瑙f瀽瀹屾垚鍚庢墽琛屾坊鍔犳搷浣�
+ addStructureTest(new ArrayList<>(structureTestObjectIdSet), result);
}
- StandardMethod standardMethod = formatData(list);
- result.add(standardMethod);
- });
- addStructureTest(structureTestObjectIdList, result);
+ }).sheet().doRead();
+ }
+
+ private Object getFirstIdFromJson(String json) {
+ // 绠�鍗曡В鏋� JSON 鏁扮粍鑾峰彇绗竴涓厓绱�
+ if (json != null && json.startsWith("[") && json.contains(",")) {
+ return json.substring(2, json.indexOf(","));
+ } else if (json != null && json.startsWith("[")) {
+ return json.substring(1, json.length() - 1);
+ }
+ return null;
+ }
+
+ public void addStructureTest(List<Object> structureTestObjectIdList, List<StandardMethod> standardMethodList) {
+ List<StandardMethod> updateList = new ArrayList<>();
+ List<Integer> deleteListId = new ArrayList<>();
+ List<StandardMethod> addList = new ArrayList<>();
+
+ // 鍏堝皢 Excel 鏁版嵁鎸� key 鍒嗙粍
+ Map<String, StandardMethod> excelDataMap = new HashMap<>();
+ for (StandardMethod excelMethod : standardMethodList) {
+ String key = generateKey(excelMethod);
+ excelDataMap.put(key, excelMethod);
+ }
+
+// if (!structureTestObjectIdList.isEmpty()) {
+ // 浠� excel 涓殑缁勫悕鏌ヨ鏁版嵁搴撲腑鐨勫垎缁�
+ List<StandardMethod> allDbMethods = new ArrayList<>();
+ for (Object j : structureTestObjectIdList) {
+ List<StandardMethod> standardMethods = baseMapper.selectList(new LambdaQueryWrapper<StandardMethod>()
+ .like(StandardMethod::getStructureTestObjectId, "\"" + j + "\""));
+ allDbMethods.addAll(standardMethods);
+ }
+
+ // 灏嗘暟鎹簱鏁版嵁鎸� key 鍒嗙粍
+ Map<String, StandardMethod> dbDataMap = new HashMap<>();
+ for (StandardMethod dbMethod : allDbMethods) {
+ String key = generateKey(dbMethod);
+ dbDataMap.put(key, dbMethod);
+ }
+
+ // 澶勭悊鏇存柊鍜屾柊澧�
+ for (Map.Entry<String, StandardMethod> entry : excelDataMap.entrySet()) {
+ String key = entry.getKey();
+ StandardMethod excelMethod = entry.getValue();
+ StandardMethod dbMethod = dbDataMap.get(key);
+ if (dbMethod != null) {
+ // 鏇存柊
+ excelMethod.setId(dbMethod.getId());
+ updateList.add(excelMethod);
+ } else {
+ // 鏂板
+ addList.add(excelMethod);
+ }
+ }
+
+ // 澶勭悊鍒犻櫎
+ for (Map.Entry<String, StandardMethod> entry : dbDataMap.entrySet()) {
+ String key = entry.getKey();
+ if (!excelDataMap.containsKey(key)) {
+ StandardMethod dbMethod = entry.getValue();
+ deleteListId.add(dbMethod.getId());
+ }
+ }
+
+
+ if (!addList.isEmpty()) {
+ // 鏂板
+ baseMapper.insertBatchSomeColumn(addList);
+ }
+
+ if (!deleteListId.isEmpty()) {
+ // 鍒犻櫎
+ baseMapper.deleteBatchIds(deleteListId);
+ }
+
+ if (!updateList.isEmpty()) {
+ // 鏇存柊
+ updateList.forEach(i -> {
+ baseMapper.updateById(i);
+ });
+ }
+ }
+
+ private String generateKey(StandardMethod method) {
+ return method.getStructureTestObjectId() + "-" + method.getCode() + "-" + method.getField();
}
// 鏍煎紡鍖栨暟鎹�
@@ -185,74 +281,6 @@
return standardMethod;
}
- // 鏂板鏁版嵁
- public void addStructureTest(List<Object> structureTestObjectIdList, List<StandardMethod> standardMethodList) {
- List<StandardMethod> updateList = new ArrayList<>();
- List<Integer> deleteListId = new ArrayList<>();
- List<StandardMethod> addList = new ArrayList<>();
- if (!structureTestObjectIdList.isEmpty()) {
- // 寰幆excel閲岄潰鐨勫垎缁�
- structureTestObjectIdList.forEach(j -> {
- // 浠xcel涓殑缁勫悕鏌ヨ鏁版嵁搴撲腑鐨勫垎缁�
- List<StandardMethod> standardMethods = baseMapper.selectList(Wrappers.<StandardMethod>lambdaQuery()
- .like(StandardMethod::getStructureTestObjectId, "\"" + j + "\""));
- // 灏嗙粨鏋滃惊鐜尮閰�
- for (int i = 0; i < standardMethods.size(); i++) {
- boolean isExistence = false;
- for (int i1 = 0; i1 < standardMethodList.size(); i1++) {
- // 鏇存柊
- if (standardMethods.get(i).getStructureTestObjectId().equals(standardMethodList.get(i1).getStructureTestObjectId())
- && standardMethods.get(i).getCode().equals(standardMethodList.get(i1).getCode())
- && standardMethods.get(i).getField().equals(standardMethodList.get(i1).getField())) {
- // 缁檈xcel鏁版嵁璧嬪�糹d鍋氭洿鏂�
- standardMethodList.get(i1).setId(standardMethods.get(i).getId());
- // 鏇存柊
- updateList.add(standardMethodList.get(i1));
- isExistence = true;
- break;
- }
- }
- // 鍒犻櫎
- if (!isExistence) {
- deleteListId.add(standardMethods.get(i).getId());
- }
- }
- for (int i = 0; i < standardMethodList.size(); i++) {
- if (standardMethodList.get(i).getStructureTestObjectId().contains("\"" + j + "\"")) {
- boolean isExistence = false;
- for (int i1 = 0; i1 < standardMethods.size(); i1++) {
- if (standardMethods.get(i1).getStructureTestObjectId().equals(standardMethodList.get(i).getStructureTestObjectId())
- && standardMethods.get(i1).getCode().equals(standardMethodList.get(i).getCode())
- && standardMethods.get(i1).getField().equals(standardMethodList.get(i).getField())) {
- isExistence = true;
- break;
- }
- }
- // 鏂板
- if (!isExistence) {
- addList.add(standardMethodList.get(i));
- }
- }
- }
- });
- }
- if (!addList.isEmpty()) {
- // 鏂板
- baseMapper.insertBatchSomeColumn(addList);
- }
-
- if (!deleteListId.isEmpty()) {
- // 鍒犻櫎
- baseMapper.deleteBatchIds(deleteListId);
- }
-
- if (!updateList.isEmpty()) {
- // 鏇存柊
- updateList.forEach(i -> {
- baseMapper.updateById(i);
- });
- }
- }
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
index 06567df..0c9167c 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -2,23 +2,19 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.mapper.*;
+import com.ruoyi.basic.pojo.*;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.basic.dto.CopyStandardProductListDto;
import com.ruoyi.basic.dto.InsSampleReceiveDto;
import com.ruoyi.basic.dto.ProductDto;
import com.ruoyi.basic.dto.ResetTreeDragDTO;
-import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
-import com.ruoyi.basic.mapper.StandardProductListMapper;
-import com.ruoyi.basic.mapper.StandardProductListSupplierAskMapper;
-import com.ruoyi.basic.mapper.StandardTreeMapper;
-import com.ruoyi.basic.pojo.StandardProductList;
-import com.ruoyi.basic.pojo.StandardProductListSupplierAsk;
-import com.ruoyi.basic.pojo.StandardTree;
import com.ruoyi.basic.service.StandardProductListService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@@ -47,6 +43,10 @@
private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
private StandardProductListSupplierAskMapper standardProductListSupplierAskMapper;
+
+ private ProductPartMapper productPartMapper;
+
+ private StructureTestObjectPartMapper structureTestObjectPartMapper;
@Override
@@ -185,6 +185,25 @@
}
}
+ ProductPart productPart = productPartMapper.selectOne(new LambdaQueryWrapper<ProductPart>().eq(ProductPart::getPartNo, insSample.getPartNo()));
+ if (productPart != null){
+ if (StringUtils.isNotEmpty(productPart.getInspectionItem())){
+ String inspectionItem = productPart.getInspectionItem();
+ list = list.stream()
+ .filter(standardProductList -> inspectionItem.equals(standardProductList.getInspectionItem()))
+ .collect(Collectors.toList());
+ }
+ }
+
+ StructureTestObjectPart structureTestObjectPart = structureTestObjectPartMapper.selectOne(new LambdaQueryWrapper<StructureTestObjectPart>().eq(StructureTestObjectPart::getPartNo, insSample.getPartNo()));
+ if (structureTestObjectPart != null){
+ if (StringUtils.isNotEmpty(structureTestObjectPart.getInspectionItem())){
+ String inspectionItem = structureTestObjectPart.getInspectionItem();
+ list = list.stream()
+ .filter(standardProductList -> inspectionItem.equals(standardProductList.getInspectionItem()))
+ .collect(Collectors.toList());
+ }
+ }
return list;
}
diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopFileServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopFileServiceImpl.java
index 0b4801d..a0a3f6c 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopFileServiceImpl.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/WorkShopFileServiceImpl.java
@@ -1,9 +1,11 @@
package com.ruoyi.basic.service.impl;
-
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.basic.mapper.WorkShopFileMapper;
-import com.ruoyi.basic.pojo.WorkShopFile;
+import com.ruoyi.basic.mapper.*;
+import com.ruoyi.basic.pojo.*;
import com.ruoyi.basic.service.WorkShopFileService;
import com.ruoyi.common.utils.file.MinioUtils;
import org.springframework.beans.factory.annotation.Value;
@@ -20,6 +22,17 @@
@Resource
private WorkShopFileMapper workShopFileMapper;
+
+ @Resource
+ private ProductPartMapper productPartMapper;
+
+ @Resource
+ private ProductMapper productMapper;
+ @Resource
+ private StructureTestObjectPartMapper structureTestObjectPartMapper;
+
+ @Resource
+ private StructureTestObjectMapper structureTestObjectMapper;
@Resource
private MinioUtils minioUtils;
@@ -52,6 +65,30 @@
return 0;
}
}
+
+ @Override
+ public IPage<WorkShopFile> partFileList(Page page, String partNo) {
+ StructureTestObject structureTestObject = findStructureTestObjectByPartNo(partNo);
+ if (structureTestObject != null && structureTestObject.getWorkShopId() != null) {
+ return workShopFileMapper.selectPage(page, new LambdaQueryWrapper<WorkShopFile>().eq(WorkShopFile::getWorkShopId, structureTestObject.getWorkShopId()));
+ }
+ return null;
+ }
+
+ private StructureTestObject findStructureTestObjectByPartNo(String partNo) {
+ ProductPart productPart = productPartMapper.selectOne(new LambdaQueryWrapper<ProductPart>().eq(ProductPart::getPartNo, partNo));
+ if (productPart != null) {
+ Product product = productMapper.selectById(productPart.getProductId());
+ if (product != null) {
+ return structureTestObjectMapper.selectById(product.getObjectId());
+ }
+ }
+ StructureTestObjectPart structureTestObjectPart = structureTestObjectPartMapper.selectOne(new LambdaQueryWrapper<StructureTestObjectPart>().eq(StructureTestObjectPart::getPartNo, partNo));
+ if (structureTestObjectPart != null) {
+ return structureTestObjectMapper.selectById(structureTestObjectPart.getTestObjectId());
+ }
+ return null;
+ }
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InspectionPurchasedController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InspectionPurchasedController.java
new file mode 100644
index 0000000..bab4e46
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InspectionPurchasedController.java
@@ -0,0 +1,49 @@
+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.InspectionPurchasedDto;
+import com.ruoyi.inspect.service.InspectionPurchasedService;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 澶栬喘浠舵楠� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author ld
+ * @since 2025-03-25 11:22:56
+ */
+@RestController
+@RequestMapping("/inspectionPurchased")
+@AllArgsConstructor
+public class InspectionPurchasedController {
+
+ private InspectionPurchasedService inspectionPurchasedService;
+
+ @ApiOperation("鏌ヨ鍒楄〃")
+ @GetMapping("/selectInspection")
+ public Result selectInspectionPurchased(Page page, InspectionPurchasedDto inspectionPurchasedDto) {
+ return Result.success(inspectionPurchasedService.selectInspectionPurchased(page,inspectionPurchasedDto));
+ }
+
+ @ApiOperation(value = "娣诲姞澶栬喘浠舵楠屾暟鎹�")
+ @PostMapping("/addOrUpdateInspection")
+ public Result<?> addOrUpdateInspection(@RequestBody InspectionPurchasedDto inspectionPurchasedDto) {
+ return Result.success(inspectionPurchasedService.addOrUpdateInspection(inspectionPurchasedDto));
+ }
+
+ @ApiOperation(value = "鏇存柊鎻愪氦澶栬喘浠舵楠屾暟鎹�")
+ @PostMapping("/UpdateInspection")
+ public Result<?> UpdateInspection(InspectionPurchasedDto inspectionPurchasedDto) throws Exception {
+ return Result.success(inspectionPurchasedService.UpdateInspection(inspectionPurchasedDto));
+ }
+
+ @ApiOperation(value = "鍒犻櫎澶栬喘浠舵楠�")
+ @DeleteMapping("/delInspection")
+ public Result<?> delWorkShop(Integer id) {
+ return Result.success(inspectionPurchasedService.delInspection(id));
+ }
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/InspectionPurchasedDto.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InspectionPurchasedDto.java
new file mode 100644
index 0000000..4213cbb
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/InspectionPurchasedDto.java
@@ -0,0 +1,13 @@
+package com.ruoyi.inspect.dto;
+
+import com.ruoyi.inspect.pojo.InspectionPurchased;
+import lombok.Data;
+import org.springframework.web.multipart.MultipartFile;
+
+
+@Data
+public class InspectionPurchasedDto extends InspectionPurchased {
+
+ private MultipartFile file;
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InspectionPurchasedMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InspectionPurchasedMapper.java
new file mode 100644
index 0000000..88f1bcc
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InspectionPurchasedMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.inspect.mapper;
+
+import com.ruoyi.inspect.pojo.InspectionPurchased;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 澶栬喘浠舵楠� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author ld
+ * @since 2025-03-25 01:58:21
+ */
+public interface InspectionPurchasedMapper extends BaseMapper<InspectionPurchased> {
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InspectionPurchased.java b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InspectionPurchased.java
new file mode 100644
index 0000000..e0cdb22
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/pojo/InspectionPurchased.java
@@ -0,0 +1,73 @@
+package com.ruoyi.inspect.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * <p>
+ * 澶栬喘浠舵楠�
+ * </p>
+ *
+ * @author ld
+ * @since 2025-03-25 01:58:21
+ */
+@TableName("inspection_purchased")
+@ApiModel(value = "InspectionPurchased瀵硅薄", description = "澶栬喘浠舵楠�")
+@Data
+public class InspectionPurchased implements Serializable {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("浜у搧鍚嶇О")
+ private String name;
+
+ @ApiModelProperty("鏉ユ枡鏁伴噺")
+ private String num;
+
+ @ApiModelProperty("渚涜揣鍘傚")
+ private String supplier;
+
+ @ApiModelProperty("璁㈠崟鍙�")
+ private String orderNum;
+
+ @ApiModelProperty("sp鍙�")
+ private String spNum;
+
+ @ApiModelProperty("濮旀墭缂栧彿")
+ private String entrustmentNo;
+
+ @ApiModelProperty("閫昏緫鐘舵��")
+ @TableLogic
+ private String state;
+
+ @ApiModelProperty("妫�楠岀姸鎬�")
+ private String inspectionStatus;
+
+ @ApiModelProperty("澶囨敞")
+ private String remark;
+
+ @ApiModelProperty("鏂囦欢鍚�")
+ private String fileName;
+
+ @ApiModelProperty("鏂囦欢璺緞")
+ private String fileUrl;
+
+ @ApiModelProperty("鏂囦欢棰勮璺緞")
+ private String filePreviewUrl;
+
+ @ApiModelProperty("妫�楠岄」")
+ private String inspectionItems;
+
+ @ApiModelProperty("妫�娴嬬粨鏋�")
+ private String result;
+
+ @ApiModelProperty("绫诲瀷")
+ private Integer type;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InspectionPurchasedService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InspectionPurchasedService.java
new file mode 100644
index 0000000..0713915
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/InspectionPurchasedService.java
@@ -0,0 +1,26 @@
+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.InspectionPurchasedDto;
+import com.ruoyi.inspect.pojo.InspectionPurchased;
+
+/**
+ * <p>
+ * 澶栬喘浠舵楠� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author ld
+ * @since 2025-03-25 11:22:56
+ */
+public interface InspectionPurchasedService extends IService<InspectionPurchased> {
+
+ int addOrUpdateInspection(InspectionPurchasedDto inspectionPurchasedDto);
+
+ int delInspection(Integer id);
+
+ IPage<InspectionPurchasedDto> selectInspectionPurchased(Page page, InspectionPurchasedDto inspectionPurchasedDto);
+
+ int UpdateInspection(InspectionPurchasedDto inspectionPurchasedDto) throws Exception;
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InspectionPurchasedServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InspectionPurchasedServiceImpl.java
new file mode 100644
index 0000000..31c5bec
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InspectionPurchasedServiceImpl.java
@@ -0,0 +1,95 @@
+package com.ruoyi.inspect.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.MinioResult;
+import com.ruoyi.common.utils.QueryWrappers;
+import com.ruoyi.common.utils.file.MinioUtils;
+import com.ruoyi.framework.exception.ErrorException;
+import com.ruoyi.inspect.dto.InspectionPurchasedDto;
+import com.ruoyi.inspect.mapper.InspectionPurchasedMapper;
+import com.ruoyi.inspect.pojo.InspectionPurchased;
+import com.ruoyi.inspect.service.InspectionPurchasedService;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ * 澶栬喘浠舵楠� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author ld
+ * @since 2025-03-25 11:22:56
+ */
+@Service
+public class InspectionPurchasedServiceImpl extends ServiceImpl<InspectionPurchasedMapper, InspectionPurchased> implements InspectionPurchasedService {
+
+ @Resource
+ private InspectionPurchasedMapper inspectionPurchasedMapper;
+
+ @Resource
+ private MinioUtils minioUtils;
+
+ @Value("${minio.bucketName}")
+ private String bucketName;
+
+ @Override
+ public int addOrUpdateInspection(InspectionPurchasedDto inspectionPurchasedDto) {
+ if (inspectionPurchasedDto.getId() == null) {
+ inspectionPurchasedDto.setInspectionStatus(String.valueOf(0));
+
+ return inspectionPurchasedMapper.insert(inspectionPurchasedDto);
+ } else {
+ return inspectionPurchasedMapper.updateById(inspectionPurchasedDto);
+ }
+ }
+
+ @Override
+ public int delInspection(Integer id) {
+ return inspectionPurchasedMapper.deleteById(id);
+ }
+
+ @Override
+ public IPage<InspectionPurchasedDto> selectInspectionPurchased(Page page, InspectionPurchasedDto inspectionPurchasedDto) {
+ return inspectionPurchasedMapper.selectPage(page, QueryWrappers.queryWrappers(inspectionPurchasedDto));
+ }
+
+ @Override
+ public int UpdateInspection(InspectionPurchasedDto inspectionPurchasedDto) throws Exception {
+ int insertResult = 0;
+ InspectionPurchased inspectionPurchased = inspectionPurchasedMapper.selectById(inspectionPurchasedDto.getId());
+ if (ObjectUtils.isNotEmpty(inspectionPurchasedDto.getFile())) {
+ if (ObjectUtils.isNotEmpty(inspectionPurchased.getFileUrl())){
+ if (inspectionPurchased != null && inspectionPurchased.getFileUrl() != null) {
+ // 妫�鏌� MinIO 涓枃浠舵槸鍚﹀瓨鍦�
+ if (minioUtils.objectExists(bucketName, inspectionPurchased.getFileUrl())) {
+ // 鍏堝垹闄� MinIO 涓殑瀵硅薄
+ minioUtils.removeObjectsResult(bucketName, inspectionPurchased.getFileUrl());
+ }
+ }
+ }
+ try {
+ String contentType = inspectionPurchasedDto.getFile().getContentType();
+ String category = contentType != null && contentType.startsWith("image/") ? "images" : "docs";
+ MinioResult upload = minioUtils.upload(bucketName, inspectionPurchasedDto.getFile(), true);
+ // 璁板綍瀛樺偍璺緞
+ inspectionPurchased.setFileUrl(upload.getBucketFileName());
+ inspectionPurchased.setFilePreviewUrl(upload.getPreviewExpiry());
+ inspectionPurchased.setType(category.equals("images") ? 1 : 2);
+ // 鏁版嵁搴撴搷浣�
+ insertResult = inspectionPurchasedMapper.updateById(inspectionPurchased);
+ if (insertResult <= 0) {
+ throw new ErrorException("鏁版嵁搴撴彃鍏ュけ璐�");
+ }
+ return insertResult;
+ } catch (Exception e) {
+ throw new Exception("绯荤粺寮傚父: ", e);
+ }
+ }
+ return insertResult;
+ }
+}
--
Gitblit v1.9.3