|
@@ -12,6 +12,7 @@ import cn.iocoder.yudao.framework.common.util.object.PageUtils;
|
|
|
import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
|
|
|
import cn.iocoder.yudao.module.pms.ThingsModelDTO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.TableDataInfo;
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.iotdevicecategorytemplateattrs.vo.IotDeviceProperty;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonPageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotdevicerunlog.vo.IotDeviceRunLogRespVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotmodeltemplateattrs.vo.IotModelTemplateAttrsPageReqVO;
|
|
@@ -51,6 +52,7 @@ import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Assert;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.google.common.collect.ImmutableList;
|
|
|
import com.google.common.collect.ImmutableMap;
|
|
@@ -123,6 +125,31 @@ public class IotDeviceServiceImpl implements IotDeviceService {
|
|
|
private IotOpeationFillMapper zhbdmapper;
|
|
|
private final static String parameter = "lng~~经度,lat~~纬度,today_distance~~当日里程,distance~~总里程,todayoil~~当日油量,totaloil~~总油量,online~~是否在线,oil1~~1路油量,oil2~~2路油量,oil3~~3路油量,oil4~~4路油量,vehicle_name~~车牌号码";
|
|
|
|
|
|
+ @Override
|
|
|
+ public void templateChange(String categoryId, List<IotDeviceProperty> properties) {
|
|
|
+ List<IotDeviceDO> iotDeviceDOS = iotDeviceMapper.selectList("asset_class", categoryId);
|
|
|
+ List<IotDeviceDO> collect = iotDeviceDOS.stream().filter(e -> !"".equals(e.getTemplateJson()) && Objects.nonNull(e.getTemplateJson()) && !"[]".equals(e.getTemplateJson())).collect(Collectors.toList());
|
|
|
+ List<String> codes = properties.stream().map(IotDeviceProperty::getCode).collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(collect)){
|
|
|
+ List<IotDeviceProperty> properties1 = JSON.parseArray(collect.get(0).getTemplateJson(), IotDeviceProperty.class);
|
|
|
+ List<String> devicePropertyCodes = properties1.stream().map(IotDeviceProperty::getCode).collect(Collectors.toList());
|
|
|
+ List<String> needAdd = BeanUtils.getElementsOnlyInFirstList(codes, devicePropertyCodes);
|
|
|
+ List<String> needDelete = BeanUtils.getElementsOnlyInFirstList(devicePropertyCodes, codes);
|
|
|
+ collect.forEach(device ->{
|
|
|
+ List<IotDeviceProperty> deviceProperties = JSON.parseArray(device.getTemplateJson(), IotDeviceProperty.class);
|
|
|
+ deviceProperties.removeIf(item -> needDelete.contains(item.getCode()));
|
|
|
+ properties.forEach(property -> {
|
|
|
+ if (needAdd.contains(property.getCode())) {
|
|
|
+ deviceProperties.add(property);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ device.setTemplateJson(JSON.toJSONString(deviceProperties));
|
|
|
+ iotDeviceMapper.updateById(device);
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void importDevice(List<DeviceImportExcelVO> list) {
|
|
|
List<IotDeviceDO> iotDeviceDOS = iotDeviceMapper.selectList();
|