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

master
liuguijing 2 years ago
parent d35ae04832
commit 7ccf413015

@ -84,17 +84,17 @@
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- <resources>-->
<!-- <resource>-->
<!-- <directory>src/main/resources</directory>-->
<!--打包时排除src/main/resources下的所有以.properties .yml .xml为后缀的配置文件-->
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.yml</exclude>
<!-- <excludes>-->
<!-- <exclude>**/*.properties</exclude>-->
<!-- <exclude>**/*.yml</exclude>-->
<!-- <exclude>**/*.xml</exclude>-->
</excludes>
</resource>
</resources>
<!-- </excludes>-->
<!-- </resource>-->
<!-- </resources>-->
<finalName>xymanager-admin</finalName>
</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 java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
@ -16,7 +15,7 @@ public class ScheduleAndRuleDto implements Serializable {
private Integer status;
private List<ScheduleRuleDto> list;
private List<ScheduleDetailsDto> list;
private static final long serialVersionUID = 1L;

@ -7,16 +7,16 @@ import java.sql.Time;
import java.util.Date;
@Data
public class ScheduleRuleDto implements Serializable {
public class ScheduleDetailsDto implements Serializable {
private Integer id;
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;

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

@ -10,6 +10,7 @@ import org.apache.commons.lang3.time.DateFormatUtils;
import java.lang.management.ManagementFactory;
import java.math.BigInteger;
import java.sql.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@ -216,4 +217,19 @@ public class MyDateUtils extends DateUtil {
String date =sdf.format(timeLong*1000);
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")
private Integer lineid;
@ApiModelProperty(value = "装置编号", example = "123455")
@ApiModelProperty(value = "杆塔编号", example = "123455")
private Integer towerid;
@ApiModelProperty(value = "装置编号", example = "123455")
private Integer termid;
@ApiModelProperty(value = "通道编号", example = "123455")
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);
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);
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="remark" jdbcType="VARCHAR" property="remark"/>
<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"/>
<result column="schedule_id" jdbcType="INTEGER" property="scheduleId"/>
<result column="start_time" jdbcType="TIME" property="startTime"/>
<result column="end_time" jdbcType="TIME" property="endTime"/>
<result column="span" jdbcType="INTEGER" property="span"/>
<result column="hour" jdbcType="INTEGER" property="hour"/>
<result column="minute" jdbcType="INTEGER" property="minute"/>
<result column="preset" jdbcType="INTEGER" property="preset"/>
</collection>
</resultMap>
@ -42,28 +42,28 @@
x.status as status,
y.id as ruleid,
y.schedule_id as schedule_id,
y.start_time as start_time,
y.end_time as end_time,
y.span as span
y.hour as hour,
y.minute as minute,
y.preset as preset
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
</select>
<select id="selectSingle" resultMap="ScheduleAndRule">
select
x.id as id,
x.id as id,
x.name as name,
x.remark as remark,
x.status as status,
y.id as ruleid,
y.schedule_id as schedule_id,
y.start_time as start_time,
y.end_time as end_time,
y.span as span
y.hour as hour,
y.minute as minute,
y.preset as preset
from schedules x,
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>
<insert id="insert" parameterType="com.shxy.xymanager_common.entity.Schedules">
insert into schedules (id, term_id, channel_id,

@ -98,8 +98,11 @@
select
<include refid="Base_Column_List"/>
from terminal_photos
where term_id = #{terminalid} and photo_time between #{starttime} and #{endtime}
<if test="channelid != null">
where photo_time between #{starttime} and #{endtime}
<if test="terminalid != null">
and term_id = #{terminalid}
</if>
<if test="channelid != null and channelid.size > 0">
and channel_id in
<foreach collection="channelid" item="item" index="index" open="(" close=")" separator=",">
#{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
where line_id = #{lineid} and tower_id = #{towerid} and status = #{status} limit 1;
</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 into terminals

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

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

@ -1,6 +1,6 @@
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
@ -12,18 +12,23 @@ import org.springframework.stereotype.Component;
* @date 2021-01-27 15:06
*/
@Component
//@EnableScheduling
@EnableScheduling
@Slf4j
public class ScheduledTask {
@Autowired
private TerminalTask terminalTask;
private XyCache cache;
@Scheduled(cron = "0 0/2 * * * ?")
private void terminalTask() {
log.info("----------------开始下发-----------------------------");
terminalTask.execute();
}
// @Scheduled(cron = "0 0/2 * * * ?")
// private void terminalTask() {
// log.info("----------------开始下发-----------------------------");
// 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;
import com.shxy.xymanager_service.service.TerminalScheduleRuleService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
@ -13,13 +11,13 @@ import org.springframework.stereotype.Component;
@Component("TerminalTask")
public class TerminalTask {
@Autowired
TerminalScheduleRuleService terminalScheduleRuleService;
// @Autowired
// TerminalScheduleRuleService terminalScheduleRuleService;
/**
*
*/
public void execute() {
terminalScheduleRuleService.timerscheckScheldule();
// terminalScheduleRuleService.timerscheckScheldule();
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);
model.setList(beans);
} 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<>();
for (TermChannelAndMapperDto item : list) {
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.TerminalPhotoDao;
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.TerminalScheduleRuleService;
import lombok.extern.slf4j.Slf4j;
@ -40,6 +41,7 @@ import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
*
@ -143,46 +145,46 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService {
Integer lineid = vo.getLineid();
Integer towerid = vo.getTowerid();
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)) {
model.setList(beans);
} else {
Integer termid = null;
ArrayList<Integer> channelidlist = new ArrayList<>();
channelidlist.add(channelid);
if (dyid == null || dyid.intValue() == 0) {
Terminals terminals = terminalsDao.selectByToweridAndLineid(lineid, towerid, CommonStatus.EFFECTIVE.value());
if (BeanUtil.isEmpty(terminals)) {
return Asserts.error("没有该装置信息");
} else {
channelidlist.add(channelid);
Terminals terminals = terminalsDao.selectByToweridAndLineid(lineid, towerid, CommonStatus.EFFECTIVE.value());
if (BeanUtil.isEmpty(terminals)) {
return Asserts.error("没有该装置信息");
}
}
Lines lines = linesDao.selectByPrimaryKey(lineid);
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);
list = terminalPhotoDao.selectPhotoList(termid, channelidlist, start, end);
boolean empty = CollectionUtil.isEmpty(list);
if (empty) {
model.setList(new ArrayList<>());
} else {
Map<Integer, Terminals> terminalMap = XyCache.terminalMap;
Map<Integer, LineAndDyNameDto> lineMap = XyCache.lineMap;
Map<Integer, TerminalChannels> termchannelMap = XyCache.termchannelMap;
for (TerminalPhoto item : list) {
TerminalPhotoSelectListModel.PhotoBean photoBean = new TerminalPhotoSelectListModel.PhotoBean();
photoBean.setTermid(terminals.getId());
photoBean.setTermid(item.getTermId());
Terminals terminals = terminalMap.get(item.getTermId());
photoBean.setDisplayname(terminals.getDisplayName());
if (!BeanUtil.isEmpty(lines)) {
photoBean.setLineid(lineid);
photoBean.setLinename(lines.getName());
}
if (!BeanUtil.isEmpty(terminalChannels)) {
photoBean.setChannelid(terminalChannels.getId());
photoBean.setChannnelname(terminalChannels.getChannelName());
}
photoBean.setLineid(terminals.getLineid());
photoBean.setLinename(lineMap.get(terminals.getLineid()).getName());
photoBean.setChannelid(item.getChannelId());
photoBean.setChannnelname(termchannelMap.get(item.getChannelId()).getChannelName());
photoBean.setMediaType(item.getMediaType());
photoBean.setOrginalid(item.getOrginalId());
// photoBean.setPath(photoaddress + item.getPath());
if (item.getMediaType() == 0) {
photoBean.setPath(photoaddress + item.getPath());
} else {

@ -1,7 +1,6 @@
package com.shxy.xymanager_service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateField;
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.PhotoTimeResultDto;
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.enums.CommonStatus;
import com.shxy.xymanager_common.exception.Asserts;
import com.shxy.xymanager_common.model.*;
import com.shxy.xymanager_common.page.PageUtils;
import com.shxy.xymanager_common.util.MyDateUtils;
import com.shxy.xymanager_common.util.ProcessExecUtils;
import com.shxy.xymanager_common.util.StringUtils;
import com.shxy.xymanager_common.util.*;
import com.shxy.xymanager_common.vo.*;
import com.shxy.xymanager_dao.dao.*;
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.transaction.annotation.Transactional;
import javax.validation.constraints.NotNull;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
/**
*
@ -51,8 +46,9 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
@Autowired
SchedulesDao schedulesDao;
@Autowired
ScheduleDetailsDao scheduleDetailsDao;
ScheduleDetailssDao scheduleDetailssDao;
@Autowired
TerminalScheduleDao terminalScheduleDao;
@ -92,7 +88,38 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
if (empty) {
model.setList(new ArrayList<>());
} 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);
}
PageInfo pageData = PageUtils.getPageData(list);
@ -120,11 +147,18 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
if (BeanUtil.isEmpty(bean)) {
return Asserts.error("没有该对象");
} 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);
}
}
/**
*
*
@ -143,16 +177,8 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
schedules.setUpdateTime(date);
int i1 = schedulesDao.insertSelective(schedules);
if (i1 != 0) {
ArrayList<ScheduleDetails> list = new ArrayList<>();
for (ScheduleRuleVo item : vo.getList()) {
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);
ArrayList<ScheduleDetailss> list = ScheduleListUtils.getScheduleDetailsses(vo.getList(),schedules.getId());
int i = scheduleDetailssDao.insertList(list, date, date);
if (i != 0) {
return Asserts.success("录入成功");
} else {
@ -178,25 +204,14 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
return Asserts.error("没有需要修改任务规则");
}
Date date = new Date();
Schedules schedule = new Schedules();
schedule.setName(vo.getName());
schedule.setRemark(vo.getRemark());
schedule.setUpdateTime(date);
schedulesDao.updateByPrimaryKeySelective(schedule);
scheduleDetailsDao.deleteById(scheduleid);
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);
scheduleDetailssDao.deleteById(scheduleid);
ArrayList<ScheduleDetailss> list = ScheduleListUtils.getScheduleDetailsses(vo.getList(), scheduleid);
int i = scheduleDetailssDao.insertList(list, date, date);
if (i != 0) {
return Asserts.success("修改成功");
} else {
@ -247,7 +262,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
if (BeanUtil.isEmpty(dto)) {
return Asserts.error("没有该拍照时间规则");
}
List<ScheduleRuleDto> dtoList = dto.getList();
List<ScheduleDetailsDto> dtoList = dto.getList();
if (CollectionUtil.isEmpty(dtoList)) {
return Asserts.error("没有该拍照时间规则");
}
@ -259,14 +274,14 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
int requestId = Constants.REQUEST_ID.addAndGet(1);
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="
+ channelAndTermDto.getCmdid() + " --reqid=" + requestId + " --channel=" + channelAndTermDto.getChannelid() + " " +
timestr;
ProcessExecUtils.exec(cmd);
log.info("cma下发时间表命令" , cmd);
log.info("cma下发时间表命令", cmd);
GetScheduleRequestIdListModel.RequestBean requestBean = new GetScheduleRequestIdListModel.RequestBean();
requestBean.setTermid(channelAndTermDto.getTermid());
requestBean.setChannelid(channelAndTermDto.getChannelid());
@ -289,40 +304,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
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 {
Integer scheduleId = mapper.getScheduleId();
ScheduleAndRuleDto bean = schedulesDao.selectSingle(scheduleId, CommonStatus.EFFECTIVE.value());
List<ScheduleRuleDto> list = bean.getList();
ArrayList<String> timelist = new ArrayList<>();
for (ScheduleRuleDto item : list) {
List<ScheduleDetailsDto> list = bean.getList();
ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleRuleBeans(list);
ArrayList<String> timestrlist = new ArrayList<>();
for (TerminalScheduleRuleModel.ScheduleRuleBean item : detailsBeans) {
Time startTime = item.getStartTime();
Time endTime = item.getEndTime();
Integer span = item.getSpan();
List<DateTime> dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span);
for (DateTime data : dateTimes) {
String dateTime = DateUtil.formatTime(data);
timelist.add(dateTime);
timestrlist.add(dateTime);
}
}
model.setList(timelist);
model.setList(timestrlist);
}
return Asserts.success(model);
}
@ -517,16 +433,16 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
List<String> resultList = Lists.newArrayList();
for (int i = 0; i < (group / toIndex); i++) {
List<PhotoTimeResultDto> newList = resultDtoList.subList(i, i + toIndex);
String startTimeStr = newList.get(2).getHour() + ":" + resultDtoList.get(2).getMinute() + ":00";
String endTimeStr = newList.get(1).getHour() + ":" + resultDtoList.get(1).getMinute() + ":00";
Date startTime = DateUtil.parseTime(startTimeStr);
Date endTime = DateUtil.parseTime(endTimeStr);
Integer span = newList.get(0).getHour() * 60 + resultDtoList.get(0).getMinute();
List<DateTime> dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span);
for (DateTime data : dateTimes) {
String dateTime = DateUtil.formatTime(data);
resultList.add(dateTime);
}
String startTimeStr = newList.get(2).getHour() + ":" + resultDtoList.get(2).getMinute() + ":00";
String endTimeStr = newList.get(1).getHour() + ":" + resultDtoList.get(1).getMinute() + ":00";
Date startTime = DateUtil.parseTime(startTimeStr);
Date endTime = DateUtil.parseTime(endTimeStr);
Integer span = newList.get(0).getHour() * 60 + resultDtoList.get(0).getMinute();
List<DateTime> dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span);
for (DateTime data : dateTimes) {
String dateTime = DateUtil.formatTime(data);
resultList.add(dateTime);
}
}
@ -539,4 +455,5 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
return Asserts.success(model);
}
}

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

Loading…
Cancel
Save