From dda268997ca8f8a364f7c19b45d7a43a50a98efe Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 25 十月 2022 18:00:11 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedScheduleService.java |  234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 217 insertions(+), 17 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedScheduleService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedScheduleService.java
index e090934..f9c8fe7 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedScheduleService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LedScheduleService.java
@@ -12,12 +12,18 @@
 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.StoreOperationRecordsUtils;
 import com.sandu.ximon.admin.utils.request.Schedules;
-import com.sandu.ximon.admin.utils.request.Task;
 import com.sandu.ximon.admin.utils.request.TaskSchedules;
+import com.sandu.ximon.admin.utils.request.requestbody.GetSchedules;
+import com.sandu.ximon.admin.utils.request.requestbody.Task;
+import com.sandu.ximon.admin.vo.LedScheduleVO;
+import com.sandu.ximon.admin.vo.XiXunResultVO;
 import com.sandu.ximon.dao.domain.LedScheduleEntity;
 import com.sandu.ximon.dao.domain.PoleLightemitEntity;
+import com.sandu.ximon.dao.enums.OrderByEnums;
 import com.sandu.ximon.dao.mapper.LedScheduleEntityMapper;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -83,6 +89,21 @@
         String json = JSON.toJSONString(taskSchedules, SerializerFeature.WriteMapNullValue);
 //         String json = new Gson().toJson(taskSchedules);
         ledScheduleEntity.setSchedule(json);
+        if (SecurityUtils.getClientId() != null) {
+            ledScheduleEntity.setUserId(SecurityUtils.getUserId());
+            if (clientService.findClientId()) {
+                ledScheduleEntity.setClientId(clientService.getClientId());
+            }
+        }
+
+        /**
+         * 鐔欐睕瀹氭椂鏇存敼 鏃ュ織璁板綍寮�濮�
+         */
+        String content = "{鐔欐睕瀹氭椂id锛�" + ledScheduleEntity.getId() + ",鐔欐睕瀹氭椂鍚嶇О锛�" + ledScheduleEntity.getName() + "鐔欐睕瀹氭椂鍐呭锛�" + JSON.toJSONString(ledScheduleEntity.getSchedule()) + " }";
+        StoreOperationRecordsUtils.storeOperationData(null, null, "鐔欐睕瀹氭椂浠诲姟鏇存敼", content);
+        /**
+         * 鐔欐睕瀹氭椂鏇存敼 鏃ュ織璁板綍缁撴潫
+         */
         return this.save(ledScheduleEntity);
     }
 
@@ -92,20 +113,112 @@
      *
      * @param scheduleId
      * @param lightemitIds
+     * @return
      */
-    public void ledschedulepush(Integer scheduleId, Long[] lightemitIds) {
+    public Map<String, List<XiXunResultVO>> ledschedulepush(Integer scheduleId, Long[] lightemitIds) {
 
-        LedScheduleEntity ledScheduleEntity = baseMapper.selectById(scheduleId);
-//        SendCommand sendCommand = new SendCommand();
-//        sendCommand.setTask(ledScheduleEntity.getSchedule());
-//        String json = new Gson().toJson(sendCommand);
+//        LedScheduleEntity ledScheduleEntity = baseMapper.selectById(scheduleId);
+        LedScheduleEntity ledScheduleEntity = getById(scheduleId);
+        if (ledScheduleEntity == null) {
+            throw new BusinessException("璇ュ畾鏃朵换鍔′笉瀛樺湪");
+        }
         Collection<PoleLightemitEntity> poleLightemitEntities = poleLightemitService.listByIds(Arrays.asList(lightemitIds));
+        Map<String, List<XiXunResultVO>> result=new HashMap<>();
+        List<XiXunResultVO> success =new ArrayList<>();
+        List<XiXunResultVO> fail =new ArrayList<>();
+
 
         if (poleLightemitEntities != null) {
             for (PoleLightemitEntity entity : poleLightemitEntities) {
-                lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), ledScheduleEntity.getSchedule());
+                String post = lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), ledScheduleEntity.getSchedule());
+                XiXunResultVO vo=new XiXunResultVO();
+                vo.setLightemitId(entity.getLightemitId());
+                vo.setLightemitName(entity.getLightemitName());
+                if(post.contains("{\"_type\":\"success\",\"_id\":")){
+                    success.add(vo);
+                }else {
+                    fail.add(vo);
+                }
             }
         }
+
+
+
+
+        /**
+         * 鐔欐睕瀹氭椂鎺ㄩ�� 鏃ュ織璁板綍寮�濮�
+         */
+        String message = "";
+        List<String> listCode = new ArrayList<>();
+
+        for (PoleLightemitEntity entity : poleLightemitEntities) {
+
+            listCode.add(entity.getLightemitControlCode());
+            message += "[灞忓箷Code:" + entity.getLightemitControlCode() + "灞忓箷鍚嶇О:" + entity.getLightemitName() + "],";
+        }
+        String content = "{鐔欐睕瀹氭椂id锛�" + ledScheduleEntity.getId() + ",鐔欐睕瀹氭椂鍚嶇О锛�" + ledScheduleEntity.getName() + "鐔欐睕灞忓箷淇℃伅锛�" + message + " }";
+        StoreOperationRecordsUtils.storeOperationData(listCode, null, "鎺ㄩ�佺啓姹涘畾鏃朵换鍔�", content);
+        /**
+         * 鐔欐睕瀹氭椂浠诲姟鎺ㄩ�� 鏃ュ織璁板綍缁撴潫
+         */
+
+        result.put("success",success);
+        result.put("fail",fail);
+        return result;
+    }
+
+    /**
+     * 娓呯┖瀹氭椂
+     *
+     * @param
+     * @param lightemitIds
+     */
+    public Map<String, List<XiXunResultVO>> deleteSchedulePush( Long[] lightemitIds) {
+
+        Collection<PoleLightemitEntity> poleLightemitEntities = poleLightemitService.listByIds(Arrays.asList(lightemitIds));
+
+        Map<String, List<XiXunResultVO>> result=new HashMap<>();
+        List<XiXunResultVO> success =new ArrayList<>();
+        List<XiXunResultVO> fail =new ArrayList<>();
+
+        if (poleLightemitEntities != null) {
+            for (PoleLightemitEntity entity : poleLightemitEntities) {
+//                lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), ledScheduleEntity.getSchedule());
+                String post = lightemitUtils.post(realtimeServerBean.getCommand() + entity.getLightemitControlCode(), "{\"type\": \"timedScreening\",\"task\":{}}");
+
+                XiXunResultVO vo=new XiXunResultVO();
+                vo.setLightemitId(entity.getLightemitId());
+                vo.setLightemitName(entity.getLightemitName());
+                if(post.contains("{\"_type\":\"success\",\"_id\":")){
+                   success.add(vo);
+                }else {
+                    fail.add(vo);
+                }
+
+                System.out.println(post+"---------");
+            }
+        }
+
+
+        /**
+         * 娓呯┖鐔欐睕瀹氭椂浠诲姟 鏃ュ織璁板綍寮�濮�
+         */
+        String message = "";
+        List<String> listCode = new ArrayList<>();
+
+        for (PoleLightemitEntity entity : poleLightemitEntities) {
+
+            listCode.add(entity.getLightemitControlCode());
+            message += "[灞忓箷Code:" + entity.getLightemitControlCode() + "灞忓箷鍚嶇О:" + entity.getLightemitName() + "],";
+        }
+        String content = "{鐔欐睕灞忓箷淇℃伅锛�" + message + " }";
+        StoreOperationRecordsUtils.storeOperationData(listCode, null, "娓呯┖鐔欐睕瀹氭椂浠诲姟", content);
+        /**
+         * 娓呯┖鐔欐睕瀹氭椂浠诲姟 鏃ュ織璁板綍缁撴潫
+         */
+        result.put("success",success);
+        result.put("fail",fail);
+        return result;
     }
 
     public boolean updateSchedule(LEDScheduleParam_xixun paramXixun) {
@@ -136,21 +249,108 @@
     }
 
 
-    public List listSchedule(BaseConditionVO baseConditionVO, String keyword) {
-        LambdaQueryWrapper<LedScheduleEntity> eq = new LambdaQueryWrapper<>();
-        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
-        if (SecurityUtils.getClientId() != null && clientService.findClientId()) {
-            eq = Wrappers.lambdaQuery(LedScheduleEntity.class).eq(LedScheduleEntity::getUserId, SecurityUtils.getUserId());
-        } else if (SecurityUtils.getClientId() != null && !clientService.findClientId()) {
-            eq = Wrappers.lambdaQuery(LedScheduleEntity.class).eq(LedScheduleEntity::getClientId, SecurityUtils.getUserId());
-        } else {
-            eq = Wrappers.lambdaQuery(LedScheduleEntity.class);
+    /**
+     * 鎾斁璁″垝鍒楄〃锛堢啓璁級
+     *
+     * @param baseConditionVO
+     * @param keyword
+     * @return
+     */
+    public List listSchedule(BaseConditionVO baseConditionVO,Integer order,Integer seq, String keyword) {
+        LambdaQueryWrapper<LedScheduleEntity> eq = Wrappers.lambdaQuery(LedScheduleEntity.class);
+        //鐢ㄦ埛绫诲瀷鍒ゆ柇
+        if (SecurityUtils.getClientId() != null) {
+            eq = eq.eq(LedScheduleEntity::getUserId, SecurityUtils.getUserId()).or(w -> {
+                w.eq(LedScheduleEntity::getClientId, SecurityUtils.getUserId());
+            });
         }
-        if (!keyword.isEmpty()) {
+        //妯$硦鏌ヨ鍏抽敭瀛楀垽鏂�
+        if (keyword != null && !keyword.isEmpty()) {
             eq = eq.like(LedScheduleEntity::getName, keyword);
         }
 
+        //鎺掑簭瀛楁
+        String orderByResult = "id";
+        //姝e簭銆佸�掑彊
+        String orderBySeq = OrderByEnums.ASC.getCode();
+        if (order != null) {
+            switch (order) {
+                case 1:
+                    orderByResult = OrderByEnums.LED_S_PLAY_PLAN_CREATE_TIME.getCode();
+                    break;
+                default:
+            }
+        }
+        if (seq != null) {
+            switch (seq) {
+                case 1:
+                    orderBySeq = " ASC";
+                    break;
+                case 2:
+                    orderBySeq = " DESC";
+                    break;
+                default:
+                    break;
+            }
+        }
+        //鎺掑簭鏂瑰紡
+        String orderBy = orderByResult + " " + orderBySeq;
+
+        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize(),orderBy);
         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;
+        }
+
+    }
+
 }

--
Gitblit v1.9.3