From b0d0191a88912b352385349461b500a4964d693b Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 19 九月 2025 22:51:24 +0800
Subject: [PATCH] 机床加字段

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/controller/MachineController.java |  105 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 91 insertions(+), 14 deletions(-)

diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/controller/MachineController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/controller/MachineController.java
index a201526..ebc8e0a 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/controller/MachineController.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/controller/MachineController.java
@@ -1,21 +1,33 @@
 package org.springblade.mdm.basesetting.machine.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
-import org.springblade.core.mp.support.Condition;
-import org.springblade.core.mp.support.Query;
+import org.apache.commons.io.IOUtils;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.oss.OssTemplate;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.mdm.basesetting.machine.MachineService;
+import org.springblade.mdm.basesetting.machine.service.MachineService;
+import org.springblade.mdm.basesetting.machine.service.MachineImportService;
+import org.springblade.mdm.basesetting.machine.vo.MachineExcel;
 import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO;
 import org.springblade.mdm.basesetting.machine.vo.MachineSaveVO;
 import org.springblade.mdm.basesetting.machine.vo.MachineVO;
+import org.springblade.mdm.basesetting.producedivision.vo.ImportResult;
+import org.springblade.mdm.commons.service.ParamService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
 
 @Slf4j
 @RestController
@@ -25,28 +37,57 @@
 
 	@Autowired
 	private MachineService service;
-
+	@Autowired
+	private MachineImportService machineImportService;
+	@Autowired
+	private ParamService paramService;
+	@Autowired
+	private OssTemplate ossTemplate;
 	/**
 	 * 鏂板
 	 */
 	@PostMapping("/save")
-	@Operation(summary = "鏂板", description = "鏈哄簥缁勪俊鎭�")
+	@Operation(summary = "鏂板", description = "鏈哄簥淇℃伅")
 	public R<Boolean> save(@RequestBody MachineSaveVO vo) {
-
-		service.saveMachine(vo);
+		try {
+			service.saveMachine(vo);
+		}catch (Exception e) {
+			log.error("鏂板鏈哄簥澶辫触", e);;
+			return R.fail(e.getMessage());
+		}
 		return R.<Boolean>status(true);
 	}
 
 	/**
 	 * 淇敼
 	 */
-	@Operation(summary = "淇敼", description = "鏈哄簥缁勪俊鎭�")
+	@Operation(summary = "淇敼", description = "鏈哄簥淇℃伅")
 	@PostMapping("/update")
 	public R<Boolean> update(@RequestBody MachineSaveVO vo) {
-
-		return R.<Boolean>status(service.updateMachine(vo));
+		try{
+			return R.data(service.updateMachine(vo));
+		}catch(Exception e){
+			return R.fail(e.getMessage());
+		}
 	}
 
+	@Operation(summary = "璇︽儏", description = "鏌ヨ鏈哄簥璇︽儏")
+	@GetMapping("/detail")
+	public R<MachineVO> deatail(long id) {
+		return R.data(service.detail(id));
+	}
+
+	@PostMapping("import")
+	@ApiOperationSupport(order = 1)
+	@Operation(summary = "鏈哄簥瀵煎叆", description = "鏈哄簥瀵煎叆锛屽叏閮ㄦ垚鍔熻繑鍥炵┖涓诧紝閮ㄥ垎鎴愬姛杩斿洖鍏蜂綋淇℃伅")
+	public R<ImportResult> importMachines(@RequestParam MultipartFile file) {
+		try {
+			return R.data(machineImportService.importMachines(file));
+		}catch (Exception e){
+			log.error("瀵煎叆閿欒",e);
+			return R.fail(e.getMessage());
+		}
+	}
 	/**
 	 * 鍒犻櫎
 	 */
@@ -68,9 +109,45 @@
 	@Operation(summary = "鍒嗛〉鏌ヨ", description = "鍚嶇О鎴栫紪鐮�")
 	@GetMapping("/page")
 	public R<IPage<MachineVO>> page(MachineQueryVO query) {
-
-
 		IPage<MachineVO> pages = service.pageQuery(query);
 		return R.data(pages);
 	}
+
+	@GetMapping("export")
+	@ApiOperationSupport(order = 13)
+	@Operation(summary = "瀵煎嚭鏈哄簥", description = "鍚嶇О鎴栫紪鐮�")
+	public void export(MachineQueryVO query, HttpServletResponse response) {
+		query.setCurrent(1);
+		query.setSize(Integer.MAX_VALUE);
+		IPage<MachineVO> pages = service.pageQuery(query);
+
+		List<MachineExcel> list = new ArrayList<>();
+		pages.getRecords().forEach(m ->{
+			MachineExcel excelVO = new MachineExcel();
+			BeanUtils.copyProperties(m, excelVO);
+			list.add(excelVO);
+		});
+
+		ExcelUtil.export(response, "鏈哄簥鏁版嵁" + DateUtil.time(), "鏈哄簥鏁版嵁琛�", list, MachineExcel.class);
+	}
+
+	@Operation(summary = "涓嬭浇鏈哄簥瀵煎叆妯℃澘", description = "涓嬭浇鏈哄簥瀵煎叆妯℃澘")
+	@GetMapping("/download-template")
+	public void downloadTemplate(HttpServletResponse response) {
+		String PARAMKEY = "MACHINE_TEMPLATE";
+
+		try {
+			String filename = "machinetemplate.xlsx";
+			response.setHeader("Content-Disposition", "attachment; filename="+filename);
+			response.setContentType("application/octet-stream");
+			String ossName  = paramService.getParamValue(PARAMKEY,"");
+			try(InputStream ins = ossTemplate.statFileStream(ossName);){
+				IOUtils.copy(ins,response.getOutputStream());
+			}
+
+		} catch (Exception e) {
+			log.error("瀵煎嚭鍒嗘満搴婃ā鏉垮紓甯�", e);
+		}
+	}
+
 }

--
Gitblit v1.9.3