diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/MyDateUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/MyDateUtils.java index cdf4812..a486ae2 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/MyDateUtils.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/MyDateUtils.java @@ -232,4 +232,17 @@ public class MyDateUtils extends DateUtil { Time time = Time.valueOf(dateTime.toTimeStr()); 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; + } } diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/ScheduleListUtils.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/ScheduleListUtils.java index 8b5f40f..c196860 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/ScheduleListUtils.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/ScheduleListUtils.java @@ -1,10 +1,20 @@ 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.entity.ScheduleDetails; import com.shxy.xymanager_common.model.TerminalScheduleRuleModel; +import com.shxy.xymanager_common.model.TerminalScheduleRuleTimeListModel; import com.shxy.xymanager_common.vo.ScheduleRuleVo; +import net.sf.jsqlparser.expression.DateTimeLiteralExpression; +import java.math.BigDecimal; import java.sql.Time; import java.util.ArrayList; import java.util.List; @@ -65,6 +75,9 @@ public class ScheduleListUtils { StringBuffer timestr = new StringBuffer(); short perset = dtoList.get(0).getPreset().shortValue(); int index = 0; + String startstring = ""; + String endstring = ""; + String spanstring = ""; for (int i = 0; i < dtoList.size(); i++) { short startHour = 0; short startMin = 0; @@ -72,9 +85,9 @@ public class ScheduleListUtils { short endMin = 0; short spanHour = 0; short spanMin = 0; - String string = ""; + if (XyNumberUtils.remainder(i, 3) == 0) { - index = index + 3; + index = i + 2; Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset); if (add.intValue() >= 60) { Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1); @@ -89,9 +102,9 @@ public class ScheduleListUtils { startHour = dtoList.get(i).getHour().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) { - index = index - 1; + index = i + 2; Number add = XyNumberUtils.add((Number) dtoList.get(i).getMinute(), offset); if (add.intValue() >= 60) { Number add1 = XyNumberUtils.add((Number) dtoList.get(i).getHour(), 1); @@ -106,15 +119,17 @@ public class ScheduleListUtils { endHour = dtoList.get(i).getHour().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) { - index = index - 1; + index = i - 1; spanHour = dtoList.get(i).getHour().shortValue(); spanMin = dtoList.get(i).getMinute().shortValue(); - string = " --hour" + index + "=" + spanHour + " --min" + index + "=" + spanMin + " --preset" + index + "=" + perset; - index = index + 2; + spanstring = " --hour" + index + "=" + spanHour + " --min" + index + "=" + spanMin + " --preset" + index + "=" + perset; + if (StrUtil.isNotEmpty(spanstring) && StrUtil.isNotEmpty(startstring) && StrUtil.isNotEmpty(endstring)) { + timestr.append(spanstring).append(startstring).append(endstring); + } + } - timestr.append(string); } return timestr.toString(); } @@ -188,4 +203,41 @@ public class ScheduleListUtils { return detailsBeans; } + /* + * 讲查询转为前端的时间字符串 + * */ + public static List getResultDetails(List resultDtoList) { + List 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 dateTimes = MyDateUtils.rangeToList(starttime, endtime, DateField.MINUTE, span); + for (DateTime data : dateTimes) { + String dateTime = DateUtil.formatTime(data); + resultList.add(dateTime); + } + } + } + } + } + return resultList; + } + } diff --git a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java index e3008c3..931865b 100644 --- a/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java +++ b/xymanager_service/src/main/java/com/shxy/xymanager_service/impl/TerminalPhotoServiceImpl.java @@ -216,24 +216,26 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { TerminalPhotoSelectListModel.PhotoBean photoBean = new TerminalPhotoSelectListModel.PhotoBean(); photoBean.setTermid(item.getTermId()); Terminals terminals = terminalMap.get(item.getTermId()); - photoBean.setDisplayname(terminals.getDisplayName()); - 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()); - if (item.getMediaType() == 0) { - photoBean.setPath(photoaddress + item.getPath()); - } else { - photoBean.setPath(videoaddress + item.getPath()); + if (!BeanUtil.isEmpty(terminals)) { + photoBean.setDisplayname(terminals.getDisplayName()); + 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()); + if (item.getMediaType() == 0) { + photoBean.setPath(photoaddress + 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); } 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 b79de6a..d1c6e4a 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 @@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.sql.Time; import java.util.ArrayList; import java.util.Date; @@ -357,6 +358,10 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ public ServiceBody getChannelSchelduleRule(TerminalAndChannelIdVo vo) { TerminalScheduleRuleTimeListModel model = new TerminalScheduleRuleTimeListModel(); TerminalSchedule mapper = terminalScheduleDao.selectByChannelId(vo.getChannelid(), vo.getTerminalid()); + if (BeanUtil.isEmpty(mapper)) { + model.setList(new ArrayList<>()); + return Asserts.success(model); + } Integer offset = mapper.getOffset(); if (offset == null) { offset = 0; @@ -377,18 +382,17 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ ArrayList detailsBeans = ScheduleListUtils.getScheduleDetailsBeans(list); ArrayList timestrlist = new ArrayList<>(); for (TerminalScheduleRuleModel.ScheduleRuleBean item : detailsBeans) { -// DateTime startTime = MyDateUtils.offsetMinute(item.getStartTime(), offset); -// if (startTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getStartTime()))) { -// startTime = MyDateUtils.endOfDay(item.getStartTime()); -// -// } -// DateTime endTime = MyDateUtils.offsetMinute(item.getEndTime(), offset); -// if (endTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getEndTime()))) { -// endTime = MyDateUtils.endOfDay(item.getEndTime()); -// } - - Time startTime = item.getStartTime(); - Time endTime = item.getEndTime(); + DateTime startTime = MyDateUtils.offsetMinute(item.getStartTime(), offset); + if (startTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getStartTime()))) { + startTime = MyDateUtils.endOfDay(item.getStartTime()); + } + DateTime endTime = MyDateUtils.offsetMinute(item.getEndTime(), offset); + if (endTime.isAfterOrEquals(MyDateUtils.endOfDay(item.getEndTime()))) { + endTime = MyDateUtils.endOfDay(item.getEndTime()); + } + +// Time startTime = item.getStartTime(); +// Time endTime = item.getEndTime(); Integer span = item.getSpan(); List dateTimes = MyDateUtils.rangeToList(startTime, endTime, DateField.MINUTE, span); for (DateTime data : dateTimes) { @@ -432,32 +436,12 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ JSONObject resultObj = JSONObject.parseObject(resultsData); if (null != resultObj.get("groupData")) { List resultDtoList = JSONArray.parseArray(resultObj.get("groupData").toString(), PhotoTimeResultDto.class); - if (CollectionUtil.isNotEmpty(resultDtoList)) { - int group = Integer.parseInt(resultObj.get("group").toString()); - int toIndex = 3; - List resultList = Lists.newArrayList(); - for (int i = 0; i < (group / toIndex); i++) { - List 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 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); - } + List resultDetails = ScheduleListUtils.getResultDetails(resultDtoList); + model.setList(resultDetails); + model.setIsNew(true); } } } return Asserts.success(model); } - - }