From c383c8ca7053005ffa3ee58efd89956fbf52c9ea Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 07 五月 2026 11:34:19 +0800
Subject: [PATCH] 重构客户档案

---
 src/main/java/com/ruoyi/technology/service/impl/TechnologyRoutingOperationServiceImpl.java |   72 +++++++++++++++++++++++-------------
 1 files changed, 46 insertions(+), 26 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 15fd9e8..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,16 +1,16 @@
 package com.ruoyi.technology.service.impl;
 
-import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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;
@@ -26,27 +26,22 @@
     private final TechnologyRoutingOperationMapper technologyRoutingOperationMapper;
 
     private final TechnologyRoutingMapper technologyRoutingMapper;
+    private final TechnologyRoutingOperationParamService technologyRoutingOperationParamService;
 
     @Override
     public IPage<TechnologyRoutingOperationVo> pageTechnologyRoutingOperation(Page<TechnologyRoutingOperationDto> page,
                                                                               TechnologyRoutingOperationDto technologyRoutingOperationDto) {
-        Page<TechnologyRoutingOperation> entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
-        return this.page(entityPage, buildQueryWrapper(technologyRoutingOperationDto))
-                .convert(item -> BeanUtil.copyProperties(item, TechnologyRoutingOperationVo.class));
+        return technologyRoutingOperationMapper.pageTechnologyRoutingOperation(page, technologyRoutingOperationDto);
     }
 
     @Override
     public List<TechnologyRoutingOperationVo> listTechnologyRoutingOperation(TechnologyRoutingOperationDto technologyRoutingOperationDto) {
-        return BeanUtil.copyToList(this.list(buildQueryWrapper(technologyRoutingOperationDto)), TechnologyRoutingOperationVo.class);
+        return technologyRoutingOperationMapper.listTechnologyRoutingOperation(technologyRoutingOperationDto);
     }
 
     @Override
     public TechnologyRoutingOperationVo getTechnologyRoutingOperationInfo(Long id) {
-        TechnologyRoutingOperation technologyRoutingOperation = this.getById(id);
-        if (technologyRoutingOperation == null) {
-            return null;
-        }
-        return BeanUtil.copyProperties(technologyRoutingOperation, TechnologyRoutingOperationVo.class);
+        return technologyRoutingOperationMapper.getTechnologyRoutingOperationInfo(id);
     }
 
     @Override
@@ -58,7 +53,14 @@
         if (technologyRoutingOperation.getDragSort() == null || technologyRoutingOperation.getDragSort() <= 0) {
             technologyRoutingOperation.setDragSort(nextDragSort(technologyRoutingOperation.getTechnologyRoutingId()));
         }
-        return this.save(technologyRoutingOperation);
+        boolean saved = this.save(technologyRoutingOperation);
+        if (saved) {
+            TechnologyRoutingOperationParamSyncDto syncDto = new TechnologyRoutingOperationParamSyncDto();
+            syncDto.setTechnologyRoutingOperationId(technologyRoutingOperation.getId());
+            syncDto.setReplaceExisting(true);
+            technologyRoutingOperationParamService.syncTechnologyRoutingOperationParam(syncDto);
+        }
+        return saved;
     }
 
     @Override
@@ -74,20 +76,38 @@
         return removed;
     }
 
-    private LambdaQueryWrapper<TechnologyRoutingOperation> buildQueryWrapper(TechnologyRoutingOperationDto technologyRoutingOperation) {
-        LambdaQueryWrapper<TechnologyRoutingOperation> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.eq(technologyRoutingOperation.getId() != null, TechnologyRoutingOperation::getId, technologyRoutingOperation.getId())
-                .eq(technologyRoutingOperation.getTechnologyRoutingId() != null,
-                        TechnologyRoutingOperation::getTechnologyRoutingId, technologyRoutingOperation.getTechnologyRoutingId())
-                .eq(technologyRoutingOperation.getProductModelId() != null,
-                        TechnologyRoutingOperation::getProductModelId, technologyRoutingOperation.getProductModelId())
-                .eq(technologyRoutingOperation.getTechnologyOperationId() != null,
-                        TechnologyRoutingOperation::getTechnologyOperationId, technologyRoutingOperation.getTechnologyOperationId())
-                .eq(technologyRoutingOperation.getIsQuality() != null,
-                        TechnologyRoutingOperation::getIsQuality, technologyRoutingOperation.getIsQuality())
-                .orderByAsc(TechnologyRoutingOperation::getDragSort)
-                .orderByAsc(TechnologyRoutingOperation::getId);
-        return queryWrapper;
+    @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) {

--
Gitblit v1.9.3