From 4308b53ee6f9028905a333d86861ab2735ad2166 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 13 六月 2025 23:29:41 +0800
Subject: [PATCH] 补充机床接口

---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/MachineBackFileService.java       |   78 ++++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java             |   38 +--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/MdmApplication.java                                   |   30 ---
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileController.java |   63 +++++++
 blade-service/blade-mdm/pom.xml                                                                                 |    4 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileVO.java                 |   11 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/vo/BaseVO.java                                |    3 
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/controller/MachineController.java |   56 +++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java                 |   44 ++--
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileQueryVO.java            |   21 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java               |   65 +++++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.java         |   16 +
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/entity/MachineBackFile.java               |   18 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.xml          |   25 ++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineExcelVO.java            |   52 +++++
 blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml          |    2 
 16 files changed, 452 insertions(+), 74 deletions(-)

diff --git a/blade-service/blade-mdm/pom.xml b/blade-service/blade-mdm/pom.xml
index 01a05a1..49dd25d 100644
--- a/blade-service/blade-mdm/pom.xml
+++ b/blade-service/blade-mdm/pom.xml
@@ -31,7 +31,11 @@
         <dependency>
             <groupId>org.springblade</groupId>
             <artifactId>blade-starter-mybatis</artifactId>
+        </dependency>
 
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-excel</artifactId>
         </dependency>
 
         <dependency>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/MdmApplication.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/MdmApplication.java
index 434b287..f85d78c 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/MdmApplication.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/MdmApplication.java
@@ -1,28 +1,4 @@
-/**
- * BladeX Commercial License Agreement
- * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
- * <p>
- * Use of this software is governed by the Commercial License Agreement
- * obtained after purchasing a license from BladeX.
- * <p>
- * 1. This software is for development use only under a valid license
- * from BladeX.
- * <p>
- * 2. Redistribution of this software's source code to any third party
- * without a commercial license is strictly prohibited.
- * <p>
- * 3. Licensees may copyright their own code but cannot use segments
- * from this software for such purposes. Copyright of this software
- * remains with BladeX.
- * <p>
- * Using this software signifies agreement to this License, and the software
- * must not be used for illegal purposes.
- * <p>
- * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
- * not liable for any claims arising from secondary or illegal development.
- * <p>
- * Author: Chill Zhuang (bladejava@qq.com)
- */
+
 package org.springblade.mdm;
 
 import org.springblade.core.cloud.client.BladeCloudApplication;
@@ -30,8 +6,8 @@
 //import org.springblade.core.launch.constant.AppConstant;
 
 /**
- * 绯荤粺妯″潡鍚姩鍣�
- * @author Chill
+ * mdm妯″潡鍚姩鍣�
+ * @author yangys
  */
 @BladeCloudApplication
 public class MdmApplication {
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java
index 4393ff3..8f0a1f4 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/MachineService.java
@@ -5,6 +5,7 @@
 import org.springblade.core.mp.base.BizServiceImpl;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.mdm.basesetting.machine.entity.Machine;
 import org.springblade.mdm.basesetting.machine.entity.MachineSpec;
 import org.springblade.mdm.basesetting.machine.mapper.MachineMapper;
@@ -13,6 +14,14 @@
 import org.springblade.mdm.basesetting.machine.vo.MachineVO;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.FileSystemUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.InvalidPathException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 
 @Service
 public class MachineService extends BizServiceImpl<MachineMapper, Machine> {
@@ -67,4 +76,60 @@
 		}
 		return page;
 	}
+
+	/**
+	 * 鏌ヨ璇︽儏
+	 * @param id 鏈哄簥id
+	 * @return
+	 */
+	public MachineVO detail(long id) {
+		Machine machine = this.getById(id);
+
+		MachineVO vo = new MachineVO();
+		BeanUtil.copyProperties(machine, vo);
+
+		return vo;
+	}
+
+	/**
+	 * 浜х敓鏈哄簥鍥炰紶缁撴瀯鏁版嵁
+	 * @param id
+	 */
+	public void genMachineFileBackDirs(Long id) throws IOException {
+		Machine machine = this.getById(id);
+		if(Func.isNotBlank(machine.getProgReceiveDir())){
+			if(isLegalDirectoryPath(machine.getProgReceiveDir())) {
+				Path path = Paths.get(machine.getProgReceiveDir());
+				Files.createDirectories(path);
+			}else{
+				throw new RuntimeException("闈炴硶鐨勭洰褰曟牸寮�");
+			}
+		}
+	}
+
+	/**
+	 * 鍒ゆ柇鏄惁鏄悎娉曠殑鐩綍鏍煎紡
+	 * @param path
+	 * @return
+	 */
+	static boolean isLegalDirectoryPath(String path) {
+		// 鍩虹妫�鏌�
+		if (path == null || path.trim().isEmpty()) {
+			return false;
+		}
+
+		// 浣跨敤NIO妫�鏌ヨ矾寰勬牸寮�
+		Path nioPath;
+		try {
+			nioPath = Paths.get(path);
+			if (!nioPath.normalize().toString().equals(path)) {
+				return false; // 璺緞涓嶈鑼�
+			}
+		} catch (InvalidPathException ex) {
+			return false;
+		}
+
+		return true;
+
+	}
 }
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..a1bdd72 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,37 @@
 package org.springblade.mdm.basesetting.machine.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.Parameter;
 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.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.BladeConstant;
+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.vo.MachineExcelVO;
 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.system.pojo.entity.User;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 @Slf4j
 @RestController
@@ -40,11 +56,17 @@
 	/**
 	 * 淇敼
 	 */
-	@Operation(summary = "淇敼", description = "鏈哄簥缁勪俊鎭�")
+	@Operation(summary = "淇敼", description = "鏈哄簥淇℃伅")
 	@PostMapping("/update")
 	public R<Boolean> update(@RequestBody MachineSaveVO vo) {
 
 		return R.<Boolean>status(service.updateMachine(vo));
+	}
+
+	@Operation(summary = "璇︽儏", description = "鏌ヨ鏈哄簥璇︽儏")
+	@GetMapping("/detail")
+	public R<MachineVO> deatail(long id) {
+		return R.data(service.detail(id));
 	}
 
 	/**
@@ -68,9 +90,37 @@
 	@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 exportUser(MachineQueryVO query, HttpServletResponse response) {
+		query.setCurrent(1);
+		query.setSize(Integer.MAX_VALUE);
+		IPage<MachineVO> pages = service.pageQuery(query);
+
+		List<MachineExcelVO> list = new ArrayList<>();
+		pages.getRecords().forEach(m ->{
+			MachineExcelVO excelVO = new MachineExcelVO();
+			BeanUtils.copyProperties(m, excelVO);
+			list.add(excelVO);
+		});
+
+		ExcelUtil.export(response, "鏈哄簥鏁版嵁" + DateUtil.time(), "鐢ㄦ埛鏁版嵁琛�", list, MachineExcelVO.class);
+	}
+
+	@Operation(summary = "浜х敓鏈哄簥鍥炰紶缁撴瀯鏍�", description = "浜х敓鏈哄簥鍥炰紶缁撴瀯鏍�")
+	@PostMapping("/gen-fileback-dirs")
+	public R<Void> genFileBackDirs(@RequestParam Long id) {
+		try {
+			service.genMachineFileBackDirs(id);
+		} catch (Exception e) {
+			log.error("浜х敓鐩綍寮傚父",e);
+			return R.fail(e.getMessage());
+		}
+		return R.status(true);
+	}
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
index 5a5c097..f79a3a9 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/mapper/MachineMapper.xml
@@ -14,7 +14,7 @@
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
     <select id="pageQuery" resultType="org.springblade.mdm.basesetting.machine.vo.MachineVO">
-        select m.id,m.name,m.code,g.dict_value group_name,m.machine_spec,m.manufacturer,m.operator
+        select m.id,m.name,m.code,g.dict_key machine_group_code,g.dict_value machine_group_name,m.machine_spec,m.manufacturer,m.operator
         from mdm_machine m join blade_dict_biz g on m.machine_group_code=g.dict_key and g.code='machine_group' and g.is_deleted=0
             ${ew.customSqlSegment}
     </select>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineExcelVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineExcelVO.java
new file mode 100644
index 0000000..92a7613
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineExcelVO.java
@@ -0,0 +1,52 @@
+package org.springblade.mdm.basesetting.machine.vo;
+
+import lombok.Data;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class MachineExcelVO {
+
+	@ColumnWidth(20)
+	@ExcelProperty("鏈哄簥缂栧彿")
+	private String code;
+
+	@ExcelProperty("鏈哄簥鍨嬪彿")
+	private String name;
+
+	@ExcelProperty("鏈哄簥缁勭紪鍙�")
+	private String machineGroupCode;
+	/**
+	 * 鏈哄櫒瑙勬牸:01杞﹀簥/02閾e簥,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_spec锛�
+	 */
+	@ExcelProperty("鏈哄簥瑙勬牸")
+	private String machineSpec;
+
+	@ExcelProperty("鎿嶄綔鍛�")
+	private String operator;
+
+	@ExcelProperty("鎵�灞炲崟浣岻D")
+	private Long ownerDept;
+
+	@ExcelProperty("鐢熶骇鍟�")
+	private String manufacturer;
+
+	@ExcelProperty("杞鏃堕棿")
+	private Integer pollingHours;
+
+	@ExcelProperty("鎺у埗绯荤粺")
+	private String controlSystem;
+
+	@ExcelProperty("绋嬪簭涓嬪彂鐩綍")
+	private String progSendDir;
+
+	@ExcelProperty("绋嬪簭鍥炰紶鐩綍")
+	private String progReceiveDir;
+
+	@ExcelProperty("澶囨敞")
+	private String remark;
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
index 0a776e0..b7473e5 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineSaveVO.java
@@ -8,36 +8,30 @@
 @Setter
 @Getter
 public class MachineSaveVO extends BaseVO {
-
+	@Schema(description = "鏈哄簥缂栫爜")
 	private String code;
+	@Schema(description = "鏈哄簥鍨嬪彿")
 	private String name;
-	/**
-	 * 鎵�灞炴満搴婄粍code,瀛楀吀machine_group
-	 */
+
+	@Schema(description = "鎵�灞炴満搴婄粍code,瀛楀吀machine_group")
 	private String machineGroupCode;
-	/**
-	 * 鏈哄櫒瑙勬牸:01杞﹀簥/02閾e簥,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_spec锛�
-	 */
+
+	@Schema(description = "鏈哄櫒瑙勬牸,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_spec锛�")
 	private String machineSpec;
-	/**
-	 * 鎿嶄綔鍛橈紝鏂囨湰褰曞叆
-	 */
+
+	@Schema(description = "鎿嶄綔鍛�(鏂囨湰褰曞叆)")
 	private String operator;
-	/**
-	 * 鎵�灞炲崟浣�/缁勭粐
-	 */
+
+	@Schema(description = "鎵�灞炲崟浣�")
 	private Long ownerDept;
-	/**
-	 * '鐢熶骇鍟�'
-	 */
+
+	@Schema(description = "鐢熶骇鍟�")
 	private String manufacturer;
-	/**
-	 * 妫�鏌ョ▼搴忓洖浼犵殑杞鏃堕棿锛堝皬鏃讹級
-	 */
+
+	@Schema(description = "杞鏃堕棿")
 	private Integer pollingHours;
-	/**
-	 * 鎺у埗绯荤粺锛堝鍙戦偅绉戯級锛屽湪涓氬姟瀛楀吀閰嶇疆(key=machine_controll_system)锛屼娇鐢ㄨ嫳鏂囧瓧姣�
-	 */
+
+	@Schema(description = "鎺у埗绯荤粺")
 	private String controlSystem;
 	/**
 	 * 绋嬪簭涓嬪彂鐩綍
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java
index 9d7b9f7..97b34a4 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/machine/vo/MachineVO.java
@@ -1,5 +1,6 @@
 package org.springblade.mdm.basesetting.machine.vo;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
 import org.springblade.mdm.commons.vo.BaseVO;
@@ -11,42 +12,43 @@
 	private String code;
 	private String name;
 	/**
-	 * 鎵�灞炴満搴婄粍ID
+	 * 鎵�灞炴満搴婄粍code
 	 */
-	private Long machineGroupId;
-	/**
-	 * 鏈哄櫒瑙勬牸:01杞﹀簥/02閾e簥,鍦ㄤ笟鍔″瓧鍏搁厤缃紙key=machine_spec锛�
-	 */
-	private String machineSpec;
+	@Schema(description = "鏈哄簥缁勪唬鐮�")
+	private String machineGroupCode;
 
+	@Schema(description = "鏈哄簥缁勫悕绉�")
+	private String machineGroupName;
+
+	@Schema(description = "瑙勬牸")
+	private String machineSpec;
+	@Schema(description = "瑙勬牸鍚嶇О")
 	private String machineSpecName;
-	/**
-	 * 鎿嶄綔鍛橈紝鏂囨湰褰曞叆
-	 */
+
+	@Schema(description = "鎿嶄綔鍛橈紝鏂囨湰褰曞叆")
 	private String operator;
-	/**
-	 * 鎵�灞炲崟浣�/缁勭粐
-	 */
+
+	@Schema(description = "鎵�灞炲崟浣�/缁勭粐")
 	private Long ownerDept;
-	/**
-	 * '鐢熶骇鍟�'
-	 */
+
+	@Schema(description = "鐢熶骇鍟�")
 	private String manufacturer;
 	/**
 	 * 妫�鏌ョ▼搴忓洖浼犵殑杞鏃堕棿锛堝皬鏃讹級
 	 */
+	@Schema(description = "杞鏃堕棿")
 	private Integer pollingHours;
 	/**
 	 * 鎺у埗绯荤粺锛堝鍙戦偅绉戯級锛屽湪涓氬姟瀛楀吀閰嶇疆(key=machine_controll_system)锛屼娇鐢ㄨ嫳鏂囧瓧姣�
 	 */
+	@Schema(description = "鎺у埗绯荤粺锛屽湪涓氬姟瀛楀吀閰嶇疆(key=machine_control_system)")
 	private String controlSystem;
-	/**
-	 * 绋嬪簭涓嬪彂鐩綍
-	 */
+
+	@Schema(description = "绋嬪簭涓嬪彂鐩綍")
 	private String progSendDir;
-	/**
-	 * 绋嬪簭鍥炰紶鐩綍',
-	 */
+
+	@Schema(description = "绋嬪簭鍥炰紶鐩綍")
 	private String progReceiveDir;
+	@Schema(description = "澶囨敞")
 	private String remark;
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/vo/BaseVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/vo/BaseVO.java
index 007189d..4c456e8 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/vo/BaseVO.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/commons/vo/BaseVO.java
@@ -11,5 +11,8 @@
 	private Long id;
 
 	private Integer status;
+	private Long createUser;
 	private Date createTime;
+	private Long updateUser;
+	private Date updateTime;
 }
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileController.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileController.java
new file mode 100644
index 0000000..f41c3a4
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/controller/MachineBackFileController.java
@@ -0,0 +1,63 @@
+package org.springblade.mdm.machineback.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.machine.MachineService;
+import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO;
+import org.springblade.mdm.basesetting.machine.vo.MachineVO;
+import org.springblade.mdm.machineback.service.MachineBackFileService;
+import org.springblade.mdm.machineback.vo.MachineBackFileQueryVO;
+import org.springblade.mdm.machineback.vo.MachineBackFileVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Slf4j
+@RestController
+@RequestMapping("/machineback/file")
+@Tag(name = "鏈哄簥鍥炰紶鏂囦欢", description = "鏈哄簥鍥炰紶鏂囦欢")
+public class MachineBackFileController {
+
+	@Autowired
+	private MachineBackFileService service;
+
+
+	/**
+	 * 鎺ユ敹
+	 */
+	@Operation(summary = "鎺ユ敹", description = "鎺ユ敹鏂囦欢")
+	@PostMapping("/accept")
+	public R<Void> accept(String ids) {
+		service.accept(ids);
+		return R.success();
+	}
+
+	/**
+	 *鎷掔粷锛屽氨鏄垹闄�
+	 */
+	@Operation(summary = "鎷掔粷", description = "鎷掔粷")
+	@PostMapping("/reject")
+	public R<Void> reject(@RequestParam String ids) {
+		try {
+			service.removeBatchByIds(Func.toLongList(ids));
+		} catch (Exception e) {
+			log.error("鍒犻櫎寮傚父",e);
+			return R.fail(e.getMessage());
+		}
+		return R.status(true);
+	}
+
+	/**
+	 * 鍒嗛〉
+	 */
+	@Operation(summary = "鍒嗛〉鏌ヨ", description = "鍚嶇О鎴栫紪鐮�")
+	@GetMapping("/page")
+	public R<IPage<MachineBackFileVO>> page(MachineBackFileQueryVO query) {
+
+		IPage<MachineBackFileVO> pages = service.pageQuery(query);
+		return R.data(pages);
+	}
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/entity/MachineBackFile.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/entity/MachineBackFile.java
new file mode 100644
index 0000000..5c17e46
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/entity/MachineBackFile.java
@@ -0,0 +1,18 @@
+package org.springblade.mdm.machineback.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.base.BizEntity;
+
+/**
+ * 鏈哄簥鍥炰紶鏂囦欢
+ */
+@Setter
+@Getter
+@TableName("mdm_machine_back_file")
+public class MachineBackFile extends BizEntity {
+	public static int STATUS_ACCEPTED = 2;
+	public static int STATUS_REJECTED = 2;
+	private String filename;
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.java
new file mode 100644
index 0000000..11e03a1
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.java
@@ -0,0 +1,16 @@
+package org.springblade.mdm.machineback.mapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.core.mp.mapper.BladeMapper;
+import org.springblade.mdm.machineback.entity.MachineBackFile;
+import org.springblade.mdm.machineback.vo.MachineBackFileQueryVO;
+import org.springblade.mdm.machineback.vo.MachineBackFileVO;
+
+public interface MachineBackFileMapper extends BladeMapper<MachineBackFile> {
+
+	IPage<MachineBackFileVO> pageQuery(IPage<MachineBackFile> page, @Param("queryVO")MachineBackFileQueryVO queryVO);
+	//pageMachine
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.xml b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.xml
new file mode 100644
index 0000000..99aa24b
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/mapper/MachineBackFileMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.mdm.machineback.mapper.MachineBackFileMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="org.springblade.mdm.machineback.entity.MachineBackFile">
+        <id column="id" property="id"/>
+        <result column="filename" property="filename"/>
+        <result column="status" property="status"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+    <select id="pageQuery" resultType="org.springblade.mdm.machineback.vo.MachineBackFileVO">
+        select f.id,f.filename,f.create_time,m.code machineCode,m.name machineName
+        from mdm_machine_back_file f join mdm_machine m on f.machine_code=m.code
+            ${ew.customSqlSegment}
+    </select>
+
+
+    <!--    <select id="parentTree" resultMap="treeNodeResultMap">-->
+<!--        select id, parent_id, dict_value as title, id as "value", id as "key" from blade_dict where is_deleted = 0 and parent_id = 0-->
+<!--    </select>-->
+
+</mapper>
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/MachineBackFileService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/MachineBackFileService.java
new file mode 100644
index 0000000..06680bc
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/service/MachineBackFileService.java
@@ -0,0 +1,78 @@
+package org.springblade.mdm.machineback.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BizServiceImpl;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.mdm.basesetting.machine.vo.MachineQueryVO;
+import org.springblade.mdm.basesetting.machine.vo.MachineVO;
+import org.springblade.mdm.machineback.entity.MachineBackFile;
+import org.springblade.mdm.machineback.mapper.MachineBackFileMapper;
+import org.springblade.mdm.machineback.vo.MachineBackFileQueryVO;
+import org.springblade.mdm.machineback.vo.MachineBackFileVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class MachineBackFileService extends BizServiceImpl<MachineBackFileMapper, MachineBackFile> {
+	/*
+	@Transactional
+	public void save(MachineSaveVO vo){
+		//TODO
+		Machine machine = new Machine();
+		BeanUtil.copyProperties(vo, machine);
+		this.save(machine);
+	}
+	*/
+
+	public void accept(String ids) {
+
+		List<Long> idList = Func.toLongList(ids);
+
+		for(Long id : idList){
+			MachineBackFile backFile = this.getById(id);
+			backFile.setStatus(MachineBackFile.STATUS_ACCEPTED);
+			this.updateById(backFile);
+		}
+
+	}
+
+	public void reject(String ids) {
+		List<Long> idList = Func.toLongList(ids);
+
+		for(Long id : idList){
+			MachineBackFile backFile = this.getById(id);
+			backFile.setStatus(MachineBackFile.STATUS_REJECTED);
+			this.updateById(backFile);
+		}
+
+	}
+
+
+
+
+	/**
+	 * 鏌ヨ鍒嗛〉
+	 * @param query 鏌ヨ鍙傛暟
+	 * @return 鍒嗛〉鏁版嵁
+	 */
+	public IPage<MachineBackFileVO> pageQuery(MachineBackFileQueryVO query) {
+
+		//LambdaQueryWrapper<Machine> queryWrapper = new LambdaQueryWrapper<>();
+
+		IPage<MachineBackFileVO> page = this.getBaseMapper().pageQuery(Condition.getPage(query),query);
+
+		//MachineSpec.valueOf()
+		/*
+		for (MachineVO record : page.getRecords()) {
+			if(record.getMachineSpec() != null){
+				MachineSpec spec = MachineSpec.valueOf(record.getMachineSpec());
+				record.setMachineSpecName(spec.getText());
+			}
+
+		}*/
+		return page;
+	}
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileQueryVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileQueryVO.java
new file mode 100644
index 0000000..e3fdb0e
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileQueryVO.java
@@ -0,0 +1,21 @@
+package org.springblade.mdm.machineback.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.core.mp.support.Query;
+
+/**
+ * 鍒嗛〉鎷嗙嚎鍛�
+ */
+
+@Schema(description = "鏈哄簥鏌ヨ瀵硅薄")
+@Setter
+@Getter
+public class MachineBackFileQueryVO extends Query {
+	@Schema(description = "鍏抽敭瀛�")
+	private String keyword;
+	@Schema(description = "瑙勬牸")
+	private String machineSpec;
+
+}
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileVO.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileVO.java
new file mode 100644
index 0000000..94c32ad
--- /dev/null
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/machineback/vo/MachineBackFileVO.java
@@ -0,0 +1,11 @@
+package org.springblade.mdm.machineback.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springblade.mdm.commons.vo.BaseVO;
+
+@Setter
+@Getter
+public class MachineBackFileVO extends BaseVO {
+	private String filename;
+}

--
Gitblit v1.9.3