From 763c537040d45334190f470cd5ba056610d3aa36 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 16 四月 2026 11:01:36 +0800
Subject: [PATCH] feat: 部件的导入修改
---
src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java | 130 ++++++++++++++++++++++++++++++++-----------
1 files changed, 96 insertions(+), 34 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
index 3be9086..65e3392 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
@@ -5,10 +5,10 @@
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.ruoyi.basic.pojo.Customer;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.poi.ExcelUtil;
-import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.production.dto.ProductProcessDto;
+import com.ruoyi.production.enums.ProductProcessEnum;
import com.ruoyi.production.mapper.ProcessRouteItemMapper;
import com.ruoyi.production.mapper.ProductProcessMapper;
import com.ruoyi.production.mapper.ProductProcessRouteItemMapper;
@@ -16,20 +16,26 @@
import com.ruoyi.production.pojo.ProductProcess;
import com.ruoyi.production.pojo.ProductProcessRouteItem;
import com.ruoyi.production.service.ProductProcessService;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
+@Slf4j
@Service
public class ProductProcessServiceImpl extends ServiceImpl<ProductProcessMapper, ProductProcess> implements ProductProcessService {
+
@Autowired
private ProductProcessMapper productProcessMapper;
+
@Autowired
private ProcessRouteItemMapper processRouteItemMapper;
+
@Autowired
private ProductProcessRouteItemMapper productProcessRouteItemMapper;
@@ -39,54 +45,110 @@
}
@Override
- public AjaxResult add(ProductProcessDto productProcessDto) {
- ProductProcess productProcess = new ProductProcess();
- BeanUtils.copyProperties(productProcessDto,productProcess);
- boolean save = productProcessMapper.insert(productProcess) > 0;
- if (save && ObjectUtils.isNull(productProcessDto.getNo())) {
- // 鏍规嵁id鐢熸垚no瀛楁锛欸X + 8浣嶆暟瀛楋紙涓嶈冻8浣嶅墠闈㈣ˉ0锛�
- String no = "GX" + String.format("%08d", productProcess.getId());
- productProcess.setNo(no);
-
- productProcessMapper.updateById(productProcess);
- return AjaxResult.success();
+ @Transactional(rollbackFor = Exception.class)
+ public void add(ProductProcessDto productProcessDto) {
+ if (ObjectUtils.isEmpty(productProcessDto.getName())) {
+ throw new ServiceException("閮ㄤ欢鍚嶇О涓嶈兘涓虹┖");
}
- return AjaxResult.success();
+ long count = this.count(Wrappers.<ProductProcess>lambdaQuery().eq(ProductProcess::getName, productProcessDto.getName()));
+ if (count > 0) {
+ throw new ServiceException("閮ㄤ欢鍚嶇О宸插瓨鍦紝涓嶈兘閲嶅");
+ }
+
+ if (ObjectUtils.isNotEmpty(productProcessDto.getNo())) {
+ long noCount = this.count(Wrappers.<ProductProcess>lambdaQuery().eq(ProductProcess::getNo, productProcessDto.getNo()));
+ if (noCount > 0) {
+ throw new ServiceException("宸ュ簭缂栧彿宸插瓨鍦紝涓嶈兘閲嶅");
+ }
+ }
+
+ ProductProcess productProcess = new ProductProcess();
+ BeanUtils.copyProperties(productProcessDto, productProcess);
+ boolean save = productProcessMapper.insert(productProcess) > 0;
+ if (save && ObjectUtils.isEmpty(productProcess.getNo())) {
+ String no = "GX" + String.format("%08d", productProcess.getId());
+ // 娉ㄦ剰锛氳繖閲岀敱浜庢槸鑷姩鐢熸垚鐨� ID 琛ュ叏锛岄�氬父涓嶄細閲嶅锛屼絾寤鸿 set 涔嬪悗鏇存柊
+ productProcess.setNo(no);
+ productProcessMapper.updateById(productProcess);
+ }
}
@Override
- public AjaxResult importData(MultipartFile file) {
- try {
- ExcelUtil<ProductProcess> util = new ExcelUtil<ProductProcess>(ProductProcess.class);
- List<ProductProcess> productProcessList = util.importExcel(file.getInputStream());
- if(CollectionUtils.isEmpty(productProcessList)){
- return AjaxResult.warn("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
+ @Transactional(rollbackFor = Exception.class)
+ public void update(ProductProcessDto productProcessDto) {
+ if (ObjectUtils.isEmpty(productProcessDto.getName())) {
+ throw new ServiceException("閮ㄤ欢鍚嶇О涓嶈兘涓虹┖");
+ }
+
+ long nameCount = this.count(Wrappers.<ProductProcess>lambdaQuery()
+ .eq(ProductProcess::getName, productProcessDto.getName())
+ .ne(ProductProcess::getId, productProcessDto.getId()));
+ if (nameCount > 0) {
+ throw new ServiceException("閮ㄤ欢鍚嶇О宸插瓨鍦紝涓嶈兘閲嶅");
+ }
+ if (ObjectUtils.isNotEmpty(productProcessDto.getNo())) {
+ long noCount = this.count(Wrappers.<ProductProcess>lambdaQuery()
+ .eq(ProductProcess::getNo, productProcessDto.getNo())
+ .ne(ProductProcess::getId, productProcessDto.getId()));
+ if (noCount > 0) {
+ throw new ServiceException("宸ュ簭缂栧彿宸插瓨鍦紝涓嶈兘閲嶅");
}
- productProcessList.forEach(productProcess -> {
+ }
+
+ ProductProcess productProcess = new ProductProcess();
+ BeanUtils.copyProperties(productProcessDto, productProcess);
+ this.updateById(productProcess);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void importData(MultipartFile file) {
+ try {
+ ExcelUtil<ProductProcess> util = new ExcelUtil<>(ProductProcess.class);
+ List<ProductProcess> productProcessList = util.importExcel(file.getInputStream());
+ if (CollectionUtils.isEmpty(productProcessList)) {
+ throw new ServiceException("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
+ }
+
+ for (int i = 0; i < productProcessList.size(); i++) {
+ ProductProcess productProcess = productProcessList.get(i);
+ int rowNum = i + 2;
+
if (ObjectUtils.isEmpty(productProcess)) {
- throw new RuntimeException("浣跨敤妯℃澘杩涜瀵煎叆");
+ throw new ServiceException("绗�" + rowNum + "琛屾暟鎹负绌猴紝璇蜂娇鐢ㄦ纭殑妯℃澘杩涜瀵煎叆");
}
if (ObjectUtils.isEmpty(productProcess.getName())) {
- throw new RuntimeException("宸ュ簭鍚嶇О涓嶈兘涓虹┖");
+ throw new ServiceException("绗�" + rowNum + "琛岋細閮ㄤ欢鍚嶇О涓嶈兘涓虹┖");
}
- });
- this.saveOrUpdateBatch(productProcessList);
- return AjaxResult.success(true);
- }catch (Exception e){
- e.printStackTrace();
- return AjaxResult.error(e.getMessage());
+ if (ObjectUtils.isEmpty(productProcess.getProductProcessType())) {
+ throw new ServiceException("绗�" + rowNum + "琛岋細閮ㄤ欢銆�" + productProcess.getName() + "銆戠殑绫诲瀷涓嶈兘涓虹┖");
+ }
+ ProductProcessEnum enumByInfo = ProductProcessEnum.getEnumByInfo(productProcess.getProductProcessType());
+ if (ObjectUtils.isEmpty(enumByInfo)) {
+ throw new ServiceException("绗�" + rowNum + "琛岋細閮ㄤ欢銆�" + productProcess.getName() + "銆戠殑绫诲瀷銆�" + productProcess.getProductProcessType() + "銆戜笉瀛樺湪锛岃濉啓姝g‘鐨勭被鍨嬶細鍔犲伐銆佸埉鏉垮喎鑺埗浣溿�佺璺粍瀵广�佺綈浣撹繛鎺ュ強璋冭瘯銆佹祴璇曟墦鍘嬨�佸叾浠�");
+ }else {
+ productProcess.setType(enumByInfo.getCode());
+ }
+ }
+
+ saveOrUpdateBatch(productProcessList);
+ } catch (ServiceException e) {
+ throw e;
+ } catch (Exception e) {
+ log.error("閮ㄤ欢瀵煎叆寮傚父:{}", e.getMessage(), e);
+ throw new ServiceException("閮ㄤ欢瀵煎叆寮傚父锛�" + e.getMessage());
}
}
@Override
- public String batchDelete(List<Integer> ids) {
- //鏌ヨ鏄惁鐢熶骇涓凡缁忓紩鐢ㄤ簡杩欎簺宸ュ簭
+ @Transactional(rollbackFor = Exception.class)
+ public void batchDelete(List<Integer> ids) {
+ // 鏌ヨ鏄惁鐢熶骇涓凡缁忓紩鐢ㄤ簡杩欎簺宸ュ簭
List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(Wrappers.<ProcessRouteItem>lambdaQuery().in(ProcessRouteItem::getProcessId, ids));
List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().in(ProductProcessRouteItem::getProcessId, ids));
- if (!CollectionUtils.isEmpty(processRouteItems) || !CollectionUtils.isEmpty(productProcessRouteItems)){
- throw new RuntimeException("璇ュ伐搴忓凡缁忚浣跨敤锛屾棤娉曞垹闄�");
+ if (!CollectionUtils.isEmpty(processRouteItems) || !CollectionUtils.isEmpty(productProcessRouteItems)) {
+ throw new ServiceException("璇ュ伐搴忓凡缁忚浣跨敤锛屾棤娉曞垹闄�");
}
productProcessMapper.deleteBatchIds(ids);
- return null;
}
}
--
Gitblit v1.9.3