From 79e81a02076cdd1e828eb06029cd51eb37522f42 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 18 九月 2025 09:11:37 +0800
Subject: [PATCH] 首页下载问题修复
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/basesetting/producedivision/service/ProduceDivisionService.java | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 157 insertions(+), 9 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 38b9c52..8e402d3 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,30 +1,77 @@
package org.springblade.mdm.basesetting.producedivision.service;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.mdm.basesetting.producedivision.entity.ProduceDivision;
+import org.springblade.mdm.basesetting.producedivision.entity.QinzheFgb;
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;
+ @Autowired
+ private QinzheFgbService qinzheFgbService;
+ /**
+ * 鏂板鍒嗗伐琛�
+ * @param vo
+ */
@Transactional
- public void savePlan(ProduceDivisionVO vo){
- //TODO
+ public void saveDivision(ProduceDivisionVO vo){
+ /*
+ if(drawingNoExists(vo.getpro,null)){
+ throw new ServiceException("鍥惧彿宸插瓨鍦細"+vo.getDrawingNo());
+ }*/
ProduceDivision plan = new ProduceDivision();
BeanUtil.copyProperties(vo, plan);
this.save(plan);
}
- public boolean updatePlan(ProduceDivisionVO vo) {
+ /**
+ * 鍒ゆ柇鍥惧彿鏄惁宸插瓨鍦�
+ * @param drawingNo 鍥惧彿
+ * @param excludeId 鎺掗櫎id
+ * @return 鏄惁瀛樺湪
+ */
+ /*
+ boolean drawingNoExists(String drawingNo,Long excludeId){
+ return this.lambdaQuery()
+ .eq(ProduceDivision::getDrawingNo, drawingNo)
+ .ne(excludeId!=null,ProduceDivision::getId,excludeId).count()>0;
+ }*/
+
+ /**
+ * 淇敼鍒嗗伐琛�
+ * @param vo 鏁版嵁VO
+ * @return 鏄惁鎴愬姛
+ */
+ public boolean updateDivision(ProduceDivisionVO vo) {
+ if(vo.getId() == null){
+ throw new ServiceException("id涓嶈兘鏈┖");
+ }
+ /*
+ if(drawingNoExists(vo.getDrawingNo(),vo.getId())){
+ throw new ServiceException("鍥惧彿宸插瓨鍦細"+vo.getDrawingNo());
+ }*/
+
ProduceDivision plan = this.getById(vo.getId());
plan.setTeamLeaderId(vo.getTeamLeaderId());
@@ -39,11 +86,112 @@
* @return 鍒嗛〉鏁版嵁
*/
public IPage<ProduceDivisionViewVO> pageQuery(String name, Query query) {
-
- LambdaQueryWrapper<ProduceDivision> queryWrapper = new LambdaQueryWrapper<>();
-
-
-
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;
+ }
+
+
+ /**
+ * 鏍规嵁鍕ゅ摬闆朵欢鍙蜂簬涓荤缂栧埗鑾峰彇鍒嗗伐琛ㄦ暟鎹� 鍥惧彿->鍕ゅ摬鏁版嵁锛堢紪鍒讹級 -> 涓诲埗鍒嗗伐琛ㄦ暟鎹�
+ *
+ * @param drawingNo
+ * @return
+ */
+ public ProduceDivision getByDrawingNoWithQinzhe(String drawingNo){
+ QinzheFgb qinzheFgb = qinzheFgbService.getByLjh(drawingNo);
+ if(qinzheFgb == null){
+ throw new ServiceException("鏈壘鍒伴浂缁勪欢鍙�:"+drawingNo);
+ }
+
+ Long programmerId = tUserService.getUserIdByName(qinzheFgb.getZggy());
+ if(programmerId == null){
+ throw new ServiceException("鏍规嵁["+qinzheFgb.getZggy()+"]鏈壘鍒板搴旂殑绯荤粺鐢ㄦ埛锛岃妫�鏌ョ敤鎴锋槸鍚﹀瓨鍦�");
+ }
+ ProduceDivision division = lambdaQuery().eq(ProduceDivision::getProgrammerId, programmerId).list().stream().findFirst().orElse(null);
+ if(division == null){
+ throw new ServiceException("浜哄憳鑱岃矗琛ㄦ棤涓荤宸ヨ壓["+qinzheFgb.getZggy()+"]瀵瑰簲鐨勬暟鎹�");
+ }
+
+ return division;
+ }
+
+ /**
+ * 閫夋嫨涓荤宸ヨ壓鏁版嵁
+ * @param programmer
+ * @return
+ */
+ public List<ProduceDivisionViewVO> queryProgrammer(String programmer) {
+ return baseMapper.queryProgrammer(programmer);
+ }
}
--
Gitblit v1.9.3