From 078ef3e4291665a60dda609a631c5fca418947b9 Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期四, 30 四月 2026 15:48:28 +0800
Subject: [PATCH] 删除旧文件上传
---
src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java | 138 +++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 130 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java
index f937f8d..bff3a44 100644
--- a/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java
+++ b/src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java
@@ -1,20 +1,142 @@
package com.ruoyi.technology.service.impl;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+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.technology.bean.dto.TechnologyRoutingOperationDto;
+import com.ruoyi.technology.bean.dto.TechnologyRoutingOperationParamSyncDto;
+import com.ruoyi.technology.bean.vo.TechnologyRoutingOperationVo;
+import com.ruoyi.technology.mapper.TechnologyRoutingMapper;
import com.ruoyi.technology.mapper.TechnologyRoutingOperationMapper;
import com.ruoyi.technology.pojo.TechnologyRoutingOperation;
+import com.ruoyi.technology.service.TechnologyRoutingOperationParamService;
import com.ruoyi.technology.service.TechnologyRoutingOperationService;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
-/**
- * <p>
- * 宸ヨ壓璺嚎宸ュ簭琛� 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-04-20 10:06:47
- */
+import java.util.List;
+
@Service
+@Transactional(rollbackFor = Exception.class)
+@RequiredArgsConstructor
public class TechnologyRoutingOperationServiceImpl extends ServiceImpl<TechnologyRoutingOperationMapper, TechnologyRoutingOperation> implements TechnologyRoutingOperationService {
+ private final TechnologyRoutingOperationMapper technologyRoutingOperationMapper;
+
+ private final TechnologyRoutingMapper technologyRoutingMapper;
+ private final TechnologyRoutingOperationParamService technologyRoutingOperationParamService;
+
+ @Override
+ public IPage<TechnologyRoutingOperationVo> pageTechnologyRoutingOperation(Page<TechnologyRoutingOperationDto> page,
+ TechnologyRoutingOperationDto technologyRoutingOperationDto) {
+ return technologyRoutingOperationMapper.pageTechnologyRoutingOperation(page, technologyRoutingOperationDto);
+ }
+
+ @Override
+ public List<TechnologyRoutingOperationVo> listTechnologyRoutingOperation(TechnologyRoutingOperationDto technologyRoutingOperationDto) {
+ return technologyRoutingOperationMapper.listTechnologyRoutingOperation(technologyRoutingOperationDto);
+ }
+
+ @Override
+ public TechnologyRoutingOperationVo getTechnologyRoutingOperationInfo(Long id) {
+ return technologyRoutingOperationMapper.getTechnologyRoutingOperationInfo(id);
+ }
+
+ @Override
+ public boolean saveTechnologyRoutingOperation(TechnologyRoutingOperation technologyRoutingOperation) {
+ if (technologyRoutingOperation.getTechnologyRoutingId() == null
+ || technologyRoutingMapper.selectById(technologyRoutingOperation.getTechnologyRoutingId()) == null) {
+ throw new RuntimeException("宸ヨ壓璺嚎涓嶅瓨鍦紝鏃犳硶淇濆瓨宸ュ簭");
+ }
+ if (technologyRoutingOperation.getDragSort() == null || technologyRoutingOperation.getDragSort() <= 0) {
+ technologyRoutingOperation.setDragSort(nextDragSort(technologyRoutingOperation.getTechnologyRoutingId()));
+ }
+ boolean saved = this.save(technologyRoutingOperation);
+ if (saved) {
+ TechnologyRoutingOperationParamSyncDto syncDto = new TechnologyRoutingOperationParamSyncDto();
+ syncDto.setTechnologyRoutingOperationId(technologyRoutingOperation.getId());
+ syncDto.setReplaceExisting(true);
+ technologyRoutingOperationParamService.syncTechnologyRoutingOperationParam(syncDto);
+ }
+ return saved;
+ }
+
+ @Override
+ public boolean removeTechnologyRoutingOperation(Long id) {
+ TechnologyRoutingOperation technologyRoutingOperation = this.getById(id);
+ if (technologyRoutingOperation == null) {
+ return false;
+ }
+ boolean removed = this.removeById(id);
+ if (removed) {
+ resetDragSort(technologyRoutingOperation.getTechnologyRoutingId());
+ }
+ return removed;
+ }
+
+ @Override
+ public int sort(TechnologyRoutingOperation technologyRoutingOperation) {
+ //鏌ヨ琚敼鍔ㄧ殑杩欐潯鏁版嵁
+ TechnologyRoutingOperation oldtechnologyRoutingOperation = technologyRoutingOperationMapper.selectById(technologyRoutingOperation.getId());
+ //鏌ヨ璇ュ伐鑹鸿矾绾跨殑鎵�鏈夊伐搴忓苟鎸夌収椤哄簭鎺掑簭
+ List<TechnologyRoutingOperation> technologyRouteOperations = technologyRoutingOperationMapper.selectList(Wrappers.<TechnologyRoutingOperation>lambdaQuery()
+ .eq(TechnologyRoutingOperation::getTechnologyRoutingId, oldtechnologyRoutingOperation.getTechnologyRoutingId())
+ .orderByAsc(TechnologyRoutingOperation::getDragSort));
+ // 鑾峰彇鐩爣浣嶇疆锛堢Щ鍔ㄥ埌绗嚑涓箣鍚庯級
+ Integer targetPosition = technologyRoutingOperation.getDragSort();
+ if (targetPosition != null && targetPosition >= 0) {
+ // 绉诲姩鍏冪礌鍒版柊鐨勪綅缃�
+ technologyRouteOperations.remove(oldtechnologyRoutingOperation);
+ technologyRouteOperations.add(targetPosition-1, oldtechnologyRoutingOperation);
+ // 鏇存柊鎵�鏈夊彈褰卞搷鐨勬帓搴忓瓧娈�
+ for (int i = 0; i < technologyRouteOperations.size(); i++) {
+ TechnologyRoutingOperation item = technologyRouteOperations.get(i);
+ if (!item.getId().equals(oldtechnologyRoutingOperation.getId())) {
+ // 妫�鏌ユ槸鍚﹂渶瑕佹洿鏂版帓搴忓��
+ if (item.getDragSort() != i+1) {
+ item.setDragSort(i+1);
+ technologyRoutingOperationMapper.updateById(item);
+ }
+ } else {
+ // 鏇存柊鍘熻褰曠殑鏂版帓搴忎綅缃�
+ oldtechnologyRoutingOperation.setDragSort(targetPosition);
+ technologyRoutingOperationMapper.updateById(oldtechnologyRoutingOperation);
+ }
+ }
+ return 1;
+ }
+ return 0;
+ }
+
+ private Integer nextDragSort(Long technologyRoutingId) {
+ TechnologyRoutingOperation lastOperation = technologyRoutingOperationMapper.selectOne(
+ Wrappers.<TechnologyRoutingOperation>lambdaQuery()
+ .eq(TechnologyRoutingOperation::getTechnologyRoutingId, technologyRoutingId)
+ .orderByDesc(TechnologyRoutingOperation::getDragSort)
+ .last("limit 1")
+ );
+ if (lastOperation == null || lastOperation.getDragSort() == null) {
+ return 1;
+ }
+ return lastOperation.getDragSort() + 1;
+ }
+
+ private void resetDragSort(Long technologyRoutingId) {
+ List<TechnologyRoutingOperation> operationList = technologyRoutingOperationMapper.selectList(
+ Wrappers.<TechnologyRoutingOperation>lambdaQuery()
+ .eq(TechnologyRoutingOperation::getTechnologyRoutingId, technologyRoutingId)
+ .orderByAsc(TechnologyRoutingOperation::getDragSort)
+ .orderByAsc(TechnologyRoutingOperation::getId)
+ );
+ for (int i = 0; i < operationList.size(); i++) {
+ TechnologyRoutingOperation item = operationList.get(i);
+ int dragSort = i + 1;
+ if (item.getDragSort() == null || item.getDragSort() != dragSort) {
+ item.setDragSort(dragSort);
+ technologyRoutingOperationMapper.updateById(item);
+ }
+ }
+ }
}
--
Gitblit v1.9.3