diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/EventRightController.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/EventRightController.java index 678d5e71..fceddd77 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/EventRightController.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/EventRightController.java @@ -60,7 +60,7 @@ public class EventRightController extends BaseController { @OperateInfo @PostMapping("/rightEvent") - @ApiOperation("接收远程推送的暂态事件") + @ApiOperation("右侧表头") @ApiImplicitParam(name = "largeScreenCountParam", value = "", required = true) public HttpResult rightEvent(@RequestBody LargeScreenCountParam largeScreenCountParam) { String methodDescribe = getMethodDescribe("rightEvent"); @@ -69,4 +69,14 @@ public class EventRightController extends BaseController { } + @OperateInfo + @PostMapping("/rightImportUser") + @ApiOperation("右侧重要用户") + @ApiImplicitParam(name = "largeScreenCountParam", value = "", required = true) + public HttpResult rightImportUser(@RequestBody LargeScreenCountParam largeScreenCountParam) { + String methodDescribe = getMethodDescribe("rightImportUser"); + List result = eventRightService.rightImportUser(largeScreenCountParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } + } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/PqUserLedgerController.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/PqUserLedgerController.java new file mode 100644 index 00000000..f1791052 --- /dev/null +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/controller/PqUserLedgerController.java @@ -0,0 +1,54 @@ +package com.njcn.gather.event.transientes.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.njcn.gather.event.transientes.pojo.param.PqUserLedgerParam; +import com.njcn.gather.event.transientes.pojo.po.PqUserLedgerPO; +import com.njcn.gather.event.transientes.service.PqUserLedgerService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Author: cdf + * @CreateTime: 2025-07-28 + * @Description: + */ +@RestController +@RequestMapping("/pqUser/ledger") +public class PqUserLedgerController { + + @Autowired + private PqUserLedgerService pqUserLedgerService; + + // 添加记录 + @PostMapping("addLedger") + public boolean addLedger(@RequestBody PqUserLedgerParam ledgerParam) { + return pqUserLedgerService.addLedger(ledgerParam); + } + + // 更新记录 + @PostMapping("updateLedger") + public boolean updateLedger(@RequestBody PqUserLedgerParam ledgerParam) { + return pqUserLedgerService.updateLedger(ledgerParam); + } + + // 删除记录 + @PostMapping("deleteLedger") + public boolean deleteLedger(@RequestBody List ids) { + return pqUserLedgerService.deleteLedger(ids); + } + + // 查询单条记录 + @GetMapping("/getLedgerById") + public PqUserLedgerPO getLedgerById(@PathVariable String id) { + return pqUserLedgerService.getLedgerById(id); + } + + // 查询所有记录 + @GetMapping + public Page pageList(@RequestBody PqUserLedgerParam ledgerParam) { + return pqUserLedgerService.pageList(ledgerParam); + } +} diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/PqUserLedgerParam.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/PqUserLedgerParam.java new file mode 100644 index 00000000..17d8cd93 --- /dev/null +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/param/PqUserLedgerParam.java @@ -0,0 +1,50 @@ +package com.njcn.gather.event.transientes.pojo.param; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.web.pojo.param.BaseParam; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @Author: cdf + * @CreateTime: 2025-07-28 + * @Description: + */ +@Data +public class PqUserLedgerParam extends BaseParam { + private static final long serialVersionUID = 1L; + + + private String id; + + private String powerSupplyArea; + + private String customerName; + + private String electricityAddress; + + private String industryType; + + private String voltageLevel; + + private String importantLevel; + + private String substationName; + + private String busbarName; + + private String operationUnit; + + private String manufacturer; + + private String bigObjType; + + private String smallObjType; + + private Integer isShow; + +} diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/po/PqUserLedgerPO.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/po/PqUserLedgerPO.java index 69ebf348..9e75ad2f 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/po/PqUserLedgerPO.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/pojo/po/PqUserLedgerPO.java @@ -81,4 +81,7 @@ public class PqUserLedgerPO implements Serializable { @TableField(value = "UPDATE_TIME") private LocalDateTime updateTime; + @TableField(value = "IS_SHOW") + private Integer isShow; + } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/EventRightService.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/EventRightService.java index fd4b7500..371b5637 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/EventRightService.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/EventRightService.java @@ -11,4 +11,7 @@ public interface EventRightService { UserLedgerStatisticVO userLedgerStatistic(LargeScreenCountParam param); + + + List rightImportUser(LargeScreenCountParam param); } diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqUserLedgerService.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqUserLedgerService.java new file mode 100644 index 00000000..27413c34 --- /dev/null +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/PqUserLedgerService.java @@ -0,0 +1,26 @@ +package com.njcn.gather.event.transientes.service; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.gather.event.transientes.pojo.param.PqUserLedgerParam; +import com.njcn.gather.event.transientes.pojo.po.PqUserLedgerPO; + +import java.util.List; + +public interface PqUserLedgerService extends IService { + // 添加记录 + boolean addLedger(PqUserLedgerParam ledgerParam); + + // 更新记录 + boolean updateLedger(PqUserLedgerParam ledgerParam); + + // 删除记录(物理删除) + boolean deleteLedger(List ids); + + // 查询单条记录 + PqUserLedgerPO getLedgerById(String id); + + // 查询所有记录 + Page pageList(PqUserLedgerParam param); +} diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/EventRightServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/EventRightServiceImpl.java index 2e48837e..59bec051 100644 --- a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/EventRightServiceImpl.java +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/EventRightServiceImpl.java @@ -2,25 +2,14 @@ package com.njcn.gather.event.transientes.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.njcn.common.pojo.exception.BusinessException; -import com.njcn.event.file.component.WaveFileComponent; -import com.njcn.event.file.pojo.dto.WaveDataDTO; -import com.njcn.event.file.pojo.enums.WaveFileResponseEnum; -import com.njcn.gather.event.devcie.mapper.PqLinedetailMapper; -import com.njcn.gather.event.devcie.pojo.po.PqDevice; import com.njcn.gather.event.devcie.pojo.po.PqLine; -import com.njcn.gather.event.devcie.pojo.po.PqLinedetail; -import com.njcn.gather.event.devcie.pojo.po.PqsDeptsline; -import com.njcn.gather.event.devcie.service.PqDeviceService; import com.njcn.gather.event.devcie.service.PqLineService; import com.njcn.gather.event.transientes.mapper.PqUserLedgerMapper; import com.njcn.gather.event.transientes.mapper.PqUserLineAssMapper; import com.njcn.gather.event.transientes.mapper.PqsDicTreeMapper; import com.njcn.gather.event.transientes.pojo.DicTreeEnum; import com.njcn.gather.event.transientes.pojo.param.LargeScreenCountParam; -import com.njcn.gather.event.transientes.pojo.param.MonitorTerminalParam; import com.njcn.gather.event.transientes.pojo.po.PqUserLedgerPO; import com.njcn.gather.event.transientes.pojo.po.PqUserLineAssPO; import com.njcn.gather.event.transientes.pojo.po.PqsDicTreePO; @@ -29,10 +18,8 @@ import com.njcn.gather.event.transientes.pojo.vo.UserLedgerStatisticVO; import com.njcn.gather.event.transientes.service.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import java.io.InputStream; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -84,7 +71,7 @@ public class EventRightServiceImpl implements EventRightService { //查询时间段的暂降事件 LambdaQueryWrapper eventQuery = new LambdaQueryWrapper<>(); - eventQuery.between(PqsEventdetail::getTimeid, DateUtil.parse(param.getSearchBeginTime()), DateUtil.parse(param.getSearchBeginTime())) + eventQuery.between(PqsEventdetail::getTimeid, DateUtil.parse(param.getSearchBeginTime()), DateUtil.endOfDay(DateUtil.parse(param.getSearchBeginTime()))) .in(PqsEventdetail::getWavetype, msgEventConfigService.getEventType()); LambdaQueryWrapper lineQuery = new LambdaQueryWrapper<>(); @@ -102,7 +89,6 @@ public class EventRightServiceImpl implements EventRightService { }); } else { eventQuery.in(PqsEventdetail::getLineid, lineIds); - lineQuery.in(PqLine::getLineIndex, lineIds); } List eventdetailList = pqsEventdetailService.list(eventQuery); @@ -140,7 +126,7 @@ public class EventRightServiceImpl implements EventRightService { smallMap.forEach((key, userList) -> { UserLedgerStatisticVO.Inner item = new UserLedgerStatisticVO.Inner(); Integer[] count = getEventCount(userList, assList, eventdetailList, lineList, false); - item.setCount(count[1]); + item.setCount(count[0]); item.setName(dicTreeMap.containsKey(key) ? dicTreeMap.get(key).getName() : "/"); childrenList.add(item); }); @@ -153,6 +139,51 @@ public class EventRightServiceImpl implements EventRightService { return result; } + @Override + public List rightImportUser(LargeScreenCountParam param) { + List result = new ArrayList<>(); + + List deptLineIds = commGeneralService.getLineIdsByDept(param); + + List poList = pqUserLedgerMapper.selectList(new LambdaQueryWrapper().eq(PqUserLedgerPO::getIsShow,1)); + if(CollUtil.isEmpty(poList)){ + return result; + } + List ids = poList.stream().map(PqUserLedgerPO::getId).collect(Collectors.toList()); + List assPOList = pqUserLineAssMapper.selectList(new LambdaQueryWrapper().in(PqUserLineAssPO::getUserIndex,ids)); + if(CollUtil.isEmpty(assPOList)){ + return result; + } + + List userIds = assPOList.stream().map(PqUserLineAssPO::getUserIndex).distinct().collect(Collectors.toList()); + + poList = poList.stream().filter(it->userIds.contains(it.getId())).collect(Collectors.toList()); + + List lineIds = assPOList.stream().map(PqUserLineAssPO::getLineIndex).distinct().collect(Collectors.toList()); + List eventList = pqsEventdetailService.lambdaQuery().in(PqsEventdetail::getLineid,lineIds).between(PqsEventdetail::getTimeid,DateUtil.parse(param.getSearchBeginTime()),DateUtil.parse(param.getSearchEndTime())).list(); + + if(CollUtil.isEmpty(eventList)){ + poList.forEach(item->{ + UserLedgerStatisticVO.Inner inner = new UserLedgerStatisticVO.Inner(); + inner.setName(item.getCustomerName()); + inner.setCount(0); + result.add(inner); + }); + return result; + } + + Map> assMap = assPOList.stream().collect(Collectors.groupingBy(PqUserLineAssPO::getUserIndex,Collectors.mapping(PqUserLineAssPO::getLineIndex,Collectors.toList()))); + poList.forEach(item->{ + UserLedgerStatisticVO.Inner inner = new UserLedgerStatisticVO.Inner(); + inner.setName(item.getCustomerName()); + List LIds = assMap.get(item.getId()); + long count = eventList.stream().filter(it->LIds.contains(it.getLineid())).count(); + inner.setCount((int)count); + result.add(inner); + }); + return result; + } + private Integer[] getEventCount(List oneList, List assList, List pqsEventdetailList, List lineList,boolean devFlag) { Integer[] count = new Integer[]{0, 0}; //用户的id diff --git a/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqUserLedgerServiceImpl.java b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqUserLedgerServiceImpl.java new file mode 100644 index 00000000..bfc8720f --- /dev/null +++ b/event_smart/src/main/java/com/njcn/gather/event/transientes/service/impl/PqUserLedgerServiceImpl.java @@ -0,0 +1,65 @@ +package com.njcn.gather.event.transientes.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.gather.event.transientes.mapper.PqUserLedgerMapper; +import com.njcn.gather.event.transientes.pojo.param.PqUserLedgerParam; +import com.njcn.gather.event.transientes.pojo.po.PqUserLedgerPO; +import com.njcn.gather.event.transientes.service.PqUserLedgerService; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; + +/** + * @Author: cdf + * @CreateTime: 2025-07-28 + * @Description: + */ +@Service +public class PqUserLedgerServiceImpl extends ServiceImpl implements PqUserLedgerService { + + @Autowired + private PqUserLedgerMapper ledgerMapper; + + @Override + public boolean addLedger(PqUserLedgerParam ledgerParam) { + PqUserLedgerPO ledger = new PqUserLedgerPO(); + BeanUtil.copyProperties(ledgerParam,ledger); + ledger.setId(UUID.randomUUID().toString()); + ledger.setCreateTime(LocalDateTime.now()); + ledger.setUpdateTime(LocalDateTime.now()); + return ledgerMapper.insert(ledger) > 0; + } + + @Override + public boolean updateLedger(PqUserLedgerParam ledgerParam) { + PqUserLedgerPO ledger = new PqUserLedgerPO(); + BeanUtil.copyProperties(ledgerParam,ledger); + ledger.setUpdateTime(LocalDateTime.now()); + return ledgerMapper.updateById(ledger) > 0; + } + + @Override + public boolean deleteLedger(List ids) { + // 物理删除(直接删除记录) + return ledgerMapper.deleteBatchIds(ids) > 0; + } + + @Override + public PqUserLedgerPO getLedgerById(String id) { + return ledgerMapper.selectById(id); + } + + @Override + public Page pageList(PqUserLedgerParam param) { + Page page = new Page<>(); + Page pageResult = ledgerMapper.selectPage(page,new LambdaQueryWrapper()); + return page; + } +}