From 196dec5ffae084f772dffc0fb1fc4441839f7952 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期三, 22 四月 2026 13:59:03 +0800
Subject: [PATCH] Merge branch 'dev_New_pro' of http://114.132.189.42:9002/r/product-inventory-management-after into dev_New_pro

---
 src/main/java/com/ruoyi/technology/service/impl/TechnologyOperationParamServiceImpl.java |   71 +++++++++++++++++++++++++++++++----
 1 files changed, 63 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/technology/service/impl/TechnologyOperationParamServiceImpl.java b/src/main/java/com/ruoyi/technology/service/impl/TechnologyOperationParamServiceImpl.java
index 122f5cb..107fa22 100644
--- a/src/main/java/com/ruoyi/technology/service/impl/TechnologyOperationParamServiceImpl.java
+++ b/src/main/java/com/ruoyi/technology/service/impl/TechnologyOperationParamServiceImpl.java
@@ -1,20 +1,75 @@
 package com.ruoyi.technology.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.technology.bean.dto.TechnologyOperationParamDto;
+import com.ruoyi.technology.bean.vo.TechnologyOperationParamVo;
+import com.ruoyi.technology.mapper.TechnologyOperationMapper;
 import com.ruoyi.technology.mapper.TechnologyOperationParamMapper;
+import com.ruoyi.technology.mapper.TechnologyParamMapper;
 import com.ruoyi.technology.pojo.TechnologyOperationParam;
+import com.ruoyi.technology.pojo.TechnologyParam;
 import com.ruoyi.technology.service.TechnologyOperationParamService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
-/**
- * <p>
- * 宸ュ簭鍙傛暟 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-04-20 10:05:35
- */
+import java.util.List;
+
 @Service
+@RequiredArgsConstructor
 public class TechnologyOperationParamServiceImpl extends ServiceImpl<TechnologyOperationParamMapper, TechnologyOperationParam> implements TechnologyOperationParamService {
 
+    private final TechnologyOperationParamMapper technologyOperationParamMapper;
+    private final TechnologyOperationMapper technologyOperationMapper;
+    private final TechnologyParamMapper technologyParamMapper;
+
+    /**
+     * 鎸夊伐搴忔垨鍙傛暟鏉′欢鏌ヨ宸ュ簭鍙傛暟鍒楄〃銆�
+     */
+    @Override
+    public List<TechnologyOperationParamVo> listOperationParam(TechnologyOperationParamDto technologyOperationParamDto) {
+        Long operationId = technologyOperationParamDto == null ? null : technologyOperationParamDto.getTechnologyOperationId();
+        Long paramId = technologyOperationParamDto == null ? null : technologyOperationParamDto.getTechnologyParamId();
+        return technologyOperationParamMapper.listOperationParam(operationId, paramId);
+    }
+
+    /**
+     * 淇濆瓨宸ュ簭鍙傛暟骞舵牎楠屽伐搴忋�佸弬鏁板拰鍞竴鎬с��
+     */
+    @Override
+    public boolean saveTechnologyOperationParam(TechnologyOperationParam technologyOperationParam) {
+        if (technologyOperationParam.getTechnologyOperationId() == null
+                || technologyOperationMapper.selectById(technologyOperationParam.getTechnologyOperationId()) == null) {
+            throw new ServiceException("Operation not found");
+        }
+        if (technologyOperationParam.getTechnologyParamId() == null) {
+            throw new ServiceException("Param is required");
+        }
+        TechnologyParam technologyParam = technologyParamMapper.selectById(technologyOperationParam.getTechnologyParamId());
+        if (technologyParam == null) {
+            throw new ServiceException("Param not found");
+        }
+        boolean duplicate = technologyOperationParamMapper.selectCount(Wrappers.<TechnologyOperationParam>lambdaQuery()
+                .eq(TechnologyOperationParam::getTechnologyOperationId, technologyOperationParam.getTechnologyOperationId())
+                .eq(TechnologyOperationParam::getTechnologyParamId, technologyOperationParam.getTechnologyParamId())
+                .ne(technologyOperationParam.getId() != null, TechnologyOperationParam::getId, technologyOperationParam.getId())) > 0;
+        if (duplicate) {
+            throw new ServiceException("Duplicate param in operation");
+        }
+        return this.saveOrUpdate(technologyOperationParam);
+    }
+
+    /**
+     * 鍒犻櫎鍗曚釜宸ュ簭鍙傛暟銆�
+     */
+    @Override
+    public String batchDelete(Long id) {
+        TechnologyOperationParam deleteItem = technologyOperationParamMapper.selectById(id);
+        if (deleteItem == null) {
+            return "Delete failed";
+        }
+        technologyOperationParamMapper.deleteById(id);
+        return "Success";
+    }
 }

--
Gitblit v1.9.3