From 99d9153a8c33ce32b898c7d9098038caa3447206 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 03 十一月 2023 15:09:54 +0800
Subject: [PATCH] 组织导入数据

---
 mes-basic/src/main/java/com/chinaztt/mes/basic/controller/PostController.java     |   23 ++
 mes-basic/src/main/java/com/chinaztt/mes/basic/excel/CrewData.java                |   32 +++
 mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CrewController.java     |   21 ++
 mes-basic/src/main/java/com/chinaztt/mes/basic/service/CrewService.java           |    7 
 mes-basic/src/main/java/com/chinaztt/mes/basic/service/StaffService.java          |    7 
 mes-basic/src/main/java/com/chinaztt/mes/basic/excel/CrewUploadListener.java      |   38 +++
 mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java  |   56 +++++
 mes-basic/src/main/java/com/chinaztt/mes/basic/entity/Crew.java                   |   32 +-
 mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/StaffServiceImpl.java |   89 +++++++-
 mes-basic/src/main/java/com/chinaztt/mes/basic/excel/PostUploadListener.java      |   40 ++++
 mes-basic/src/main/java/com/chinaztt/mes/basic/excel/PostData.java                |   42 ++++
 mes-basic/src/main/java/com/chinaztt/mes/basic/enums/FileEnums.java               |    5 
 mes-basic/src/main/java/com/chinaztt/mes/basic/service/PostService.java           |    8 
 mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/CrewServiceImpl.java  |   42 +++
 mes-basic/src/main/java/com/chinaztt/mes/basic/excel/StaffData.java               |   49 ++++
 mes-basic/src/main/java/com/chinaztt/mes/basic/excel/StaffUploadListener.java     |   39 +++
 mes-basic/src/main/java/com/chinaztt/mes/basic/controller/StaffController.java    |   22 ++
 17 files changed, 517 insertions(+), 35 deletions(-)

diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CrewController.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CrewController.java
index 9b1c136..b4e4abb 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CrewController.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/CrewController.java
@@ -1,9 +1,12 @@
 package com.chinaztt.mes.basic.controller;
 
+import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.chinaztt.mes.basic.dto.CrewDTO;
 import com.chinaztt.mes.basic.entity.Crew;
 import com.chinaztt.mes.basic.entity.Staff;
+import com.chinaztt.mes.basic.excel.CrewData;
+import com.chinaztt.mes.basic.excel.CrewUploadListener;
 import com.chinaztt.mes.basic.service.CrewService;
 import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
 import com.chinaztt.ztt.common.core.util.R;
@@ -13,6 +16,9 @@
 import lombok.AllArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
 
 
 /**
@@ -160,4 +166,19 @@
 		return R.ok(crewService.deleteStaff(crewDTO));
 	}
 
+
+	/**
+	 * excel涓婁紶
+	 *
+	 * @return
+	 */
+	@PostMapping("/upload")
+	public R upload(@RequestParam("file") MultipartFile file) {
+		try {
+			EasyExcel.read(file.getInputStream(), CrewData.class, new CrewUploadListener(crewService)).sheet().doRead();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return R.ok();
+	}
 }
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/PostController.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/PostController.java
index 09f4c4d..71a9057 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/PostController.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/PostController.java
@@ -1,8 +1,13 @@
 package com.chinaztt.mes.basic.controller;
 
+import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.chinaztt.mes.basic.entity.Post;
+import com.chinaztt.mes.basic.excel.PostData;
+import com.chinaztt.mes.basic.excel.PostUploadListener;
+import com.chinaztt.mes.basic.excel.StaffData;
+import com.chinaztt.mes.basic.excel.StaffUploadListener;
 import com.chinaztt.mes.basic.service.PostService;
 import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
 import com.chinaztt.ztt.common.core.util.R;
@@ -12,6 +17,9 @@
 import lombok.AllArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
 
 
 /**
@@ -117,4 +125,19 @@
 		return R.ok(postService.list(queryWrapper));
 	}
 
+	/**
+	 * excel涓婁紶
+	 *
+	 * @return
+	 */
+	@PostMapping("/upload")
+	public R upload(@RequestParam("file") MultipartFile file) {
+		try {
+			EasyExcel.read(file.getInputStream(), PostData.class, new PostUploadListener(postService)).sheet().doRead();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return R.ok();
+	}
+
 }
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/StaffController.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/StaffController.java
index 28e7da0..5413c49 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/StaffController.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/controller/StaffController.java
@@ -17,12 +17,17 @@
 
 package com.chinaztt.mes.basic.controller;
 
+import com.alibaba.excel.EasyExcel;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.chinaztt.mes.basic.entity.Division;
 import com.chinaztt.mes.basic.entity.Factory;
 import com.chinaztt.mes.basic.entity.Location;
 import com.chinaztt.mes.basic.entity.Staff;
+import com.chinaztt.mes.basic.excel.DivisionData;
+import com.chinaztt.mes.basic.excel.DivisionUploadListener;
+import com.chinaztt.mes.basic.excel.StaffData;
+import com.chinaztt.mes.basic.excel.StaffUploadListener;
 import com.chinaztt.mes.basic.service.DivisionService;
 import com.chinaztt.mes.basic.service.StaffService;
 import com.chinaztt.mes.common.wrapper.QueryWrapperUtil;
@@ -34,7 +39,9 @@
 import lombok.AllArgsConstructor;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.List;
 
 
@@ -168,4 +175,19 @@
 		return R.ok(staffService.list(Wrappers.query(staff)));
 	}
 
+	/**
+	 * excel涓婁紶
+	 *
+	 * @return
+	 */
+	@PostMapping("/upload")
+	public R upload(@RequestParam("file") MultipartFile file) {
+		try {
+			EasyExcel.read(file.getInputStream(), StaffData.class, new StaffUploadListener(staffService)).sheet().doRead();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return R.ok();
+	}
+
 }
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/entity/Crew.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/entity/Crew.java
index fd60403..f4219a2 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/entity/Crew.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/entity/Crew.java
@@ -36,17 +36,23 @@
 @EqualsAndHashCode(callSuper = true)
 @ApiModel(value = "浜哄憳鐝粍缁存姢琛�")
 public class Crew extends Model<Crew> {
-private static final long serialVersionUID = 1L;
+	private static final long serialVersionUID = 1L;
 
-    /**
-     * id
-     */
-    @TableId
-    @ApiModelProperty(value="id")
-    private Long id;
-    /**
-     * 鐝粍鍚嶇О
-     */
-    @ApiModelProperty(value="鐝粍鍚嶇О")
-    private String crewName;
-    }
+	/**
+	 * id
+	 */
+	@TableId
+	@ApiModelProperty(value = "id")
+	private Long id;
+	/**
+	 * 鐝粍鍚嶇О
+	 */
+	@ApiModelProperty(value = "鐝粍鍚嶇О")
+	private String crewName;
+
+	/**
+	 * 杞﹂棿
+	 */
+	@ApiModelProperty(value = "杞﹂棿")
+	private String workShop;
+}
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/enums/FileEnums.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/enums/FileEnums.java
index c6367a6..f282336 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/enums/FileEnums.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/enums/FileEnums.java
@@ -6,7 +6,10 @@
  */
 public enum FileEnums {
 	warehouse("warehouse","浠撳簱"),
-	location("location","搴撲綅")
+	location("location","搴撲綅"),
+	division("division","閮ㄩ棬"),
+	staff("staff","鍛樺伐"),
+	post("post","宀椾綅")
 	;
 
 	FileEnums(String name, String fileName) {
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/CrewData.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/CrewData.java
new file mode 100644
index 0000000..b11cbac
--- /dev/null
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/CrewData.java
@@ -0,0 +1,32 @@
+package com.chinaztt.mes.basic.excel;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+@Data
+public class CrewData {
+	/**
+	 * 鐝粍鍚嶇О
+	 */
+	@ExcelProperty("鐝粍鍚嶇О")
+	private String crewName;
+
+	/**
+	 * 杞﹂棿
+	 */
+	@ExcelProperty( "杞﹂棿")
+	private String workShop;
+
+	/**
+	 * 浜哄憳缂栧彿
+	 */
+	@ExcelProperty("浜哄憳缂栧彿")
+	private String staffNo;
+
+	/**
+	 * 浜哄憳鍚嶇О
+	 */
+	@ExcelProperty("浜哄憳鍚嶇О")
+	private String staffName;
+}
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/CrewUploadListener.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/CrewUploadListener.java
new file mode 100644
index 0000000..4e32202
--- /dev/null
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/CrewUploadListener.java
@@ -0,0 +1,38 @@
+package com.chinaztt.mes.basic.excel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.chinaztt.mes.basic.service.CrewService;
+import com.chinaztt.mes.basic.service.PostService;
+import java.util.ArrayList;
+import java.util.List;
+
+public class CrewUploadListener extends AnalysisEventListener<CrewData> {
+	private static final int BATCH_COUNT = 1000;
+	List<CrewData> list = new ArrayList<>();
+
+	private CrewService crewService;
+
+	public CrewUploadListener(CrewService crewService) {
+		this.crewService = crewService;
+	}
+
+	@Override
+	public void invoke(CrewData data, AnalysisContext analysisContext) {
+		list.add(data);
+		if (list.size() >= BATCH_COUNT) {
+			save();
+			list.clear();
+		}
+	}
+
+	@Override
+	public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+		save();
+	}
+
+
+	private void save() {
+		crewService.importWorkstationExcel(list);
+	}
+}
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/PostData.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/PostData.java
new file mode 100644
index 0000000..1927e3b
--- /dev/null
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/PostData.java
@@ -0,0 +1,42 @@
+package com.chinaztt.mes.basic.excel;
+
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+@Data
+public class PostData {
+	/**
+	 * 宀椾綅缂栧彿
+	 */
+	@ExcelProperty("宀椾綅缂栧彿")
+	private String postNo;
+	/**
+	 * 宀椾綅鍚嶇О
+	 */
+	@ExcelProperty( "宀椾綅鍚嶇О")
+	private String postName;
+	/**
+	 * 鍏徃
+	 */
+	@ExcelProperty("鍏徃")
+	private String companyName;
+
+	/**
+	 * 宸ュ巶
+	 */
+	@ExcelProperty("宸ュ巶")
+	private String factoryName;
+
+	/**
+	 * 閮ㄩ棬
+	 */
+	@ExcelProperty("閮ㄩ棬")
+	private String divisionName;
+
+	/**
+	 * 杞﹂棿
+	 */
+	@ExcelProperty("杞﹂棿")
+	private String workShops;
+}
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/PostUploadListener.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/PostUploadListener.java
new file mode 100644
index 0000000..3730f40
--- /dev/null
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/PostUploadListener.java
@@ -0,0 +1,40 @@
+package com.chinaztt.mes.basic.excel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.chinaztt.mes.basic.service.PostService;
+import com.chinaztt.mes.basic.service.StaffService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PostUploadListener extends AnalysisEventListener<PostData> {
+	private static final int BATCH_COUNT = 1000;
+	List<PostData> list = new ArrayList<>();
+
+	private PostService postService;
+
+	public PostUploadListener(PostService postService) {
+		this.postService = postService;
+	}
+
+	@Override
+	public void invoke(PostData data, AnalysisContext analysisContext) {
+		list.add(data);
+		if (list.size() >= BATCH_COUNT) {
+			save();
+			list.clear();
+		}
+	}
+
+	@Override
+	public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+		save();
+	}
+
+
+	private void save() {
+		postService.importWorkstationExcel(list);
+	}
+}
+
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/StaffData.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/StaffData.java
new file mode 100644
index 0000000..800315b
--- /dev/null
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/StaffData.java
@@ -0,0 +1,49 @@
+package com.chinaztt.mes.basic.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+@Data
+public class StaffData {
+	/**
+	 * 鍛樺伐缂栧彿
+	 */
+	@ExcelProperty("鍛樺伐缂栧彿")
+	private String staffNo;
+	/**
+	 * 濮撳悕
+	 */
+	@ExcelProperty( "濮撳悕")
+	private String staffName;
+	/**
+	 * 鎵�灞炲叕鍙�
+	 */
+	@ExcelProperty("鎵�灞炲叕鍙�")
+	private String companyName;
+
+	/**
+	 * 鎵�灞炲伐鍘�
+	 */
+	@ExcelProperty("鎵�灞炲伐鍘�")
+	private String factoryName;
+
+	/**
+	 * 鎵�灞為儴闂�
+	 */
+	@ExcelProperty("鎵�灞為儴闂�")
+	private String divisionName;
+
+	/**
+	 * 宀椾綅鍚嶇О
+	 */
+	@ExcelProperty("宀椾綅鍚嶇О")
+	private String post;
+
+	/**
+	 * 浜哄憳鎬ц川
+	 */
+	@ExcelProperty("浜哄憳鎬ц川")
+	private String personNature;
+
+
+}
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/StaffUploadListener.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/StaffUploadListener.java
new file mode 100644
index 0000000..27d91f5
--- /dev/null
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/excel/StaffUploadListener.java
@@ -0,0 +1,39 @@
+package com.chinaztt.mes.basic.excel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.chinaztt.mes.basic.service.DivisionService;
+import com.chinaztt.mes.basic.service.StaffService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class StaffUploadListener extends AnalysisEventListener<StaffData> {
+	private static final int BATCH_COUNT = 1000;
+	List<StaffData> list = new ArrayList<>();
+
+	private StaffService staffService;
+
+	public StaffUploadListener(StaffService staffService) {
+		this.staffService = staffService;
+	}
+
+	@Override
+	public void invoke(StaffData data, AnalysisContext analysisContext) {
+		list.add(data);
+		if (list.size() >= BATCH_COUNT) {
+			save();
+			list.clear();
+		}
+	}
+
+	@Override
+	public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+		save();
+	}
+
+
+	private void save() {
+		staffService.importWorkstationExcel(list);
+	}
+}
\ No newline at end of file
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/CrewService.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/CrewService.java
index 3b50aaf..597df6c 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/CrewService.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/CrewService.java
@@ -8,6 +8,7 @@
 import com.chinaztt.mes.basic.entity.Crew;
 import com.chinaztt.mes.basic.entity.Part;
 import com.chinaztt.mes.basic.entity.Staff;
+import com.chinaztt.mes.basic.excel.CrewData;
 
 import java.util.List;
 
@@ -64,4 +65,10 @@
 	 * @return
 	 */
 	List<Staff> getStaff(CrewDTO crewDTO);
+
+	/**
+	 * 瀵煎叆excel鏁版嵁
+	 * @param list
+	 */
+    void importWorkstationExcel(List<CrewData> list);
 }
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/PostService.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/PostService.java
index 8927938..ad35573 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/PostService.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/PostService.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.chinaztt.mes.basic.entity.Post;
+import com.chinaztt.mes.basic.excel.PostData;
+
+import java.util.List;
 
 /**
  * 宀椾綅琛�
@@ -11,4 +14,9 @@
  */
 public interface PostService extends IService<Post> {
 
+	/**
+	 * excel瀵煎叆
+	 * @param list
+	 */
+    void importWorkstationExcel(List<PostData> list);
 }
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/StaffService.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/StaffService.java
index 0212f8f..5efff5d 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/StaffService.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/StaffService.java
@@ -22,6 +22,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.chinaztt.mes.basic.entity.Staff;
+import com.chinaztt.mes.basic.excel.StaffData;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -54,4 +55,10 @@
 	 * @date: 2020/8/28 11:06
 	 */
 	IPage<List<Staff>> toResource(Page page,Staff staff);
+
+	/**
+	 * 瀵煎叆excel鐨勬暟鎹�
+	 * @param list
+	 */
+    void importWorkstationExcel(List<StaffData> list);
 }
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/CrewServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/CrewServiceImpl.java
index eac8a4a..b797923 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/CrewServiceImpl.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/CrewServiceImpl.java
@@ -3,24 +3,27 @@
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chinaztt.mes.basic.dto.CrewDTO;
-import com.chinaztt.mes.basic.entity.Crew;
-import com.chinaztt.mes.basic.entity.JoinCrewStaff;
-import com.chinaztt.mes.basic.entity.Part;
-import com.chinaztt.mes.basic.entity.Staff;
+import com.chinaztt.mes.basic.entity.*;
+import com.chinaztt.mes.basic.excel.CrewData;
+import com.chinaztt.mes.basic.excel.PostData;
 import com.chinaztt.mes.basic.mapper.CrewMapper;
 import com.chinaztt.mes.basic.mapper.JoinCrewStaffMapper;
 import com.chinaztt.mes.basic.mapper.StaffMapper;
 import com.chinaztt.mes.basic.service.CrewService;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * 浜哄憳鐝粍缁存姢琛�
@@ -82,6 +85,37 @@
 		return staffMapper.selectStaffById(crewDTO.getId());
 	}
 
+	//瀵煎叆excel鏁版嵁
+	@Override
+	public void importWorkstationExcel(List<CrewData> list) {
+		if (CollectionUtil.isEmpty(list)) {
+			return;
+		}
+		List<Staff> staff = staffMapper.selectList(null);
+		Crew crew = new Crew();
+		for (CrewData data : list) {
+			//鏂板鐝粍琛�
+			if (ObjectUtils.isNotEmpty(data.getCrewName())) {
+				crew.setCrewName(data.getCrewName());
+				crew.setWorkShop(data.getWorkShop());
+				baseMapper.insert(crew);
+			}
+			JoinCrewStaff joinCrewStaff = new JoinCrewStaff();
+			joinCrewStaff.setCrewId(crew.getId());
+			for (int i = 0; i < staff.size(); i++) {
+				if (staff.get(i).getStaffNo().equals(data.getStaffNo())) {
+					joinCrewStaff.setStaffId(staff.get(i).getId());
+				}
+			}
+			if (joinCrewStaff.getStaffId() == null) {
+				log.error("浜哄憳:" + data.getStaffNo() + "涓嶅瓨鍦�");
+				continue;
+			}
+			//鏂板浜哄憳鐝粍缁存姢琛�
+			joinCrewStaffMapper.insert(joinCrewStaff);
+		}
+	}
+
 	public void saveJoin(CrewDTO crewDTO) {
 		if (CollectionUtil.isNotEmpty(crewDTO.getStaffList())) {
 			List<Staff> staffList = joinCrewStaffMapper.selectStaffByCrewId(crewDTO.getId());
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java
index ca0b849..74adc64 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PostServiceImpl.java
@@ -5,11 +5,17 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
-import com.chinaztt.mes.basic.entity.Post;
+import com.chinaztt.mes.basic.entity.*;
+import com.chinaztt.mes.basic.excel.PostData;
+import com.chinaztt.mes.basic.excel.StaffData;
+import com.chinaztt.mes.basic.mapper.CompanyMapper;
+import com.chinaztt.mes.basic.mapper.DivisionMapper;
+import com.chinaztt.mes.basic.mapper.FactoryMapper;
 import com.chinaztt.mes.basic.mapper.PostMapper;
 import com.chinaztt.mes.basic.service.PostService;
 import com.chinaztt.mes.common.numgen.NumberGenerator;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -26,6 +32,10 @@
 @Transactional(rollbackFor = Exception.class)
 public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements PostService {
 	private NumberGenerator<Post> postNumberGenerator;
+	private DivisionMapper divisionMapper;
+	private PostMapper postMapper;
+	private CompanyMapper companyMapper;
+	private FactoryMapper factoryMapper;
 
 	@Override
 	public boolean save(Post post) {
@@ -51,4 +61,48 @@
 			}
 		}
 	}
+
+	//excel瀵煎叆鏁版嵁
+	@Override
+	public void importWorkstationExcel(List<PostData> list) {
+		if (CollectionUtil.isEmpty(list)) {
+			return;
+		}
+		List<Company> companies = companyMapper.selectList(null);
+		List<Factory> factories = factoryMapper.selectList(null);
+		List<Division> divisions = divisionMapper.selectList(null);
+		for (PostData data : list) {
+			Post post = new Post();
+			BeanUtils.copyProperties(data, post);
+			post.setPostName(data.getWorkShops()+"-"+data.getPostName());
+			for (int i = 0; i <companies.size() ; i++) {
+				if (companies.get(i).getCompanyName().equals(data.getCompanyName())){
+					post.setCompanyId(companies.get(i).getId());
+				}
+			}
+			if (post.getCompanyId()==null){
+				log.error("鍏徃:" + data.getCompanyName() + "涓嶅瓨鍦�");
+				continue ;
+			}
+			for (int i = 0; i <factories.size() ; i++) {
+				if (factories.get(i).getFactoryName().equals(data.getFactoryName())){
+					post.setFactoryId(factories.get(i).getId());
+				}
+			}
+			if (post.getFactoryId()==null){
+				log.error("宸ュ巶:" + data.getFactoryName() + "涓嶅瓨鍦�");
+				continue ;
+			}
+			for (int i = 0; i < divisions.size(); i++) {
+				if (divisions.get(i).getDivisionName().equals(data.getDivisionName())) {
+					post.setDivisionId(divisions.get(i).getId());
+				}
+			}
+			if (post.getDivisionId() == null) {
+				log.error("閮ㄩ棬:" + data.getDivisionName() + "涓嶅瓨鍦�");
+				continue;
+			}
+			baseMapper.insert(post);
+		}
+	}
 }
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/StaffServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/StaffServiceImpl.java
index fc11d47..a2ecea3 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/StaffServiceImpl.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/StaffServiceImpl.java
@@ -16,15 +16,18 @@
  */
 package com.chinaztt.mes.basic.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.chinaztt.mes.basic.entity.Staff;
-import com.chinaztt.mes.basic.mapper.StaffMapper;
+import com.chinaztt.mes.basic.entity.*;
+import com.chinaztt.mes.basic.excel.StaffData;
+import com.chinaztt.mes.basic.mapper.*;
 import com.chinaztt.mes.basic.service.StaffService;
 import com.chinaztt.ztt.common.data.datascope.DataScope;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -39,21 +42,24 @@
 @AllArgsConstructor
 public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements StaffService {
 
+	private DivisionMapper divisionMapper;
+	private PostMapper postMapper;
+	private CompanyMapper companyMapper;
+	private FactoryMapper factoryMapper;
 
-
-    /**
-     * Description: 鍒嗛〉
-     *
-     * @param page
-     * @param ew
-     * @return IPage<List<Staff>>
-     * @author: luh
-     * @date: 2020/8/18 11:06
-     */
+	/**
+	 * Description: 鍒嗛〉
+	 *
+	 * @param page
+	 * @param ew
+	 * @return IPage<List < Staff>>
+	 * @author: luh
+	 * @date: 2020/8/18 11:06
+	 */
 
 	@Override
 	public IPage<List<Staff>> getStaffPage(Page page, QueryWrapper<Staff> ew) {
-		return baseMapper.getStaffPage(page,ew);
+		return baseMapper.getStaffPage(page, ew);
 	}
 
 	/**
@@ -61,14 +67,65 @@
 	 *
 	 * @param page
 	 * @param staff
-	 * @return IPage<List<Staff>
+	 * @return IPage<List < Staff>
 	 * @author: fenglang
 	 * @date: 2020/8/28 11:06
 	 */
 	@Override
 	public IPage<List<Staff>> toResource(Page page, Staff staff) {
-		return baseMapper.toResource(page,staff);
+		return baseMapper.toResource(page, staff);
 	}
 
-
+	//瀵煎叆excel鏁版嵁
+	@Override
+	public void importWorkstationExcel(List<StaffData> list) {
+		if (CollectionUtil.isEmpty(list)) {
+			return;
+		}
+		List<Division> divisions = divisionMapper.selectList(null);
+		List<Post> posts = postMapper.selectList(null);
+		List<Company> companies = companyMapper.selectList(null);
+		List<Factory> factories = factoryMapper.selectList(null);
+		for (StaffData staffData : list) {
+			Staff staff = new Staff();
+			BeanUtils.copyProperties(staffData, staff);
+			for (int i = 0; i < divisions.size(); i++) {
+				if (divisions.get(i).getDivisionName().equals(staffData.getDivisionName())) {
+					staff.setDivisionId(divisions.get(i).getId());
+				}
+			}
+			if (staff.getDivisionId() == null) {
+				log.error("閮ㄩ棬:" + staffData.getDivisionName() + "涓嶅瓨鍦�");
+				continue;
+			}
+			for (int i = 0; i < posts.size(); i++) {
+				if (posts.get(i).getPostName().equals(staffData.getPost())) {
+					staff.setPostId(posts.get(i).getId());
+				}
+			}
+			if (staff.getPostId() == null) {
+				log.error("宀椾綅:" + staffData.getPost() + "涓嶅瓨鍦�");
+				continue;
+			}
+			for (int i = 0; i <companies.size() ; i++) {
+				if (companies.get(i).getCompanyName().equals(staffData.getCompanyName())){
+					staff.setCompanyId(companies.get(i).getId());
+				}
+			}
+			if (staff.getCompanyId()==null){
+				log.error("鍏徃:" + staffData.getCompanyName() + "涓嶅瓨鍦�");
+				continue ;
+			}
+			for (int i = 0; i <factories.size() ; i++) {
+				if (factories.get(i).getFactoryName().equals(staffData.getFactoryName())){
+					staff.setFactoryId(factories.get(i).getId());
+				}
+			}
+			if (staff.getFactoryId()==null){
+				log.error("宸ュ巶:" + staffData.getFactoryName() + "涓嶅瓨鍦�");
+				continue ;
+			}
+			baseMapper.insert(staff);
+		}
+	}
 }

--
Gitblit v1.9.3