时间表下发修改 历史图片查询修改 定时任务缓存新增

master
liuguijing 2 years ago
parent d35ae04832
commit 7ccf413015

@ -84,17 +84,17 @@
</plugin> </plugin>
</plugins> </plugins>
<resources> <!-- <resources>-->
<resource> <!-- <resource>-->
<directory>src/main/resources</directory> <!-- <directory>src/main/resources</directory>-->
<!--打包时排除src/main/resources下的所有以.properties .yml .xml为后缀的配置文件--> <!--打包时排除src/main/resources下的所有以.properties .yml .xml为后缀的配置文件-->
<excludes> <!-- <excludes>-->
<exclude>**/*.properties</exclude> <!-- <exclude>**/*.properties</exclude>-->
<exclude>**/*.yml</exclude> <!-- <exclude>**/*.yml</exclude>-->
<!-- <exclude>**/*.xml</exclude>--> <!-- <exclude>**/*.xml</exclude>-->
</excludes> <!-- </excludes>-->
</resource> <!-- </resource>-->
</resources> <!-- </resources>-->
<finalName>xymanager-admin</finalName> <finalName>xymanager-admin</finalName>
</build> </build>

@ -1 +1 @@
org.springframework.boot.env.EnvironmentPostProcessor=com.shxy.xymanager_framework.config.MyEnvironmentPostProcessor #org.springframework.boot.env.EnvironmentPostProcessor=com.shxy.xymanager_framework.config.MyEnvironmentPostProcessor

@ -3,7 +3,6 @@ package com.shxy.xymanager_common.dto;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
import java.util.List; import java.util.List;
@Data @Data
@ -16,7 +15,7 @@ public class ScheduleAndRuleDto implements Serializable {
private Integer status; private Integer status;
private List<ScheduleRuleDto> list; private List<ScheduleDetailsDto> list;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -7,16 +7,16 @@ import java.sql.Time;
import java.util.Date; import java.util.Date;
@Data @Data
public class ScheduleRuleDto implements Serializable { public class ScheduleDetailsDto implements Serializable {
private Integer id; private Integer id;
private Integer scheduleId; private Integer scheduleId;
private Time startTime; private Integer hour;
private Time endTime; private Integer minute;
private Integer span; private Integer preset;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

@ -0,0 +1,28 @@
package com.shxy.xymanager_common.entity;
import lombok.Data;
import java.io.Serializable;
import java.sql.Time;
import java.util.Date;
@Data
public class ScheduleDetailss implements Serializable {
private Integer id;
private Integer scheduleId;
private Integer hour;
private Integer minute;
private Integer preset;
private Date createTime;
private Date updateTime;
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,28 @@
package com.shxy.xymanager_common.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class TerminalScheduleDetailss implements Serializable {
private Integer id;
private Integer termId;
private Integer channelId;
private Integer hour;
private Integer minute;
private Integer span;
private Date createTime;
private Date updateTime;
private static final long serialVersionUID = 1L;
}

@ -6,7 +6,6 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.sql.Time; import java.sql.Time;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -40,12 +39,12 @@ public class TerminalScheduleRuleListModel implements Serializable {
private String remark; private String remark;
@ApiModelProperty(value = "时间任务详情列表", example = "erwsafsasa") @ApiModelProperty(value = "时间任务详情列表", example = "erwsafsasa")
private List<ScheduleRuleBean> list; private List<ScheduleDetailsBean> list;
} }
@Data @Data
public static class ScheduleRuleBean { public static class ScheduleDetailsBean {
@ApiModelProperty(value = "任务详情编号", example = "123456") @ApiModelProperty(value = "任务详情编号", example = "123456")
private Integer id; private Integer id;

@ -10,6 +10,7 @@ import org.apache.commons.lang3.time.DateFormatUtils;
import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import java.math.BigInteger; import java.math.BigInteger;
import java.sql.Time;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
@ -216,4 +217,19 @@ public class MyDateUtils extends DateUtil {
String date =sdf.format(timeLong*1000); String date =sdf.format(timeLong*1000);
return date; return date;
} }
/**
* Time
*
* @return
*/
public static Time HHMMToTime(Integer hour, Integer minute) {
DateTime dateTime = new DateTime();
dateTime.setField(DateField.HOUR_OF_DAY, hour);
dateTime.setField(DateField.MINUTE, minute);
dateTime.setField(DateField.SECOND, 0);
Time time = Time.valueOf(dateTime.toTimeStr());
return time;
}
} }

@ -0,0 +1,131 @@
package com.shxy.xymanager_common.util;
import cn.hutool.core.date.DateTime;
import com.shxy.xymanager_common.dto.ScheduleDetailsDto;
import com.shxy.xymanager_common.entity.ScheduleDetailss;
import com.shxy.xymanager_common.entity.Schedules;
import com.shxy.xymanager_common.model.TerminalScheduleRuleModel;
import com.shxy.xymanager_common.vo.ScheduleListVo;
import com.shxy.xymanager_common.vo.ScheduleRuleVo;
import javax.validation.constraints.NotEmpty;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
*
* jingjing
*/
public class ScheduleListUtils {
/**
*
*
* @param beans
* @param scheduleid
* @return
*/
public static ArrayList<ScheduleDetailss> getScheduleDetailsses(List<ScheduleRuleVo> beans, Integer scheduleid) {
ArrayList<ScheduleDetailss> list = new ArrayList<>();
for (ScheduleRuleVo item : beans) {
ScheduleDetailss startrule = new ScheduleDetailss();
startrule.setScheduleId(scheduleid);
Time startTime = item.getStartTime();
startrule.setHour(MyDateUtils.hour(startTime, true));
startrule.setMinute(MyDateUtils.minute(startTime));
startrule.setPreset(255);
list.add(startrule);
ScheduleDetailss endrule = new ScheduleDetailss();
endrule.setScheduleId(scheduleid);
Time endTime = item.getEndTime();
endrule.setHour(MyDateUtils.hour(endTime, true));
endrule.setMinute(MyDateUtils.minute(endTime));
endrule.setPreset(255);
list.add(endrule);
Integer span = item.getSpan();
ScheduleDetailss spanrule = new ScheduleDetailss();
spanrule.setScheduleId(scheduleid);
spanrule.setHour(XyNumberUtils.delivery(span, 60));
spanrule.setMinute(XyNumberUtils.remainder(span, 60));
spanrule.setPreset(255);
list.add(spanrule);
}
return list;
}
/**
* CMA
*
* @param dtoList
* @param offset
* @return
*/
public static String relateTime(List<ScheduleDetailsDto> dtoList, int offset) {
StringBuffer timestr = new StringBuffer();
short perset = dtoList.get(0).getPreset().shortValue();
for (int i = 0; i < dtoList.size(); i++) {
short startHour = 0;
short startMin= 0;
short endHour= 0;
short endMin= 0;
short spanHour= 0;
short spanMin= 0;
if (XyNumberUtils.remainder(i, 3) == 1) {
startHour = dtoList.get(i).getHour().shortValue();
startMin = dtoList.get(i).getMinute().shortValue();
} else if (XyNumberUtils.remainder(i, 3) == 2) {
endHour = dtoList.get(i).getHour().shortValue();
endMin = dtoList.get(i).getMinute().shortValue();
} else if (XyNumberUtils.remainder(i, 3) == 0) {
spanHour = dtoList.get(i).getHour().shortValue();
spanMin = dtoList.get(i).getMinute().shortValue();
}
int spanindex = i+1;
int endindex = i+2;
int startindex = i+3;
String string = " --hour" + startindex + "=" + startHour + "\t" + "--min" + startindex + "=" + startMin + "\t" + "--preset" + startindex + "=" + perset + " --hour" + endindex + "=" + endHour + "\t" + "--min" + endindex + "=" + endMin + "\t"
+ "--preset" + endindex + "=" + perset +"--hour" + spanindex + "=" + spanHour + "\t" + "--min" + spanindex + "=" + spanMin + "\t" + "--preset" + spanindex + "=" + perset ;
timestr.append(string);
}
return timestr.toString();
}
/**
*
* @param details
* @return
*/
public static ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> getScheduleRuleBeans(List<ScheduleDetailsDto> details) {
ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = new ArrayList<>();
for (int i = 0; i < details.size(); i++) {
TerminalScheduleRuleModel.ScheduleRuleBean scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean();
if (XyNumberUtils.remainder(i, 3) == 1) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Time time = MyDateUtils.HHMMToTime(hour, minute);
scheduleDetailsBean.setStartTime(time);
} else if (XyNumberUtils.remainder(i, 3) == 2) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Time time = MyDateUtils.HHMMToTime(hour, minute);
scheduleDetailsBean.setEndTime(time);
} else if (XyNumberUtils.remainder(i, 3) == 0) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Number mul = XyNumberUtils.mul((Number) hour, 60);
Number add = XyNumberUtils.add(mul, minute);
scheduleDetailsBean.setSpan(add.intValue());
}
detailsBeans.add(scheduleDetailsBean);
}
return detailsBeans;
}
}

@ -0,0 +1,25 @@
package com.shxy.xymanager_common.util;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.NumberUtil;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
*
*
* @author
*/
public class XyNumberUtils extends NumberUtil {
/*取余*/
public static int remainder(int a, int b) {
return a % b;
}
/*取模*/
public static int delivery(int a, int b) {
return a / b;
}
}

@ -21,9 +21,12 @@ public class TerminalPhotoSelectVo {
@ApiModelProperty(value = "装置编号", example = "123455") @ApiModelProperty(value = "装置编号", example = "123455")
private Integer lineid; private Integer lineid;
@ApiModelProperty(value = "装置编号", example = "123455") @ApiModelProperty(value = "杆塔编号", example = "123455")
private Integer towerid; private Integer towerid;
@ApiModelProperty(value = "装置编号", example = "123455")
private Integer termid;
@ApiModelProperty(value = "通道编号", example = "123455") @ApiModelProperty(value = "通道编号", example = "123455")
private Integer channelid; private Integer channelid;

@ -0,0 +1,31 @@
package com.shxy.xymanager_dao.dao;
import com.shxy.xymanager_common.entity.ScheduleDetails;
import com.shxy.xymanager_common.entity.ScheduleDetailss;
import com.shxy.xymanager_common.entity.TerminalSchedule;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface ScheduleDetailssDao {
int insertSelective(ScheduleDetailss record);
int insertList(@Param("list") List<ScheduleDetailss> record, @Param("createat") Date create, @Param("updateat") Date update);
ScheduleDetails selectByPrimaryKey(Integer id);
List<ScheduleDetailss> selectAll(@Param("status") Integer status);
List<ScheduleDetailss> selectAllByList(@Param("list") List<TerminalSchedule> list);
int deleteById(@Param("scheduleid") Integer id);
int updateByPrimaryKeySelective(@Param("data") ScheduleDetailss record, @Param("updateat") Date update);
int updateByPrimaryKey(ScheduleDetailss record);
List<ScheduleDetailss> selectAllBySceduleidList(@Param("list") List<Integer> distinct);
}

@ -0,0 +1,27 @@
package com.shxy.xymanager_dao.dao;
import com.shxy.xymanager_common.entity.TerminalSchedule;
import com.shxy.xymanager_common.entity.TerminalScheduleDetailss;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
public interface TerminalScheduleDetailssDao {
int deleteByTermiAndChannel(Integer id);
int deleteByTermidAndChannelIdList(@Param("list") List<TerminalSchedule> lsit);
int insert(TerminalScheduleDetailss record);
int insertList(@Param("list") List<TerminalScheduleDetailss> record, @Param("createat") Date createat, @Param("updateat") Date updateat);
int insertSelective(TerminalScheduleDetailss record);
TerminalScheduleDetailss selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(TerminalScheduleDetailss record);
int updateByPrimaryKey(TerminalScheduleDetailss record);
}

@ -22,6 +22,8 @@ public interface TerminalsDao {
Terminals selectByCmdid(@Param("cmdid") String cmdid, @Param("status") Integer status); Terminals selectByCmdid(@Param("cmdid") String cmdid, @Param("status") Integer status);
List<Terminals> selectByTowerId(@Param("towerid") Integer towerid, @Param("status") Integer status);
Terminals selectByToweridAndLineid(@Param("lineid") Integer lineid,@Param("towerid") Integer towerid, @Param("status") Integer status); Terminals selectByToweridAndLineid(@Param("lineid") Integer lineid,@Param("towerid") Integer towerid, @Param("status") Integer status);
int insertList(@Param("item") Terminals record, @Param("status") Integer status, @Param("createat") Date create, @Param("updateat") Date update); int insertList(@Param("item") Terminals record, @Param("status") Integer status, @Param("createat") Date create, @Param("updateat") Date update);

@ -0,0 +1,157 @@
<?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.shxy.xymanager_dao.dao.ScheduleDetailssDao">
<resultMap id="BaseResultMap" type="com.shxy.xymanager_common.entity.ScheduleDetailss">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="schedule_id" jdbcType="INTEGER" property="scheduleId"/>
<result column="hour" jdbcType="INTEGER" property="hour"/>
<result column="minute" jdbcType="INTEGER" property="minute"/>
<result column="preset" jdbcType="INTEGER" property="preset"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
id, schedule_id, start_time, end_time, create_time, update_time
</sql>
<select id="selectByScheduleId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from schedule_detailss
where id = #{id,jdbcType=INTEGER}
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from schedule_detailss
where id = #{id,jdbcType=INTEGER}
</select>
<select id="selectAll" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from schedule_detailss
where status = #{status}
</select>
<select id="selectAllBySceduleidList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from schedule_detailss
<if test="list != null and list.size > 0">
where schedule_id in
<foreach collection="list" item="id" index="index" separator="," open="(" close=")">
#{id}
</foreach>
</if>
</select>
<insert id="insert" parameterType="com.shxy.xymanager_common.entity.ScheduleDetails">
insert into schedule_detailss (id, name, start_time,
end_time, span, remark,
create_time, update_time)
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{startTime,jdbcType=TIME},
#{endTime,jdbcType=TIME}, #{span,jdbcType=INTEGER}, #{remark,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertList" parameterType="java.util.List">
insert into schedule_detailss
(schedule_id,`hour`,`minute`,preset,create_time,update_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.scheduleId},#{item.hour},#{item.minute},#{item.preset},#{createat},#{updateat})
</foreach>
</insert>
<insert id="insertSelective" parameterType="com.shxy.xymanager_common.entity.ScheduleDetails">
insert into schedule_detailss
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="name != null">
name,
</if>
<if test="startTime != null">
start_time,
</if>
<if test="endTime != null">
end_time,
</if>
<if test="span != null">
span,
</if>
<if test="remark != null">
remark,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
<if test="startTime != null">
#{startTime,jdbcType=TIME},
</if>
<if test="endTime != null">
#{endTime,jdbcType=TIME},
</if>
<if test="span != null">
#{span,jdbcType=INTEGER},
</if>
<if test="remark != null">
#{remark,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<delete id="deleteById">
delete from schedule_detailss
where schedule_id = #{scheduleid}
</delete>
<update id="updateByPrimaryKeySelective" parameterType="com.shxy.xymanager_common.entity.ScheduleDetails">
update schedules
<set>
<if test="data.name != null">
name = #{data.name,jdbcType=VARCHAR},
</if>
<if test="data.remark != null">
remark = #{data.remark,jdbcType=VARCHAR},
</if>
<if test="updateat != null">
update_time = #{updateat,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{data.id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.shxy.xymanager_common.entity.ScheduleDetails">
update schedule_detailss
set name = #{name,jdbcType=VARCHAR},
start_time = #{startTime,jdbcType=TIME},
end_time = #{endTime,jdbcType=TIME},
span = #{span,jdbcType=INTEGER},
remark = #{remark,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>

@ -15,12 +15,12 @@
<result column="name" jdbcType="VARCHAR" property="name"/> <result column="name" jdbcType="VARCHAR" property="name"/>
<result column="remark" jdbcType="VARCHAR" property="remark"/> <result column="remark" jdbcType="VARCHAR" property="remark"/>
<result column="status" jdbcType="INTEGER" property="status"/> <result column="status" jdbcType="INTEGER" property="status"/>
<collection property="list" javaType="list" ofType="com.shxy.xymanager_common.dto.ScheduleRuleDto"> <collection property="list" javaType="list" ofType="com.shxy.xymanager_common.dto.ScheduleDetailsDto">
<id column="ruleid" jdbcType="INTEGER" property="id"/> <id column="ruleid" jdbcType="INTEGER" property="id"/>
<result column="schedule_id" jdbcType="INTEGER" property="scheduleId"/> <result column="schedule_id" jdbcType="INTEGER" property="scheduleId"/>
<result column="start_time" jdbcType="TIME" property="startTime"/> <result column="hour" jdbcType="INTEGER" property="hour"/>
<result column="end_time" jdbcType="TIME" property="endTime"/> <result column="minute" jdbcType="INTEGER" property="minute"/>
<result column="span" jdbcType="INTEGER" property="span"/> <result column="preset" jdbcType="INTEGER" property="preset"/>
</collection> </collection>
</resultMap> </resultMap>
@ -42,28 +42,28 @@
x.status as status, x.status as status,
y.id as ruleid, y.id as ruleid,
y.schedule_id as schedule_id, y.schedule_id as schedule_id,
y.start_time as start_time, y.hour as hour,
y.end_time as end_time, y.minute as minute,
y.span as span y.preset as preset
from schedules x, from schedules x,
schedule_details y schedule_detailss y
where y.schedule_id = x.id and x.status = #{status} order by x.create_time desc where y.schedule_id = x.id and x.status = #{status} order by x.create_time desc
</select> </select>
<select id="selectSingle" resultMap="ScheduleAndRule"> <select id="selectSingle" resultMap="ScheduleAndRule">
select select
x.id as id, x.id as id,
x.name as name, x.name as name,
x.remark as remark, x.remark as remark,
x.status as status, x.status as status,
y.id as ruleid, y.id as ruleid,
y.schedule_id as schedule_id, y.schedule_id as schedule_id,
y.start_time as start_time, y.hour as hour,
y.end_time as end_time, y.minute as minute,
y.span as span y.preset as preset
from schedules x, from schedules x,
schedule_details y schedule_details y
where y.schedule_id = x.id and x.status = #{status} and x.id = #{id} where y.schedule_id = x.id and x.status = #{status} and x.id = #{id} limit 1
</select> </select>
<insert id="insert" parameterType="com.shxy.xymanager_common.entity.Schedules"> <insert id="insert" parameterType="com.shxy.xymanager_common.entity.Schedules">
insert into schedules (id, term_id, channel_id, insert into schedules (id, term_id, channel_id,

@ -98,8 +98,11 @@
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
from terminal_photos from terminal_photos
where term_id = #{terminalid} and photo_time between #{starttime} and #{endtime} where photo_time between #{starttime} and #{endtime}
<if test="channelid != null"> <if test="terminalid != null">
and term_id = #{terminalid}
</if>
<if test="channelid != null and channelid.size > 0">
and channel_id in and channel_id in
<foreach collection="channelid" item="item" index="index" open="(" close=")" separator=","> <foreach collection="channelid" item="item" index="index" open="(" close=")" separator=",">
#{item} #{item}

@ -0,0 +1,135 @@
<?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.shxy.xymanager_dao.dao.TerminalScheduleDetailssDao">
<resultMap id="BaseResultMap" type="com.shxy.xymanager_common.entity.TerminalScheduleDetailss">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="term_id" jdbcType="INTEGER" property="termId"/>
<result column="channel_id" jdbcType="INTEGER" property="channelId"/>
<result column="hour" jdbcType="INTEGER" property="hour"/>
<result column="minute" jdbcType="INTEGER" property="minute"/>
<result column="span" jdbcType="INTEGER" property="span"/>
<result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
id,term_id, channel_id, start_time, end_time, span, create_time, update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from terminal_schedule_detailss
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from terminal_schedule_detailss
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.shxy.xymanager_common.entity.TerminalScheduleDetails">
insert into terminal_schedule_detailss (id, schedule_id, start_time,
end_time, span, create_time,
update_time)
values (#{id,jdbcType=INTEGER}, #{scheduleId,jdbcType=INTEGER}, #{startTime,jdbcType=TIME},
#{endTime,jdbcType=TIME}, #{span,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertList">
insert into terminal_schedule_detailss
(term_id, channel_id,start_time, end_time, span, create_time, update_time)
values
<foreach collection="list" item="item" separator=",">
(#{item.termId},#{item.channelId},#{item.startTime},#{item.endTime},#{item.span},#{createat},#{updateat})
</foreach>
</insert>
<insert id="insertSelective" parameterType="com.shxy.xymanager_common.entity.TerminalScheduleDetails">
insert into terminal_schedule_detailss
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="scheduleId != null">
schedule_id,
</if>
<if test="startTime != null">
start_time,
</if>
<if test="endTime != null">
end_time,
</if>
<if test="span != null">
span,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="scheduleId != null">
#{scheduleId,jdbcType=INTEGER},
</if>
<if test="startTime != null">
#{startTime,jdbcType=TIME},
</if>
<if test="endTime != null">
#{endTime,jdbcType=TIME},
</if>
<if test="span != null">
#{span,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.shxy.xymanager_common.entity.TerminalScheduleDetails">
update terminal_schedule_detailss
<set>
<if test="scheduleId != null">
schedule_id = #{scheduleId,jdbcType=INTEGER},
</if>
<if test="startTime != null">
start_time = #{startTime,jdbcType=TIME},
</if>
<if test="endTime != null">
end_time = #{endTime,jdbcType=TIME},
</if>
<if test="span != null">
span = #{span,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.shxy.xymanager_common.entity.TerminalScheduleDetails">
update terminal_schedule_detailss
set schedule_id = #{scheduleId,jdbcType=INTEGER},
start_time = #{startTime,jdbcType=TIME},
end_time = #{endTime,jdbcType=TIME},
span = #{span,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<delete id="deleteByTermidAndChannelIdList">
delete from terminal_schedule_detailss
where
<foreach collection="list" item="item" index="index" separator="or" open="(" close=")">
term_id = #{item.termId} and channel_id = #{item.channelId}
</foreach>
</delete>
</mapper>

@ -178,6 +178,15 @@
from terminals from terminals
where line_id = #{lineid} and tower_id = #{towerid} and status = #{status} limit 1; where line_id = #{lineid} and tower_id = #{towerid} and status = #{status} limit 1;
</select> </select>
<select id="selectByTowerId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from terminals
where status = #{status}
<if test="towerid != null">
and tower_id = #{towerid}
</if>
</select>
<insert id="insertSelective" parameterType="com.shxy.xymanager_common.entity.Terminals"> <insert id="insertSelective" parameterType="com.shxy.xymanager_common.entity.Terminals">
insert into terminals insert into terminals

@ -27,7 +27,10 @@
select select
id, name, line_id id, name, line_id
from tower from tower
where line_id = #{lineid} and status = #{status} where status = #{status}
<if test="lineid != null">
and line_id = #{lineid}
</if>
</select> </select>
<select id="getInfoByPrimaryKey" resultType="com.shxy.xymanager_common.dto.TowerDto"> <select id="getInfoByPrimaryKey" resultType="com.shxy.xymanager_common.dto.TowerDto">

@ -41,10 +41,10 @@
<artifactId>logback-classic</artifactId> <artifactId>logback-classic</artifactId>
</exclusion> </exclusion>
<exclusion> <!-- <exclusion>-->
<groupId>org.springframework.boot</groupId> <!-- <groupId>org.springframework.boot</groupId>-->
<artifactId>spring-boot-starter-tomcat</artifactId> <!-- <artifactId>spring-boot-starter-tomcat</artifactId>-->
</exclusion> <!-- </exclusion>-->
</exclusions> </exclusions>
</dependency> </dependency>

@ -1,6 +1,6 @@
package com.shxy.xymanager_framework.timeTask; package com.shxy.xymanager_framework.timeTask;
import com.shxy.xymanager_framework.timeTask.TerminalTime.TerminalTask; import com.shxy.xymanager_service.cache.XyCache;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
@ -12,18 +12,23 @@ import org.springframework.stereotype.Component;
* @date 2021-01-27 15:06 * @date 2021-01-27 15:06
*/ */
@Component @Component
//@EnableScheduling @EnableScheduling
@Slf4j @Slf4j
public class ScheduledTask { public class ScheduledTask {
@Autowired @Autowired
private TerminalTask terminalTask; private XyCache cache;
@Scheduled(cron = "0 0/2 * * * ?") // @Scheduled(cron = "0 0/2 * * * ?")
private void terminalTask() { // private void terminalTask() {
log.info("----------------开始下发-----------------------------"); // log.info("----------------开始下发-----------------------------");
terminalTask.execute(); // terminalTask.execute();
} // }
@Scheduled(cron = "0 0 0/2 * * ?")
public void cacheinit() {
//每2小时执行一次缓存
cache.init();
}
} }

@ -1,8 +1,6 @@
package com.shxy.xymanager_framework.timeTask.TerminalTime; package com.shxy.xymanager_framework.timeTask.TerminalTime;
import com.shxy.xymanager_service.service.TerminalScheduleRuleService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
@ -13,13 +11,13 @@ import org.springframework.stereotype.Component;
@Component("TerminalTask") @Component("TerminalTask")
public class TerminalTask { public class TerminalTask {
@Autowired // @Autowired
TerminalScheduleRuleService terminalScheduleRuleService; // TerminalScheduleRuleService terminalScheduleRuleService;
/** /**
* *
*/ */
public void execute() { public void execute() {
terminalScheduleRuleService.timerscheckScheldule(); // terminalScheduleRuleService.timerscheckScheldule();
log.info("-- >>> 下发结束"); log.info("-- >>> 下发结束");
} }

@ -0,0 +1,74 @@
package com.shxy.xymanager_service.cache;
import com.shxy.xymanager_common.dto.LineAndDyNameDto;
import com.shxy.xymanager_common.dto.TowerDto;
import com.shxy.xymanager_common.entity.TerminalChannels;
import com.shxy.xymanager_common.entity.Terminals;
import com.shxy.xymanager_common.enums.CommonStatus;
import com.shxy.xymanager_dao.dao.LinesDao;
import com.shxy.xymanager_dao.dao.TerminalChannelsDao;
import com.shxy.xymanager_dao.dao.TerminalsDao;
import com.shxy.xymanager_dao.dao.TowerDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class XyCache {
public static Map<Integer, LineAndDyNameDto> lineMap = new HashMap<Integer, LineAndDyNameDto>();
public static Map<Integer, Terminals> terminalMap = new HashMap<Integer, Terminals>();
public static Map<Integer, TowerDto> towerMap = new HashMap<Integer, TowerDto>();
public static Map<Integer, TerminalChannels> termchannelMap = new HashMap<Integer, TerminalChannels>();
@Autowired
private LinesDao linesDao;
@Autowired
private TerminalsDao terminalsDao;
@Autowired
private TowerDao towerDao;
@Autowired
private TerminalChannelsDao terminalChannelsDao;
@PostConstruct
public void init() {
//系统启动中。。。加载codeMap
List<LineAndDyNameDto> lineAndDyNameDtos = linesDao.selectAll(CommonStatus.EFFECTIVE.value());
for (LineAndDyNameDto lineitem : lineAndDyNameDtos) {
lineMap.put(lineitem.getId(), lineitem);
}
List<Terminals> termslist = terminalsDao.selectAll(CommonStatus.EFFECTIVE.value());
for (Terminals item : termslist) {
terminalMap.put(item.getId(), item);
}
List<TowerDto> towerlist = towerDao.selectAll(CommonStatus.EFFECTIVE.value());
for (TowerDto item : towerlist) {
towerMap.put(item.getId(), item);
}
List<TerminalChannels> channelslist = terminalChannelsDao.selectChannelList(CommonStatus.EFFECTIVE.value());
for (TerminalChannels item : channelslist) {
termchannelMap.put(item.getId(), item);
}
}
@PreDestroy
public void destroy() {
//系统运行结束
}
// @Scheduled(cron = "0 0 0/2 * * ?")
// public void testOne() {
// //每2小时执行一次缓存
// init();
// }
}

@ -167,7 +167,17 @@ public class LineServiceImpl implements LineService {
List<LineAndGtAndChannelListModel.Bean> beans = BeanUtil.copyToList(list, LineAndGtAndChannelListModel.Bean.class); List<LineAndGtAndChannelListModel.Bean> beans = BeanUtil.copyToList(list, LineAndGtAndChannelListModel.Bean.class);
model.setList(beans); model.setList(beans);
} else if (type == 4) { } else if (type == 4) {
List<TermChannelAndMapperDto> list = terminalChannelsDao.selectChannelByTowerId(id, CommonStatus.EFFECTIVE.value()); List<Terminals> list = terminalsDao.selectByTowerId(id, CommonStatus.EFFECTIVE.value());
List<LineAndGtAndChannelListModel.Bean> beans = new ArrayList<>();
for (Terminals item : list) {
LineAndGtAndChannelListModel.Bean bean = new LineAndGtAndChannelListModel.Bean();
bean.setId(item.getId());
bean.setName(item.getDisplayName());
beans.add(bean);
}
model.setList(beans);
} else if (type == 5) {
List<TermChannelAndMapperDto> list = terminalChannelsDao.selectByTermid(id, CommonStatus.EFFECTIVE.value());
List<LineAndGtAndChannelListModel.Bean> beans = new ArrayList<>(); List<LineAndGtAndChannelListModel.Bean> beans = new ArrayList<>();
for (TermChannelAndMapperDto item : list) { for (TermChannelAndMapperDto item : list) {
LineAndGtAndChannelListModel.Bean bean = new LineAndGtAndChannelListModel.Bean(); LineAndGtAndChannelListModel.Bean bean = new LineAndGtAndChannelListModel.Bean();

@ -28,6 +28,7 @@ import com.shxy.xymanager_dao.dao.LinesDao;
import com.shxy.xymanager_dao.dao.TerminalChannelsDao; import com.shxy.xymanager_dao.dao.TerminalChannelsDao;
import com.shxy.xymanager_dao.dao.TerminalPhotoDao; import com.shxy.xymanager_dao.dao.TerminalPhotoDao;
import com.shxy.xymanager_dao.dao.TerminalsDao; import com.shxy.xymanager_dao.dao.TerminalsDao;
import com.shxy.xymanager_service.cache.XyCache;
import com.shxy.xymanager_service.service.TerminalPhotoService; import com.shxy.xymanager_service.service.TerminalPhotoService;
import com.shxy.xymanager_service.service.TerminalScheduleRuleService; import com.shxy.xymanager_service.service.TerminalScheduleRuleService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -40,6 +41,7 @@ import java.math.BigInteger;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* *
@ -143,46 +145,46 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService {
Integer lineid = vo.getLineid(); Integer lineid = vo.getLineid();
Integer towerid = vo.getTowerid(); Integer towerid = vo.getTowerid();
Integer channelid = vo.getChannelid(); Integer channelid = vo.getChannelid();
int pageindex = vo.getPageindex();
int pagesize = vo.getPagesize();
PageUtils.SetPage(pageindex, pagesize);
Date starttime = vo.getStarttime();
Date endtime = vo.getEndtime();
BigInteger start = MyDateUtils.TimeMillSecond2Second(DateTime.of(starttime));
BigInteger end = MyDateUtils.TimeMillSecond2Second(DateTime.of(endtime));
if (BeanUtil.isEmpty(dyid) || BeanUtil.isEmpty(lineid) || BeanUtil.isEmpty(towerid) || BeanUtil.isEmpty(channelid)) { if (BeanUtil.isEmpty(dyid) || BeanUtil.isEmpty(lineid) || BeanUtil.isEmpty(towerid) || BeanUtil.isEmpty(channelid)) {
model.setList(beans); model.setList(beans);
} else { } else {
Integer termid = null;
ArrayList<Integer> channelidlist = new ArrayList<>(); ArrayList<Integer> channelidlist = new ArrayList<>();
channelidlist.add(channelid); if (dyid == null || dyid.intValue() == 0) {
Terminals terminals = terminalsDao.selectByToweridAndLineid(lineid, towerid, CommonStatus.EFFECTIVE.value()); } else {
if (BeanUtil.isEmpty(terminals)) { channelidlist.add(channelid);
return Asserts.error("没有该装置信息"); Terminals terminals = terminalsDao.selectByToweridAndLineid(lineid, towerid, CommonStatus.EFFECTIVE.value());
if (BeanUtil.isEmpty(terminals)) {
return Asserts.error("没有该装置信息");
}
} }
Lines lines = linesDao.selectByPrimaryKey(lineid); list = terminalPhotoDao.selectPhotoList(termid, channelidlist, start, end);
TerminalChannels terminalChannels = terminalChannelsDao.selectByPrimaryKey(channelid);
int pageindex = vo.getPageindex();
int pagesize = vo.getPagesize();
PageUtils.SetPage(pageindex, pagesize);
Date starttime = vo.getStarttime();
Date endtime = vo.getEndtime();
BigInteger start = MyDateUtils.TimeMillSecond2Second(DateTime.of(starttime));
BigInteger end = MyDateUtils.TimeMillSecond2Second(DateTime.of(endtime));
list = terminalPhotoDao.selectPhotoList(terminals.getId(), channelidlist, start, end);
boolean empty = CollectionUtil.isEmpty(list); boolean empty = CollectionUtil.isEmpty(list);
if (empty) { if (empty) {
model.setList(new ArrayList<>()); model.setList(new ArrayList<>());
} else { } else {
Map<Integer, Terminals> terminalMap = XyCache.terminalMap;
Map<Integer, LineAndDyNameDto> lineMap = XyCache.lineMap;
Map<Integer, TerminalChannels> termchannelMap = XyCache.termchannelMap;
for (TerminalPhoto item : list) { for (TerminalPhoto item : list) {
TerminalPhotoSelectListModel.PhotoBean photoBean = new TerminalPhotoSelectListModel.PhotoBean(); TerminalPhotoSelectListModel.PhotoBean photoBean = new TerminalPhotoSelectListModel.PhotoBean();
photoBean.setTermid(terminals.getId()); photoBean.setTermid(item.getTermId());
Terminals terminals = terminalMap.get(item.getTermId());
photoBean.setDisplayname(terminals.getDisplayName()); photoBean.setDisplayname(terminals.getDisplayName());
if (!BeanUtil.isEmpty(lines)) { photoBean.setLineid(terminals.getLineid());
photoBean.setLineid(lineid); photoBean.setLinename(lineMap.get(terminals.getLineid()).getName());
photoBean.setLinename(lines.getName()); photoBean.setChannelid(item.getChannelId());
} photoBean.setChannnelname(termchannelMap.get(item.getChannelId()).getChannelName());
if (!BeanUtil.isEmpty(terminalChannels)) {
photoBean.setChannelid(terminalChannels.getId());
photoBean.setChannnelname(terminalChannels.getChannelName());
}
photoBean.setMediaType(item.getMediaType()); photoBean.setMediaType(item.getMediaType());
photoBean.setOrginalid(item.getOrginalId()); photoBean.setOrginalid(item.getOrginalId());
// photoBean.setPath(photoaddress + item.getPath());
if (item.getMediaType() == 0) { if (item.getMediaType() == 0) {
photoBean.setPath(photoaddress + item.getPath()); photoBean.setPath(photoaddress + item.getPath());
} else { } else {

@ -1,7 +1,6 @@
package com.shxy.xymanager_service.impl; package com.shxy.xymanager_service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
@ -16,15 +15,13 @@ import com.shxy.xymanager_common.constant.Constants;
import com.shxy.xymanager_common.dto.ChannelAndTermDto; import com.shxy.xymanager_common.dto.ChannelAndTermDto;
import com.shxy.xymanager_common.dto.PhotoTimeResultDto; import com.shxy.xymanager_common.dto.PhotoTimeResultDto;
import com.shxy.xymanager_common.dto.ScheduleAndRuleDto; import com.shxy.xymanager_common.dto.ScheduleAndRuleDto;
import com.shxy.xymanager_common.dto.ScheduleRuleDto; import com.shxy.xymanager_common.dto.ScheduleDetailsDto;
import com.shxy.xymanager_common.entity.*; import com.shxy.xymanager_common.entity.*;
import com.shxy.xymanager_common.enums.CommonStatus; import com.shxy.xymanager_common.enums.CommonStatus;
import com.shxy.xymanager_common.exception.Asserts; import com.shxy.xymanager_common.exception.Asserts;
import com.shxy.xymanager_common.model.*; import com.shxy.xymanager_common.model.*;
import com.shxy.xymanager_common.page.PageUtils; import com.shxy.xymanager_common.page.PageUtils;
import com.shxy.xymanager_common.util.MyDateUtils; import com.shxy.xymanager_common.util.*;
import com.shxy.xymanager_common.util.ProcessExecUtils;
import com.shxy.xymanager_common.util.StringUtils;
import com.shxy.xymanager_common.vo.*; import com.shxy.xymanager_common.vo.*;
import com.shxy.xymanager_dao.dao.*; import com.shxy.xymanager_dao.dao.*;
import com.shxy.xymanager_service.service.TerminalScheduleRuleService; import com.shxy.xymanager_service.service.TerminalScheduleRuleService;
@ -34,12 +31,10 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.validation.constraints.NotNull;
import java.sql.Time; import java.sql.Time;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Random;
/** /**
* *
@ -51,8 +46,9 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
@Autowired @Autowired
SchedulesDao schedulesDao; SchedulesDao schedulesDao;
@Autowired @Autowired
ScheduleDetailsDao scheduleDetailsDao; ScheduleDetailssDao scheduleDetailssDao;
@Autowired @Autowired
TerminalScheduleDao terminalScheduleDao; TerminalScheduleDao terminalScheduleDao;
@ -92,7 +88,38 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
if (empty) { if (empty) {
model.setList(new ArrayList<>()); model.setList(new ArrayList<>());
} else { } else {
List<TerminalScheduleRuleListModel.ScheduleBean> beans = BeanUtil.copyToList(list, TerminalScheduleRuleListModel.ScheduleBean.class, CopyOptions.create().ignoreCase()); ArrayList<TerminalScheduleRuleListModel.ScheduleBean> beans = new ArrayList<>();
for (ScheduleAndRuleDto item : list) {
TerminalScheduleRuleListModel.ScheduleBean scheduleBean = new TerminalScheduleRuleListModel.ScheduleBean();
scheduleBean.setId(item.getId());
scheduleBean.setName(item.getName());
scheduleBean.setRemark(item.getRemark());
List<ScheduleDetailsDto> details = item.getList();
ArrayList<TerminalScheduleRuleListModel.ScheduleDetailsBean> detailsBeans = new ArrayList<>();
for (int i = 0; i < details.size(); i++) {
TerminalScheduleRuleListModel.ScheduleDetailsBean scheduleDetailsBean = new TerminalScheduleRuleListModel.ScheduleDetailsBean();
if (XyNumberUtils.remainder(i, 3) == 1) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Time time = MyDateUtils.HHMMToTime(hour, minute);
scheduleDetailsBean.setStartTime(time);
} else if (XyNumberUtils.remainder(i, 3) == 2) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Time time = MyDateUtils.HHMMToTime(hour, minute);
scheduleDetailsBean.setEndTime(time);
} else if (XyNumberUtils.remainder(i, 3) == 0) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Number mul = XyNumberUtils.mul((Number) hour, 60);
Number add = XyNumberUtils.add(mul, minute);
scheduleDetailsBean.setSpan(add.intValue());
}
detailsBeans.add(scheduleDetailsBean);
}
scheduleBean.setList(detailsBeans);
beans.add(scheduleBean);
}
model.setList(beans); model.setList(beans);
} }
PageInfo pageData = PageUtils.getPageData(list); PageInfo pageData = PageUtils.getPageData(list);
@ -120,11 +147,18 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
if (BeanUtil.isEmpty(bean)) { if (BeanUtil.isEmpty(bean)) {
return Asserts.error("没有该对象"); return Asserts.error("没有该对象");
} else { } else {
TerminalScheduleRuleModel model = BeanUtil.copyProperties(bean, TerminalScheduleRuleModel.class); TerminalScheduleRuleModel model = new TerminalScheduleRuleModel();
model.setId(bean.getId());
model.setName(bean.getName());
model.setRemark(bean.getRemark());
List<ScheduleDetailsDto> details = bean.getList();
ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleRuleBeans(details);
model.setList(detailsBeans);
return Asserts.success(model); return Asserts.success(model);
} }
} }
/** /**
* *
* *
@ -143,16 +177,8 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
schedules.setUpdateTime(date); schedules.setUpdateTime(date);
int i1 = schedulesDao.insertSelective(schedules); int i1 = schedulesDao.insertSelective(schedules);
if (i1 != 0) { if (i1 != 0) {
ArrayList<ScheduleDetails> list = new ArrayList<>(); ArrayList<ScheduleDetailss> list = ScheduleListUtils.getScheduleDetailsses(vo.getList(),schedules.getId());
for (ScheduleRuleVo item : vo.getList()) { int i = scheduleDetailssDao.insertList(list, date, date);
ScheduleDetails rule = new ScheduleDetails();
rule.setScheduleId(schedules.getId());
rule.setStartTime(item.getStartTime());
rule.setEndTime(item.getEndTime());
rule.setSpan(item.getSpan());
list.add(rule);
}
int i = scheduleDetailsDao.insertList(list, date, date);
if (i != 0) { if (i != 0) {
return Asserts.success("录入成功"); return Asserts.success("录入成功");
} else { } else {
@ -178,25 +204,14 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
return Asserts.error("没有需要修改任务规则"); return Asserts.error("没有需要修改任务规则");
} }
Date date = new Date(); Date date = new Date();
Schedules schedule = new Schedules(); Schedules schedule = new Schedules();
schedule.setName(vo.getName()); schedule.setName(vo.getName());
schedule.setRemark(vo.getRemark()); schedule.setRemark(vo.getRemark());
schedule.setUpdateTime(date); schedule.setUpdateTime(date);
schedulesDao.updateByPrimaryKeySelective(schedule); schedulesDao.updateByPrimaryKeySelective(schedule);
scheduleDetailssDao.deleteById(scheduleid);
scheduleDetailsDao.deleteById(scheduleid); ArrayList<ScheduleDetailss> list = ScheduleListUtils.getScheduleDetailsses(vo.getList(), scheduleid);
int i = scheduleDetailssDao.insertList(list, date, date);
ArrayList<ScheduleDetails> list = new ArrayList<>();
for (ScheduleRuleVo item : vo.getList()) {
ScheduleDetails rule = new ScheduleDetails();
rule.setScheduleId(scheduleid);
rule.setStartTime(item.getStartTime());
rule.setEndTime(item.getEndTime());
rule.setSpan(item.getSpan());
list.add(rule);
}
int i = scheduleDetailsDao.insertList(list, date, date);
if (i != 0) { if (i != 0) {
return Asserts.success("修改成功"); return Asserts.success("修改成功");
} else { } else {
@ -247,7 +262,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
if (BeanUtil.isEmpty(dto)) { if (BeanUtil.isEmpty(dto)) {
return Asserts.error("没有该拍照时间规则"); return Asserts.error("没有该拍照时间规则");
} }
List<ScheduleRuleDto> dtoList = dto.getList(); List<ScheduleDetailsDto> dtoList = dto.getList();
if (CollectionUtil.isEmpty(dtoList)) { if (CollectionUtil.isEmpty(dtoList)) {
return Asserts.error("没有该拍照时间规则"); return Asserts.error("没有该拍照时间规则");
} }
@ -259,14 +274,14 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
int requestId = Constants.REQUEST_ID.addAndGet(1); int requestId = Constants.REQUEST_ID.addAndGet(1);
int offset = RandomUtil.randomInt(10); int offset = RandomUtil.randomInt(10);
String timestr = relateTime(dtoList, offset); String timestr = ScheduleListUtils.relateTime(dtoList, offset);
String cmd = Constants.CMD + "schedule --group=" + dtoList.size() * 3 + " --flag=1 --clientid=10 --cmdid=" String cmd = Constants.CMD + "schedule --group=" + dtoList.size() * 3 + " --flag=1 --clientid=10 --cmdid="
+ channelAndTermDto.getCmdid() + " --reqid=" + requestId + " --channel=" + channelAndTermDto.getChannelid() + " " + + channelAndTermDto.getCmdid() + " --reqid=" + requestId + " --channel=" + channelAndTermDto.getChannelid() + " " +
timestr; timestr;
ProcessExecUtils.exec(cmd); ProcessExecUtils.exec(cmd);
log.info("cma下发时间表命令" , cmd); log.info("cma下发时间表命令", cmd);
GetScheduleRequestIdListModel.RequestBean requestBean = new GetScheduleRequestIdListModel.RequestBean(); GetScheduleRequestIdListModel.RequestBean requestBean = new GetScheduleRequestIdListModel.RequestBean();
requestBean.setTermid(channelAndTermDto.getTermid()); requestBean.setTermid(channelAndTermDto.getTermid());
requestBean.setChannelid(channelAndTermDto.getChannelid()); requestBean.setChannelid(channelAndTermDto.getChannelid());
@ -289,40 +304,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
return Asserts.success(model); return Asserts.success(model);
} }
private String relateTime(List<ScheduleRuleDto> dtoList, int offset) {
StringBuffer timestr = new StringBuffer();
int index = 1;
for (int j = 0; j < dtoList.size(); j++) {
Integer span = dtoList.get(j).getSpan();
Date startTime = dtoList.get(j).getStartTime();
DateTime startstr = MyDateUtils.offsetMinute(startTime, offset);
Short startHour = Short.parseShort(MyDateUtils.parseHourAndMinute(startstr).split("/")[0]);
Short startMin = Short.parseShort(MyDateUtils.parseHourAndMinute(startstr).split("/")[1]);
Date endTime = dtoList.get(j).getEndTime();
DateTime endstr = MyDateUtils.offsetMinute(endTime, offset);
Short endTimeHour = Short.parseShort(MyDateUtils.parseHourAndMinute(endstr).split("/")[0]);
Short endTimeMin = Short.parseShort(MyDateUtils.parseHourAndMinute(endstr).split("/")[1]);
Integer span1 = -1;
Integer span2 = -1;
if (span / 60 > 0) {
span1 = (span / 60);
span2 = (span % 60);
} else if (span < 60) {
span1 = 0;
span2 = span;
}
int indexOri = index;
int indexAdd = indexOri + 1;
int indexAddT = indexAdd + 1;
String string = " --hour" + indexAddT + "=" + startHour + "\t" + "--min" + indexAddT + "=" + startMin + "\t" + "--preset" + indexAddT + "=255 --hour" + (indexAdd) + "=" + endTimeHour + "\t" + "--min" + (indexAdd) + "=" + endTimeMin + "\t"
+ "--preset" + (indexAdd) + "=255 --hour" + indexOri + "=" + span1 + "\t" + "--min" + indexOri + "=" + span2 + "\t" + "--preset" + indexOri + "=255";
timestr.append(string);
index = indexAddT + 1;
}
return timestr.toString();
}
/** /**
@ -382,74 +364,6 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
} }
/*定时任务查询下发*/
public ServiceBody<String> timerscheckScheldule() {
/*
*
* */
List<Integer> requestidlist = new ArrayList<>();
List<RequestResults> resultsList = requestResultsDao.selectByTypeAndStatus(scheduletype, clientid, 255, null);
/*
*
* 1,1
* 2
* 3detial
* */
if (CollectionUtil.isEmpty(resultsList)) {
return Asserts.success("尚未查询到下发数据");
}
for (RequestResults item : resultsList) {
requestidlist.add(item.getRequestId());
}
terminalSchedulesTempDao.updateStatusByRequestIdList(requestidlist, CommonStatus.EFFECTIVE.value(), new Date());
List<TerminalSchedulesTemp> terminalSchedulesTemps = terminalSchedulesTempDao.selectByRequestId(requestidlist, CommonStatus.EFFECTIVE.value());
ArrayList<TerminalSchedule> terminalSchedules = new ArrayList<>();
ArrayList<Integer> scheduleidlist = new ArrayList<>();
for (TerminalSchedulesTemp item : terminalSchedulesTemps) {
TerminalSchedule record = new TerminalSchedule();
record.setChannelId(item.getChannelId());
record.setScheduleId(item.getScheduleId());
record.setTermId(item.getTermId());
scheduleidlist.add(item.getScheduleId());
terminalSchedules.add(record);
}
Date date = new Date();
if (CollectionUtil.isNotEmpty(terminalSchedules)) {
terminalScheduleDao.insertOrUpdate(terminalSchedules, date, date);//将实际的拍照时间表规则从临时表更新到正式表中
}
ArrayList<Integer> distinct = CollectionUtil.distinct(scheduleidlist);
List<ScheduleDetails> scheduleDetails = scheduleDetailsDao.selectAllBySceduleidList(distinct);
ArrayList<TerminalScheduleDetails> terminalScheduleDetails = new ArrayList<>();
for (int i = 0; i < terminalSchedules.size(); i++) {
for (int j = 0; j < scheduleDetails.size(); j++) {
TerminalSchedule terminalSchedule = terminalSchedules.get(i);
ScheduleDetails scheduleDetailsbean = scheduleDetails.get(j);
if (scheduleDetailsbean.getScheduleId().intValue() == terminalSchedule.getScheduleId().intValue()) {
TerminalScheduleDetails bean = new TerminalScheduleDetails();
bean.setTermId(terminalSchedule.getTermId());
bean.setChannelId(terminalSchedule.getChannelId());
bean.setStartTime(scheduleDetailsbean.getStartTime());
bean.setEndTime(scheduleDetailsbean.getEndTime());
bean.setSpan(scheduleDetailsbean.getSpan());
terminalScheduleDetails.add(bean);
}
}
}
if (CollectionUtil.isNotEmpty(terminalSchedules)) {
terminalScheduleDetailsDao.deleteByTermidAndChannelIdList(terminalSchedules);
}
terminalScheduleDetailsDao.insertList(terminalScheduleDetails, date, date);
int i = requestResultsDao.updateByRequestIdList(requestidlist, CommonStatus.EFFECTIVE.value());//根据requestid将结果表中的状态修改为已下发
if (i != 0) {
return Asserts.success("下发成功");
} else {
return Asserts.error("关联失败");
}
}
/** /**
* *
* *
@ -465,19 +379,21 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
} else { } else {
Integer scheduleId = mapper.getScheduleId(); Integer scheduleId = mapper.getScheduleId();
ScheduleAndRuleDto bean = schedulesDao.selectSingle(scheduleId, CommonStatus.EFFECTIVE.value()); ScheduleAndRuleDto bean = schedulesDao.selectSingle(scheduleId, CommonStatus.EFFECTIVE.value());
List<ScheduleRuleDto> list = bean.getList();
ArrayList<String> timelist = new ArrayList<>(); List<ScheduleDetailsDto> list = bean.getList();
for (ScheduleRuleDto item : list) { ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleRuleBeans(list);
ArrayList<String> timestrlist = new ArrayList<>();
for (TerminalScheduleRuleModel.ScheduleRuleBean item : detailsBeans) {
Time startTime = item.getStartTime(); Time startTime = item.getStartTime();
Time endTime = item.getEndTime(); Time endTime = item.getEndTime();
Integer span = item.getSpan(); Integer span = item.getSpan();
List<DateTime> dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span); List<DateTime> dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span);
for (DateTime data : dateTimes) { for (DateTime data : dateTimes) {
String dateTime = DateUtil.formatTime(data); String dateTime = DateUtil.formatTime(data);
timelist.add(dateTime); timestrlist.add(dateTime);
} }
} }
model.setList(timelist); model.setList(timestrlist);
} }
return Asserts.success(model); return Asserts.success(model);
} }
@ -517,16 +433,16 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
List<String> resultList = Lists.newArrayList(); List<String> resultList = Lists.newArrayList();
for (int i = 0; i < (group / toIndex); i++) { for (int i = 0; i < (group / toIndex); i++) {
List<PhotoTimeResultDto> newList = resultDtoList.subList(i, i + toIndex); List<PhotoTimeResultDto> newList = resultDtoList.subList(i, i + toIndex);
String startTimeStr = newList.get(2).getHour() + ":" + resultDtoList.get(2).getMinute() + ":00"; String startTimeStr = newList.get(2).getHour() + ":" + resultDtoList.get(2).getMinute() + ":00";
String endTimeStr = newList.get(1).getHour() + ":" + resultDtoList.get(1).getMinute() + ":00"; String endTimeStr = newList.get(1).getHour() + ":" + resultDtoList.get(1).getMinute() + ":00";
Date startTime = DateUtil.parseTime(startTimeStr); Date startTime = DateUtil.parseTime(startTimeStr);
Date endTime = DateUtil.parseTime(endTimeStr); Date endTime = DateUtil.parseTime(endTimeStr);
Integer span = newList.get(0).getHour() * 60 + resultDtoList.get(0).getMinute(); Integer span = newList.get(0).getHour() * 60 + resultDtoList.get(0).getMinute();
List<DateTime> dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span); List<DateTime> dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span);
for (DateTime data : dateTimes) { for (DateTime data : dateTimes) {
String dateTime = DateUtil.formatTime(data); String dateTime = DateUtil.formatTime(data);
resultList.add(dateTime); resultList.add(dateTime);
} }
} }
@ -539,4 +455,5 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
return Asserts.success(model); return Asserts.success(model);
} }
} }

@ -85,9 +85,4 @@ public interface TerminalScheduleRuleService {
*/ */
ServiceBody<TerminalScheduleRuleTimeListModel> getCmaSchelduleDetials(RequestIdVo vo); ServiceBody<TerminalScheduleRuleTimeListModel> getCmaSchelduleDetials(RequestIdVo vo);
/**
*
* @return
*/
ServiceBody<String> timerscheckScheldule();
} }

Loading…
Cancel
Save