Sfoglia il codice sorgente

feat:新增添加预警人员时,系统用户账号重复自动补数字逻辑
feat:点位管理新增字段
feat:监控设备新增字段

黄渊昊 3 giorni fa
parent
commit
d7fee3484d

+ 3 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/alarmuser/param/AlarmUserEditParam.java

@@ -42,6 +42,9 @@ public class AlarmUserEditParam {
     @Schema(description = "用户姓名")
     private String name;
 
+    @Schema(description = "昵称")
+    private String nickName;
+
     @Schema(description = "手机号")
     private String phone;
 

+ 10 - 3
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/alarmuser/service/impl/AlarmUserServiceImpl.java

@@ -18,6 +18,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.hutool.extra.pinyin.PinyinUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -80,8 +81,6 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
     private DevConfigApi devConfigApi;
     @Resource
     private MonitorTargetMapper monitorTargetMapper;
-    @Resource
-    private SysUserMapper sysUserMapper;
 
     @Override
     public Page<ExtendUserDTO> page(AlarmUserPageParam alarmUserPageParam) {
@@ -148,7 +147,7 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
         List<AlarmUser> alarmByOpenId = getAlarmByOpenId(alarmUser.getOpenId());
         SysUser sysUser = createSysUser(alarmUser, alarmUserAddParam.getCreateOrg(), alarmUserAddParam.getName());
         Assert.isTrue(alarmByOpenId.isEmpty(), "微信已绑定其他报警接收人,请勿重复绑定");
-        sysUserMapper.insert(sysUser);
+//        sysUserMapper.insert(sysUser);
         alarmUser.setUserId(sysUser.getId());
         this.save(alarmUser);
     }
@@ -346,6 +345,14 @@ public class AlarmUserServiceImpl extends ServiceImpl<AlarmUserMapper, AlarmUser
         sysUser.setSortCode(99);
         // 设置状态
         sysUser.setUserStatus(SysUserStatusEnum.ENABLE.getValue());
+        //
+        String account = PinyinUtil.getPinyin(sysUser.getName()).replaceAll("\\s", "");
+        List<SysUser> userLikeAccount = sysUserService.getUserLikeAccount(account);
+        if (!userLikeAccount.isEmpty()) {
+            sysUser.setAccount(account + userLikeAccount.size());
+        } else {
+            sysUser.setAccount(account);
+        }
         // 发布增加事件
         CommonDataChangeEventCenter.doAddWithData(SysDataTypeEnum.USER.getValue(), JSONUtil.createArray().put(sysUser));
         sysUserService.save(sysUser);

+ 2 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/entity/MonitorDevice.java

@@ -93,7 +93,8 @@ public class MonitorDevice  extends OrgEntity {
      * 通知方式
      */
     @Schema(description = "通知方式")
-    private String notificationChannel;
+    @TableField(typeHandler = com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler.class)
+    private List<String> notificationChannel;
 
     /**
      * 延时提醒

+ 2 - 2
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/service/impl/MonitorDeviceServiceImpl.java

@@ -172,7 +172,7 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
     public void add(MonitorDeviceAddParam monitorDeviceAddParam) {
         // 转换参数
         MonitorDevice monitorDevice = BeanUtil.toBean(monitorDeviceAddParam, MonitorDevice.class);
-        monitorDevice.setNotificationChannel(monitorDeviceAddParam.getNotificationChannel().toString());
+        monitorDevice.setNotificationChannel(monitorDeviceAddParam.getNotificationChannel());
         // 检查设备编码是否已注册
         if (this.getByDeviceCode(monitorDevice.getDeviceCode())) {
             throw new CommonException("设备编码已注册使用:{}", monitorDevice.getDeviceCode());
@@ -230,7 +230,7 @@ public class MonitorDeviceServiceImpl extends ServiceImpl<MonitorDeviceMapper, M
     @Override
     public void edit(MonitorDeviceEditParam monitorDeviceEditParam) {
         MonitorDevice monitorDevice = this.queryEntity(monitorDeviceEditParam.getId());
-        monitorDevice.setNotificationChannel(monitorDeviceEditParam.getNotificationChannel().toString());
+        monitorDevice.setNotificationChannel(monitorDeviceEditParam.getNotificationChannel());
         BeanUtil.copyProperties(monitorDeviceEditParam, monitorDevice);
         List<MonitorDevice> deviceByDeviceName = this.getDeviceByDeviceName(monitorDevice.getDeviceName());
         for (MonitorDevice device : deviceByDeviceName) {

+ 12 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/entity/MonitorTargetRegion.java

@@ -189,6 +189,18 @@ public class MonitorTargetRegion extends OrgEntity {
     @JsonIgnore
     private List<NotificationChannel> notificationChannel = List.of(NotificationChannel.WECHAT);
 
+    /**
+     * 延期预警
+     */
+    @Schema(description = "延时预警")
+    private Integer hours;
+
+    /**
+     * 预警通知
+     */
+    @Schema(description = "预警通知")
+    private String enabled;
+
     @Schema(description = "勿扰开始时间")
     private String ignoreStartTime;
 

+ 21 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/param/MonitorTargetRegionAddParam.java

@@ -13,13 +13,16 @@
 package vip.xiaonuo.coldchain.modular.monitortargetregion.param;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.google.common.collect.Lists;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotNull;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.coldchain.core.alarm.bean.NotificationChannel;
 import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
+import vip.xiaonuo.coldchain.core.handler.NotificationChannelListTypeHandler;
 import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 import vip.xiaonuo.coldchain.modular.app.param.FloatNullToDashSerializer;
 
@@ -172,4 +175,22 @@ public class MonitorTargetRegionAddParam {
      */
     @Schema(description = "短信预警")
     private Boolean smgOfflineAlarm = false;
+
+    /**
+     * 用户的通知渠道设置,支持选择接收告警的多个渠道,如短信、邮件、APP通知等
+     */
+    @Schema(description = "用户的通知渠道设置,支持选择接收告警的多个渠道,如短信、邮件、APP通知等")
+    private List<NotificationChannel> notificationChannel = List.of(NotificationChannel.WECHAT);
+
+    /**
+     * 延期预警
+     */
+    @Schema(description = "延时预警")
+    private Integer hours;
+
+    /**
+     * 预警通知
+     */
+    @Schema(description = "预警通知")
+    private String enabled;
 }

+ 20 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/param/MonitorTargetRegionEditParam.java

@@ -19,6 +19,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import lombok.Getter;
 import lombok.Setter;
+import vip.xiaonuo.coldchain.core.alarm.bean.NotificationChannel;
 import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
 import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
 import vip.xiaonuo.coldchain.modular.app.param.FloatNullToDashSerializer;
@@ -175,4 +176,23 @@ public class MonitorTargetRegionEditParam {
      */
     @Schema(description = "短信预警")
     private Boolean smgOfflineAlarm = false;
+
+
+    /**
+     * 用户的通知渠道设置,支持选择接收告警的多个渠道,如短信、邮件、APP通知等
+     */
+    @Schema(description = "用户的通知渠道设置,支持选择接收告警的多个渠道,如短信、邮件、APP通知等")
+    private List<NotificationChannel> notificationChannel = List.of(NotificationChannel.WECHAT);
+
+    /**
+     * 延期预警
+     */
+    @Schema(description = "延时预警")
+    private Integer hours;
+
+    /**
+     * 预警通知
+     */
+    @Schema(description = "预警通知")
+    private String enabled;
 }

+ 2 - 0
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/SysUserService.java

@@ -488,4 +488,6 @@ public interface SysUserService extends IService<SysUser> {
      * @param name
      */
     Page<SysUser> getUserByName(String name);
+
+    List<SysUser> getUserLikeAccount(String account);
 }

+ 12 - 0
snowy-plugin/snowy-plugin-sys/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java

@@ -1595,4 +1595,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 .eq(SysUser::getUserStatus, "ENABLE");
         return this.page(CommonPageRequest.defaultPage(), queryWrapper);
     }
+
+    @Override
+    public List<SysUser> getUserLikeAccount(String account) {
+        LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
+        String regex = "^(" + account + "|" + account + "\\\\d+)$";
+
+        queryWrapper.apply("account REGEXP '" + regex + "'")
+                .eq(SysUser::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE)
+                .eq(SysUser::getUserStatus, "ENABLE");
+
+        return list(queryWrapper);
+    }
 }