2021与蓝度共同重构项目,服务端
liuhaonan
2021-12-10 b351d83856603abbca985508000828b71712894d
功能完善
已修改7个文件
已添加6个文件
347 ■■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/domain/LED.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/LampPost.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlan.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/mapper/PlayPlanMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/LampPostMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/resources/mapper/PlayPlanMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/LampPostOnLineState.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlayPlanParam.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LampPostService.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dao/src/main/java/com/sandu/ximon/dao/domain/LED.java
@@ -37,6 +37,8 @@
    /*所属灯杆*/
    private String blongsLamp;
    private Long playPlanId;
    /*IP地址*/
    private String ip;
dao/src/main/java/com/sandu/ximon/dao/domain/LampPost.java
@@ -37,6 +37,9 @@
    /*路灯任务*/
  //  private List<LampMission> missions;
    /*在线状态*/
    private String onLineState;
    /*机器码*/
    private String macCode;
@@ -49,6 +52,7 @@
    /*绑定设备数量*/
    private Integer belongs;
    private LocalDateTime createTime;
dao/src/main/java/com/sandu/ximon/dao/domain/PlayPlan.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
package com.sandu.ximon.dao.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.sandu.common.mybatis.JsonIntegerArrayTypeHandler;
import lombok.Data;
/**
 * æ’­æ”¾è®¡åˆ’表
 * @TableName play_plan
 */
@TableName(value ="play_plan")
@Data
public class PlayPlan implements Serializable {
    /**
     *
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     *
     */
    private Long userId;
    /**
     * æ’­æ”¾è®¡åˆ’名称
     */
    private String name;
    /**
     * èŠ‚ç›®id
     */
    private Long ledProgramId;
    /**
     * èŠ‚ç›®åç§°
     */
    private String ledProgramName;
    /**
     * éŸ³é‡
     */
    private Double volume;
    /**
     * é€‚用系列
     */
    private Integer applySeries;
    /**
     * æ—¥æœŸèŒƒå›´/开
     */
    private LocalDateTime onDateRange;
    /**
     * æ—¥æœŸèŒƒå›´/关
     */
    private LocalDateTime offDateRange;
    /**
     * æ˜ŸæœŸèŒƒå›´
     */
    @TableField(typeHandler = JsonIntegerArrayTypeHandler.class)
    private Integer[] weekRange;
    /**
     * å¼€æ’­æ—¶é—´
     */
    private LocalDateTime onTime;
    /**
     * ä¸‹æ’­æ—¶é—´
     */
    private LocalDateTime offTime;
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
dao/src/main/java/com/sandu/ximon/dao/mapper/PlayPlanMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
package com.sandu.ximon.dao.mapper;
import com.sandu.ximon.dao.domain.PlayPlan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
 * @Entity com.sandu.ximon.dao.domain.PlayPlan
 */
@Mapper
public interface PlayPlanMapper extends BaseMapper<PlayPlan> {
}
dao/src/main/resources/mapper/LampPostMapper.xml
@@ -12,6 +12,7 @@
        <result property="belongsClient" column="belongs_client" jdbcType="VARCHAR"/>
        <result property="clientId" column="client_id" jdbcType="BIGINT"/>
        <result property="macCode" column="mac_code" jdbcType="VARCHAR"/>
        <result property="onLineState" column="on_line_state" jdbcType="VARCHAR"/>
        <result property="address" column="address" jdbcType="VARCHAR"/>
        <result property="lampGroup" column="lamp_group" jdbcType="VARCHAR"/>
        <result property="state" column="state" jdbcType="INTEGER"/>
dao/src/main/resources/mapper/PlayPlanMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sandu.ximon.dao.mapper.PlayPlanMapper">
    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.PlayPlan">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="userId" column="user_id" jdbcType="BIGINT"/>
            <result property="name" column="name" jdbcType="VARCHAR"/>
            <result property="ledProgramId" column="led_program_id" jdbcType="BIGINT"/>
            <result property="ledProgramName" column="led_program_name" jdbcType="VARCHAR"/>
            <result property="volume" column="volume" jdbcType="DOUBLE"/>
            <result property="applySeries" column="apply_series" jdbcType="INTEGER"/>
            <result property="onDateRange" column="on_date_range" jdbcType="TIMESTAMP"/>
            <result property="offDateRange" column="off-date_range" jdbcType="TIMESTAMP"/>
            <result property="weekRange" column="week_range" typeHandler="com.sandu.common.mybatis.JsonStringArrayTypeHandler"/>
            <result property="onTime" column="on_time" jdbcType="TIMESTAMP"/>
            <result property="offTime" column="off_time" jdbcType="TIMESTAMP"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,user_id,name,
        led_program_id,led_program_name,volume,
        apply_series,date_range,week_range,
        on_time,off_time
    </sql>
</mapper>
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LampPostController.java
@@ -37,12 +37,17 @@
        return ResponseUtil.success("分组设置成功");
    }
    @AnonymousAccess
    @PostMapping("/list")
    public ResponseVO<Object> listLamp(){
  //  @AnonymousAccess
    //@PostMapping("/list")
   /* public ResponseVO<Object> listLamp(){
        //List<LampPost> list = lampPostService.list();
        return ResponseUtil.success(lampPostService.list());
        //return ResponseUtil.success(lampPostService.listLamp());
    }*/
    @PostMapping("/list")
    public ResponseVO<Object> listLamp(){
        return ResponseUtil.success(lampPostService.queryStates());
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/AmqpMessageListener.java
@@ -124,8 +124,8 @@
    private void atmosphereAnalysis(String productKey, String deviceName, CommonFrame frame) {
        A5AtmosphereHeartbeatReportInnerFrame transformFrame = new A5AtmosphereHeartbeatReportInnerFrame().transformFrame(frame.getPayload());
//        log.info("大气心跳上报");
//        log.info(transformFrame.toString());
        log.info("大气心跳上报");
        log.info(transformFrame.toString());
    }
    private void lightDataReportAnalysis(String productKey, String deviceName, CommonFrame frame) {
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/amqp/InitAmqpListener.java
@@ -13,12 +13,12 @@
@AllArgsConstructor
public class InitAmqpListener {
    private final MqttMainBoardConfig mqttMainBoardConfig;
   /* private final MqttMainBoardConfig mqttMainBoardConfig;
    @PostConstruct
    public void initListener() throws Exception {
        new AmqpClient(
                mqttMainBoardConfig
        ).execute();
    }
    }*/
}
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/rrpc/enums/LampPostOnLineState.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.sandu.ximon.admin.manager.iot.rrpc.enums;
public enum LampPostOnLineState {
     /*
    ON_LINE è®¾å¤‡åœ¨çº¿ã€‚
    OFFLINE  è®¾å¤‡ç¦»çº¿
    UNACTIVE  è®¾å¤‡æœªæ¿€æ´»
    DISABLE  è®¾å¤‡å·²ç¦ç”¨
    */
    ONLINE(1),
    OFFLINE(2),
    UNACTIVE(3),
    DISABLE(0)
    ;
    LampPostOnLineState(Integer code) {
        this.code = code;
    }
    private final Integer code;
    public Integer getCode() {
        return code;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/param/PlayPlanParam.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.sandu.ximon.admin.param;
import com.baomidou.mybatisplus.annotation.TableField;
import com.sandu.common.mybatis.JsonIntegerArrayTypeHandler;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
@Data
public class PlayPlanParam {
    @NotEmpty
    private String name;
    @NotEmpty
    private String ledProgramName;
    @NotEmpty
    private Long ledProgramId;
    @NotEmpty
    private Double volume;
    /**
     * é€‚用系列
     */
    private Integer applySeries;
    /**
     * æ—¥æœŸèŒƒå›´/开
     */
    @NotEmpty
    private LocalDateTime onDateRange;
    /**
     * æ—¥æœŸèŒƒå›´/关
     */
    @NotEmpty
    private LocalDateTime offDateRange;
    /**
     * æ˜ŸæœŸèŒƒå›´
     */
    @NotNull
    @TableField(typeHandler = JsonIntegerArrayTypeHandler.class)
    private Integer[] weekRange;
    /**
     * å¼€æ’­æ—¶é—´
     */
    @NotEmpty
    private LocalDateTime onTime;
    /**
     * ä¸‹æ’­æ—¶é—´
     */
    @NotEmpty
    private LocalDateTime offTime;
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/LampPostService.java
@@ -1,14 +1,13 @@
package com.sandu.ximon.admin.service;
import cn.hutool.core.lang.Snowflake;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.aliyuncs.iot.model.v20180120.BatchGetDeviceStateResponse;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
import com.sandu.ximon.admin.param.LampPostParam;
import com.sandu.ximon.admin.security.CountSet;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.dao.domain.Client;
import com.sandu.ximon.dao.domain.LampCount;
import com.sandu.ximon.dao.domain.LampPost;
import com.sandu.ximon.dao.mapper.ClientMapper;
@@ -82,7 +81,7 @@
    /**
     * @param group
     * @param Id ç¼–辑分组--选择灯杆
     * @param Id    ç¼–辑分组--选择灯杆
     */
    public void setGroup(String group, List<Long> Id) {
@@ -97,10 +96,32 @@
    public List<LampPost> listLamp() {
        List<LampPost> list = lampPostMapper.listLamp();
       // List<LampPost> list = list(Wrappers.lambdaQuery(LampPost.class));
        // List<LampPost> list = list(Wrappers.lambdaQuery(LampPost.class));
        return list;
    }
    public List<LampPost> queryStates() {
        // List<LampPost> list = list(Wrappers.lambdaQuery(LampPost.class).eq(LampPost::getClientId, SecurityUtils.getUserId()));
        List<LampPost> list = list(Wrappers.lambdaQuery(LampPost.class));
        List<String> MacCodes = new ArrayList<>();
        for (LampPost post : list) {
            MacCodes.add(post.getMacCode());
        }
        List<BatchGetDeviceStateResponse.DeviceStatus> deviceStatuses = MainBoardInvokeSyncService.getInstance().batchGetDeviceState(MacCodes);
        for (LampPost post : list) {
            for (BatchGetDeviceStateResponse.DeviceStatus deviceStatus : deviceStatuses) {
                if(post.getMacCode().equals(deviceStatus.getDeviceName())){
                    post.setOnLineState(deviceStatus.getStatus());
                }
            }
            MacCodes.add(post.getMacCode());
        }
        return list;
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.sandu.ximon.admin.service;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.service.impl.BaseServiceImpl;
import com.sandu.ximon.admin.param.PlayPlanParam;
import com.sandu.ximon.admin.security.SecurityUtils;
import com.sandu.ximon.dao.domain.PlayPlan;
import com.sandu.ximon.dao.enums.AdministratorEnums;
import com.sandu.ximon.dao.mapper.PlayPlanMapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class PlayPlanService extends BaseServiceImpl<PlayPlanMapper, PlayPlan> {
    private final PlayPlanMapper playPlanMapper;
    public boolean addPlan(PlayPlanParam playPlanParam){
        PlayPlan playPlan=new PlayPlan();
        if( AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())){
            playPlan.setUserId(SecurityUtils.getUserId());
        }
        playPlan.setName(playPlanParam.getName());
        playPlan.setLedProgramName(playPlanParam.getLedProgramName());
        playPlan.setLedProgramId(playPlanParam.getLedProgramId());
        playPlan.setVolume(playPlanParam.getVolume());
        playPlan.setApplySeries(playPlanParam.getApplySeries());
        playPlan.setOnDateRange(playPlanParam.getOnDateRange());
        playPlan.setOffDateRange(playPlanParam.getOffDateRange());
        playPlan.setWeekRange(playPlanParam.getWeekRange());
        playPlan.setOnTime(playPlanParam.getOnTime());
        playPlan.setOffTime(playPlanParam.getOffTime());
     return save(playPlan);
    }
    public boolean updatePlan(Long id,PlayPlanParam playPlanParam){
        PlayPlan byId = getById(id);
        if(byId==null){
            throw new BusinessException("操作对象不存在");
        }
        PlayPlan playPlan=new PlayPlan();
        playPlan.setId(id);
        playPlan.setName(playPlanParam.getName());
        playPlan.setLedProgramName(playPlanParam.getLedProgramName());
        playPlan.setLedProgramId(playPlanParam.getLedProgramId());
        playPlan.setVolume(playPlanParam.getVolume());
        playPlan.setApplySeries(playPlanParam.getApplySeries());
        playPlan.setOnDateRange(playPlanParam.getOnDateRange());
        playPlan.setOffDateRange(playPlanParam.getOffDateRange());
        playPlan.setWeekRange(playPlanParam.getWeekRange());
        playPlan.setOnTime(playPlanParam.getOnTime());
        playPlan.setOffTime(playPlanParam.getOffTime());
        return updateById(playPlan);
    }
    public boolean deletePlan(Long id){
        PlayPlan byId = getById(id);
        if(byId==null){
            throw new BusinessException("操作对象不存在");
        }
     return removeById(id);
    }
}