|
|
|
@ -9,8 +9,6 @@ import com.mybatisflex.core.constant.SqlConsts; |
|
|
|
import com.mybatisflex.core.paginate.Page; |
|
|
|
import com.mybatisflex.core.query.QueryCondition; |
|
|
|
import com.mybatisflex.core.query.QueryWrapper; |
|
|
|
import com.mybatisflex.core.row.Db; |
|
|
|
import com.mybatisflex.core.update.UpdateChain; |
|
|
|
import com.thing.common.core.enumeration.DictTypeEnum; |
|
|
|
import com.thing.common.core.enumeration.IsDefaultEnum; |
|
|
|
import com.thing.common.core.exception.SysException; |
|
|
|
@ -391,19 +389,18 @@ public class IotThingDictServiceImpl extends BaseServiceImpl<IotThingDictMapper, |
|
|
|
public void dragAndDrop(Long id, Long toId, Long sort) { |
|
|
|
IotThingDictEntity iotThingDictEntity = mapper.selectOneById(id); |
|
|
|
IotThingDictEntity toDictEntity = mapper.selectOneById(toId); |
|
|
|
|
|
|
|
//自定义字典列表 |
|
|
|
List<IotThingDictEntity> noDefaultList = mapper.selectListByQuery(QueryWrapper.create().eq(IotThingDictEntity::getTenantCode, UserContext.getRealTenantCode()) |
|
|
|
.eq(IotThingDictEntity::getIsDefault, 1)); |
|
|
|
|
|
|
|
.eq(IotThingDictEntity::getIsDefault, 1).ne(IotThingDictEntity::getId, id)); |
|
|
|
//自定义字典列表 |
|
|
|
List<IotThingDictEntity> defaultList = mapper.selectListByQuery(QueryWrapper.create() |
|
|
|
.eq(IotThingDictEntity::getIsDefault, 0)); |
|
|
|
.eq(IotThingDictEntity::getIsDefault, 0).ne(IotThingDictEntity::getId, id)); |
|
|
|
List<IotThingDictEntity> iotThingDictEntities = Lists.newArrayList(); |
|
|
|
iotThingDictEntities.addAll(noDefaultList); |
|
|
|
iotThingDictEntities.addAll(defaultList); |
|
|
|
//若是大于当前目前序号,则更新当前序号之前的排序 |
|
|
|
AtomicLong aLong = new AtomicLong(0); |
|
|
|
List<IotThingDictEntity> resList = Lists.newArrayList(); |
|
|
|
if(toDictEntity.getSort()<=sort){ |
|
|
|
iotThingDictEntities.stream().filter(s -> s.getSort() < sort) |
|
|
|
.sorted(Comparator.comparing(IotThingDictEntity::getSort)) |
|
|
|
@ -420,30 +417,22 @@ public class IotThingDictServiceImpl extends BaseServiceImpl<IotThingDictMapper, |
|
|
|
mapper.update(s); |
|
|
|
}); |
|
|
|
}else{ |
|
|
|
iotThingDictEntities.stream().filter(s -> s.getSort() >= sort) |
|
|
|
.sorted(Comparator.comparing(IotThingDictEntity::getSort)) |
|
|
|
List<IotThingDictEntity> list = iotThingDictEntities.stream().filter(s -> s.getSort() <= sort).toList(); |
|
|
|
list.stream().sorted(Comparator.comparing(IotThingDictEntity::getSort)) |
|
|
|
.forEach(s -> { |
|
|
|
s.setSort(aLong.incrementAndGet()); |
|
|
|
mapper.update(s); |
|
|
|
}); |
|
|
|
resList.addAll(list); |
|
|
|
iotThingDictEntity.setSort(aLong.incrementAndGet()); |
|
|
|
iotThingDictEntities.stream().filter(s -> s.getSort() > sort) |
|
|
|
.sorted(Comparator.comparing(IotThingDictEntity::getSort)) |
|
|
|
resList.add(iotThingDictEntity); |
|
|
|
List<IotThingDictEntity> list1 = iotThingDictEntities.stream().filter(s -> s.getSort() > sort).toList(); |
|
|
|
list1.stream().sorted(Comparator.comparing(IotThingDictEntity::getSort)) |
|
|
|
.forEach(s -> { |
|
|
|
s.setSort(aLong.incrementAndGet()); |
|
|
|
mapper.update(s); |
|
|
|
}); |
|
|
|
resList.addAll(list1); |
|
|
|
} |
|
|
|
|
|
|
|
// Db.executeBatch(iotThingDictEntities.size(), 1000, IotThingDictMapper.class, (mapper, index) -> { |
|
|
|
// IotThingDictEntity account = iotThingDictEntities.get(index); |
|
|
|
// UpdateChain.of(account).update(); |
|
|
|
// }); |
|
|
|
|
|
|
|
// iotThingDictEntities.forEach(s -> mapper.update(s)); |
|
|
|
// |
|
|
|
// int i = Db.updateEntitiesBatch(iotThingDictEntities, 1000); |
|
|
|
// System.out.println(i); |
|
|
|
this.updateBatch(resList); |
|
|
|
} |
|
|
|
|
|
|
|
} |