feat: 转换不同规约的拍照时间表到统一

dev
huangfeng 2 months ago
parent a435a0c1c0
commit 71cdab317c

@ -3,8 +3,6 @@ package com.shxy.xymanager_common.dto;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.sql.Time;
import java.util.Date;
@Data @Data
public class ScheduleDetailsDto implements Serializable { public class ScheduleDetailsDto implements Serializable {
@ -20,4 +18,13 @@ public class ScheduleDetailsDto implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public void initMinute(int min) {
hour = min / 60;
minute = min - hour * 60;
}
public int calMinute() {
return hour * 60 + minute;
}
} }

@ -1,5 +1,9 @@
package com.shxy.xymanager_common.entity; package com.shxy.xymanager_common.entity;
import com.shxy.xymanager_common.dto.ScheduleDetailsDto;
import java.util.List;
public class CameraSchedule { public class CameraSchedule {
/** /**
* *
@ -165,4 +169,14 @@ public class CameraSchedule {
public void setData(String data) { public void setData(String data) {
this.data = data; this.data = data;
} }
private List<ScheduleDetailsDto> list;
public List<ScheduleDetailsDto> getList() {
return list;
}
public void setList(List<ScheduleDetailsDto> list) {
this.list = list;
}
} }

@ -0,0 +1,11 @@
package com.shxy.xymanager_common.model;
import com.shxy.xymanager_common.dto.ScheduleDetailsDto;
import lombok.Data;
import java.util.List;
@Data
public class CameraScheduleModel {
List<ScheduleDetailsDto> groupData;
}

@ -1,16 +1,21 @@
package com.shxy.xymanager_service.impl; package com.shxy.xymanager_service.impl;
import com.shxy.xymanager_common.dto.ScheduleDetailsDto;
import com.shxy.xymanager_common.entity.CameraSchedule; import com.shxy.xymanager_common.entity.CameraSchedule;
import com.shxy.xymanager_common.entity.CameraScheduleExample; import com.shxy.xymanager_common.entity.CameraScheduleExample;
import com.shxy.xymanager_common.model.CameraScheduleModel;
import com.shxy.xymanager_common.util.JSONUtil;
import com.shxy.xymanager_dao.dao.CameraScheduleMapper; import com.shxy.xymanager_dao.dao.CameraScheduleMapper;
import com.shxy.xymanager_service.service.CameraScheduleService; import com.shxy.xymanager_service.service.CameraScheduleService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -23,7 +28,7 @@ public class CameraScheduleServiceImpl implements CameraScheduleService {
CameraScheduleMapper mapper; CameraScheduleMapper mapper;
@Override @Override
public CameraSchedule getOne(Integer termId, Integer channel) { public CameraSchedule getOne(Integer termId, Integer channel) throws Exception {
CameraSchedule result = null; CameraSchedule result = null;
CameraScheduleExample example = new CameraScheduleExample(); CameraScheduleExample example = new CameraScheduleExample();
CameraScheduleExample.Criteria criteria = example.createCriteria(); CameraScheduleExample.Criteria criteria = example.createCriteria();
@ -32,18 +37,68 @@ public class CameraScheduleServiceImpl implements CameraScheduleService {
List<CameraSchedule> list = mapper.selectByExampleWithBLOBs(example); List<CameraSchedule> list = mapper.selectByExampleWithBLOBs(example);
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
result = list.get(0); result = list.get(0);
this.processData(result);
} }
return result; return result;
} }
@Override @Override
public List<CameraSchedule> list(Integer termId) { public List<CameraSchedule> list(Integer termId) throws Exception {
CameraScheduleExample example = new CameraScheduleExample(); CameraScheduleExample example = new CameraScheduleExample();
CameraScheduleExample.Criteria criteria = example.createCriteria(); CameraScheduleExample.Criteria criteria = example.createCriteria();
if (termId != null) { if (termId != null) {
criteria.andTermIdEqualTo(termId); criteria.andTermIdEqualTo(termId);
} }
List<CameraSchedule> list = mapper.selectByExampleWithBLOBs(example); List<CameraSchedule> list = mapper.selectByExampleWithBLOBs(example);
for (CameraSchedule item : list) {
this.processData(item);
}
return list;
}
@Override
public List<CameraSchedule> list(List<Integer> termIdList) throws Exception {
CameraScheduleExample example = new CameraScheduleExample();
CameraScheduleExample.Criteria criteria = example.createCriteria();
if (termIdList != null) {
criteria.andTermIdIn(termIdList);
}
List<CameraSchedule> list = mapper.selectByExampleWithBLOBs(example);
for (CameraSchedule item : list) {
this.processData(item);
}
return list; return list;
} }
private void processData(CameraSchedule item) throws Exception {
if (StringUtils.isNotBlank(item.getData())) {
CameraScheduleModel model = JSONUtil.json2Object(item.getData(), CameraScheduleModel.class);
List<ScheduleDetailsDto> list = model.getGroupData();
if (item.getProtocol() == 65290 || item.getProtocol() == 65298) {
list = this.changeSchedule(list);
}
item.setList(list);
}
}
private List<ScheduleDetailsDto> changeSchedule(List<ScheduleDetailsDto> list) {
if (list.size() != 3) {
return list;
}
ScheduleDetailsDto first = list.get(0);
ScheduleDetailsDto second = list.get(1);
ScheduleDetailsDto third = list.get(2);
int interval = first.getHour() * 60 + first.getMinute();
int start = second.getHour() * 60 + second.getMinute();
int end = third.getHour() * 60 + third.getMinute();
List<ScheduleDetailsDto> result = new ArrayList<>();
while (start < end) {
ScheduleDetailsDto item = new ScheduleDetailsDto();
item.initMinute(start);
result.add(item);
start = start + interval;
}
return result;
}
} }

@ -6,8 +6,10 @@ import java.util.List;
public interface CameraScheduleService { public interface CameraScheduleService {
CameraSchedule getOne(Integer termId, Integer channel); CameraSchedule getOne(Integer termId, Integer channel) throws Exception;
List<CameraSchedule> list(Integer termId); List<CameraSchedule> list(Integer termId) throws Exception;
List<CameraSchedule> list(List<Integer> termIdList) throws Exception;
} }

Loading…
Cancel
Save