diff --git a/modules/thing/src/main/java/com/thing/thing/dict/service/impl/IotThingDictServiceImpl.java b/modules/thing/src/main/java/com/thing/thing/dict/service/impl/IotThingDictServiceImpl.java index 0e0355e..f9b6565 100644 --- a/modules/thing/src/main/java/com/thing/thing/dict/service/impl/IotThingDictServiceImpl.java +++ b/modules/thing/src/main/java/com/thing/thing/dict/service/impl/IotThingDictServiceImpl.java @@ -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 noDefaultList = mapper.selectListByQuery(QueryWrapper.create().eq(IotThingDictEntity::getTenantCode, UserContext.getRealTenantCode()) - .eq(IotThingDictEntity::getIsDefault, 1)); - + .eq(IotThingDictEntity::getIsDefault, 1).ne(IotThingDictEntity::getId, id)); //自定义字典列表 List defaultList = mapper.selectListByQuery(QueryWrapper.create() - .eq(IotThingDictEntity::getIsDefault, 0)); + .eq(IotThingDictEntity::getIsDefault, 0).ne(IotThingDictEntity::getId, id)); List iotThingDictEntities = Lists.newArrayList(); iotThingDictEntities.addAll(noDefaultList); iotThingDictEntities.addAll(defaultList); //若是大于当前目前序号,则更新当前序号之前的排序 AtomicLong aLong = new AtomicLong(0); + List 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 s.getSort() >= sort) - .sorted(Comparator.comparing(IotThingDictEntity::getSort)) + List 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 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); } } \ No newline at end of file