|
|
|
@ -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<GetScheduleRequestIdListModel.RequestBean> 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<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();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询拍照时间表任务是否下发成功
|
|
|
|
@ -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<Integer> 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<TerminalScheduleRuleTimeListModel> 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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|