| | |
| | | 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() |