|
|
@@ -1,5 +1,8 @@
|
|
|
package com.nb.web.service.bus.service;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.nb.common.crud.BaseService;
|
|
|
import com.nb.web.api.entity.BusConfigLogEntity;
|
|
|
import com.nb.web.service.bus.controller.vo.ConfigurationParamVo;
|
|
|
@@ -11,8 +14,13 @@ import com.nb.web.service.bus.service.dto.DeviceConfigurationResult;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author zsl
|
|
|
@@ -47,29 +55,61 @@ public class LocalBusDeviceConfigurationService extends BaseService<BusDeviceCon
|
|
|
return baseMapper.selectByQuery(query);
|
|
|
}
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public int updateConfiguration(ConfigurationParamVo configurationParamVo, List<BusDeviceConfigurationEntity> deviceConfigurationEntitys) {
|
|
|
- int i = 0;
|
|
|
- for (BusDeviceConfigurationEntity entity: deviceConfigurationEntitys
|
|
|
- ) {
|
|
|
+ if(CollectionUtil.isEmpty(deviceConfigurationEntitys)){
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+// int i = 0;
|
|
|
+ Set<String> deviceIds = deviceConfigurationEntitys.stream()
|
|
|
+ .map(BusDeviceConfigurationEntity::getDeviceId)
|
|
|
+ .collect(Collectors.toSet());
|
|
|
+ List<BusDeviceConfigurationEntity> existDevice = this.list(new LambdaQueryWrapper<BusDeviceConfigurationEntity>()
|
|
|
+ .in(BusDeviceConfigurationEntity::getDeviceId, deviceIds));
|
|
|
+ //更新
|
|
|
+ Map<String, BusDeviceConfigurationEntity> deviceMap = existDevice.stream()
|
|
|
+ .collect(Collectors.groupingBy(BusDeviceConfigurationEntity::getDeviceId, Collectors.collectingAndThen(Collectors.toList(), CollectionUtil::getFirst)));
|
|
|
+
|
|
|
+ List<BusDeviceConfigurationEntity> batchUpdate = new ArrayList<>();
|
|
|
+ List<BusDeviceConfigurationEntity> batchInsert = new ArrayList<>();
|
|
|
+ for (BusDeviceConfigurationEntity entity : deviceConfigurationEntitys) {
|
|
|
+ String deviceId = entity.getDeviceId();
|
|
|
entity.setMaxDose(configurationParamVo.getMaxDose());
|
|
|
entity.setFirstDose(configurationParamVo.getFirstDose());
|
|
|
entity.setContinueDose(configurationParamVo.getContinueDose());
|
|
|
entity.setAppendDose(configurationParamVo.getAppendDose());
|
|
|
entity.setSelfControlLockTime(configurationParamVo.getSelfControlLockTime());
|
|
|
entity.setTotalDose(configurationParamVo.getTotalDose());
|
|
|
-
|
|
|
- System.out.println(entity+entity.getTenantId());
|
|
|
- int i1 = baseMapper.insertNew(entity);
|
|
|
-
|
|
|
- if( i1 ==0 ){
|
|
|
- i1 = baseMapper.updateByDeviceId(entity);
|
|
|
+ BusDeviceConfigurationEntity deviceConfiguration = deviceMap.get(deviceId);
|
|
|
+ if(ObjectUtil.isNotNull(deviceConfiguration)){
|
|
|
+ entity.setId(deviceConfiguration.getId());
|
|
|
+ batchUpdate.add(entity);
|
|
|
+ }else {
|
|
|
+ batchInsert.add(entity);
|
|
|
}
|
|
|
- busCinfigLogMapper.insert((BusConfigLogEntity) entity);
|
|
|
- i +=i1;
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
- return i;
|
|
|
+ this.updateBatchById(batchUpdate);
|
|
|
+ this.saveBatch(batchInsert);
|
|
|
+// //插入
|
|
|
+// for (BusDeviceConfigurationEntity entity: deviceConfigurationEntitys
|
|
|
+// ) {
|
|
|
+// entity.setMaxDose(configurationParamVo.getMaxDose());
|
|
|
+// entity.setFirstDose(configurationParamVo.getFirstDose());
|
|
|
+// entity.setContinueDose(configurationParamVo.getContinueDose());
|
|
|
+// entity.setAppendDose(configurationParamVo.getAppendDose());
|
|
|
+// entity.setSelfControlLockTime(configurationParamVo.getSelfControlLockTime());
|
|
|
+// entity.setTotalDose(configurationParamVo.getTotalDose());
|
|
|
+//
|
|
|
+// int i1 = baseMapper.insertNew(entity);
|
|
|
+//
|
|
|
+// if( i1 ==0 ){
|
|
|
+// i1 = baseMapper.updateByDeviceId(entity);
|
|
|
+// }
|
|
|
+// // busCinfigLogMapper.insert((BusConfigLogEntity) entity);
|
|
|
+// i +=i1;
|
|
|
+//
|
|
|
+// }
|
|
|
+
|
|
|
+ return CollectionUtil.size(deviceConfigurationEntitys);
|
|
|
}
|
|
|
}
|