| | |
| | | package com.ruoyi.production.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | 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.common.exception.ServiceException; |
| | | import com.ruoyi.production.dto.ProcessRouteItemDto; |
| | | import com.ruoyi.production.mapper.ProcessRouteItemMapper; |
| | | import com.ruoyi.production.pojo.ProcessRouteItem; |
| | |
| | | public class ProcessRouteItemServiceImpl extends ServiceImpl<ProcessRouteItemMapper, ProcessRouteItem> implements ProcessRouteItemService { |
| | | |
| | | @Autowired |
| | | private ProcessRouteItemMapper processRouteItemMapper; |
| | | private ProcessRouteItemMapper processRouteItemMapper; |
| | | |
| | | @Override |
| | | public List<ProcessRouteItemDto> listProcessRouteItemDto(ProcessRouteItemDto processRouteItemDto) { |
| | | return processRouteItemMapper.listProcessRouteItemDto( processRouteItemDto); |
| | | return processRouteItemMapper.listProcessRouteItemDto(processRouteItemDto); |
| | | } |
| | | |
| | | //排序 |
| | |
| | | List<ProcessRouteItem> processRouteItems = processRouteItemMapper.selectList(Wrappers.<ProcessRouteItem>lambdaQuery() |
| | | .eq(ProcessRouteItem::getRouteId, oldProcessRouteItem.getRouteId()) |
| | | .orderByAsc(ProcessRouteItem::getDragSort)); |
| | | //查询被更改的那条数据原来是第几条 |
| | | int oldIndex = processRouteItems.indexOf(oldProcessRouteItem); |
| | | // 获取目标位置(移动到第几个之后) |
| | | Integer targetPosition = processRouteItem.getDragSort(); |
| | | if (targetPosition != null && targetPosition >= 0) { |
| | | // 移动元素到新的位置 |
| | | processRouteItems.remove(oldProcessRouteItem); |
| | | processRouteItems.add(targetPosition-1, oldProcessRouteItem); |
| | | processRouteItems.add(targetPosition - 1, oldProcessRouteItem); |
| | | // 更新所有受影响的排序字段 |
| | | for (int i = 0; i < processRouteItems.size(); i++) { |
| | | ProcessRouteItem item = processRouteItems.get(i); |
| | | if (!item.getId().equals(oldProcessRouteItem.getId())) { |
| | | // 检查是否需要更新排序值 |
| | | if (item.getDragSort() != i+1) { |
| | | item.setDragSort(i+1); |
| | | if (item.getDragSort() != i + 1) { |
| | | item.setDragSort(i + 1); |
| | | processRouteItemMapper.updateById(item); |
| | | } |
| | | } else { |
| | |
| | | return 1; |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | @Override |
| | | public void saveOrUpdateRouteItem(ProcessRouteItem processRouteItem) { |
| | | if (processRouteItem == null) { |
| | | throw new ServiceException("新增/修改失败,数据不能为空"); |
| | | } |
| | | |
| | | // 如果id为null则新增,否则就更新 |
| | | if (processRouteItem.getId() == null) { |
| | | // 查询出当前有多少个子集 |
| | | Long selectCount = baseMapper.selectCount(new LambdaQueryWrapper<ProcessRouteItem>().eq(ProcessRouteItem::getRouteId, processRouteItem.getRouteId())); |
| | | if (selectCount == null) { |
| | | selectCount = 0L; |
| | | } |
| | | processRouteItem.setDragSort((int) (selectCount + 1)); |
| | | baseMapper.insert(processRouteItem); |
| | | return; |
| | | } |
| | | baseMapper.updateById(processRouteItem); |
| | | } |
| | | |
| | | @Override |
| | |
| | | // 重新设置排序值,使序号连续 |
| | | for (int i = 0; i < processRouteItems.size(); i++) { |
| | | ProcessRouteItem item = processRouteItems.get(i); |
| | | if (!item.getDragSort().equals(i+1)) { |
| | | item.setDragSort(i+1); |
| | | if (!item.getDragSort().equals(i + 1)) { |
| | | item.setDragSort(i + 1); |
| | | processRouteItemMapper.updateById(item); |
| | | } |
| | | } |