Browse Source

Merge pull request 'master' (#51) from master into V3

Reviewed-on: http://git.lrdaiot.cn:9000/thing/thing_api/pulls/51
qingyuan_dev_new
夏超 1 year ago
parent
commit
3169b7f0e5
  1. 4
      common/tskv/src/main/java/com/thing/common/tskv/service/LatestNativeSQL.java
  2. 8
      common/tskv/src/main/java/com/thing/common/tskv/service/TsKvNativeSQL.java
  3. 58
      modules/carbon-track/src/main/java/com/thing/carbontrack/dict/controller/IotCarbonUnitDictController.java
  4. 27
      modules/carbon-track/src/main/java/com/thing/carbontrack/dict/dto/IotCarbonUnitDictDTO.java
  5. 14
      modules/carbon-track/src/main/java/com/thing/carbontrack/dict/dto/IotCarbonUnitDto.java
  6. 32
      modules/carbon-track/src/main/java/com/thing/carbontrack/dict/entity/IotCarbonUnitDictEntity.java
  7. 16
      modules/carbon-track/src/main/java/com/thing/carbontrack/dict/mapper/IotCarbonUnitDictMapper.java
  8. 22
      modules/carbon-track/src/main/java/com/thing/carbontrack/dict/service/IotCarbonUnitDictService.java
  9. 65
      modules/carbon-track/src/main/java/com/thing/carbontrack/dict/service/impl/IotCarbonUnitDictServiceImpl.java
  10. 2
      modules/thing/src/main/java/com/thing/device/source/service/IotThingSourceService.java
  11. 15
      modules/thing/src/main/java/com/thing/device/source/service/impl/IotThingSourceServiceImpl.java

4
common/tskv/src/main/java/com/thing/common/tskv/service/LatestNativeSQL.java

@ -53,9 +53,9 @@ public class LatestNativeSQL {
}
});
if (DatabaseType.MYSQL.equals(dataType) || DatabaseType.Tidb.equals(dataType)) {
sql.append(" ON DUPLICATE KEY UPDATE val = VALUES(val),ts = VALUES(ts)");
sql.append(" ON DUPLICATE KEY UPDATE val = VALUES(val),ts = VALUES(ts),YEAR = VALUES(YEAR),MONTH = VALUES(MONTH),DAY = VALUES(DAY),HOUR = VALUES(HOUR),MINUTE = VALUES(MINUTE)");
} else if (DatabaseType.PG.equals(dataType) || DatabaseType.Timescale.equals(dataType)) {
sql.append(" ON CONFLICT (thing_code, attr_key) DO UPDATE SET val = EXCLUDED.val,ts= EXCLUDED.ts");
sql.append(" ON CONFLICT (thing_code, attr_key) DO UPDATE SET val = EXCLUDED.val,ts= EXCLUDED.ts,YEAR = EXCLUDED.YEAR,MONTH = EXCLUDED.MONTH,DAY = EXCLUDED.DAY,HOUR = EXCLUDED.HOUR,MINUTE = EXCLUDED.MINUTE");
}
sql.append(";");
return sql.toString();

8
common/tskv/src/main/java/com/thing/common/tskv/service/TsKvNativeSQL.java

@ -111,9 +111,9 @@ public class TsKvNativeSQL {
}
});
if (DatabaseType.MYSQL.equals(dataType) || DatabaseType.Tidb.equals(dataType)) {
sql.append(" ON DUPLICATE KEY UPDATE val = VALUES(val)");
sql.append(" ON DUPLICATE KEY UPDATE val = VALUES(val),YEAR = VALUES(YEAR),MONTH = VALUES(MONTH),DAY = VALUES(DAY),HOUR = VALUES(HOUR),MINUTE = VALUES(MINUTE)");
} else if (DatabaseType.PG.equals(dataType) || DatabaseType.Timescale.equals(dataType)) {
sql.append(" ON CONFLICT (thing_code, attr_key, ts) DO UPDATE SET val = EXCLUDED.val");
sql.append(" ON CONFLICT (thing_code, attr_key, ts) DO UPDATE SET val = EXCLUDED.val,YEAR = EXCLUDED.YEAR,MONTH = EXCLUDED.MONTH,DAY = EXCLUDED.DAY,HOUR = EXCLUDED.HOUR,MINUTE = EXCLUDED.MINUTE");
}
sql.append(";");
return sql.toString();
@ -161,9 +161,9 @@ public class TsKvNativeSQL {
}
});
if (DatabaseType.MYSQL.equals(dataType) || DatabaseType.Tidb.equals(dataType)) {
sql.append(" ON DUPLICATE KEY UPDATE val = VALUES(val)");
sql.append(" ON DUPLICATE KEY UPDATE val = VALUES(val),YEAR = VALUES(YEAR),MONTH = VALUES(MONTH),DAY = VALUES(DAY),HOUR = VALUES(HOUR),MINUTE = VALUES(MINUTE)");
} else if (DatabaseType.PG.equals(dataType) || DatabaseType.Timescale.equals(dataType)) {
sql.append(" ON CONFLICT (thing_code, attr_key, ts) DO UPDATE SET val = EXCLUDED.val");
sql.append(" ON CONFLICT (thing_code, attr_key, ts) DO UPDATE SET val = EXCLUDED.val,YEAR = EXCLUDED.YEAR,MONTH = EXCLUDED.MONTH,DAY = EXCLUDED.DAY,HOUR = EXCLUDED.HOUR,MINUTE = EXCLUDED.MINUTE");
}
sql.append(";");
return sql.toString();

58
modules/carbon-track/src/main/java/com/thing/carbontrack/dict/controller/IotCarbonUnitDictController.java

@ -0,0 +1,58 @@
package com.thing.carbontrack.dict.controller;
import com.thing.carbontrack.dict.dto.IotCarbonUnitDto;
import com.thing.carbontrack.dict.service.IotCarbonUnitDictService;
import com.thing.common.core.web.response.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 计量单位字典
*
* @author xc
* @since 3.0 2024-09-23
*/
@RestController
@RequestMapping("v2/carbonDict")
@Tag(name="计量单位字典")
@RequiredArgsConstructor
public class IotCarbonUnitDictController {
private final IotCarbonUnitDictService iotCarbonUnitDictService;
@GetMapping("list")
@Operation(summary="一级结构列表")
public Result<List<String>> getList(){
List<String> info = iotCarbonUnitDictService.getList();
return new Result< List<String>>().ok(info);
}
@GetMapping("listByPName")
@Operation(summary="二级结构列表")
public Result<List<String>> listByPName(@RequestParam String pName){
List<String> info = iotCarbonUnitDictService.listByPName(pName);
return new Result< List<String>>().ok(info);
}
@GetMapping("listInfo")
@Operation(summary="树结构列表")
public Result<List<IotCarbonUnitDto>> listInfo(){
List<IotCarbonUnitDto> info = iotCarbonUnitDictService.listInfo();
return new Result< List<IotCarbonUnitDto>>().ok(info);
}
}

27
modules/carbon-track/src/main/java/com/thing/carbontrack/dict/dto/IotCarbonUnitDictDTO.java

@ -0,0 +1,27 @@
package com.thing.carbontrack.dict.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 计量单位字典
*
* @author xc
* @since 3.0 2024-09-23
*/
@Data
@Schema(description = "计量单位字典")
public class IotCarbonUnitDictDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Long id;
private String pName;
private String pCode;
private String cName;
private String cCode;
}

14
modules/carbon-track/src/main/java/com/thing/carbontrack/dict/dto/IotCarbonUnitDto.java

@ -0,0 +1,14 @@
package com.thing.carbontrack.dict.dto;
import lombok.Data;
import java.util.List;
@Data
public class IotCarbonUnitDto {
private String pNAME;
private List<String> cList;
}

32
modules/carbon-track/src/main/java/com/thing/carbontrack/dict/entity/IotCarbonUnitDictEntity.java

@ -0,0 +1,32 @@
package com.thing.carbontrack.dict.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.io.Serializable;
/**
* 计量单位字典
*
* @author xc
* @since 3.0 2024-09-23
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper=false)
@Table("iot_carbon_unit_dict")
public class IotCarbonUnitDictEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id
private Long id;
private String pName;
private String pCode;
private String cName;
private String cCode;
}

16
modules/carbon-track/src/main/java/com/thing/carbontrack/dict/mapper/IotCarbonUnitDictMapper.java

@ -0,0 +1,16 @@
package com.thing.carbontrack.dict.mapper;
import com.thing.carbontrack.dict.entity.IotCarbonUnitDictEntity;
import com.thing.common.orm.mapper.PowerBaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 计量单位字典
*
* @author xc
* @since 3.0 2024-09-23
*/
@Mapper
public interface IotCarbonUnitDictMapper extends PowerBaseMapper<IotCarbonUnitDictEntity> {
}

22
modules/carbon-track/src/main/java/com/thing/carbontrack/dict/service/IotCarbonUnitDictService.java

@ -0,0 +1,22 @@
package com.thing.carbontrack.dict.service;
import com.thing.carbontrack.dict.dto.IotCarbonUnitDto;
import com.thing.carbontrack.dict.entity.IotCarbonUnitDictEntity;
import com.thing.common.orm.service.IBaseService;
import java.util.List;
/**
* 计量单位字典
*
* @author xc
* @since 3.0 2024-09-23
*/
public interface IotCarbonUnitDictService extends IBaseService<IotCarbonUnitDictEntity> {
List<String> getList();
List<String> listByPName(String pName);
List<IotCarbonUnitDto> listInfo();
}

65
modules/carbon-track/src/main/java/com/thing/carbontrack/dict/service/impl/IotCarbonUnitDictServiceImpl.java

@ -0,0 +1,65 @@
package com.thing.carbontrack.dict.service.impl;
import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.query.QueryWrapper;
import com.thing.carbontrack.dict.dto.IotCarbonUnitDto;
import com.thing.carbontrack.dict.entity.IotCarbonUnitDictEntity;
import com.thing.carbontrack.dict.mapper.IotCarbonUnitDictMapper;
import com.thing.carbontrack.dict.service.IotCarbonUnitDictService;
import com.thing.common.orm.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static com.mybatisflex.core.query.QueryMethods.distinct;
/**
* 计量单位字典
*
* @author xc
* @since 3.0 2024-09-23
*/
@Service
public class IotCarbonUnitDictServiceImpl extends BaseServiceImpl<IotCarbonUnitDictMapper, IotCarbonUnitDictEntity> implements IotCarbonUnitDictService {
@Override
public QueryWrapper getWrapper(Map<String, Object> params){
QueryWrapper wrapper = new QueryWrapper();
return wrapper;
}
@Override
public List<String> getList() {
QueryColumn pName = new QueryColumn("p_name");
QueryWrapper wrapper = new QueryWrapper();
wrapper.select(distinct(pName))
.from("iot_carbon_unit_dict");
return this.listAs(wrapper,String.class);
}
@Override
public List<String> listByPName(String pName) {
QueryColumn cName = new QueryColumn("c_name");
QueryWrapper wrapper = new QueryWrapper();
wrapper.select(distinct(cName))
.from("iot_carbon_unit_dict");
wrapper.eq("p_name",pName);
return this.listAs(wrapper,String.class);
}
@Override
public List<IotCarbonUnitDto> listInfo() {
List<IotCarbonUnitDto> resultList = new ArrayList<>();
List<String> pNames = this.getList();
pNames.forEach(temp->{
IotCarbonUnitDto dto = new IotCarbonUnitDto();
dto.setPNAME(temp);
dto.setCList(this.listByPName(temp));
resultList.add(dto);
});
return resultList;
}
}

2
modules/thing/src/main/java/com/thing/device/source/service/IotThingSourceService.java

@ -49,5 +49,7 @@ public interface IotThingSourceService extends IBaseService<IotThingSourceEntity
List<String> attrGroup();
Long getMaxSort(String configType,Long fromId,Long rootId);
List<IotThingSourceDTO> attrGroupRootId(IotThingSourceReqDTO iotThingSourceDTO);
}

15
modules/thing/src/main/java/com/thing/device/source/service/impl/IotThingSourceServiceImpl.java

@ -566,6 +566,21 @@ public class IotThingSourceServiceImpl extends BaseServiceImpl<IotThingSourceMap
return strings.stream().filter(s -> !StringUtils.isBlank(s)).distinct().collect(Collectors.toList());
}
@Override
public Long getMaxSort(String configType, Long fromId,Long rootId) {
List<IotThingSourceEntity> iotThingSourceEntities = mapper.selectListByQuery(
new QueryWrapper()
.eq(IotThingSourceEntity::getFromId, fromId)
.eq(IotThingSourceEntity::getConfigType, configType)
.eq(IotThingSourceEntity::getRootId, rootId)
.eq(IotThingSourceEntity::getTenantCode, UserContext.getRealTenantCode())
);
if(CollectionUtils.isEmpty(iotThingSourceEntities)){
return 0L;
}
return iotThingSourceEntities.stream().max(Comparator.comparing(IotThingSourceEntity::getSort)).get().getSort()+1;
}
@Override
public List<IotThingSourceDTO> attrGroupRootId(IotThingSourceReqDTO iotThingSourceDTO) {
List<IotThingSourceRelationDTO> iotThingSourceRelationDTOList = iotThingSourceDTO.getIotThingSourceRelationDTOList();

Loading…
Cancel
Save