chenshuichuan 1 year ago
parent 838ac67842
commit 6a71fa2f6f

@ -10,7 +10,7 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
public interface ErrorCodeConstants {
ErrorCode DEVICE_NOT_EXISTS = new ErrorCode(1_003_000_000, "设备不存在");
ErrorCode DEVICE_EXISTS = new ErrorCode(1_003_000_000, "同名设备已存在");
ErrorCode DEVICE_EXISTS = new ErrorCode(1_003_000_000, "同名或同主题设备已存在");
ErrorCode DEVICE_ATTRIBUTE_NOT_EXISTS = new ErrorCode(1_003_000_000, "设备属性不存在");
ErrorCode FORMULA_NOT_EXISTS = new ErrorCode(1_003_000_000, "公式不存在");

@ -51,7 +51,9 @@ public interface DeviceMapper extends BaseMapperX<DeviceDO> {
default DeviceDO selectByName(String name) {
return selectOne(DeviceDO::getDeviceName,name);
}
default DeviceDO selectByTopic(String topic) {
return selectOne(DeviceDO::getReadTopic,topic);
}
default List<DeviceDO> selectList(DevicePageReqVO reqVO) {
return selectList(new LambdaQueryWrapperX<DeviceDO>()
.eqIfPresent(DeviceDO::getDeviceCode, reqVO.getDeviceCode())

@ -47,6 +47,7 @@ public interface DeviceService {
*/
DeviceDO getDevice(Long id);
DeviceDO getDeviceByName(String name);
DeviceDO getDeviceByTopic(String topic);
/**
*
*

@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceDO;
import cn.iocoder.yudao.module.iot.dal.dataobject.device.DeviceAttributeDO;
import cn.iocoder.yudao.module.iot.dal.mysql.device.DeviceMapper;
import cn.iocoder.yudao.module.iot.dal.mysql.device.DeviceAttributeMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@ -36,9 +37,11 @@ public class DeviceServiceImpl implements DeviceService {
@Override
public Long createDevice(DeviceSaveReqVO createReqVO) {
DeviceDO temp = deviceMapper.selectByName(createReqVO.getDeviceName());
if (temp!=null){
throw exception(DEVICE_EXISTS);
if(StringUtils.isNotBlank(createReqVO.getReadTopic())){
DeviceDO temp = deviceMapper.selectByTopic(createReqVO.getReadTopic());
if (temp!=null){
throw exception(DEVICE_EXISTS);
}
}
// 插入
DeviceDO device = BeanUtils.toBean(createReqVO, DeviceDO.class);
@ -82,7 +85,10 @@ public class DeviceServiceImpl implements DeviceService {
public DeviceDO getDeviceByName(String name) {
return deviceMapper.selectByName(name);
}
@Override
public DeviceDO getDeviceByTopic(String topic) {
return deviceMapper.selectByTopic(topic);
}
@Override
public PageResult<DeviceDO> getDevicePage(DevicePageReqVO pageReqVO) {
return deviceMapper.selectPage(pageReqVO);

@ -73,7 +73,7 @@ public class MqttServerDataController {
createReqVO.setDeviceData(JSON.toJSONString(saveVO.getPayload()));
mqttRecordService.createMqttRecord(createReqVO);
DeviceDO deviceDO = deviceService.getDeviceByName(saveVO.getTopic());
DeviceDO deviceDO = deviceService.getDeviceByTopic(saveVO.getTopic());
if(deviceDO!=null){
//告警检测
mqttDataService.checkDeviceAlert(saveVO.getPayload(), deviceDO);

@ -60,5 +60,8 @@ public class ProduceReportPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] reportDate;
@Schema(description = "加班时长")
private BigDecimal plusTime;
private List<Long> userIds;
}

@ -75,5 +75,7 @@ public class ProduceReportRespVO {
@DictFormat("mes_produce_report_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private String reportType;
@Schema(description = "加班时长")
@ExcelProperty("加班时长")
private BigDecimal plusTime;
}

@ -58,4 +58,7 @@ public class ProduceReportSaveReqVO {
private List<ProduceReportDetailDO> produceReportDetails;
@Schema(description = "报工日期字符串")
private String reportDateString;
@Schema(description = "加班时长")
private BigDecimal plusTime;
}

@ -1,13 +1,14 @@
package cn.iocoder.yudao.module.mes.dal.dataobject.producereport;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.xml.bind.v2.TODO;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
/**
* DO
@ -86,4 +87,6 @@ public class ProduceReportDO extends BaseDO {
*/
private LocalDateTime reportDate;
//@ExcelProperty("加班时长")
private BigDecimal plusTime;
}

@ -1,5 +1,5 @@
server:
port: 48080
port: 48081
--- #################### 数据库相关配置 ####################
@ -8,7 +8,7 @@ spring:
autoconfigure:
exclude:
- com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
- org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
# - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
- de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
- de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
- de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置
@ -48,7 +48,7 @@ spring:
datasource:
master:
name: besure_neimeng
url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
url: jdbc:mysql://111.67.199.122:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例
# url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例
username: besure_user1
password: zpW5:,LGHACh

Loading…
Cancel
Save