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