diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java index 00e8e0e2e..39a7706fd 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/TerminalBaseController.java @@ -444,7 +444,7 @@ public class TerminalBaseController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); } - @ApiOperation("请求前置设备进程") + @ApiOperation("请求前置设备设备") @PostMapping(value = "askRestartDevice") @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.DELETE) @ApiImplicitParams({ @@ -457,5 +457,17 @@ public class TerminalBaseController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); } + @ApiOperation("台账变更推送") + @PostMapping(value = "ledgerChangePush") + @OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.QUERY) + + public HttpResult ledgerChangePush() { + String methodDescribe = getMethodDescribe("ledgerChangePush"); + terminalBaseService.ledgerChangePush(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe); + } + + + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/job/ScheduledTasks.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/job/ScheduledTasks.java index abd36cd2a..6566e89da 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/job/ScheduledTasks.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/job/ScheduledTasks.java @@ -26,8 +26,8 @@ import java.util.stream.Collectors; * @author clam * @version V1.0.0 */ -@Component -@EnableScheduling +//@Component +//@EnableScheduling public class ScheduledTasks { @Autowired diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java index 572f241c4..202d83769 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/TerminalBaseService.java @@ -288,4 +288,6 @@ public interface TerminalBaseService { void askRestartProcess(Integer processNo,String processType,String deviceRebootType); void askRestartDevice(String devId, String deviceRebootType); + + void ledgerChangePush(); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java index 8020e15b3..06b7e8175 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalBaseServiceImpl.java @@ -78,6 +78,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; @@ -3674,6 +3675,51 @@ public class TerminalBaseServiceImpl extends ServiceImpl imple } + @Override + @Transactional + public void ledgerChangePush() { + QueryWrapper queryWrapper= new QueryWrapper(); + queryWrapper.lambda().eq(PqsTerminalLogs::getState, 1).eq(PqsTerminalLogs::getIsPush, 0).in(PqsTerminalLogs::getTerminalType,Stream.of(4,6).collect(Collectors.toList())); + List list = pqsTerminalLogsMapper.selectList(queryWrapper); + if(!CollectionUtils.isEmpty(list)){ + //一个是删除操作,其余都算终端设备更新操作 + List delDevice = list.stream().filter(temp -> Objects.equals(temp.getOperateType(), Param.DEL) && Objects.equals(temp.getTerminalType(), 4)).distinct().collect(Collectors.toList()); + List delDevIds = new ArrayList<>(); + if(!CollectionUtils.isEmpty(delDevice)){ + delDevice.forEach(temp->{ + this.askRestartDevice(temp.getObjIndex(), DeviceRebootType.DELETE_TERMINAL); + delDevIds.add(temp.getObjIndex()); + } + ); + } + List updateDevIds = new ArrayList<>(); + List lineIds = list.stream().filter(temp -> Objects.equals(temp.getTerminalType(), 6)).map(PqsTerminalLogs::getObjIndex).distinct().collect(Collectors.toList()); + List devIds = list.stream().filter(temp -> Objects.equals(temp.getTerminalType(), 4)).map(PqsTerminalLogs::getObjIndex).distinct().collect(Collectors.toList()); + + //更新的终端 + List lineById = this.getLineById(lineIds); + List devIdList = lineById.stream().map(temp -> { + return temp.getPids().split(",")[4]; + }).distinct().collect(Collectors.toList()); + updateDevIds.addAll(devIdList); + updateDevIds.addAll(devIds); + if(!CollectionUtils.isEmpty(delDevIds)){ + updateDevIds.removeAll(delDevIds); + } + updateDevIds.stream().distinct().forEach(temp->{ + this.askRestartDevice(temp, DeviceRebootType.LEDGER_MODIFY); + } + ); + list.forEach(temp->{ + temp.setIsPush(1); + pqsTerminalLogsMapper.updateById(temp); + }); + + }else { + throw new BusinessException("暂无变动的装置测点推送"); + } + } + /** * 终端日志记录