From 5f708178b260cabf081f9049cf51e9ad66ae2911 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期四, 10 九月 2026 14:49:29 +0800
Subject: [PATCH] feat(erp/mes): 新增采购订单/销售订单/计量器具 Excel 导入,含导入菜单权限 SQL

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/metering/MesDvMeteringController.java |   27 +++++++++++++++++++++++++++
 1 files changed, 27 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/metering/MesDvMeteringController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/metering/MesDvMeteringController.java
index 531ccb3..259ea74 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/metering/MesDvMeteringController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/metering/MesDvMeteringController.java
@@ -11,6 +11,8 @@
 import cn.iocoder.yudao.module.mes.controller.admin.dv.metering.vo.MesDvMeteringPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.dv.metering.vo.MesDvMeteringRespVO;
 import cn.iocoder.yudao.module.mes.controller.admin.dv.metering.vo.MesDvMeteringSaveReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.dv.metering.vo.MesDvMeteringImportExcelVO;
+import cn.iocoder.yudao.module.mes.controller.admin.dv.metering.vo.MesDvMeteringImportRespVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.dv.metering.MesDvMeteringDO;
 import cn.iocoder.yudao.module.mes.enums.dv.MesDvMeteringExpireStatusEnum;
 import cn.iocoder.yudao.module.mes.service.dv.metering.MesDvMeteringService;
@@ -27,10 +29,12 @@
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
 import java.time.LocalDate;
 import java.time.temporal.ChronoUnit;
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -108,6 +112,29 @@
                 buildMeteringRespVOList(list));
     }
 
+    @GetMapping("/get-import-template")
+    @Operation(summary = "鑾峰緱璁¢噺鍣ㄥ叿瀵煎叆妯℃澘")
+    @PreAuthorize("@ss.hasPermission('mes:dv-metering:import')")
+    public void importTemplate(HttpServletResponse response) throws IOException {
+        List<MesDvMeteringImportExcelVO> list = Collections.singletonList(
+                MesDvMeteringImportExcelVO.builder()
+                        .code("JL-001").name("绀轰緥娓告爣鍗″昂").category(1).specification("0-150mm")
+                        .brand("绀轰緥鍝佺墝").precision("0.02mm").range("0-150mm")
+                        .deptName("鐮斿彂閮ㄩ棬").chargeUserName("瓒呯骇绠$悊鍛�")
+                        .checkCycleCount(12).useDate("2026-01-01").status(1).remark("绀轰緥鏁版嵁锛屽鍏ュ墠璇锋浛鎹�")
+                        .build());
+        ExcelUtils.write(response, "璁¢噺鍣ㄥ叿瀵煎叆妯℃澘.xls", "璁¢噺鍣ㄥ叿", MesDvMeteringImportExcelVO.class, list);
+    }
+
+    @PostMapping("/import")
+    @Operation(summary = "瀵煎叆璁¢噺鍣ㄥ叿")
+    @PreAuthorize("@ss.hasPermission('mes:dv-metering:import')")
+    public CommonResult<MesDvMeteringImportRespVO> importMeteringExcel(
+            @RequestParam("file") MultipartFile file) throws Exception {
+        List<MesDvMeteringImportExcelVO> list = ExcelUtils.read(file, MesDvMeteringImportExcelVO.class);
+        return success(meteringService.importMeteringList(list));
+    }
+
     @GetMapping("/simple-list")
     @Operation(summary = "鑾峰緱璁¢噺鍣ㄥ叿绮剧畝鍒楄〃", description = "涓昏鐢ㄤ簬鍓嶇鐨勪笅鎷夐�夐」")
     @PreAuthorize("@ss.hasPermission('mes:dv-metering:query')")

--
Gitblit v1.9.3