Merge remote-tracking branch 'origin/master' into dev

master
18616268358 2 years ago
commit b79ea32ea3

@ -232,4 +232,17 @@ public class MyDateUtils extends DateUtil {
Time time = Time.valueOf(dateTime.toTimeStr()); Time time = Time.valueOf(dateTime.toTimeStr());
return time; return time;
} }
/**
* Time
*
* @return
*/
public static DateTime HHMMToDate(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);
return dateTime;
}
} }

@ -1,10 +1,20 @@
package com.shxy.xymanager_common.util; package com.shxy.xymanager_common.util;
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.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.shxy.xymanager_common.dto.PhotoTimeResultDto;
import com.shxy.xymanager_common.dto.ScheduleDetailsDto; import com.shxy.xymanager_common.dto.ScheduleDetailsDto;
import com.shxy.xymanager_common.entity.ScheduleDetails; import com.shxy.xymanager_common.entity.ScheduleDetails;
import com.shxy.xymanager_common.model.TerminalScheduleRuleModel; import com.shxy.xymanager_common.model.TerminalScheduleRuleModel;
import com.shxy.xymanager_common.model.TerminalScheduleRuleTimeListModel;
import com.shxy.xymanager_common.vo.ScheduleRuleVo; import com.shxy.xymanager_common.vo.ScheduleRuleVo;
import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
import java.math.BigDecimal;
import java.sql.Time; import java.sql.Time;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -65,6 +75,9 @@ public class ScheduleListUtils {
StringBuffer timestr = new StringBuffer(); StringBuffer timestr = new StringBuffer();
short perset = dtoList.get(0).getPreset().shortValue(); short perset = dtoList.get(0).getPreset().shortValue();
int index = 0; int index = 0;
String startstring = "";
String endstring = "";
String spanstring = "";
for (int i = 0; i < dtoList.size(); i++) { for (int i = 0; i < dtoList.size(); i++) {
short startHour = 0; short startHour = 0;
short startMin = 0; short startMin = 0;
@ -72,9 +85,9 @@ public class ScheduleListUtils {
short endMin = 0; short endMin = 0;
short spanHour = 0; short spanHour = 0;
short spanMin = 0; short spanMin = 0;
String string = "";
if (XyNumberUtils.remainder(i, 3) == 0) { if (XyNumberUtils.remainder(i, 3) == 0) {
index = index + 3; index = i + 2;
Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset); Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset);
if (add.intValue() >= 60) { if (add.intValue() >= 60) {
Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1); Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1);
@ -89,9 +102,9 @@ public class ScheduleListUtils {
startHour = dtoList.get(i).getHour().shortValue(); startHour = dtoList.get(i).getHour().shortValue();
startMin = add.shortValue(); startMin = add.shortValue();
} }
string = " --hour" + index + "=" + startHour + " --min" + index + "=" + startMin + " --preset" + index + "=" + perset; startstring = " --hour" + index + "=" + startHour + " --min" + index + "=" + startMin + " --preset" + index + "=" + perset;
} else if (XyNumberUtils.remainder(i, 3) == 1) { } else if (XyNumberUtils.remainder(i, 3) == 1) {
index = index - 1; index = i + 2;
Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset); Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset);
if (add.intValue() >= 60) { if (add.intValue() >= 60) {
Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1); Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1);
@ -106,15 +119,17 @@ public class ScheduleListUtils {
endHour = dtoList.get(i).getHour().shortValue(); endHour = dtoList.get(i).getHour().shortValue();
endMin = add.shortValue(); endMin = add.shortValue();
} }
string = " --hour" + index + "=" + endHour + " --min" + index + "=" + endMin + " --preset" + index + "=" + perset; endstring = " --hour" + index + "=" + endHour + " --min" + index + "=" + endMin + " --preset" + index + "=" + perset;
} else if (XyNumberUtils.remainder(i, 3) == 2) { } else if (XyNumberUtils.remainder(i, 3) == 2) {
index = index - 1; index = i - 1;
spanHour = dtoList.get(i).getHour().shortValue(); spanHour = dtoList.get(i).getHour().shortValue();
spanMin = dtoList.get(i).getMinute().shortValue(); spanMin = dtoList.get(i).getMinute().shortValue();
string = " --hour" + index + "=" + spanHour + " --min" + index + "=" + spanMin + " --preset" + index + "=" + perset; spanstring = " --hour" + index + "=" + spanHour + " --min" + index + "=" + spanMin + " --preset" + index + "=" + perset;
index = index + 2; if (StrUtil.isNotEmpty(spanstring) && StrUtil.isNotEmpty(startstring) && StrUtil.isNotEmpty(endstring)) {
timestr.append(spanstring).append(startstring).append(endstring);
}
} }
timestr.append(string);
} }
return timestr.toString(); return timestr.toString();
} }
@ -188,4 +203,41 @@ public class ScheduleListUtils {
return detailsBeans; return detailsBeans;
} }
/*
*
* */
public static List<String> getResultDetails(List<PhotoTimeResultDto> resultDtoList) {
List<String> resultList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(resultDtoList)) {
DateTime starttime = null;
Integer span = null;
DateTime endtime;
for (int j = 0; j < resultDtoList.size(); j++) {
if (XyNumberUtils.remainder(j, 3) == 0) {//时间间隔
Integer hour = resultDtoList.get(j).getHour();
Integer minute = resultDtoList.get(j).getMinute();
Number mul = XyNumberUtils.mul((Number) hour, 60);
Number add = XyNumberUtils.add(mul, minute);
span = add.intValue();
} else if (XyNumberUtils.remainder(j, 3) == 1) {//开始时间
Integer hour = resultDtoList.get(j).getHour();
Integer minute = resultDtoList.get(j).getMinute();
starttime = MyDateUtils.HHMMToDate(hour, minute);
} else if (XyNumberUtils.remainder(j, 3) == 2) {//结束时间
Integer hour = resultDtoList.get(j).getHour();
Integer minute = resultDtoList.get(j).getMinute();
endtime = MyDateUtils.HHMMToDate(hour, minute);
if (starttime != null && endtime != null && span != null) {
List<DateTime> dateTimes = MyDateUtils.rangeToList(starttime, endtime, DateField.MINUTE, span);
for (DateTime data : dateTimes) {
String dateTime = DateUtil.formatTime(data);
resultList.add(dateTime);
}
}
}
}
}
return resultList;
}
} }

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

@ -216,24 +216,26 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService {
TerminalPhotoSelectListModel.PhotoBean photoBean = new TerminalPhotoSelectListModel.PhotoBean(); TerminalPhotoSelectListModel.PhotoBean photoBean = new TerminalPhotoSelectListModel.PhotoBean();
photoBean.setTermid(item.getTermId()); photoBean.setTermid(item.getTermId());
Terminals terminals = terminalMap.get(item.getTermId()); Terminals terminals = terminalMap.get(item.getTermId());
photoBean.setDisplayname(terminals.getDisplayName()); if (!BeanUtil.isEmpty(terminals)) {
photoBean.setLineid(terminals.getLineid()); photoBean.setDisplayname(terminals.getDisplayName());
photoBean.setLinename(lineMap.get(terminals.getLineid()).getName()); photoBean.setLineid(terminals.getLineid());
photoBean.setChannelid(item.getChannelId()); photoBean.setLinename(lineMap.get(terminals.getLineid()).getName());
photoBean.setChannnelname(termchannelMap.get(item.getChannelId()).getChannelName()); photoBean.setChannelid(item.getChannelId());
photoBean.setMediaType(item.getMediaType()); photoBean.setChannnelname(termchannelMap.get(item.getChannelId()).getChannelName());
photoBean.setOrginalid(item.getOrginalId()); photoBean.setMediaType(item.getMediaType());
if (item.getMediaType() == 0) { photoBean.setOrginalid(item.getOrginalId());
photoBean.setPath(photoaddress + item.getPath()); if (item.getMediaType() == 0) {
} else { photoBean.setPath(photoaddress + item.getPath());
photoBean.setPath(videoaddress + item.getPath()); } else {
photoBean.setPath(videoaddress + item.getPath());
}
photoBean.setPresetId(item.getPresetId());
BigInteger phototime = MyDateUtils.TimeSecond2MillSecond(item.getPhotoTime().longValue());
photoBean.setPhotoTime(MyDateUtils.date(phototime.longValue()));
BigInteger rectime = MyDateUtils.TimeSecond2MillSecond(item.getRecvTime().longValue());
photoBean.setRecvTime(MyDateUtils.date(rectime.longValue()));
beans.add(photoBean);
} }
photoBean.setPresetId(item.getPresetId());
BigInteger phototime = MyDateUtils.TimeSecond2MillSecond(item.getPhotoTime().longValue());
photoBean.setPhotoTime(MyDateUtils.date(phototime.longValue()));
BigInteger rectime = MyDateUtils.TimeSecond2MillSecond(item.getRecvTime().longValue());
photoBean.setRecvTime(MyDateUtils.date(rectime.longValue()));
beans.add(photoBean);
} }
model.setList(beans); model.setList(beans);
} }

@ -30,6 +30,7 @@ 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 java.math.BigDecimal;
import java.sql.Time; import java.sql.Time;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
@ -357,6 +358,10 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
public ServiceBody<TerminalScheduleRuleTimeListModel> getChannelSchelduleRule(TerminalAndChannelIdVo vo) { public ServiceBody<TerminalScheduleRuleTimeListModel> getChannelSchelduleRule(TerminalAndChannelIdVo vo) {
TerminalScheduleRuleTimeListModel model = new TerminalScheduleRuleTimeListModel(); TerminalScheduleRuleTimeListModel model = new TerminalScheduleRuleTimeListModel();
TerminalSchedule mapper = terminalScheduleDao.selectByChannelId(vo.getChannelid(), vo.getTerminalid()); TerminalSchedule mapper = terminalScheduleDao.selectByChannelId(vo.getChannelid(), vo.getTerminalid());
if (BeanUtil.isEmpty(mapper)) {
model.setList(new ArrayList<>());
return Asserts.success(model);
}
Integer offset = mapper.getOffset(); Integer offset = mapper.getOffset();
if (offset == null) { if (offset == null) {
offset = 0; offset = 0;
@ -377,18 +382,17 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleDetailsBeans(list); ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleDetailsBeans(list);
ArrayList<String> timestrlist = new ArrayList<>(); ArrayList<String> timestrlist = new ArrayList<>();
for (TerminalScheduleRuleModel.ScheduleRuleBean item : detailsBeans) { for (TerminalScheduleRuleModel.ScheduleRuleBean item : detailsBeans) {
// DateTime startTime = MyDateUtils.offsetMinute(item.getStartTime(), offset); DateTime startTime = MyDateUtils.offsetMinute(item.getStartTime(), offset);
// if (startTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getStartTime()))) { if (startTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getStartTime()))) {
// startTime = MyDateUtils.endOfDay(item.getStartTime()); startTime = MyDateUtils.endOfDay(item.getStartTime());
// }
// } DateTime endTime = MyDateUtils.offsetMinute(item.getEndTime(), offset);
// DateTime endTime = MyDateUtils.offsetMinute(item.getEndTime(), offset); if (endTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getEndTime()))) {
// if (endTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getEndTime()))) { endTime = MyDateUtils.endOfDay(item.getEndTime());
// endTime = MyDateUtils.endOfDay(item.getEndTime()); }
// }
// 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) {
@ -432,32 +436,12 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
JSONObject resultObj = JSONObject.parseObject(resultsData); JSONObject resultObj = JSONObject.parseObject(resultsData);
if (null != resultObj.get("groupData")) { if (null != resultObj.get("groupData")) {
List<PhotoTimeResultDto> resultDtoList = JSONArray.parseArray(resultObj.get("groupData").toString(), PhotoTimeResultDto.class); List<PhotoTimeResultDto> resultDtoList = JSONArray.parseArray(resultObj.get("groupData").toString(), PhotoTimeResultDto.class);
if (CollectionUtil.isNotEmpty(resultDtoList)) { List<String> resultDetails = ScheduleListUtils.getResultDetails(resultDtoList);
int group = Integer.parseInt(resultObj.get("group").toString()); model.setList(resultDetails);
int toIndex = 3; model.setIsNew(true);
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);
}
}
model.setList(resultList);
model.setIsNew(true);
}
} }
} }
} }
return Asserts.success(model); return Asserts.success(model);
} }
} }

Loading…
Cancel
Save