diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalSchedulesTemp.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalSchedulesTemp.java
index 5fec758..9fc2c63 100644
--- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalSchedulesTemp.java
+++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/TerminalSchedulesTemp.java
@@ -19,6 +19,8 @@ public class TerminalSchedulesTemp implements Serializable {
private Integer status;
+ private Integer offset;
+
private Date createTime;
private Date updateTime;
diff --git a/xymanager_dao/src/main/resources/mappers/TerminalScheduleTempDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalScheduleTempDao.xml
index eca2882..4e23fee 100644
--- a/xymanager_dao/src/main/resources/mappers/TerminalScheduleTempDao.xml
+++ b/xymanager_dao/src/main/resources/mappers/TerminalScheduleTempDao.xml
@@ -94,6 +94,9 @@
status,
+
+ offset,
+
create_time,
@@ -117,6 +120,9 @@
#{status},
+
+ #{offset},
+
#{createTime,jdbcType=TIMESTAMP},
diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java
index f0285bf..536d9c4 100644
--- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java
+++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/LineServiceImpl.java
@@ -150,7 +150,7 @@ public class LineServiceImpl implements LineService {
LineAndGtAndChannelListModel model = new LineAndGtAndChannelListModel();
Integer id = vo.getId();
Integer type = vo.getType();
- if (id.intValue() == 0) {
+ if (id != null && id.intValue() == 0) {
id = null;
}
//查询所有
diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java
index 280cca5..6510684 100644
--- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java
+++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalScheduleRuleServiceImpl.java
@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageInfo;
@@ -38,6 +39,7 @@ import java.sql.Time;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Random;
/**
* 时间任务实现层
@@ -249,43 +251,19 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
if (CollectionUtil.isEmpty(dtoList)) {
return Asserts.error("没有该拍照时间规则");
}
- 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();
- Short startHour = Short.parseShort(MyDateUtils.parseHourAndMinute(startTime).split("/")[0]);
- Short startMin = Short.parseShort(MyDateUtils.parseHourAndMinute(startTime).split("/")[1]);
- Date endTime = dtoList.get(j).getEndTime();
- Short endTimeHour = Short.parseShort(MyDateUtils.parseHourAndMinute(endTime).split("/")[0]);
- Short endTimeMin = Short.parseShort(MyDateUtils.parseHourAndMinute(endTime).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;
- }
ArrayList requestIdList = new ArrayList<>();
for (int x = 0; x < terminalsList.size(); x++) {
ChannelAndTermDto channelAndTermDto = terminalsList.get(x);
int requestId = Constants.REQUEST_ID.addAndGet(1);
- String cmd = Constants.CMD + "schedule --group=" + dtoList.size()*3 + " --flag=1 --clientid=10 --cmdid="
+ int offset = RandomUtil.randomInt(10);
+ String timestr = 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.toString();
+ timestr;
ProcessExecUtils.exec(cmd);
GetScheduleRequestIdListModel.RequestBean requestBean = new GetScheduleRequestIdListModel.RequestBean();
@@ -301,6 +279,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
temp.setScheduleId(scheduleid);
temp.setRequestId(requestId);
temp.setStatus(CommonStatus.DELETE.value());
+ temp.setOffset(offset);
temp.setCreateTime(date);
temp.setUpdateTime(date);
terminalSchedulesTempDao.insertSelective(temp);
@@ -309,6 +288,41 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
return Asserts.success(model);
}
+ private String relateTime(List 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();
+ }
+
/**
* 查询拍照时间表任务是否下发成功
@@ -402,7 +416,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
terminalSchedules.add(record);
}
Date date = new Date();
- if(CollectionUtil.isNotEmpty(terminalSchedules)) {
+ if (CollectionUtil.isNotEmpty(terminalSchedules)) {
terminalScheduleDao.insertOrUpdate(terminalSchedules, date, date);//将实际的拍照时间表规则从临时表更新到正式表中
}
ArrayList distinct = CollectionUtil.distinct(scheduleidlist);
@@ -423,7 +437,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
}
}
}
- if(CollectionUtil.isNotEmpty(terminalSchedules)) {
+ if (CollectionUtil.isNotEmpty(terminalSchedules)) {
terminalScheduleDetailsDao.deleteByTermidAndChannelIdList(terminalSchedules);
}
terminalScheduleDetailsDao.insertList(terminalScheduleDetails, date, date);
@@ -435,7 +449,6 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
}
}
-
/**
* 获取通道的规则时间表
*
@@ -491,7 +504,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
public ServiceBody getCmaSchelduleDetials(RequestIdVo vo) {
TerminalScheduleRuleTimeListModel model = new TerminalScheduleRuleTimeListModel();
RequestResults results = requestResultsDao.selectByRequestId(vo.getRequestid());
- if(null!=results) {
+ if (null != results) {
String resultsData = results.getData();
if (StringUtils.isNotBlank(resultsData)) {
JSONObject resultObj = JSONObject.parseObject(resultsData);
@@ -523,7 +536,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
}
}
}
- return Asserts.success(model);
+ return Asserts.success(model);
}
}