| | |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.collection.ListUtil; |
| | | import cn.hutool.core.map.MapUtil; |
| | | import cn.hutool.core.util.ArrayUtil; |
| | | import cn.hutool.core.util.HexUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.druid.support.json.JSONUtils; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.github.pagehelper.Page; |
| | | import com.github.pagehelper.PageHelper; |
| | |
| | | import com.sandu.ximon.admin.security.SecurityUtils; |
| | | import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils; |
| | | import com.sandu.ximon.admin.utils.TaskOrderUtil; |
| | | import com.sandu.ximon.dao.bo.LightTaskPoleRelationBo; |
| | | import com.sandu.ximon.dao.bo.LightTaskStatusAndPole; |
| | | import com.sandu.ximon.admin.vo.LightTaskInfoVO; |
| | | import com.sandu.ximon.admin.vo.LightTaskRelationVO; |
| | | import com.sandu.ximon.admin.vo.LightTaskVO; |
| | | import com.sandu.ximon.dao.domain.LightEnergyData; |
| | | import com.sandu.ximon.dao.domain.LightTask; |
| | | import com.sandu.ximon.dao.domain.LightTaskPoleRelation; |
| | |
| | | import com.sandu.ximon.dao.enums.DeviceRespStatusEnums; |
| | | import com.sandu.ximon.dao.enums.OrderByEnums; |
| | | import com.sandu.ximon.dao.mapper.LightTaskMapper; |
| | | import com.sandu.ximon.dao.mapper.LightTaskPoleRelationMapper; |
| | | import lombok.AllArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | LightTask newLightTask = new LightTask(); |
| | | newLightTask.setTaskName(param.getTaskName()); |
| | | |
| | | newLightTask.setClientId(clientService.getClientId()); |
| | | newLightTask.setClientId(clientService.getClientId(SecurityUtils.getUserId())); |
| | | newLightTask.setUserId(SecurityUtils.getUserId()); |
| | | |
| | | newLightTask.setWeek(week); |
| | |
| | | // s = s + newLightTask.getControlOrder(); |
| | | // } |
| | | // // æ´æ°ç³»ç»å®æ¶ |
| | | // commend.setSysScheduled(s); |
| | | commend.setSysScheduled(JSON.toJSONString(newLightTask)); |
| | | System.out.println(commend.getIssueStatus() + "ç¶æ"); |
| | | if (commend.getIssueStatus() == 0) { |
| | | //ä¸åæå æ´æ°ç³»ç»å®æ¶åç¡¬ä»¶å®æ¶ |
| | | commend.setDeviceScheduled(JSONUtils.toJSONString(newLightTask)); |
| | | commend.setDeviceScheduled(JSON.toJSONString(newLightTask)); |
| | | } else { |
| | | //ä¸å失败 æ´æ°ç³»ç»å®æ¶ ä¿çç¡¬ä»¶å®æ¶ ç¡¬ä»¶å®æ¶ |
| | | // commend.setSysScheduled(s); |
| | | oldLightTaskStatusAndPoles.forEach(task -> { |
| | | if (task.getLightAddress().equals(commend.getLightAddress()) && task.getDeviceCode().equals(commend.getDeviceCode())) { |
| | | //åä¸ä¸ªç¯å¤´ |
| | | LightTask oldTask = getById(task.getTaskId()); |
| | | commend.setDeviceScheduled(JSONUtils.toJSONString(oldTask)); |
| | | commend.setDeviceScheduled(task.getDeviceScheduled()); |
| | | } |
| | | }); |
| | | |
| | |
| | | |
| | | //å 餿§çå
³ç³» |
| | | lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class) |
| | | .eq(LightTaskPoleRelation::getLightAddress, newLightTask.getLightAdress()).in(LightTaskPoleRelation::getPoleId, poleIdList)); |
| | | .in(LightTaskPoleRelation::getPoleId, poleIdList).eq(LightTaskPoleRelation::getLightAddress, newLightTask.getLightAdress())); |
| | | |
| | | boolean b = true; |
| | | //ä¿åä»»å¡å
³ç³» |
| | |
| | | // LightTask newLightTask = new LightTask(); |
| | | newLightTask.setTaskName(param.getTaskName()); |
| | | |
| | | newLightTask.setClientId(clientService.getClientId()); |
| | | newLightTask.setClientId(clientService.getClientId(SecurityUtils.getUserId())); |
| | | newLightTask.setUserId(SecurityUtils.getUserId()); |
| | | |
| | | newLightTask.setWeek(week); |
| | |
| | | List<LightTaskPoleRelation> finalOldRelation = relations; |
| | | all.forEach( |
| | | commend -> { |
| | | commend.setTaskId(newLightTask.getTaskId()); |
| | | //å¼å
³ç¯æ¶é´ |
| | | String s = newLightTask.getOpenOrder() + newLightTask.getCloseOrder(); |
| | | if (newLightTask.getControlOrder() != null) { |
| | | //æ§ç¯æ¶é´ |
| | | s = s + newLightTask.getControlOrder(); |
| | | } |
| | | // æ´æ°ç³»ç»å®æ¶ |
| | | commend.setSysScheduled(s); |
| | | commend.setSysScheduled(JSON.toJSONString(newLightTask)); |
| | | commend.setTaskId(taskId); |
| | | // å
è®¾ç½®ç¡¬ä»¶å®æ¶ä¸ºä¸æ¬¡çç¡¬ä»¶å®æ¶ ä¸è®ºæå失败 |
| | | String finalS = s; |
| | | finalOldRelation.forEach(task -> { |
| | | if (task.getLightAddress().equals(commend.getLightAddress()) && task.getDeviceCode().equals(commend.getDeviceCode())) { |
| | | //åä¸ä¸ªç¯å¤´ |
| | | commend.setDeviceScheduled(task.getDeviceScheduled()); |
| | | if (commend.getIssueStatus() == 0) { |
| | | //ä¸åæå æ´æ°ç³»ç»å®æ¶åç¡¬ä»¶å®æ¶ |
| | | commend.setDeviceScheduled(finalS); |
| | | commend.setDeviceScheduled(JSON.toJSONString(newLightTask)); |
| | | } |
| | | } |
| | | }); |
| | |
| | | |
| | | //ç¼è¾ååææçç¯æIDéå |
| | | poleIdList.addAll(oldList); |
| | | if (!poleIdList.isEmpty()) { |
| | | lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getPoleId, poleIdList)); |
| | | List<Long> longs = new ArrayList<>(); |
| | | //å»é |
| | | List<Long> collect = poleIdList.stream().distinct().collect(Collectors.toList()); |
| | | // for (Long item : poleIdList) { |
| | | // if (!poleIdList.contains(item)) { |
| | | // longs.add(item); |
| | | // } |
| | | // } |
| | | if (!collect.isEmpty()) { |
| | | lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class) |
| | | .in(LightTaskPoleRelation::getPoleId, collect).eq(LightTaskPoleRelation::getLightAddress, newLightTask.getLightAdress())); |
| | | |
| | | } |
| | | |
| | |
| | | lightTaskPoleRelation.setTaskId(lightTask.getTaskId()); |
| | | |
| | | // rrpc åç宿¶å½ä»¤ |
| | | // if ("FFFF".equals(lightAddress)) { |
| | | // LightTaskPoleRelation lightTaskPoleRelation01 = new LightTaskPoleRelation(); |
| | | // lightTaskPoleRelation01.setPoleId(pole.getId()); |
| | | // lightTaskPoleRelation01.setTaskId(lightTask.getTaskId()); |
| | | // lightTaskPoleRelation01.setLightAddress("0001"); |
| | | // |
| | | // LightTaskPoleRelation lightTaskPoleRelation02 = new LightTaskPoleRelation(); |
| | | // lightTaskPoleRelation02.setPoleId(pole.getId()); |
| | | // lightTaskPoleRelation02.setTaskId(lightTask.getTaskId()); |
| | | // lightTaskPoleRelation02.setLightAddress("0002"); |
| | | // |
| | | // // ç¯å¤´1 rrpc åç宿¶å½ä»¤ |
| | | // try { |
| | | // A5LightTimerRespInnerFrame a5LightTimerRespInnerFrame01 = sendTimeRRpc(framePayload, pole.getDeviceCode(), "0001"); |
| | | // //ç¯å¤´1 |
| | | // if (a5LightTimerRespInnerFrame01 == null) { |
| | | // lightTaskPoleRelation01.setIssueStatus(DeviceRespStatusEnums.OTHER_ERROR.getCode()); |
| | | // } else { |
| | | // lightTaskPoleRelation01.setIssueStatus(HexUtil.hexToInt(a5LightTimerRespInnerFrame01.getResponseStatus())); |
| | | // } |
| | | // |
| | | // } catch (BusinessException e) { |
| | | // lightTaskPoleRelation01.setIssueStatus(DeviceRespStatusEnums.OTHER_ERROR.getCode()); |
| | | // } |
| | | // |
| | | // // ç¯å¤´2 rrpc åç宿¶å½ä»¤ |
| | | // try { |
| | | // A5LightTimerRespInnerFrame a5LightTimerRespInnerFrame02 = sendTimeRRpc(framePayload, pole.getDeviceCode(), "0002"); |
| | | // //ç¯å¤´2 |
| | | // if (a5LightTimerRespInnerFrame02 == null) { |
| | | // lightTaskPoleRelation02.setIssueStatus(DeviceRespStatusEnums.OTHER_ERROR.getCode()); |
| | | // } else { |
| | | // lightTaskPoleRelation02.setIssueStatus(HexUtil.hexToInt(a5LightTimerRespInnerFrame02.getResponseStatus())); |
| | | // } |
| | | // |
| | | // } catch (BusinessException e) { |
| | | // lightTaskPoleRelation02.setIssueStatus(DeviceRespStatusEnums.OTHER_ERROR.getCode()); |
| | | // } |
| | | // |
| | | // lightTaskPoleRelationList.add(lightTaskPoleRelation01); |
| | | // lightTaskPoleRelationList.add(lightTaskPoleRelation02); |
| | | // } else { |
| | | lightTaskPoleRelation.setDeviceCode(pole.getDeviceCode()); |
| | | lightTaskPoleRelation.setLightAddress(lightAddress); |
| | | // rrpc åç宿¶å½ä»¤ |
| | |
| | | |
| | | |
| | | // rrpc åç宿¶å½ä»¤ |
| | | // if ("FFFF".equals(lightAddress)) { |
| | | // LightTaskPoleRelation lightTaskPoleRelation01 = new LightTaskPoleRelation(); |
| | | // lightTaskPoleRelation01.setPoleId(pole.getId()); |
| | | // lightTaskPoleRelation01.setLightAddress("0001"); |
| | | // |
| | | // LightTaskPoleRelation lightTaskPoleRelation02 = new LightTaskPoleRelation(); |
| | | // lightTaskPoleRelation02.setPoleId(pole.getId()); |
| | | // lightTaskPoleRelation02.setLightAddress("0002"); |
| | | // |
| | | // // ç¯å¤´1 rrpc åç宿¶å½ä»¤ |
| | | // try { |
| | | // A5LightTimerRespInnerFrame a5LightTimerRespInnerFrame01 = sendTimeRRpc(framePayload, pole.getDeviceCode(), "0001"); |
| | | // //ç¯å¤´1 |
| | | // if (a5LightTimerRespInnerFrame01 == null) { |
| | | // lightTaskPoleRelation01.setIssueStatus(DeviceRespStatusEnums.OTHER_ERROR.getCode()); |
| | | // fail.add(lightTaskPoleRelation01); |
| | | // } else { |
| | | // lightTaskPoleRelation01.setIssueStatus(HexUtil.hexToInt(a5LightTimerRespInnerFrame01.getResponseStatus())); |
| | | // success.add(lightTaskPoleRelation01); |
| | | // } |
| | | // |
| | | // } catch (BusinessException e) { |
| | | // lightTaskPoleRelation01.setIssueStatus(DeviceRespStatusEnums.OTHER_ERROR.getCode()); |
| | | // fail.add(lightTaskPoleRelation01); |
| | | // } |
| | | // |
| | | // // ç¯å¤´2 rrpc åç宿¶å½ä»¤ |
| | | // try { |
| | | // A5LightTimerRespInnerFrame a5LightTimerRespInnerFrame02 = sendTimeRRpc(framePayload, pole.getDeviceCode(), "0002"); |
| | | // //ç¯å¤´2 |
| | | // if (a5LightTimerRespInnerFrame02 == null) { |
| | | // lightTaskPoleRelation02.setIssueStatus(DeviceRespStatusEnums.OTHER_ERROR.getCode()); |
| | | // fail.add(lightTaskPoleRelation02); |
| | | // } else { |
| | | // lightTaskPoleRelation02.setIssueStatus(HexUtil.hexToInt(a5LightTimerRespInnerFrame02.getResponseStatus())); |
| | | // success.add(lightTaskPoleRelation02); |
| | | // } |
| | | // |
| | | // } catch (BusinessException e) { |
| | | // lightTaskPoleRelation02.setIssueStatus(DeviceRespStatusEnums.OTHER_ERROR.getCode()); |
| | | // fail.add(lightTaskPoleRelation02); |
| | | // } |
| | | // |
| | | // lightTaskPoleRelationList.add(lightTaskPoleRelation01); |
| | | // lightTaskPoleRelationList.add(lightTaskPoleRelation02); |
| | | // } else { |
| | | lightTaskPoleRelation.setLightAddress(lightAddress); |
| | | lightTaskPoleRelation.setDeviceCode(pole.getDeviceCode()); |
| | | // rrpc åç宿¶å½ä»¤ |
| | |
| | | lightTaskPoleRelationList.add(lightTaskPoleRelation); |
| | | } |
| | | |
| | | // } |
| | | map.put("success", success); |
| | | map.put("fail", fail); |
| | | map.put("all", lightTaskPoleRelationList); |
| | |
| | | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public String delLightTask(List<Long> taskIdList) { |
| | | List<LightTask> lightTaskList = listByIds(taskIdList); |
| | | if (CollectionUtil.isEmpty(lightTaskList)) { |
| | | public String delLightTask(Long taskId) { |
| | | LightTask byId = getById(taskId); |
| | | if (byId == null) { |
| | | throw new BusinessException("æ¾ä¸å°ä»»å¡ä¿¡æ¯"); |
| | | } |
| | | |
| | | //ååºä»»å¡å
³ç³» |
| | | List<LightTaskPoleRelation> relations = lightTaskPoleRelationService.list(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getTaskId, taskIdList)); |
| | | List<LightTaskPoleRelation> relations = lightTaskPoleRelationService.list(Wrappers.lambdaQuery(LightTaskPoleRelation.class).eq(LightTaskPoleRelation::getTaskId, taskId)); |
| | | |
| | | //ååºç¯æid |
| | | List<Long> poleIds = relations.stream().map(LightTaskPoleRelation::getPoleId).distinct().collect(Collectors.toList()); |
| | | |
| | | //ä¸åæ¸
é¤ä»»å¡æä»¤ |
| | | // boolean b = clearLightTask(lightTaskIds); |
| | | Map<String, List<LightTaskPoleRelation>> ffff = sendControllerFrame(poleIds, "", "FFFF"); |
| | | /** |
| | | * å 餿§ç¯ä»»å¡æ¥å¿è®°å½å¼å§ |
| | | */ |
| | | String content = "{æ§ç¯ä»»å¡idï¼" + taskIdList + " }"; |
| | | StoreOperationRecordsUtils.storeOperationData(null, null, "å 餿§ç¯ä»»å¡", content); |
| | | /** |
| | | * å 餿§ç¯ä»»å¡æ¥å¿è®°å½ç»æ |
| | | */ |
| | | if (ffff.get("fail").size() == 0) { |
| | | //å
¨é¨æ¸
餿å å é¤å
¨é¨ä»»å¡å
³ç³» |
| | | lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getTaskId, taskIdList)); |
| | | //å é¤ä»»å¡ |
| | | removeByIds(taskIdList); |
| | | return "ä»»å¡å 餿å"; |
| | | if (poleIds != null && poleIds.size() > 0) { |
| | | //åå¨ä»»å¡å
³ç³» ä¸åæ¸
é¤ä»»å¡æä»¤ |
| | | Map<String, List<LightTaskPoleRelation>> ffff = sendControllerFrame(poleIds, "", byId.getLightAdress()); |
| | | |
| | | /** |
| | | * å 餿§ç¯ä»»å¡æ¥å¿è®°å½å¼å§ |
| | | */ |
| | | String content = "{æ§ç¯ä»»å¡idï¼" + taskId + " }"; |
| | | StoreOperationRecordsUtils.storeOperationData(null, null, "å 餿§ç¯ä»»å¡", content); |
| | | /** |
| | | * å 餿§ç¯ä»»å¡æ¥å¿è®°å½ç»æ |
| | | */ |
| | | if (ffff.get("fail").size() == 0) { |
| | | //å
¨é¨æ¸
餿å å é¤å
¨é¨ä»»å¡å
³ç³» |
| | | lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).eq(LightTaskPoleRelation::getTaskId, taskId)); |
| | | //å é¤ä»»å¡ |
| | | removeById(taskId); |
| | | return "ä»»å¡å 餿å"; |
| | | } else if (ffff.get("success").size() != ffff.get("all").size()) { |
| | | //é¨åæå å 餿åé¨åçå
³ç³» ä¿çä»»å¡ |
| | | List<LightTaskPoleRelation> relations1 = ffff.get("success"); |
| | | if (relations1 != null && relations1.size() > 0) { |
| | | relations1.forEach(lightTaskPoleRelation -> { |
| | | lightTaskPoleRelationService.remove(Wrappers.lambdaUpdate(LightTaskPoleRelation.class) |
| | | .eq(LightTaskPoleRelation::getPoleId, lightTaskPoleRelation.getPoleId()).eq(LightTaskPoleRelation::getTaskId, taskId)); |
| | | }); |
| | | } |
| | | return "é¨åä»»å¡å 餿å,æ¸
é¤ä»»å¡å¤±è´¥çä»»å¡åæ°æ®ä¿ç!"; |
| | | } else if (ffff.get("fail").size() == ffff.get("all").size()) { |
| | | //å
¨é¨å¤±è´¥ ä¿çä»»å¡ |
| | | return "ä»»å¡å é¤å¤±è´¥ ,è¯·æ£æ¥ç¡¬ä»¶è®¾å¤!"; |
| | | } else { |
| | | return "ä»»å¡å é¤å¤±è´¥,æªç¥é误类å!"; |
| | | } |
| | | } else { |
| | | //é¨åæ¸
餿å å 餿åé¨åçä»»å¡å
³ç³» |
| | | ffff.get("success").forEach(lightTaskPoleRelation -> { |
| | | lightTaskPoleRelationService.remove(Wrappers.lambdaUpdate(LightTaskPoleRelation.class) |
| | | .eq(LightTaskPoleRelation::getPoleId, lightTaskPoleRelation.getPoleId()).eq(LightTaskPoleRelation::getTaskId, lightTaskPoleRelation.getTaskId())); |
| | | }); |
| | | //å é¤ä»»å¡ |
| | | lightTaskList.forEach( |
| | | taskId -> { |
| | | List<LightTaskPoleRelation> poleRelations = lightTaskPoleRelationService.list(Wrappers.lambdaQuery(LightTaskPoleRelation.class).eq(LightTaskPoleRelation::getTaskId, taskId)); |
| | | if (poleRelations.size() == 0) { |
| | | //ä¸åå¨ä»»å¡å
³ç³» å é¤ä»»å¡ |
| | | removeById(taskId); |
| | | } |
| | | } |
| | | ); |
| | | return "é¨åä»»å¡å 餿å,æ¸
é¤ä»»å¡å¤±è´¥çä»»å¡åæ°æ®ä¿ç"; |
| | | //ä¸åå¨ä»»å¡å
³ç³» 空任å¡ç´æ¥å é¤ |
| | | removeById(taskId); |
| | | return "ä»»å¡å 餿å"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * ä»»å¡è¯¦æ
|
| | | */ |
| | | public Map<Object, Object> detailLightTask(Long taskId) { |
| | | public Object detailLightTask(Long taskId) { |
| | | LightTask lightTask = getById(taskId); |
| | | if (lightTask == null) { |
| | | throw new BusinessException("æ¾ä¸å°ä»»å¡"); |
| | | } |
| | | List<LightTaskStatusAndPole> lightTaskStatusAndPoles = lightTaskPoleRelationService.listPoleAndStatusIdByTaskId(taskId); |
| | | return MapUtil.builder().put("task", lightTask).put("poles", lightTaskStatusAndPoles).build(); |
| | | LightTaskInfoVO vo = new LightTaskInfoVO(); |
| | | |
| | | // LightTaskDto lightTaskDto = new LightTaskDto(); |
| | | // BeanUtils.copyProperties(lightTask, lightTaskDto); |
| | | |
| | | lightTask.setWeekList(TaskOrderUtil.parseLightWeek2List(lightTask.getWeek())); |
| | | |
| | | vo.setLightTask(lightTask); |
| | | List<LightTaskRelationVO> relations = new ArrayList<>(); |
| | | List<LightTaskPoleRelation> taskPoleRelations = lightTaskPoleRelationService.list(Wrappers.lambdaQuery(LightTaskPoleRelation.class) |
| | | .eq(LightTaskPoleRelation::getTaskId, taskId)); |
| | | if (taskPoleRelations != null && !taskPoleRelations.isEmpty()) { |
| | | taskPoleRelations.forEach( |
| | | relation -> { |
| | | LightTaskRelationVO lightTaskRelationVO = new LightTaskRelationVO(); |
| | | lightTaskRelationVO.setLightAddress(relation.getLightAddress()); |
| | | lightTaskRelationVO.setIssueStatus(relation.getIssueStatus()); |
| | | lightTaskRelationVO.setPoleId(relation.getPoleId()); |
| | | |
| | | LightTaskVO sys = JSONObject.parseObject(relation.getSysScheduled(), LightTaskVO.class); |
| | | sys.setWeekList(TaskOrderUtil.parseLightWeek2List(sys.getWeek())); |
| | | lightTaskRelationVO.setSysScheduled(sys); |
| | | |
| | | LightTaskVO device = JSONObject.parseObject(relation.getDeviceScheduled(), LightTaskVO.class); |
| | | if (device != null) { |
| | | device.setWeekList(TaskOrderUtil.parseLightWeek2List(device.getWeek())); |
| | | lightTaskRelationVO.setDeviceScheduled(device); |
| | | } |
| | | relations.add(lightTaskRelationVO); |
| | | } |
| | | ); |
| | | |
| | | vo.setRelations(relations); |
| | | } |
| | | |
| | | // List<LightTaskStatusAndPole> lightTaskStatusAndPoles = lightTaskPoleRelationService.listPoleAndStatusIdByTaskId(taskId); |
| | | |
| | | // return MapUtil.builder().put("task", lightTask).put("poles", lightTaskStatusAndPoles).build(); |
| | | return vo; |
| | | } |
| | | |
| | | /** |
| | |
| | | * 计ç®åçåè½è |
| | | */ |
| | | public void energy() { |
| | | List<LightTask> lightTasks = list(Wrappers.lambdaQuery(LightTask.class)); |
| | | |
| | | List<Long> taskIdList = new ArrayList<>(); |
| | | for (LightTask bean : lightTasks) { |
| | | taskIdList.add(bean.getTaskId()); |
| | | } |
| | | if (taskIdList.size() != 0) { |
| | | List<LightTaskPoleRelationBo> list = SpringContextHolder.getBean(LightTaskPoleRelationMapper.class).test(taskIdList); |
| | | for (LightTaskPoleRelationBo bean : list) { |
| | | |
| | | //ææåå¨ä»»å¡çç¯æå
³ç³» |
| | | List<LightTaskPoleRelation> list = lightTaskPoleRelationService.list(); |
| | | for (LightTaskPoleRelation bean : list) { |
| | | if (bean.getDeviceScheduled() != null) { |
| | | //åå¨ç¡¬ä»¶ä»»å¡ |
| | | LightTask lightTask = JSONObject.parseObject(bean.getDeviceScheduled(), LightTask.class); |
| | | LightTaskDto lightTaskDto = new LightTaskDto(); |
| | | BeanUtils.copyProperties(bean, lightTaskDto); |
| | | lightTaskDto.setWeekList(TaskOrderUtil.parseLightWeek2List(bean.getWeek())); |
| | | BeanUtils.copyProperties(lightTask, lightTaskDto); |
| | | lightTaskDto.setWeekList(TaskOrderUtil.parseLightWeek2List(lightTask.getWeek())); |
| | | BigDecimal energySaving; |
| | | BigDecimal energy; |
| | | //è·åæ¨å¤©çæææ° |
| | | LocalDateTime now = LocalDateTime.now(); |
| | | LocalDateTime yesterday = now.minusDays(1); |
| | | int week = yesterday.getDayOfWeek().getValue(); |
| | | if (!list.isEmpty()) { |
| | | //æç»å®ç¯æ è¿è¡è®¡ç® |
| | | if (lightTaskDto.getWeekList().contains(week)) { |
| | | //ä»»å¡æè¯¥æææ° è®¡ç® |
| | | energySaving = SpringContextHolder.getBean(LightService.class).jisuan(lightTaskDto); |
| | | energy = SpringContextHolder.getBean(LightService.class).jisuanEnergy(lightTaskDto); |
| | | } else { |
| | | //任塿 è¯¥æææ° è¿å |
| | | energySaving = new BigDecimal(1); |
| | | energy = BigDecimal.ZERO; |
| | | } |
| | | for (int i = 0; i < list.size(); i++) { |
| | | LightTaskPoleRelation relation = list.get(i); |
| | | if (relation.getIssueStatus() != 0) { |
| | | //ä»»å¡ä¸å失败 è¿å |
| | | energySaving = new BigDecimal(1); |
| | | energy = BigDecimal.ZERO; |
| | | } |
| | | } |
| | | |
| | | if (lightTaskDto.getWeekList().contains(week)) { |
| | | //ä»»å¡æè¯¥æææ° è®¡ç® |
| | | energySaving = SpringContextHolder.getBean(LightService.class).jisuan(lightTaskDto, bean); |
| | | energy = SpringContextHolder.getBean(LightService.class).jisuanEnergy(lightTaskDto, bean); |
| | | System.out.println("è½è: " + energy + ", èè½ç: " + energySaving); |
| | | } else { |
| | | //æªç»å®ç¯æ ç´æ¥è¿å |
| | | //任塿 è¯¥æææ° è¿å |
| | | energySaving = new BigDecimal(1); |
| | | energy = BigDecimal.ZERO; |
| | | } |
| | |
| | | * å卿°æ® |
| | | */ |
| | | |
| | | System.out.println("è½è: " + energy + ", èè½ç: " + energySaving); |
| | | LightEnergyData lightEnergyData = new LightEnergyData(); |
| | | lightEnergyData.setTaskId(bean.getTaskId()); |
| | | lightEnergyData.setTaskId(lightTask.getTaskId()); |
| | | lightEnergyData.setYtdTime(yesterday.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); |
| | | lightEnergyData.setEnergySaving(energySaving); |
| | | lightEnergyData.setEnergy(energy); |
| | | lightEnergyData.setUserId(bean.getUserId()); |
| | | lightEnergyData.setClientId(bean.getClientId()); |
| | | lightEnergyData.setLightAdderss(lightTask.getLightAdress()); |
| | | lightEnergyData.setUserId(lightTask.getUserId()); |
| | | lightEnergyData.setClientId(lightTask.getClientId()); |
| | | lightEnergyData.setPoleId(bean.getPoleId()); |
| | | //ä¿åè½èæ°æ®å°æ°æ®åº |
| | | lightEnergyDataService.save(lightEnergyData); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | public boolean clearLightTask(List<Long> poleIds) { |
| | |
| | | String lightAddress = param.getLightAddress(); |
| | | List<Long> poleIdList = param.getPoleIdList(); |
| | | List<LightTaskPoleRelation> lightTaskPoleRelations = lightTaskPoleRelationService.list(Wrappers.lambdaQuery(LightTaskPoleRelation.class) |
| | | .in(LightTaskPoleRelation::getPoleId, poleIdList).eq(LightTaskPoleRelation::getLightAddress, param.getLightAddress())); |
| | | .in(LightTaskPoleRelation::getPoleId, poleIdList).eq(LightTaskPoleRelation::getLightAddress, lightAddress)); |
| | | //éå¤çä»»å¡id |
| | | List<Long> taskIds = lightTaskPoleRelations.stream().map(LightTaskPoleRelation::getTaskId).collect(Collectors.toList()); |
| | | List<Long> poleIds = lightTaskPoleRelations.stream().map(LightTaskPoleRelation::getPoleId).collect(Collectors.toList()); |
| | | //poleIdsä¸éå¤å
ç´ åªä¿çä¸ä¸ª |
| | | //éå¤çç¯æid |
| | | List<Long> oldPoleIds = lightTaskPoleRelations.stream().map(LightTaskPoleRelation::getPoleId).collect(Collectors.toList()); |
| | | //æªéå¤çç¯æid |
| | | List<Long> finalOldPoleIds = oldPoleIds; |
| | | //ååºåå¨äºpoleIdListèä¸å¨oldPoleIdsä¸çç¯æ |
| | | List<Long> newPoleIds = poleIdList.stream().filter(id -> !finalOldPoleIds.contains(id)).collect(Collectors.toList()); |
| | | |
| | | //éå¤å
ç´ åªä¿çä¸ä¸ª |
| | | taskIds = taskIds.stream().distinct().collect(Collectors.toList()); |
| | | poleIds = poleIds.stream().distinct().collect(Collectors.toList()); |
| | | oldPoleIds = oldPoleIds.stream().distinct().collect(Collectors.toList()); |
| | | newPoleIds = newPoleIds.stream().distinct().collect(Collectors.toList()); |
| | | Map map = new HashMap(); |
| | | if (!lightTaskPoleRelations.isEmpty()) { |
| | | |
| | | map.put("request", "false"); |
| | | map.put("msg", "ä»»å¡ä¸åå¨å·²æä»»å¡çåç¯," + "ä»»å¡id为{" + taskIds + "}, " |
| | | + "ç¯æid为{" + poleIds + "}"); |
| | | // throw new BusinessException("ä»»å¡ä¸åå¨å·²æä»»å¡çåç¯," + "ä»»å¡id为{" + taskIds + "}, " |
| | | // + "ç¯æid为{" + poleIds + "}"); |
| | | map.put("result", "false"); |
| | | map.put("newPoleIds", newPoleIds); |
| | | map.put("oldPoleIds", oldPoleIds); |
| | | map.put("taskIds", taskIds); |
| | | } else { |
| | | map.put("request", "true"); |
| | | map.put("result", "true"); |
| | | map.put("msg", "ä»»å¡ä¸æ éå¤ç¯æå°å"); |
| | | } |
| | | return map; |