From 3de599166b1d7fad2c5fe3f337263edf6636cd6f Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期五, 15 八月 2025 11:26:48 +0800
Subject: [PATCH] 增加勤哲分工表展示
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 92 insertions(+), 1 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java
index e9d91e3..ea069c9 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java
@@ -1,6 +1,8 @@
package org.springblade.mdm.basesetting.producedivision.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BizServiceImpl;
import org.springblade.core.mp.support.Condition;
@@ -8,14 +10,22 @@
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision;
import org.springblade.mdm.basesetting.producedivision.mapper.ProduceDivisionMapper;
+import org.springblade.mdm.basesetting.producedivision.vo.DivisionExcel;
+import org.springblade.mdm.basesetting.producedivision.vo.ImportResult;
import org.springblade.mdm.basesetting.producedivision.vo.ProduceDivisionVO;
import org.springblade.mdm.basesetting.producedivision.vo.ProduceDivisionViewVO;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.List;
@Service
public class ProduceDivisionService extends BizServiceImpl<ProduceDivisionMapper, ProduceDivision> {
-
+ @Autowired
+ private MdmUserService tUserService;
/**
* 鏂板鍒嗗伐琛�
* @param vo
@@ -71,4 +81,85 @@
public IPage<ProduceDivisionViewVO> pageQuery(String name, Query query) {
return this.getBaseMapper().pageQuery(Condition.getPage(query),name);
}
+
+ /**
+ * 鍒嗗伐i琛ㄥ鍏�
+ * @param file
+ */
+ @Transactional
+ public ImportResult importDivision(MultipartFile file) {
+ List<DivisionExcel> list = ExcelUtil.read(file, DivisionExcel.class);
+ return transAndSave(list);
+ }
+
+ /**
+ * 灏嗕汉鍛樺鍚嶈浆鎹㈡湭瀵瑰簲鐢ㄦ埛鐨刬d
+ * @param list
+ */
+ @Transactional
+ ImportResult transAndSave(List<DivisionExcel> list){
+
+ List<ProduceDivision> entityList = new ArrayList<>();
+
+ for(DivisionExcel divisionExcel:list){
+ ProduceDivision division = new ProduceDivision();
+
+ division.setProgrammerId(tUserService.getUserIdByName(divisionExcel.getProgrammer()));
+ division.setCheckerId(tUserService.getUserIdByName(divisionExcel.getChecker()));
+ division.setSeniorId(tUserService.getUserIdByName(divisionExcel.getSenior()));
+ division.setTeamLeaderId(tUserService.getUserIdByName(divisionExcel.getTeamLeader()));
+ division.setProgrammer(divisionExcel.getProgrammer());
+ entityList.add(division);
+ }
+
+ List<ProduceDivision> notMatchList = entityList.stream()
+ .filter(d -> d.getProgrammerId()==null || d.getCheckerId()==null || d.getSeniorId()==null || d.getTeamLeaderId()==null).toList();
+
+ List<ProduceDivision> matchList = entityList.stream()
+ .filter(d -> d.getProgrammerId()!=null && d.getCheckerId()!=null && d.getSeniorId()!=null && d.getTeamLeaderId()!=null).toList();
+
+ for(ProduceDivision division : matchList){
+ if(!this.existsSame(division)){
+ this.save(division);
+ }
+ }
+
+ ImportResult ir = new ImportResult();
+ ir.setSuccess(matchList.size());
+ ir.setFailure(notMatchList.size());
+
+ if(ir.getFailure() > 0){
+ String msg = "";
+ StringBuilder sb = new StringBuilder();
+ sb.append("缂栫▼浜哄憳:");
+ for(ProduceDivision division:notMatchList){
+ sb.append(division.getProgrammer()).append(",");
+ }
+ msg = StringUtils.removeEnd(sb.toString(),",")+"鏈夊鍚嶆棤娉曞尮閰嶇敤鎴锋暟鎹�";
+ ir.setMessage(msg);
+ }else{
+ ir.setMessage("瀵煎叆鎴愬姛");
+ }
+ return ir;
+ }
+
+ /**
+ * 妫�鏌ヨ褰曟槸鍚﹀凡缁忓瓨鍦� 閫氳繃4涓汉鐨刬d
+ * @param division 鍒嗗伐琛ㄦ暟鎹�
+ * @return 鏄惁瀛樺湪
+ */
+ boolean existsSame(ProduceDivision division){
+ return this.lambdaQuery().eq(ProduceDivision::getProgrammerId,division.getProgrammerId())
+ .eq(ProduceDivision::getCheckerId,division.getCheckerId()).eq(ProduceDivision::getSeniorId,division.getSeniorId())
+ .eq(ProduceDivision::getTeamLeaderId,division.getTeamLeaderId()).count()>0;
+ }
+
+ public ProduceDivision getByDrawingNo(String drawingNo){
+ List<ProduceDivision> divs = lambdaQuery().eq(ProduceDivision::getDrawingNo, drawingNo).list();
+ if(divs.isEmpty()){
+ return null;
+ }else{
+ return divs.get(0);
+ }
+ }
}
--
Gitblit v1.9.3