From 96c16c72bc88c34d252036139a4996406ffb62ea Mon Sep 17 00:00:00 2001
From: liuguijing <123456>
Date: Fri, 2 Jun 2023 09:33:43 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E5=9B=BE=E7=89=87?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=89=E6=8B=A9=E5=85=A8=E9=83=A8=E7=9A=84?=
=?UTF-8?q?=E6=97=B6=E5=80=99=E6=9F=A5=E8=AF=A2bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
xymanager_dao/src/main/resources/mappers/TerminalPhotoDao.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/xymanager_dao/src/main/resources/mappers/TerminalPhotoDao.xml b/xymanager_dao/src/main/resources/mappers/TerminalPhotoDao.xml
index e5b9a0e..7a79cfd 100644
--- a/xymanager_dao/src/main/resources/mappers/TerminalPhotoDao.xml
+++ b/xymanager_dao/src/main/resources/mappers/TerminalPhotoDao.xml
@@ -116,7 +116,7 @@
from terminal_photos
where photo_time between #{starttime} and #{endtime}
-
+
and term_id in
#{item}
From 0ce0494b0606339da4721f0601adcc01a2f21591 Mon Sep 17 00:00:00 2001
From: liuguijing <123456>
Date: Fri, 2 Jun 2023 14:29:52 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=A1=A8=E4=B8=8B?=
=?UTF-8?q?=E5=8F=91=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../xymanager_common/util/MyDateUtils.java | 13 ++++
.../util/ScheduleListUtils.java | 70 ++++++++++++++++---
.../impl/TerminalPhotoServiceImpl.java | 36 +++++-----
.../impl/TerminalScheduleRuleServiceImpl.java | 54 +++++---------
4 files changed, 112 insertions(+), 61 deletions(-)
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);
}
-
-
}