dao/src/main/java/com/sandu/ximon/dao/domain/PoleLightemitEntity.java
@@ -52,6 +52,7 @@ /** * 请æ±body,èç®ä¸»ä½çå®¹å¨ */ @JsonIgnore private String requestBody; /** ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxUrl.java
@@ -23,6 +23,10 @@ public static String REBOOT = "/v1/player/immediateControl/reboot"; // ä¸å宿¶ä»»å¡ public static String TIMING_CONTROL = "/v1/player/timingControl/screenStatus"; //忥 public static String SIMU_LCAST = "/v1/player/immediateControl/simulcast"; // NTPå¯¹æ¶ public static String NTP_SYNC = "/v1/player/immediateControl/ntpSync"; public static String getUrl(String urlSuffix) { return url + urlSuffix; ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -20,6 +20,7 @@ import com.sandu.ximon.dao.domain.PoleBinding; import com.sandu.ximon.dao.enums.AdministratorEnums; import com.sandu.ximon.dao.enums.MenuEnum; import com.sun.javafx.collections.MappingChange; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -73,8 +74,30 @@ * @return */ @PostMapping("/reboot") public ResponseVO<Object> reboot(@RequestBody VnnoxParam vnnoxWebRequest) { VnnoxResult vnnoxResult = vnnoxService.reboot(vnnoxWebRequest.getPlayerList()); public ResponseVO<Object> reboot(@RequestBody List<String> vnnoxWebRequest) { VnnoxResult vnnoxResult = vnnoxService.reboot(vnnoxWebRequest); return ResponseUtil.success(vnnoxResult); } /** * åæ¥ææ¾ */ @PostMapping("/syncPlay") public ResponseVO<Object> syncPlay(@RequestBody Map map) { List playIdlist = (List)map.get("playIdlist"); Integer option = (Integer) map.get("option"); VnnoxResult vnnoxResult = vnnoxService.syncPlay(playIdlist,option); return ResponseUtil.success(vnnoxResult); } /** * ntpå¯¹æ¶ */ @PostMapping("/ntp") public ResponseVO<Object> ntp(@RequestBody Map map) { boolean enable = (boolean)map.get("enable"); List playIdlist = (List)map.get("playIdlist"); VnnoxResult vnnoxResult = vnnoxService.ntpSync(playIdlist,enable); return ResponseUtil.success(vnnoxResult); } ximon-admin/src/main/java/com/sandu/ximon/admin/controller/XiXunController.java
@@ -17,6 +17,7 @@ import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.service.*; import com.sandu.ximon.admin.utils.LightemitUtils; import com.sandu.ximon.admin.vo.LedScheduleVO; import com.sandu.ximon.dao.domain.PoleLightemitEntity; import com.sandu.ximon.dao.domain.PoleXixunPlayerEntity; import com.sandu.ximon.dao.enums.MenuEnum; @@ -130,6 +131,13 @@ return ResponseUtil.success("æ¨éæå"); } //æ§è¡ä¸çèç® @GetMapping("/getProgram/{lightemitId}") public ResponseVO<Object> getProgram(@PathVariable Long lightemitId) { return ResponseUtil.success(xiXunPlayerService.getByPid(lightemitId)); } /** * LEDå±å¹æ°å¢ * @@ -143,7 +151,11 @@ throw new BusinessException("LEDæ§å¶å¡ç¼å·ä¸è½éå¤"); } poleLightemit.setCreateUserId(SecurityUtils.getClientId()); if (SecurityUtils.getClientId() == null) { poleLightemit.setClientId(clientService.getClientId()); poleLightemit.setUserId(SecurityUtils.getUserId()); poleLightemit.setCreateUserId(SecurityUtils.getUserId()); } poleLightemitService.savePoleLightemit(poleLightemit); @@ -195,7 +207,7 @@ } List<PoleLightemitEntity> poleLightemitEntityList = poleLightemitService.listLed(keyword, isOnLine); poleLightemitEntityList.forEach( led->{ led -> { led.setStreetlightId(led.getPoleId()); led.setStreetlightName(led.getPoleName()); } @@ -379,5 +391,22 @@ return ResponseUtil.success("设置æå"); } /** * è·åæ§è¡ä¸ç宿¶ * @param * @return */ @GetMapping("/getPushSchedule") public ResponseVO<Object> getPushSchedule(@RequestBody List<Long> ids) { if(ids.isEmpty()){ throw new BusinessException("æªéæ©LEDå±"); } List<LedScheduleVO> list = new ArrayList<>(); for(Long id : ids) { LedScheduleVO ledScheduleVO = scheduleService.getledschedules(id); list.add(ledScheduleVO); } return ResponseUtil.success(list); } } ximon-admin/src/main/java/com/sandu/ximon/admin/dto/PlanDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.sandu.ximon.admin.dto; import lombok.Data; import java.util.List; /** * @Author liuhaonan * @Date 2022/04/22 * @Version 1.0 */ @Data public class PlanDto { private List<Integer> weekDays; private String startTime; private String endTime; } ximon-admin/src/main/java/com/sandu/ximon/admin/entity/Plans.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.sandu.ximon.admin.entity; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; /** * @Author liuhaonan * @Date 2022/04/22 * @Version 1.0 */ @NoArgsConstructor @Data public class Plans { // private String endDate; // private List<PlansDTO> plans; // private String startDate; // // @NoArgsConstructor // @Data // public static class PlansDTO { // private List<Integer> weekDays; // private String startTime; // private String endTime; // // } } ximon-admin/src/main/java/com/sandu/ximon/admin/security/MapOrList.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,18 @@ package com.sandu.ximon.admin.security; import java.util.*; import java.util.Map.Entry; public class MapOrList { //mapè½¬æ¢ælisy public static List mapTransitionList(Map map) { List list = new ArrayList(); Iterator iter = map.entrySet().iterator(); //è·å¾mapçIterator while (iter.hasNext()) { Entry entry = (Entry) iter.next(); list.add(entry.getValue()); } return list; } } ximon-admin/src/main/java/com/sandu/ximon/admin/security/test.java
@@ -13,18 +13,19 @@ public class test { public static void main(String[] args) { // String s="e10adc3949ba59abbe56e057f20f883e"; // PasswordEncoder pw= new BCryptPasswordEncoder(); // //å å¯ // String encode=pw.encode(s); // System.out.println(encode); // //æ¯è¾å¯ç // boolean matches=pw.matches(s,encode); // System.out.println("=============================="); // System.out.println(matches); String s="123456"; PasswordEncoder pw= new BCryptPasswordEncoder(); //å å¯ String encode=pw.encode(s); System.out.println(encode); //æ¯è¾å¯ç boolean matches=pw.matches(s,encode); System.out.println("=============================="); System.out.println(matches); LocalDateTime now = LocalDateTime.now(); Integer week = now.getDayOfWeek().getValue(); System.out.println("è·åå½åå¨:" + week); // LocalDateTime now = LocalDateTime.now(); // Integer week = now.getDayOfWeek().getValue(); // System.out.println("è·åå½åå¨:" + week); // } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedScheduleService.java
@@ -12,10 +12,13 @@ import com.sandu.ximon.admin.config.RealtimeServerBean; import com.sandu.ximon.admin.param.LEDScheduleParam_xixun; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.JsonUtil; import com.sandu.ximon.admin.utils.LightemitUtils; import com.sandu.ximon.admin.utils.request.Schedules; import com.sandu.ximon.admin.utils.request.Task; import com.sandu.ximon.admin.utils.request.requestbody.GetSchedules; import com.sandu.ximon.admin.utils.request.requestbody.Task; import com.sandu.ximon.admin.utils.request.TaskSchedules; import com.sandu.ximon.admin.vo.LedScheduleVO; import com.sandu.ximon.dao.domain.LedScheduleEntity; import com.sandu.ximon.dao.domain.PoleLightemitEntity; import com.sandu.ximon.dao.mapper.LedScheduleEntityMapper; @@ -101,7 +104,12 @@ */ public void ledschedulepush(Integer scheduleId, Long[] lightemitIds) { LedScheduleEntity ledScheduleEntity = baseMapper.selectById(scheduleId); // LedScheduleEntity ledScheduleEntity = baseMapper.selectById(scheduleId); LedScheduleEntity ledScheduleEntity = getById(scheduleId); if (ledScheduleEntity == null) { throw new BusinessException("è¯¥å®æ¶ä»»å¡ä¸åå¨"); } // SendCommand sendCommand = new SendCommand(); // SendCommand sendCommand = new SendCommand(); // sendCommand.setTask(ledScheduleEntity.getSchedule()); // String json = new Gson().toJson(sendCommand); @@ -166,4 +174,57 @@ return list(eq); } /** * 宿¶æ¥è¯¢ */ public LedScheduleVO getledschedules(Long id) { PoleLightemitEntity poleLightemitEntity = poleLightemitService.getById(id); String result1 = lightemitUtils.getTimeSchedule(poleLightemitEntity.getLightemitControlCode()); if(result1.indexOf("not open")!=-1){ LedScheduleVO notOpen = new LedScheduleVO(); notOpen.setLedName(poleLightemitEntity.getLightemitName()); notOpen.setScheduleName("è®¾å¤æªå¼å¯"); return notOpen; } boolean flag = result1.contains("exist"); if(flag!=true) { String result = lightemitUtils.getTimeSchedule(poleLightemitEntity.getLightemitControlCode()); // if(result !=null){ GetSchedules getSchedules = new GetSchedules(); try { getSchedules = JsonUtil.convertJsonStringToObject(result, GetSchedules.class); } catch (Exception e) { e.printStackTrace(); } LedScheduleVO ledScheduleVO = new LedScheduleVO(); ledScheduleVO.setLedName(poleLightemitEntity.getLightemitName()); if (getSchedules.getTask().getName() != null) { ledScheduleVO.setScheduleName(getSchedules.getTask().getName()); List<Schedules> list = new ArrayList(); list = getSchedules.getTask().getSchedules(); for (Schedules schedules : list) { ledScheduleVO.setStartTime(schedules.getStartTime()); ledScheduleVO.setEndTime(schedules.getEndTime()); ledScheduleVO.setStartDate(schedules.getStartDate()); ledScheduleVO.setEndDate(schedules.getEndDate()); ledScheduleVO.setWeek(schedules.getWeekFilter()); } ; } else { ledScheduleVO.setScheduleName("æ 宿¶"); } return ledScheduleVO; }else { LedScheduleVO ledScheduleVO = new LedScheduleVO(); ledScheduleVO.setLedName(poleLightemitEntity.getLightemitName()); ledScheduleVO.setScheduleName("è®¾å¤æªå¼å¯"); return ledScheduleVO; } } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/PlayPlanNvService.java
@@ -5,6 +5,8 @@ import com.sandu.common.execption.BusinessException; import com.sandu.common.service.impl.BaseServiceImpl; import com.sandu.ximon.admin.config.VnnoxConstant; import com.sandu.ximon.admin.dto.PlanDto; import com.sandu.ximon.admin.dto.SchedulesDTO; import com.sandu.ximon.admin.param.PlayPlanParam; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.VnnoxAPIUtil; @@ -62,7 +64,35 @@ playPlan.setStartDate(playPlanParam.getStartDate()); playPlan.setEndDate(playPlanParam.getEndDate()); playPlan.setWeekDays(playPlanParam.getWeekDays()); playPlan.setSchedule(JSON.toJSONString(playPlanParam.getSchedule())); Map schedule = playPlanParam.getSchedule(); String s = JSON.toJSONString(schedule.get("plans")); List<PlanDto> plans = JSON.parseArray(s, PlanDto.class); System.out.println(plans.toString()+"plans"); // List<PlanDto> plans = (List<PlanDto>) schedule.get("plans"); plans.forEach(plan -> { System.out.println(plan+"plan"); } ); List<SchedulesDTO> schedulesDTOS = new ArrayList<>(); for (int i = 0; i < plans.size(); i++) { SchedulesDTO schedulesDTO = new SchedulesDTO(); schedulesDTO.setStartDate(playPlanParam.getStartDate()); schedulesDTO.setEndDate(playPlanParam.getEndDate()); if (i % 2 == 1) { schedulesDTO.setExecTime(plans.get(i).getStartTime()); } else { schedulesDTO.setWeekDays(plans.get(i).getWeekDays()); schedulesDTO.setExecTime(plans.get(i).getEndTime()); } schedulesDTOS.add(schedulesDTO); } playPlan.setSchedule(JSON.toJSONString(schedulesDTOS)); playPlan.setStartTime(playPlanParam.getStartTime()); playPlan.setEndTime(playPlanParam.getEndTime()); // BeanUtils.copyProperties(playPlanParam, playPlan); @@ -120,8 +150,17 @@ System.out.println(pushToLed.getPages()); program.setPages(JSON.parseObject(pushToLed.getPages(), List.class)); program.setSchedules(JSON.parseObject(pushToLed.getSchedule(), List.class)); Map map = JSON.parseObject(pushToLed.getSchedule(), Map.class); // // test test = JSON.parseObject(pushToLed.getSchedule(), test.class); // // SchedulesDTO schedulesDTO = new SchedulesDTO(); // schedulesDTO.setExecTime(A.get); program.setSchedules((JSON.parseArray(pushToLed.getSchedule(), SchedulesDTO.class))); // Map map = JSON.parseObject(pushToLed.getSchedule(), Map.class); program.setNoticeUrl(VnnoxConstant.NOTIFY_URL); VnnoxResultResponse vnnoxResultResponse = vnnoxProgramAPIUtil.timeProgram(program); @@ -134,7 +173,6 @@ success = vnnoxResultResponse.getData().getSuccess(); fail = vnnoxResultResponse.getData().getFail(); } // fail.addAll(vnnoxResult.getFail()); Map<String, Object> result = new HashMap<>(); ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -184,15 +184,39 @@ return map; } // //éå¯ // public VnnoxResult reboot(List<LedPlayerEntity> playerList) { // return vnnoxAPIUtil.reboot( // playerList.stream().map( // item -> item.getPlayerId() // ).collect(Collectors.toList()) // ); // } //éå¯ public VnnoxResult reboot(List<LedPlayerEntity> playerList) { return vnnoxAPIUtil.reboot( playerList.stream().map( item -> item.getPlayerId() ).collect(Collectors.toList()) ); public VnnoxResult reboot(List<String> playerList) { return vnnoxAPIUtil.reboot(playerList); } /** * åæ¥ææ¾ * @param * @return */ public VnnoxResult syncPlay(List<String> playerList,Integer option) { return vnnoxAPIUtil.syncPlay(playerList,option); } /** * å¯¹æ¶ * @param * @return */ public VnnoxResult ntpSync(List<String> playerList,boolean enable) { return vnnoxAPIUtil.ntpSync(playerList,enable); } public boolean updateDataName(Long id, String name) { LedPlayerEntity byId = ledPlayerEntityService.getById(id); if (byId == null) { ximon-admin/src/main/java/com/sandu/ximon/admin/service/XiXunPlayerService.java
@@ -128,6 +128,38 @@ return programPro; } // public Object getProgram(String json) { //// PoleXixunPlayerEntity byId = getById(pid); // List<Long> fileIds = new ArrayList<>(); // List<LedSFile> file = new ArrayList<>(); // if (json == null) { // throw new BusinessException("æªæ¾å°è¯¥èç®"); // } // ProgramPro programPro = new ProgramPro(); // try { // programPro = JsonUtil.convertJsonStringToObject(json, ProgramPro.class); // programPro.setProgramId(pid); // programPro.setScreenShot(byId.getScreenShot()); // programPro.getLayers().forEach( // layerPro -> { // layerPro.getSources().forEach( // sourcePro -> { // long fileId = Long.parseLong(sourcePro.getId()); // file.add(xiXunFileService.getById(fileId)); // } // ); // } // ); // programPro.setFileList(file); // } catch (Exception e) { // e.printStackTrace(); // } // return programPro; // } /** * æ¨éèç® * ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
@@ -13,7 +13,9 @@ import java.net.URISyntaxException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Component("VnnoxAPIUtil") @AllArgsConstructor @@ -220,4 +222,49 @@ return response.getData(); } /** * åæ¥ææ¾ * */ public VnnoxResult syncPlay(List<String> playerId, Integer option) { VnnoxBaseRequest request = new VnnoxBaseRequest(); request.setPlayerIds(playerId); request.setOption(option); request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL); String result = VnnoxRequestUtil.PostWithHeader( VnnoxUrl.getUrl(VnnoxUrl.SIMU_LCAST), request.toJson(), new CommonHeader(CommonHeader.JSON, true) ); VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class); return response.getData(); } /** * NTP_SYNC */ public VnnoxResult ntpSync(List<String> playerId, boolean enable) { // VnnoxBaseRequest request = new VnnoxBaseRequest(); // request.setPlayerIds(playerId); // request.setEnable(enable); // request.setServer("ntp1.aliyun.com"); // request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL); Map map = new HashMap(); map.put("server", "ntp1.aliyun.com"); map.put("enable", enable); map.put("noticeUrl", VnnoxConstant.SCREEN_SHOT_NOTIFY_URL); map.put("playerIds", playerId); String s = JSON.toJSONString(map); String result = VnnoxRequestUtil.PostWithHeader( VnnoxUrl.getUrl(VnnoxUrl.NTP_SYNC), s, new CommonHeader(CommonHeader.JSON, true) ); VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class); return response.getData(); } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxProgramAPIUtil.java
@@ -51,4 +51,6 @@ LogUtils.error("宿¶èç®ææ¾response:"+result); return JSON.parseObject(result,VnnoxResultResponse.class); } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxRequestUtil.java
@@ -112,6 +112,7 @@ inStream.close(); } catch (Exception e) { System.out.println("error" + e.getMessage()); return null; } return result; ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/PlayerProgram.java
@@ -16,6 +16,7 @@ // éè¦å¤ççææ¾å¨IDéå,æå¤æ¯æ100ä¸ªææ¾å¨åæ¶å¤ç private List<String> playerIds; // ææ¾æ¶é´ææï¼å¦æä¸ºç©ºï¼ä¼å ¨å¤©24å°æ¶å¾ªç¯ææ¾ // private List<SchedulesDTO> schedules; private List<SchedulesDTO> schedules; // éè¦ææ¾ç页é¢å 容éå private List<Map<String,Object>> pages ; ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/TaskSchedules.java
@@ -1,5 +1,6 @@ package com.sandu.ximon.admin.utils.request; import com.sandu.ximon.admin.utils.request.requestbody.Task; import lombok.Data; /** ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/VnnoxBaseRequest.java
@@ -12,8 +12,14 @@ private Integer value; private Integer option; private boolean enable; private String noticeUrl; private String server; @Override public String toJson() { return VnnoxConstant.GSON.toJson(this); ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/requestbody/GetSchedules.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ package com.sandu.ximon.admin.utils.request.requestbody; import lombok.Data; @Data public class GetSchedules { private String _id; private String _type; private Task task ; } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/requestbody/Task.java
ÎļþÃû´Ó ximon-admin/src/main/java/com/sandu/ximon/admin/utils/request/Task.java ÐÞ¸Ä @@ -1,5 +1,6 @@ package com.sandu.ximon.admin.utils.request; package com.sandu.ximon.admin.utils.request.requestbody; import com.sandu.ximon.admin.utils.request.Schedules; import lombok.Data; import java.util.List; ximon-admin/src/main/java/com/sandu/ximon/admin/vo/LedScheduleVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.sandu.ximon.admin.vo; import lombok.Data; @Data public class LedScheduleVO { private String ledName; private String scheduleName; private String startTime; private String endTime; private String startDate; private String endDate; private Integer[] week; }