From d34a44a1ffa778c0a95027f67d56544b0faa4930 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期六, 25 四月 2026 17:16:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New_pro' into dev_New_pro
---
src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java | 2
src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java | 11 ++
src/main/java/com/ruoyi/projectManagement/vo/SaveInfoStageVo.java | 4
src/main/java/com/ruoyi/basic/utils/FileUtil.java | 42 ++++++++
src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java | 4
src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java | 3
src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java | 4
src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java | 2
src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java | 15 ++-
src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java | 3
src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java | 202 ++++++++++++++++++++++++++++++++++++++++
11 files changed, 282 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
index fd8d8c0..4a72d52 100644
--- a/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
+++ b/src/main/java/com/ruoyi/basic/enums/RecordTypeEnum.java
@@ -7,7 +7,207 @@
SALES_LEDGER("sales_ledger"),
SUPPLIER_MANAGE("supplier_manage"),
APPROVAL_PROCESS("approval_process"),
- QR_CODE_SCAN_RECORDS("qr_code_scan_records");
+ QR_CODE_SCAN_RECORDS("qr_code_scan_records"),
+ // Water Record
+ WATER_RECORD("water_record"),
+ // Warehouse
+ WAREHOUSE_GOODS_SHELVES_ROWCOL("warehouse_goods_shelves_rowcol"),
+ WAREHOUSE_GOODS_SHELVES("warehouse_goods_shelves"),
+ DOCUMENTATION_FILE("documentation_file"),
+ DOCUMENTATION_RETURN_MANAGEMENT("documentation_return_management"),
+ DOCUMENTATION_BORROW_MANAGEMENT("documentation_borrow_management"),
+ DOCUMENTATION("documentation"),
+ WAREHOUSE("warehouse"),
+ DOCUMENT_CLASSIFICATION("document_classification"),
+ // Technology
+ TECHNOLOGY_ROUTING_OPERATION_PARAM("technology_routing_operation_param"),
+ TECHNOLOGY_ROUTING("technology_routing"),
+ TECHNOLOGY_ROUTING_OPERATION("technology_routing_operation"),
+ TECHNOLOGY_BOM("technology_bom"),
+ TECHNOLOGY_PARAM("technology_param"),
+ TECHNOLOGY_OPERATION_PARAM("technology_operation_param"),
+ TECHNOLOGY_OPERATION("technology_operation"),
+ TECHNOLOGY_BOM_STRUCTURE("technology_bom_structure"),
+ // Stock
+ STOCK_OUT_RECORD("stock_out_record"),
+ STOCK_UNINVENTORY("stock_uninventory"),
+ STOCK_INVENTORY("stock_inventory"),
+ STOCK_IN_RECORD("stock_in_record"),
+ // Staff
+ STAFF_WORK_EXPERIENCE("staff_work_experience"),
+ STAFF_SALARY_MAIN("staff_salary_main"),
+ STAFF_SCHEDULING("staff_scheduling"),
+ STAFF_SALARY_DETAIL("staff_salary_detail"),
+ STAFF_ON_JOB("staff_on_job"),
+ STAFF_LEAVE("staff_leave"),
+ STAFF_CONTRACT("staff_contract"),
+ STAFF_EMERGENCY_CONTACT("staff_emergency_contact"),
+ STAFF_EDUCATION("staff_education"),
+ SCHEME_APPLICABLE_STAFF("scheme_applicable_staff"),
+ PERSONAL_SHIFT("personal_shift"),
+ SCHEME_INSURANCE_DETAIL("scheme_insurance_detail"),
+ PERSONAL_ATTENDANCE_RECORDS("personal_attendance_records"),
+ PERSONAL_ATTENDANCE_LOCATION_CONFIG("personal_attendance_location_config"),
+ BANK("bank"),
+ HOLIDAY_APPLICATION("holiday_application"),
+ // Sales
+ SHIPMENT_APPROVAL("shipment_approval"),
+ SALESPERSON_MANAGEMENT("salesperson_management"),
+ SALES_QUOTATION_PRODUCT("sales_quotation_product"),
+ SALES_QUOTATION("sales_quotation"),
+ SALES_LEDGER_PRODUCT("sales_ledger_product"),
+ PURCHASE_LEDGER_FILE("purchase_ledger_file"),
+ RECEIPT_PAYMENT("receipt_payment"),
+ PAYMENT_SHIPPING("payment_shipping"),
+ INVOICE_REGISTRATION_PRODUCT("invoice_registration_product"),
+ LOSS("loss"),
+ INVOICE_REGISTRATION("invoice_registration"),
+ INVOICE_LEDGER_FILE("invoice_ledger_file"),
+ INVOICE_LEDGER("invoice_ledger"),
+ COMMON_FILE("common_file"),
+ // Safe
+ SAFE_TRAINING_FILE("safe_training_file"),
+ SAFE_TRAINING_DETAILS("safe_training_details"),
+ SAFE_TRAINING("safe_training"),
+ SAFE_HIDDEN_FILE("safe_hidden_file"),
+ SAFE_HAZARD_RECORD("safe_hazard_record"),
+ SAFE_HIDDEN("safe_hidden"),
+ SAFE_HAZARD("safe_hazard"),
+ SAFE_CONTINGENCY_PLAN("safe_contingency_plan"),
+ SAFE_CERTIFICATION_FILE("safe_certification_file"),
+ SAFE_CERTIFICATION("safe_certification"),
+ SAFE_ACCIDENT("safe_accident"),
+ // Quality
+ QUALITY_UNQUALIFIED("quality_unqualified"),
+ QUALITY_TEST_STANDARD_PARAM("quality_test_standard_param"),
+ QUALITY_TEST_STANDARD_BINDING("quality_test_standard_binding"),
+ QUALITY_TEST_STANDARD("quality_test_standard"),
+ QUALITY_INSPECT_FILE("quality_inspect_file"),
+ QUALITY_INSPECT_PARAM("quality_inspect_param"),
+ QUALITY_INSPECT("quality_inspect"),
+ // Purchase
+ TICKET_REGISTRATION("ticket_registration"),
+ PURCHASE_RETURN_ORDER_PRODUCTS("purchase_return_order_products"),
+ PURCHASE_RETURN_ORDERS("purchase_return_orders"),
+ SALES_LEDGER_PRODUCT_TEMPLATE("sales_ledger_product_template"),
+ PURCHASE_LEDGER("purchase_ledger"),
+ PURCHASE_LEDGER_TEMPLATE("purchase_ledger_template"),
+ PRODUCT_RECORD("product_record"),
+ PAYMENT_REGISTRATION("payment_registration"),
+ INVOICE_PURCHASE("invoice_purchase"),
+ // Project Management
+ SHIPPING_ADDRESS("shipping_address"),
+ ROLES("roles"),
+ PLAN("plan"),
+ PLAN_NODE("plan_node"),
+ INFO_STAGE("info_stage"),
+ CONTRACT_INFO("contract_info"),
+ INFO("info"),
+ // Production
+ PRODUCTION_PRODUCT_OUTPUT("production_product_output"),
+ PRODUCTION_ORDER_ROUTING_OPERATION("production_order_routing_operation"),
+ PRODUCTION_PRODUCT_INPUT("production_product_input"),
+ PRODUCTION_PRODUCT_MAIN("production_product_main"),
+ PRODUCTION_PLAN("production_plan"),
+ PRODUCTION_ORDER_ROUTING_OPERATION_PARAM("production_order_routing_operation_param"),
+ PRODUCTION_ORDER_ROUTING("production_order_routing"),
+ PRODUCTION_ORDER_PICK_RECORD("production_order_pick_record"),
+ PRODUCTION_ORDER_PICK("production_order_pick"),
+ PRODUCTION_ORDER_BOM("production_order_bom"),
+ PRODUCTION_OPERATION_TASK("production_operation_task"),
+ PRODUCTION_ORDER("production_order"),
+ PRODUCTION_ACCOUNT("production_account"),
+ PRODUCTION_BOM_STRUCTURE("production_bom_structure"),
+ PRODUCTION_OPERATION_MAIN_PARAM("production_operation_main_param"),
+ // Procurement Record
+ RETURN_SALE_PRODUCT("return_sale_product"),
+ PROCUREMENT_PLAN("procurement_plan"),
+ PROCUREMENT_RECORD_OUT("procurement_record_out"),
+ PROCUREMENT_RECORD_STORAGE("procurement_record_storage"),
+ RETURN_MANAGEMENT("return_management"),
+ PROCUREMENT_PRICE_MANAGEMENT("procurement_price_management"),
+ GAS_TANK_WARNING("gas_tank_warning"),
+ CUSTOM_STORAGE("custom_storage"),
+ PROCUREMENT_EXCEPTION_RECORD("procurement_exception_record"),
+ INBOUND_MANAGEMENT("inbound_management"),
+ // Office Supplies
+ OFFICE_SUPPLIES("office_supplies"),
+ // OA
+ OA_PROJECT_PHASE_TASK("oa_project_phase_task"),
+ OA_PROJECT("oa_project"),
+ OA_PROJECT_PHASE("oa_project_phase"),
+ // Measuring Instrument Ledger
+ SPARE_PARTS("spare_parts"),
+ MEASURING_INSTRUMENT_LEDGER_RECORD("measuring_instrument_ledger_record"),
+ MEASURING_INSTRUMENT_LEDGER("measuring_instrument_ledger"),
+ SPARE_PARTS_REQUISITION_RECORD("spare_parts_requisition_record"),
+ // Labor Issue
+ LABOR_ISSUE("labor_issue"),
+ // Inspection Task
+ TIMING_TASK("timing_task"),
+ QR_CODE("qr_code"),
+ // Equipment Energy Consumption
+ ENERGY_PERIOD("energy_period"),
+ EQUIPMENT_ENERGY_CONSUMPTION("equipment_energy_consumption"),
+ ELECTRICITY_CONSUMPTION_AREA("electricity_consumption_area"),
+ // Device
+ MAINTENANCE_TASK("maintenance_task"),
+ DEVICE_REPAIR("device_repair"),
+ DEVICE_MAINTENANCE_FILE("device_maintenance_file"),
+ DEVICE_DEFECT_RECORD("device_defect_record"),
+ DEVICE_MAINTENANCE("device_maintenance"),
+ DEVICE_LEDGER("device_ledger"),
+ // Customer Visits
+ CUSTOMER_VISITS("customer_visits"),
+ // Compensation Performance
+ COMPENSATION_PERFORMANCE("compensation_performance"),
+ // Collaborative Approval
+ STAFF_CONTACTS_PERSONAL("staff_contacts_personal"),
+ SEAL_APPLICATION_MANAGEMENT("seal_application_management"),
+ RULES_REGULATIONS_MANAGEMENT_FILE("rules_regulations_management_file"),
+ RULES_REGULATIONS_MANAGEMENT("rules_regulations_management"),
+ READING_STATUS("reading_status"),
+ NOTICE("notice"),
+ NOTICE_TYPE("notice_type"),
+ MEET_DRAFT("meet_draft"),
+ MEETING_ROOM("meeting_room"),
+ MEETING_MINUTES("meeting_minutes"),
+ MEET_APPLICATION("meet_application"),
+ DUTY_PLAN("duty_plan"),
+ // Basic
+ SUPPLIER_MANAGE_FILE("supplier_manage_file"),
+ PRODUCT_MODEL("product_model"),
+ CUSTOMER_RETURN_VISIT("customer_return_visit"),
+ PRODUCT("product"),
+ CUSTOMER("customer"),
+ CUSTOMER_PRIVATE_POOL("customer_private_pool"),
+ CUSTOMER_FOLLOW_UP_FILE("customer_follow_up_file"),
+ CUSTOMER_FOLLOW_UP("customer_follow_up"),
+ CUSTOMER_PRIVATE("customer_private"),
+ // Approve
+ WORKING_HOURS_SETTING("working_hours_setting"),
+ OVERTIME_SETTING("overtime_setting"),
+ RPA_PROCESS_AUTOMATION("rpa_process_automation"),
+ HOLIDAY_SETTINGS("holiday_settings"),
+ ONLINE_MEETING("online_meeting"),
+ KNOWLEDGE_BASE("knowledge_base"),
+ NOTIFICATION_MANAGEMENT("notification_management"),
+ APPROVE_NODE("approve_node"),
+ APPROVE_PROCESS_CONFIG_NODE("approve_process_config_node"),
+ APPROVE_LOG("approve_log"),
+ ANNUAL_LEAVE_SETTING("annual_leave_setting"),
+ FILE_SHARING("file_sharing"),
+ // After Sales Service
+ AFTER_SALES_SERVICE("after_sales_service"),
+ AFTER_SALES_SERVICE_FILE("after_sales_service_file"),
+ AFTER_SALES_NEAR_EXPIRY("after_sales_near_expiry"),
+ // Account
+ ACCOUNT_INCOME("account_income"),
+ BORROW_INFO("borrow_info"),
+ SALES_REFUND_AMOUNT_ORDER("sales_refund_amount_order"),
+ SALES_RECEIPT_RETURN("sales_receipt_return"),
+ ACCOUNT_EXPENSE("account_expense"),
+ ACCOUNT_FILE("account_file");
private final String type;
RecordTypeEnum(String type) { this.type = type; }
diff --git a/src/main/java/com/ruoyi/basic/utils/FileUtil.java b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
index d97d632..0e3d10d 100644
--- a/src/main/java/com/ruoyi/basic/utils/FileUtil.java
+++ b/src/main/java/com/ruoyi/basic/utils/FileUtil.java
@@ -369,6 +369,24 @@
}
/**
+ * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢鍏宠仈淇℃伅 attachment
+ *
+ * @param recordType 鍏宠仈璁板綍绫诲瀷
+ * @param recordId 鍏宠仈璁板綍id
+ */
+ public List<StorageAttachment> getStorageAttachmentsByRecordTypeAndRecordId(RecordTypeEnum recordType, Long recordId) {
+ if (recordId == null || recordId <= 0) {
+ throw new RuntimeException("鍏宠仈璁板綍id涓嶈兘涓虹┖");
+ }
+ if (recordType == null) {
+ throw new RuntimeException("鍏宠仈璁板綍绫诲瀷涓嶈兘涓虹┖");
+ }
+ return storageAttachmentMapper.selectList(new LambdaQueryWrapper<StorageAttachment>()
+ .eq(StorageAttachment::getRecordType, recordType.getType())
+ .eq(StorageAttachment::getRecordId, recordId));
+ }
+
+ /**
* 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢淇℃伅 blob
*
* @param application 鏂囦欢鐢ㄩ��
@@ -394,6 +412,30 @@
}
/**
+ * 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢淇℃伅 blob
+ *
+ * @param recordType 鍏宠仈璁板綍绫诲瀷
+ * @param recordId 鍏宠仈璁板綍id
+ */
+ public List<StorageBlobVO> getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum recordType, Long recordId) {
+ List<StorageAttachment> storageAttachments = getStorageAttachmentsByRecordTypeAndRecordId(recordType, recordId);
+ if (CollectionUtils.isEmpty(storageAttachments)) {
+ return null;
+ }
+ List<Long> storageBlobIds = storageAttachments.stream().map(StorageAttachment::getStorageBlobId).collect(Collectors.toList());
+ List<StorageBlob> storageBlobs = storageBlobMapper.selectByIds(storageBlobIds);
+ List<StorageBlobVO> storageBlobDTOS = new ArrayList<>();
+ for (StorageBlob storageBlob : storageBlobs) {
+ StorageBlobVO storageBlobVO = new StorageBlobVO();
+ BeanUtils.copyProperties(storageBlob, storageBlobVO);
+ storageBlobVO.setPreviewURL(buildSignedPreviewUrl(storageBlobVO));
+ storageBlobVO.setDownloadURL(buildSignedDownloadUrl(storageBlobVO));
+ storageBlobDTOS.add(storageBlobVO);
+ }
+ return storageBlobDTOS;
+ }
+
+ /**
* 閫氳繃鏂囦欢鐢ㄩ�斻�佸叧鑱旇褰曠被鍨嬨�佸叧鑱旇褰昳d鑾峰彇鏂囦欢淇℃伅 鑷畾涔夎繃鏈熸椂闂达紙鍒嗛挓锛� blob
*
* @param application 鏂囦欢鐢ㄩ��
diff --git a/src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java b/src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java
index 5c8b7c6..e05ce2e 100644
--- a/src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java
+++ b/src/main/java/com/ruoyi/projectManagement/service/impl/PlanServiceImpl.java
@@ -6,7 +6,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ruoyi.basic.dto.StorageBlobVO;
+import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.service.CustomerFollowUpFileService;
+import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.projectManagement.mapper.PlanMapper;
import com.ruoyi.projectManagement.mapper.PlanNodeMapper;
@@ -40,6 +43,7 @@
private final CustomerFollowUpFileService customerFollowUpFileService;
private final PlanNodeMapper planNodeMapper;
+ private final FileUtil fileUtil;
@Lazy
@Autowired
@@ -49,9 +53,8 @@
@Transactional(rollbackFor = Exception.class)
public void savePlan(SavePlanVo savePlanVo) {
Plan plan = BeanUtil.copyProperties(savePlanVo, Plan.class);
- // 闄勪欢澶勭悊 , 鎷兼帴
- String attachments = String.join(",", Optional.ofNullable(savePlanVo.getAttachmentIds()).orElse(Collections.emptyList()));
- plan.setAttachment(attachments);
+ // 闄勪欢澶勭悊
+ fileUtil.saveStorageAttachmentByRecordTypeAndRecordId("", RecordTypeEnum.PLAN, savePlanVo.getId(), savePlanVo.getStorageBlobDTOs());
if (savePlanVo.getId() == null) {
planMapper.insert(plan);
} else {
@@ -136,12 +139,14 @@
IPage<Plan> planIPage = planMapper.selectPlanPage(searchPlanVo);
IPage<PlanVo> resultPage = planIPage.convert(plan -> BeanUtil.copyProperties(plan, PlanVo.class));
// 鏂囦欢鑾峰彇
- customerFollowUpFileService.fillAttachment(resultPage.getRecords(), PlanVo::getAttachment, PlanVo::setAttachmentList);
Map<Long, List<PlanNodeVo>> collect = getPlanNodeByPlanIds(resultPage.getRecords().stream().map(PlanVo::getId).collect(Collectors.toList()))
.stream()
.map(it -> BeanUtil.copyProperties(it, PlanNodeVo.class))
.collect(Collectors.groupingBy(PlanNodeVo::getProjectManagementPlanId, Collectors.toList()));
- resultPage.getRecords().forEach(planVo -> planVo.setPlanNodeList(collect.getOrDefault(planVo.getId(), Collections.emptyList())));
+ resultPage.getRecords().forEach(planVo -> {
+ planVo.setPlanNodeList(collect.getOrDefault(planVo.getId(), Collections.emptyList()));
+ planVo.setStorageBlobVOs(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.PLAN, planVo.getId()));
+ });
return resultPage;
}
diff --git a/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java b/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java
index 55a9065..2025777 100644
--- a/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java
+++ b/src/main/java/com/ruoyi/projectManagement/service/impl/handle/InfoStageHandleService.java
@@ -4,7 +4,10 @@
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.ruoyi.basic.dto.StorageBlobVO;
+import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.service.CustomerFollowUpFileService;
+import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.enums.IsDeleteEnum;
import com.ruoyi.common.enums.PlanStageEnum;
import com.ruoyi.projectManagement.dto.InfoStageDto;
@@ -40,6 +43,7 @@
@Lazy
@Autowired
private InfoStageHandleService infoStageHandleService;
+ private final FileUtil fileUtil;
@Transactional
public void save(@NotNull SaveInfoStageVo saveInfoStageVo) {
@@ -47,6 +51,8 @@
// 闄勪欢澶勭悊
String attachmentIds = StrUtil.join(",", Optional.ofNullable(saveInfoStageVo.getAttachmentIds()).orElse(Collections.emptyList()));
infoStage.setAttachment(attachmentIds);
+
+ fileUtil.saveStorageAttachmentByRecordTypeAndRecordId("", RecordTypeEnum.INFO_STAGE, infoStage.getProjectManagementInfoId(), saveInfoStageVo.getStorageBlobDTOs());
if (infoStage.getId() == null) {
infoStageMapper.insert(infoStage);
@@ -153,7 +159,10 @@
List<InfoStageDto> listByInfoId = getListDtoByInfoId(infoId);
List<InfoStageVo> infoStageVos = BeanUtil.copyToList(listByInfoId, InfoStageVo.class);
// 澶勭悊闄勪欢
- customerFollowUpFileService.fillAttachment(infoStageVos, InfoStageVo::getAttachment, InfoStageVo::setAttachmentList);
+ for (InfoStageVo infoStageVo : infoStageVos) {
+ List<StorageBlobVO> storageBlobVOs = fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.INFO_STAGE, infoStageVo.getId());
+ infoStageVo.setStorageBlobVOs(storageBlobVOs != null ? storageBlobVOs : new ArrayList<>());
+ }
return infoStageVos;
}
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java b/src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java
index 8be6a2d..71d7ee5 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/InfoStageVo.java
@@ -1,5 +1,6 @@
package com.ruoyi.projectManagement.vo;
+import com.ruoyi.basic.dto.StorageBlobVO;
import com.ruoyi.common.vo.SimpleFileVo;
import com.ruoyi.projectManagement.dto.InfoStageDto;
import lombok.AllArgsConstructor;
@@ -21,4 +22,5 @@
public class InfoStageVo extends InfoStageDto implements java.io.Serializable {
private List<SimpleFileVo> attachmentList; // 闄勪欢鍒楄〃
+ private List<StorageBlobVO> storageBlobVOs;
}
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java b/src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java
index 492435e..6cba06b 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/PlanVo.java
@@ -2,6 +2,8 @@
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
import com.ruoyi.common.vo.SimpleFileVo;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -44,5 +46,5 @@
private LocalDateTime updateTime;
private List<PlanNodeVo> planNodeList;
-
+ private List<StorageBlobVO> storageBlobVOs;
}
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/SaveInfoStageVo.java b/src/main/java/com/ruoyi/projectManagement/vo/SaveInfoStageVo.java
index d19095b..966b999 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/SaveInfoStageVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/SaveInfoStageVo.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
import com.ruoyi.projectManagement.dto.InfoStageDto;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -24,5 +26,5 @@
public class SaveInfoStageVo extends InfoStageDto implements java.io.Serializable {
private List<String> attachmentIds;
-
+ private List<StorageBlobDTO> StorageBlobDTOs;
}
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java b/src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java
index f3ce9df..e1042b2 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/SavePlanVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.projectManagement.vo;
+import com.ruoyi.basic.dto.StorageBlobDTO;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -32,5 +33,5 @@
@Valid
private List<SavePlanNodeVo> savePlanNodeList;
-
+ private List<StorageBlobDTO> storageBlobDTOs;
}
diff --git a/src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java b/src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java
index 3a29444..efe2bc5 100644
--- a/src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java
+++ b/src/main/java/com/ruoyi/projectManagement/vo/SearchPlanVo.java
@@ -1,12 +1,15 @@
package com.ruoyi.projectManagement.vo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.io.Serializable;
+import java.util.List;
/**
* @author buhuazhen
diff --git a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
index 61773c2..c119e94 100644
--- a/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
+++ b/src/main/java/com/ruoyi/sales/dto/SalesLedgerDto.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.basic.dto.StorageBlobDTO;
+import com.ruoyi.basic.dto.StorageBlobVO;
import com.ruoyi.sales.pojo.CommonFile;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -61,4 +62,5 @@
private LocalDate deliveryDate;
private List<StorageBlobDTO> storageBlobDTOs;
+ private List<StorageBlobVO> StorageBlobVOs;
}
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 9ba0e6f..eb8fcce 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -10,6 +10,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.service.AccountIncomeService;
import com.ruoyi.basic.dto.CustomerPrivatePoolDto;
+import com.ruoyi.basic.dto.StorageBlobVO;
import com.ruoyi.basic.enums.ApplicationTypeEnum;
import com.ruoyi.basic.enums.RecordTypeEnum;
import com.ruoyi.basic.mapper.CustomerMapper;
@@ -199,6 +200,9 @@
resultDto.setProductData(products);
resultDto.setSalesLedgerFiles(salesLedgerFiles);
}
+ // 5. 鏌ヨ闄勪欢
+ List<StorageBlobVO> StorageBlobVOs = fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.SALES_LEDGER, salesLedger.getId());
+ resultDto.setStorageBlobVOs(StorageBlobVOs);
return resultDto;
}
--
Gitblit v1.9.3