From bcbff529977768c5c80714f45d52b4f36629d236 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期一, 16 六月 2025 18:00:30 +0800
Subject: [PATCH] 1.生产加工 2.文件上传

---
 ruoyi-common/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java           |    3 +
 main-business/src/main/java/com/ruoyi/business/entity/ProductionInventory.java               |    7 +++
 main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java          |   25 +++++++++++-
 ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java    |   12 ++---
 main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java   |   20 +++++-----
 main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java |   28 ++++++++++----
 main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java                           |    5 ++
 main-business/src/main/java/com/ruoyi/business/service/ArchiveService.java                   |    5 ++
 main-business/src/main/java/com/ruoyi/business/controller/ArchiveController.java             |    8 ++++
 ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java             |    7 +--
 10 files changed, 87 insertions(+), 33 deletions(-)

diff --git a/main-business/src/main/java/com/ruoyi/business/controller/ArchiveController.java b/main-business/src/main/java/com/ruoyi/business/controller/ArchiveController.java
index 6abe09d..1e7cefe 100644
--- a/main-business/src/main/java/com/ruoyi/business/controller/ArchiveController.java
+++ b/main-business/src/main/java/com/ruoyi/business/controller/ArchiveController.java
@@ -43,6 +43,14 @@
     }
 
     /**
+     * 鏍规嵁id鏌ヨ鏂囦欢鍒楄〃
+     */
+    @GetMapping("/fileList")
+    public R fileList(ArchiveDto archiveDto) {
+        return R.ok( archiveService.fileList(archiveDto));
+    }
+
+    /**
      * 妗f淇℃伅琛ㄥ垹闄�
      */
     @DeleteMapping("/delArchive")
diff --git a/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java b/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java
index e8b57e2..0587fc1 100644
--- a/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java
+++ b/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java
@@ -1,10 +1,15 @@
 package com.ruoyi.business.dto;
 
+import com.ruoyi.basic.entity.StorageAttachment;
 import com.ruoyi.business.entity.Archive;
 import lombok.Data;
+
+import java.util.List;
 
 @Data
 public class ArchiveDto extends Archive {
 
     private Long treeId;
+
+    private List<StorageAttachment> attachments;
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/entity/ProductionInventory.java b/main-business/src/main/java/com/ruoyi/business/entity/ProductionInventory.java
index 2bad8a1..678c1ab 100644
--- a/main-business/src/main/java/com/ruoyi/business/entity/ProductionInventory.java
+++ b/main-business/src/main/java/com/ruoyi/business/entity/ProductionInventory.java
@@ -46,4 +46,11 @@
      */
     @TableField(value = "used_quantity")
     private Integer usedQuantity;
+
+    /**
+     * 姝e紡搴搃d
+     */
+    @TableField(value = "official_id")
+    private Long officialId;
+
 }
\ No newline at end of file
diff --git a/main-business/src/main/java/com/ruoyi/business/service/ArchiveService.java b/main-business/src/main/java/com/ruoyi/business/service/ArchiveService.java
index 69d79ef..2be2e11 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/ArchiveService.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/ArchiveService.java
@@ -2,9 +2,12 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.entity.StorageAttachment;
 import com.ruoyi.business.dto.ArchiveDto;
 import com.ruoyi.business.entity.Archive;
 import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
 
 /**
  * <p>
@@ -21,4 +24,6 @@
     int addOrEditArchive(ArchiveDto archiveDto);
 
     int delByIds(Long[] ids);
+
+    List<StorageAttachment> fileList(ArchiveDto archiveDto);
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java
index a00c56e..b5553a5 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/ArchiveServiceImpl.java
@@ -5,6 +5,8 @@
 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.entity.StorageAttachment;
+import com.ruoyi.basic.service.StorageAttachmentService;
 import com.ruoyi.business.dto.ArchiveDto;
 import com.ruoyi.business.entity.Archive;
 import com.ruoyi.business.mapper.ArchiveMapper;
@@ -13,7 +15,12 @@
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.Objects;
+
+import static com.ruoyi.common.constant.StorageAttachmentConstants.StorageAttachmentFile;
+import static com.ruoyi.common.enums.StorageAttachmentRecordType.Archives;
+
 
 /**
  * <p>
@@ -29,6 +36,10 @@
 
     private final ArchiveMapper archiveMapper;
 
+    private final StorageAttachmentService storageAttachmentService;
+
+
+
     @Override
     public IPage<Archive> selectArchiveList(Page page, ArchiveDto archiveDto) {
         LambdaQueryWrapper<Archive> queryWrapper = new LambdaQueryWrapper<>();
@@ -40,12 +51,14 @@
     public int addOrEditArchive(ArchiveDto archiveDto) {
         Archive archive = new Archive();
         BeanUtils.copyProperties(archiveDto, archive);
+        int i ;
         if (Objects.isNull(archiveDto.getId())) {
-
-            return archiveMapper.insert(archive);
+            i= archiveMapper.insert(archive);
         } else {
-            return archiveMapper.updateById(archive);
+            i= archiveMapper.updateById(archive);
         }
+        storageAttachmentService.saveStorageAttachment(archiveDto.getAttachments(), archive.getId(),Archives,StorageAttachmentFile);
+        return i;
     }
 
     @Override
@@ -61,4 +74,10 @@
         // 鎵ц鎵归噺閫昏緫鍒犻櫎
         return archiveMapper.update(null, updateWrapper);
     }
+
+    @Override
+    public List<StorageAttachment> fileList(ArchiveDto archiveDto) {
+        storageAttachmentService.selectStorageAttachments(archiveDto.getId(), Archives, StorageAttachmentFile);
+        return null;
+    }
 }
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java
index 13ce0a9..e8d378d 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/InspectionTaskServiceImpl.java
@@ -2,21 +2,21 @@
 
 import com.ruoyi.business.entity.InspectionTask;
 import com.ruoyi.business.mapper.InspectionTaskMapper;
-    import com.ruoyi.business.service.InspectionTaskService;
+import com.ruoyi.business.service.InspectionTaskService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
 
 /**
-* <p>
-    * 宸℃浠诲姟琛� 鏈嶅姟瀹炵幇绫�
-    * </p>
-*
-* @author ld
-* @since 2025-06-14
-*/
+ * <p>
+ * 宸℃浠诲姟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author ld
+ * @since 2025-06-14
+ */
 @Service
 @RequiredArgsConstructor
-    public class InspectionTaskServiceImpl extends ServiceImpl<InspectionTaskMapper, InspectionTask> implements InspectionTaskService {
+public class InspectionTaskServiceImpl extends ServiceImpl<InspectionTaskMapper, InspectionTask> implements InspectionTaskService {
 
-    }
+}
diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
index 28f3652..84bed74 100644
--- a/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
+++ b/main-business/src/main/java/com/ruoyi/business/service/impl/ProductionMasterServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.business.dto.ProductionMasterDto;
+import com.ruoyi.business.entity.OfficialInventory;
 import com.ruoyi.business.entity.Production;
 import com.ruoyi.business.entity.ProductionInventory;
 import com.ruoyi.business.entity.ProductionMaster;
@@ -13,6 +14,7 @@
 import com.ruoyi.business.mapper.ProductionMapper;
 import com.ruoyi.business.mapper.ProductionMasterMapper;
 import com.ruoyi.business.service.ProductionMasterService;
+import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -122,7 +124,7 @@
         BigDecimal totalTotalCost = BigDecimal.ZERO;
         BigDecimal totalEquipmentDepreciation = BigDecimal.ZERO;
         int totalProductionQuantity = 0;
-        StringBuilder coalBuilder = new StringBuilder("["); // 浼樺寲瀛楃涓叉嫾鎺�
+        StringBuilder coalBuilder = new StringBuilder();
 
         for (Production production : productionMasterDto.getProductionList()) {
             totalPurchasePrice = totalPurchasePrice.add(production.getPurchasePrice());
@@ -131,12 +133,12 @@
             totalTotalCost = totalTotalCost.add(production.getTotalCost());
             totalEquipmentDepreciation = totalEquipmentDepreciation.add(production.getEquipmentDepreciation());
             totalProductionQuantity += production.getProductionQuantity();
-            coalBuilder.append(production.getCoal()).append(",");
+            if (coalBuilder.length() > 0) {
+                coalBuilder.append(","); // 鍦ㄥ厓绱犱箣闂存坊鍔犻�楀彿
+            }
+            coalBuilder.append(production.getCoal());
         }
-
-        // 澶勭悊coal瀛楃涓叉嫾鎺�
-        String coalStr = coalBuilder.length() > 1 ?
-                coalBuilder.deleteCharAt(coalBuilder.length()-1).append("]").toString() : "[]";
+        String coalStr = coalBuilder.toString(); // 鐩存帴鑾峰彇鎷兼帴缁撴灉
 
         // 2. 鍒涘缓涓昏〃瀵硅薄
         ProductionMaster productionMaster = new ProductionMaster();
@@ -155,7 +157,7 @@
             productionMasterMapper.insert(productionMaster);
             masterId = productionMaster.getId(); // 鑾峰彇鏂扮敓鎴愮殑ID
         } else {
-            // 鍒犻櫎鍏宠仈瀛愯〃鏁版嵁锛堜娇鐢ㄦ洿楂樻晥鐨刬n鍒犻櫎锛�
+            // 鍒犻櫎鍏宠仈瀛愯〃鏁版嵁
             productionMapper.delete(new LambdaQueryWrapper<Production>()
                     .eq(Production::getProductionMasterId, masterId));
 
@@ -164,7 +166,17 @@
 
             productionMasterMapper.updateById(productionMaster);
         }
-
+        //搴撳瓨鏇存柊
+        for (ProductionInventory productionInventory : productionMasterDto.getProductionInventoryList()) {
+            OfficialInventory officialInventory = officialInventoryMapper.selectById(productionInventory.getOfficialId());
+            BigDecimal subtract = officialInventory.getInventoryQuantity().subtract(new BigDecimal(productionInventory.getUsedQuantity()));
+            if (subtract.compareTo(BigDecimal.ZERO) < 0) {
+                throw new BaseException("搴撳瓨涓嶈冻");
+            }
+            officialInventory.setInventoryQuantity(subtract);
+            officialInventoryMapper.updateById(officialInventory);
+        }
+        
         // 4. 鎵归噺鎻掑叆瀛愯〃鏁版嵁
         batchInsertProductions(masterId, productionMasterDto.getProductionList());
         batchInsertInventories(masterId, productionMasterDto.getProductionInventoryList());
diff --git a/ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java b/ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java
index bcf9d31..a6e83d2 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/basic/service/StorageAttachmentService.java
@@ -1,8 +1,7 @@
 package com.ruoyi.basic.service;
 
-import com.ruoyi.basic.entity.StorageAttachment;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.common.constant.StorageAttachmentConstants;
+import com.ruoyi.basic.entity.StorageAttachment;
 import com.ruoyi.common.enums.StorageAttachmentRecordType;
 
 import java.util.List;
@@ -23,7 +22,7 @@
      * @param fileType 鏂囦欢绫诲瀷
      * @return 鏂囦欢淇℃伅鍒楄〃
      */
-    List<StorageAttachment> selectStorageAttachments(Long recordId, StorageAttachmentRecordType recordType, StorageAttachmentConstants fileType);
+    List<StorageAttachment> selectStorageAttachments(Long recordId, StorageAttachmentRecordType recordType, String fileType);
 
     /**
      * 淇濆瓨閫氱敤鏂囦欢涓婁紶鐨勯檮浠朵俊鎭�
@@ -32,7 +31,7 @@
      * @param recordType 鍏宠仈璁板綍绫诲瀷
      * @param fileType 鏂囦欢绫诲瀷
      */
-    public void saveStorageAttachment(List<StorageAttachment> attachments, Long recordId, StorageAttachmentRecordType recordType, StorageAttachmentConstants fileType);
+    public void saveStorageAttachment(List<StorageAttachment> attachments, Long recordId, StorageAttachmentRecordType recordType, String fileType);
 
     /**
      * 鍒犻櫎閫氱敤鏂囦欢涓婁紶鐨勯檮浠朵俊鎭�
diff --git a/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java b/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
index d4e87bf..c53480b 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/basic/service/impl/StorageAttachmentServiceImpl.java
@@ -1,22 +1,20 @@
 package com.ruoyi.basic.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.entity.StorageAttachment;
 import com.ruoyi.basic.entity.StorageBlob;
 import com.ruoyi.basic.entity.dto.StorageBlobDTO;
 import com.ruoyi.basic.mapper.StorageAttachmentMapper;
 import com.ruoyi.basic.mapper.StorageBlobMapper;
 import com.ruoyi.basic.service.StorageAttachmentService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.basic.service.StorageBlobService;
-import com.ruoyi.common.constant.StorageAttachmentConstants;
 import com.ruoyi.common.enums.StorageAttachmentRecordType;
 import com.ruoyi.common.utils.file.MinioUtils;
-import io.minio.MinioClient;
+import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import lombok.RequiredArgsConstructor;
 
 import java.util.List;
 
@@ -44,7 +42,7 @@
     private MinioUtils minioUtils;
 
     @Override
-    public List<StorageAttachment> selectStorageAttachments(Long recordId, StorageAttachmentRecordType recordType, StorageAttachmentConstants fileType) {
+    public List<StorageAttachment> selectStorageAttachments(Long recordId, StorageAttachmentRecordType recordType, String fileType) {
         List<StorageAttachment> storageAttachments = storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>()
                 .eq(StorageAttachment::getRecordId, recordId)
                 .eq(StorageAttachment::getRecordType, recordType.ordinal())
@@ -63,9 +61,9 @@
     }
 
     @Override
-    public void saveStorageAttachment(List<StorageAttachment> attachments, Long recordId, StorageAttachmentRecordType recordType, StorageAttachmentConstants fileType) {
+    public void saveStorageAttachment(List<StorageAttachment> attachments, Long recordId, StorageAttachmentRecordType recordType, String fileType) {
         // 鍒犻櫎鏃у浘
-        deleteStorageAttachment(new StorageAttachment(fileType.toString(), (long) recordType.ordinal(), recordId));
+         deleteStorageAttachment(new StorageAttachment(fileType.toString(), (long) recordType.ordinal(), recordId));
         for (StorageAttachment attachment : attachments) {
             // 鑾峰彇鍏宠仈璁板綍
             StorageBlob storageBlob = attachment.getStorageBlobDTO();
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java
index 8b0597e..50b65ad 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/StorageAttachmentRecordType.java
@@ -9,7 +9,8 @@
 @AllArgsConstructor
 public enum StorageAttachmentRecordType {
     // 渚嬪瓙 瀹為檯寮�鍙戣鍒犻櫎
-    Template("Template","鑼冧緥");
+    Template("Template","鑼冧緥"),
+    Archives("Archives","鏂囨。绠$悊");
 
 
     private final String code;

--
Gitblit v1.9.3