diff --git a/xymanager_admin/src/main/resources/application-test.yml b/xymanager_admin/src/main/resources/application-test.yml index a62cf57..c85f71b 100644 --- a/xymanager_admin/src/main/resources/application-test.yml +++ b/xymanager_admin/src/main/resources/application-test.yml @@ -2,7 +2,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://127.0.0.1:13306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://127.0.0.1:3306/xymp?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 type: com.alibaba.druid.pool.DruidDataSource @@ -135,7 +135,7 @@ server: logging: config: classpath:log4j2.xml level: - com.fc: trace + com.shxy: trace org.springframework: warn @@ -166,8 +166,10 @@ swagger2: # urlPatterns: /system/*,/monitor/*,/tool/* cma: - server: 47.96.238.157 + server: 127.0.0.1 port: 6891 + clientid: 10 + scheduletype: 202 upload: # path: file:/usr/local/home/manager/download/ path: http://47.96.238.157/usr/local/home/manager/download/ diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/RequestResults.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/RequestResults.java index b99e1e5..6382a6e 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/RequestResults.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/entity/RequestResults.java @@ -20,6 +20,8 @@ public class RequestResults implements Serializable { private Integer result; + private Integer scheduleStatus; + private Long requestTime; private Long createTime; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalPhotoListForOpenModel.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalPhotoListForOpenModel.java index 1f62412..50be4b0 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalPhotoListForOpenModel.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/model/TerminalPhotoListForOpenModel.java @@ -46,6 +46,9 @@ public class TerminalPhotoListForOpenModel implements Serializable { @ApiModelProperty(value = "图片类型", example = "0--图片 1--视频") private Integer mediaType; + @ApiModelProperty(value = "图片名称", example = "图片名称") + private String name; + @ApiModelProperty(value = "拍照时间", example = "123456") private Date photoTime; diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndTimeForOpenVo.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndTimeForOpenVo.java index f3a7164..f1441ee 100644 --- a/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndTimeForOpenVo.java +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/vo/TerminalAndTimeForOpenVo.java @@ -18,17 +18,17 @@ public class TerminalAndTimeForOpenVo { @ApiModelProperty(value = "装置编号", example = "123455") private String cmdId; - @ApiModelProperty(value = "查询开始时间", example = "123455") - private Date startTime; + @ApiModelProperty(value = "查询开始时间", example = "yyyy-") + private String startTime; @ApiModelProperty(value = "查询结束时间", example = "123455") - private Date endTime; + private String endTime; -// @Min(value = 1, message = "分页位置最小从1开始") + // @Min(value = 1, message = "分页位置最小从1开始") @ApiModelProperty(value = "分页位置从1开始", required = false, example = "1") private Integer pageIndex; -// @Min(value = 1, message = "分页大小最小为1") + // @Min(value = 1, message = "分页大小最小为1") @ApiModelProperty(value = "分页大小", required = false, example = "1") private Integer pageSize; } diff --git a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/RequestResultsDao.java b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/RequestResultsDao.java index ceb6724..8ce57aa 100644 --- a/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/RequestResultsDao.java +++ b/xymanager_dao/src/main/java/com/shxy/xymanager_dao/dao/RequestResultsDao.java @@ -13,6 +13,8 @@ public interface RequestResultsDao { List selectByRequestIdList(@Param("list") List id); + List selectByTypeAndStatus(@Param("requesttype") Integer requesttype, @Param("clientid") Integer clientid, @Param("schedulestatus") Integer status); + int updateByPrimaryKeySelective(RequestResults record); diff --git a/xymanager_dao/src/main/resources/mappers/RequestResultsDao.xml b/xymanager_dao/src/main/resources/mappers/RequestResultsDao.xml index 15005ba..99ade9c 100644 --- a/xymanager_dao/src/main/resources/mappers/RequestResultsDao.xml +++ b/xymanager_dao/src/main/resources/mappers/RequestResultsDao.xml @@ -9,6 +9,7 @@ + @@ -31,6 +32,15 @@ where request_id = #{requestId} + + select - from terminal_schedules_temp + from terminal_schedule_temp where status = #{status} and diff --git a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java index 800dd42..7de423d 100644 --- a/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java +++ b/xymanager_framework/src/main/java/com/shxy/xymanager_framework/config/CustomSecurityConfig.java @@ -21,6 +21,7 @@ public class CustomSecurityConfig implements WebMvcConfigurer { public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(this.jwtInterceptor) .excludePathPatterns("/swagger-ui.html") + .excludePathPatterns("/getPhotoListForOpen") .excludePathPatterns("/api/login") .excludePathPatterns("/login") .excludePathPatterns("/doc.html") 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 b86406d..52ed24e 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 @@ -240,12 +240,12 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { pagesize = 10; } PageUtils.SetPage(pageindex, pagesize); - Date starttime = vo.getStartTime(); + Date starttime = MyDateUtils.myparseDate(vo.getStartTime()); BigInteger start = null; if (starttime != null) { start = MyDateUtils.TimeMillSecond2Second(DateTime.of(starttime)); } - Date endtime = vo.getEndTime(); + Date endtime = MyDateUtils.myparseDate(vo.getEndTime()); BigInteger end = null; if (endtime != null) { end = MyDateUtils.TimeMillSecond2Second(DateTime.of(endtime)); @@ -262,11 +262,20 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { photoBean.setMediaType(item.getMediaType()); photoBean.setOrginalId(item.getOrginalId()); // photoBean.setPath(photoaddress + item.getPath()); + String path = item.getPath(); if (item.getMediaType() == 0) { - photoBean.setPath(photoaddress + item.getPath()); + photoBean.setPath(photoaddress + path); } else { photoBean.setPath(videoaddress + item.getPath()); } + if (path != null) { + photoBean.setPath(photoaddress + path); + String[] split = path.split("/"); + int length = split.length; + String s = split[length - 1]; + photoBean.setName(s); + + } photoBean.setPresetId(item.getPresetId()); BigInteger phototime = MyDateUtils.TimeSecond2MillSecond(item.getPhotoTime().longValue()); photoBean.setPhotoTime(MyDateUtils.date(phototime.longValue())); @@ -311,7 +320,7 @@ public class TerminalPhotoServiceImpl implements TerminalPhotoService { hasNew = false; } } - }else { + } else { hasNew = false; } 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 bae4bd0..8f0c4b2 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 @@ -29,6 +29,7 @@ import com.shxy.xymanager_dao.dao.*; import com.shxy.xymanager_service.service.TerminalScheduleRuleService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -65,6 +66,13 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ @Autowired TerminalScheduleDetailsDao terminalScheduleDetailsDao; + @Value("${cma.clientid}") + public int clientid; + + @Value("${cma.scheduletype}") + public int scheduletype; + + /** * 获取时间任务规则列表 * @@ -357,6 +365,71 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ } } + + /*定时任务查询下发*/ + public ServiceBody TimerscheckScheldule() { + /* + * 当定时任务或者用户主动查询下发状态时 + * */ + List requestidlist = new ArrayList<>(); + List resultsList = requestResultsDao.selectByTypeAndStatus(scheduletype, clientid, null); + for (RequestResults item : resultsList) { + requestidlist.add(item.getRequestId()); + } + /* + * 如果下发成功 + * 1,将临时表中的数据状态改成1下发成功状态 + * 2,将装置关联拍照时间正式表改为临时表的对应状态 + * 3,将装置自身detial表插入新数据 + * */ + if (CollectionUtil.isEmpty(resultsList)) { + return Asserts.success("尚未查询到下发数据"); + } + terminalSchedulesTempDao.updateStatusByRequestIdList(requestidlist, CommonStatus.EFFECTIVE.value(), new Date()); + + List terminalSchedulesTemps = terminalSchedulesTempDao.selectByRequestId(requestidlist, CommonStatus.EFFECTIVE.value()); + + ArrayList terminalSchedules = new ArrayList<>(); + ArrayList scheduleidlist = new ArrayList<>(); + for (TerminalSchedulesTemp item : terminalSchedulesTemps) { + TerminalSchedule record = new TerminalSchedule(); + record.setChannelId(item.getChannelId()); + record.setScheduleId(item.getScheduleId()); + record.setTermId(item.getTermId()); + scheduleidlist.add(item.getScheduleId()); + terminalSchedules.add(record); + } + Date date = new Date(); + terminalScheduleDao.insertOrUpdate(terminalSchedules, date, date);//将实际的拍照时间表规则从临时表更新到正式表中 + + ArrayList distinct = CollectionUtil.distinct(scheduleidlist); + List scheduleDetails = scheduleDetailsDao.selectAllBySceduleidList(distinct); + ArrayList terminalScheduleDetails = new ArrayList<>(); + for (int i = 0; i < terminalSchedules.size(); i++) { + for (int j = 0; j < scheduleDetails.size(); j++) { + TerminalSchedule terminalSchedule = terminalSchedules.get(i); + ScheduleDetails scheduleDetailsbean = scheduleDetails.get(j); + if (scheduleDetailsbean.getScheduleId().intValue() == terminalSchedule.getScheduleId().intValue()) { + TerminalScheduleDetails bean = new TerminalScheduleDetails(); + bean.setTermId(terminalSchedule.getTermId()); + bean.setChannelId(terminalSchedule.getChannelId()); + bean.setStartTime(scheduleDetailsbean.getStartTime()); + bean.setEndTime(scheduleDetailsbean.getEndTime()); + bean.setSpan(scheduleDetailsbean.getSpan()); + terminalScheduleDetails.add(bean); + } + } + } + terminalScheduleDetailsDao.deleteByTermidAndChannelIdList(terminalSchedules); + terminalScheduleDetailsDao.insertList(terminalScheduleDetails, date, date); + int i = requestResultsDao.updateByRequestIdList(requestidlist, CommonStatus.EFFECTIVE.value());//根据requestid将结果表中的状态修改为已下发 + if (i != 0) { + return Asserts.success("下发成功"); + } else { + return Asserts.error("关联失败"); + } + } + /** * 根据装置和通道编号查询拍照时间表 *