From a1f8ee4ef07e69930c2a299530a829f6980332d5 Mon Sep 17 00:00:00 2001 From: ty <1577900710@qq.com> Date: Mon, 5 Feb 2024 17:32:20 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=BF=90=E8=A1=8C=E6=9C=88=E6=8A=A5-?= =?UTF-8?q?=E6=99=BA=E8=83=BD=E8=AF=8A=E6=96=AD=E6=95=B0=E6=8D=AE=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=EF=BC=9B=E6=96=B0=E5=A2=9E=E5=8E=86=E5=8F=B2=E6=99=BA?= =?UTF-8?q?=E8=83=BD=E8=AF=8A=E6=96=AD=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hnac/hzims/alarm/config/vo/FdpAlarmVo.java | 8 ++ .../com/hnac/hzims/fdp/dto/FDPFaultTableDTO.java | 45 +++++++++ .../fdp/entity/FdpFaultHistoryDataEntity.java | 110 +++++++++++++++++++++ .../hnac/hzims/fdp/feign/IFdpDiagnoseClient.java | 8 +- .../fdp/feign/IFdpDiagnoseClientFallBack.java | 10 ++ .../hnac/hzims/fdp/vo/FdpFaultHistoryDataVo.java | 29 ++++++ .../inspect/report/feign/IInspectReportClient.java | 2 +- .../fdp/controller/FdpHistoryDataController.java | 65 ++++++++++++ .../hnac/hzims/fdp/feign/FdpDiagnoseClient.java | 11 +++ .../hzims/fdp/service/IFdpHistoryDataService.java | 31 ++++++ .../service/impl/FdpHistoryDataServiceImpl.java | 73 ++++++++++++++ .../source/service/impl/FdpAlarmServiceImpl.java | 4 +- .../impl/OperStationMonthReportServiceImpl.java | 74 ++++++++------ .../template/word/stationMonthReport.docx | Bin 23366 -> 22495 bytes 14 files changed, 436 insertions(+), 34 deletions(-) create mode 100644 hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/dto/FDPFaultTableDTO.java create mode 100644 hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/entity/FdpFaultHistoryDataEntity.java create mode 100644 hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/vo/FdpFaultHistoryDataVo.java create mode 100644 hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpHistoryDataController.java create mode 100644 hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpHistoryDataService.java create mode 100644 hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpHistoryDataServiceImpl.java diff --git a/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/config/vo/FdpAlarmVo.java b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/config/vo/FdpAlarmVo.java index e7b3d9f..30c8d7a 100644 --- a/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/config/vo/FdpAlarmVo.java +++ b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/config/vo/FdpAlarmVo.java @@ -19,6 +19,10 @@ public class FdpAlarmVo { */ private String faultId; /** + * 故障ID + */ + private String UUID; + /** * 故障站点 */ private String station; @@ -55,6 +59,10 @@ public class FdpAlarmVo { * 设备名称 */ private String deviceName; + /** + * 设备名称 + */ + private String deviceCode; // /** // * 报警内容 // */ diff --git a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/dto/FDPFaultTableDTO.java b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/dto/FDPFaultTableDTO.java new file mode 100644 index 0000000..9da9e94 --- /dev/null +++ b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/dto/FDPFaultTableDTO.java @@ -0,0 +1,45 @@ +package com.hnac.hzims.fdp.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author HX + */ +@Data +public class FDPFaultTableDTO { + + @ApiModelProperty("站点ID数组") + private String[] stationIds; + + @ApiModelProperty("故障ID") + private String faultId; + + @ApiModelProperty("筛选来源,可以为“auto”或“manual”") + private String source; + + @ApiModelProperty("故障名称模糊匹配") + private String nameLike; + + @ApiModelProperty("筛选故障处理结果,可为“处理中”、“误报”、“处理完成”、“延后处理”") + private String result; + + @ApiModelProperty("分页的每页数量,-1则为不限制数量") + private Integer pageSize; + + @ApiModelProperty("分页的序号") + private Integer pageIndex; + + @ApiModelProperty("排序方式") + private String orderBy; + + @ApiModelProperty("升降序方式,“asc”或“desc”") + private String orderKind; + + @ApiModelProperty("查询开始时间") + private String createTimeLeft; + + @ApiModelProperty("查询结束时间") + private String createTimeRight; + +} diff --git a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/entity/FdpFaultHistoryDataEntity.java b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/entity/FdpFaultHistoryDataEntity.java new file mode 100644 index 0000000..68ef354 --- /dev/null +++ b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/entity/FdpFaultHistoryDataEntity.java @@ -0,0 +1,110 @@ +package com.hnac.hzims.fdp.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + *

+ * + *

+ * + * @author ty + * @since 2024-02-05 + */ + +@Data +public class FdpFaultHistoryDataEntity{ + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("uuid") + @JSONField(name = "ID") + private String id; + + @ApiModelProperty(value = "故障ID") + @JSONField(name = "FAULT_ID") + private String faultId; + + + @ApiModelProperty(value = "站点ID") + @JSONField(name = "STATION") + private String station; + + + @ApiModelProperty(value = "位置") + @JSONField(name = "ORD") + private String ord; + + + @ApiModelProperty(value = "名称") + @JSONField(name = "NAME") + private String name; + + + @ApiModelProperty(value = "故障发生的概率") + @JSONField(name = "STATUS") + private Float status; + + + @ApiModelProperty(value = "发生故障的时间") + @JSONField(name = "CREATE_TIME") + private String createTime; + + + @ApiModelProperty(value = "故障结束的时间") + @JSONField(name = "DELETE_TIME") + private String deleteTime; + + + @ApiModelProperty(value = "故障有效时间") + @JSONField(name = "LIFE_TIME") + private String lifeTime; + + + @ApiModelProperty(value = "故障优先级,越大优先级越高") + @JSONField(name = "PRIORITY") + private String priority; + + @ApiModelProperty(value = "来源") + @JSONField(name = "SOURCE") + private String source; + + @ApiModelProperty(value = "故障的其它信息") + @JSONField(name = "INFO") + private String info; + + @ApiModelProperty(value = "故障的业务ID") + @JSONField(name = "TASK_ID") + private String taskId; + + @ApiModelProperty(value = "故障处理结果,可为“处理中”、“误报”、“处理完成”、“延后处理”") + @JSONField(name = "RESULT") + private String result; + + @ApiModelProperty(value = "关于误报、延后处理的其它补充信息") + @JSONField(name = "RESULT_INFO") + private String resultInfo; + + @ApiModelProperty(value = "诊断的原因") + @JSONField(name = "DIAG_REASON") + private String diagReason; + + @ApiModelProperty(value = "诊断的解决方法") + @JSONField(name = "DIAG_SOLUTION") + private String diagSolution; + + @ApiModelProperty(value = "创建故障人") + @JSONField(name = "CREATE_USER") + private String createUser; + + @ApiModelProperty(value = "故障结束标记") + @JSONField(name = "IS_DELETED") + private Integer isDeleted; +} diff --git a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IFdpDiagnoseClient.java b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IFdpDiagnoseClient.java index 5e8a382..695f0af 100644 --- a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IFdpDiagnoseClient.java +++ b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IFdpDiagnoseClient.java @@ -1,7 +1,10 @@ package com.hnac.hzims.fdp.feign; import com.hnac.hzims.EquipmentConstants; +import com.hnac.hzims.fdp.dto.FDPFaultTableDTO; import com.hnac.hzims.fdp.dto.StatisticStatusDTO; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; +import com.hnac.hzims.fdp.vo.FdpFaultHistoryDataVo; import com.hnac.hzims.fdp.vo.StatisticStatusVO; import org.springblade.core.tool.api.R; import org.springframework.cloud.openfeign.FeignClient; @@ -23,7 +26,10 @@ import java.util.Map; public interface IFdpDiagnoseClient { String API_PREFIX = "/feign/fdp/diagnose"; String GET_STATISTIC_STATUS = API_PREFIX + "/getStatisticStatus"; - + String GET_HISTORY_DATA = API_PREFIX + "/getHistoryData"; @PostMapping(GET_STATISTIC_STATUS) R>> getStatisticStatus(@RequestBody StatisticStatusDTO req); + + @PostMapping(GET_HISTORY_DATA) + List getHistoryData(@RequestBody FDPFaultTableDTO req); } diff --git a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IFdpDiagnoseClientFallBack.java b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IFdpDiagnoseClientFallBack.java index 9e72d09..07ee9ee 100644 --- a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IFdpDiagnoseClientFallBack.java +++ b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/feign/IFdpDiagnoseClientFallBack.java @@ -1,12 +1,17 @@ package com.hnac.hzims.fdp.feign; +import com.hnac.hzims.fdp.dto.FDPFaultTableDTO; import com.hnac.hzims.fdp.dto.StatisticStatusDTO; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; +import com.hnac.hzims.fdp.vo.FdpFaultHistoryDataVo; import com.hnac.hzims.fdp.vo.StatisticStatusVO; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.api.R; import org.springframework.stereotype.Component; +import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * @author hx @@ -18,4 +23,9 @@ public class IFdpDiagnoseClientFallBack implements IFdpDiagnoseClient { public R getStatisticStatus(StatisticStatusDTO req) { return R.fail("调用接口失败"); } + + @Override + public List getHistoryData(FDPFaultTableDTO req) { + return new ArrayList<>(); + } } diff --git a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/vo/FdpFaultHistoryDataVo.java b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/vo/FdpFaultHistoryDataVo.java new file mode 100644 index 0000000..b449803 --- /dev/null +++ b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/vo/FdpFaultHistoryDataVo.java @@ -0,0 +1,29 @@ +package com.hnac.hzims.fdp.vo; + +import com.alibaba.fastjson.annotation.JSONField; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + *

+ * + *

+ * + * @author ty + * @since 2024-02-05 + */ + +@Data +public class FdpFaultHistoryDataVo { + + private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "") + @JSONField(name = "totalCount") + private Integer totalCount; + @ApiModelProperty(value = "") + @JSONField(name = "list") + private List list; +} diff --git a/hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/report/feign/IInspectReportClient.java b/hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/report/feign/IInspectReportClient.java index 50d12d5..e9da9b5 100644 --- a/hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/report/feign/IInspectReportClient.java +++ b/hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/report/feign/IInspectReportClient.java @@ -23,5 +23,5 @@ public interface IInspectReportClient { @PostMapping(GET_ALARAM_REPORT) Map getAlarmReport(@RequestParam("depts") List depts, @RequestParam("date") String date); @PostMapping(GET_INSPECT_STATISTCS_BY_NAME) - List getInspectStatisticsByName(@RequestParam("depts") List depts, @RequestParam("date") String startTime, @RequestParam("date") String endTime); + List getInspectStatisticsByName(@RequestParam("depts") List depts, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime); } diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpHistoryDataController.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpHistoryDataController.java new file mode 100644 index 0000000..c29bf40 --- /dev/null +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpHistoryDataController.java @@ -0,0 +1,65 @@ +package com.hnac.hzims.fdp.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.hnac.hzims.common.logs.annotation.OperationAnnotation; +import com.hnac.hzims.common.logs.enums.BusinessType; +import com.hnac.hzims.common.logs.enums.OperatorType; +import com.hnac.hzims.fdp.dto.FDPFaultTableDTO; +import com.hnac.hzims.fdp.dto.FdpTaskDTO; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; +import com.hnac.hzims.fdp.entity.FdpTaskEntity; +import com.hnac.hzims.fdp.service.IFdpHistoryDataService; +import com.hnac.hzims.fdp.service.IFdpTaskService; +import com.hnac.hzims.fdp.vo.FdpTaskVO; +import com.hnac.hzims.fdp.vo.TaskStatisticsVo; +import com.hnac.hzims.fdp.wrapper.FdpTaskWrapper; +import com.hnac.hzims.operational.defect.entity.OperPhenomenonEntity; +import com.hnac.hzims.operational.defect.vo.OperPhenomenonVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.log.annotation.ApiLog; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * 故障诊断任务表 + * + * @author ty + * @created 2024-02-05 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/fdp/history") +@Api(tags = "故障诊断任务表") +public class FdpHistoryDataController extends BladeController { + + private final IFdpHistoryDataService service; + /** + * 分页 + */ + @ApiLog + @PostMapping("/listPage") + @ApiOperationSupport(order = 50) + @ApiOperation(value = "分页 查询参数:name,emId,faultId,reasonId,satisfaction") + @OperationAnnotation(moduleName = "智能诊断",title = "智能诊断任务",operatorType = OperatorType.MOBILE,businessType = + BusinessType.GENCODE, + action = "分页查询智能诊断任务列表") + public R> listPage(@RequestBody FDPFaultTableDTO req) { + return service.getHistoryData(req); + } + + + +} diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/feign/FdpDiagnoseClient.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/feign/FdpDiagnoseClient.java index 2b471b1..33f51e3 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/feign/FdpDiagnoseClient.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/feign/FdpDiagnoseClient.java @@ -1,7 +1,11 @@ package com.hnac.hzims.fdp.feign; +import com.hnac.hzims.fdp.dto.FDPFaultTableDTO; import com.hnac.hzims.fdp.dto.StatisticStatusDTO; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; import com.hnac.hzims.fdp.proxy.IDiagnoseProxy; +import com.hnac.hzims.fdp.service.IFdpHistoryDataService; +import com.hnac.hzims.fdp.vo.FdpFaultHistoryDataVo; import com.hnac.hzims.fdp.vo.StatisticStatusVO; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -21,10 +25,17 @@ import java.util.Map; public class FdpDiagnoseClient implements IFdpDiagnoseClient { private final IDiagnoseProxy service; + private final IFdpHistoryDataService fdpHistoryDataService; @Override @PostMapping(GET_STATISTIC_STATUS) public R>> getStatisticStatus(StatisticStatusDTO req) { return service.getStatisticStatus(req); } + + @Override + @PostMapping(GET_HISTORY_DATA) + public List getHistoryData(FDPFaultTableDTO req) { + return fdpHistoryDataService.exportHistoryData(req); + } } diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpHistoryDataService.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpHistoryDataService.java new file mode 100644 index 0000000..51ae53a --- /dev/null +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpHistoryDataService.java @@ -0,0 +1,31 @@ +package com.hnac.hzims.fdp.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.hnac.hzims.fdp.dto.FDPFaultTableDTO; +import com.hnac.hzims.fdp.dto.FdpTaskDTO; +import com.hnac.hzims.fdp.dto.StatisticStatusDTO; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; +import com.hnac.hzims.fdp.entity.FdpTaskEntity; +import com.hnac.hzims.fdp.vo.FdpFaultHistoryDataVo; +import com.hnac.hzims.fdp.vo.FdpTaskVO; +import com.hnac.hzims.fdp.vo.TaskStatisticsVo; +import com.hnac.hzims.operational.defect.entity.OperPhenomenonEntity; +import com.hnac.hzims.operational.defect.vo.OperPhenomenonVO; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; + +import java.util.List; + +/** +* 服务类 +* +* @author xiashandong +* @created 2021-05-25 17:32 +**/ +public interface IFdpHistoryDataService{ + + + List exportHistoryData(FDPFaultTableDTO req); + R> getHistoryData(FDPFaultTableDTO req); +} diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpHistoryDataServiceImpl.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpHistoryDataServiceImpl.java new file mode 100644 index 0000000..9859103 --- /dev/null +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpHistoryDataServiceImpl.java @@ -0,0 +1,73 @@ +package com.hnac.hzims.fdp.service.impl; + + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.hnac.hzims.fdp.dto.FDPFaultTableDTO; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; +import com.hnac.hzims.fdp.service.IFdpHistoryDataService; +import com.hnac.hzims.fdp.util.HttpRequestUtil; +import com.hnac.hzims.fdp.vo.FdpFaultHistoryDataVo; +import lombok.AllArgsConstructor; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.*; + + +/** + * @author hx + * @version 1.0 + * @date 2023/3/6 10:18 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class FdpHistoryDataServiceImpl implements IFdpHistoryDataService { + @Value("${url.getFaultStatusTableData}") + private String getFaultStatusTableData; + @Override + public List exportHistoryData(FDPFaultTableDTO req) { + String result = HttpRequestUtil.postCallObjectParam(req, getFaultStatusTableData, "POST"); + if (StringUtil.isNotBlank(result)) { + R fdpFaultHistoryDataVoR = JSONObject.parseObject(result, new TypeReference>() { + }); + if (fdpFaultHistoryDataVoR.isSuccess()&&ObjectUtil.isNotEmpty(fdpFaultHistoryDataVoR.getData())){ + List list = fdpFaultHistoryDataVoR.getData().getList(); + return list; + } + } + return new ArrayList<>(); + } + @Override + public R> getHistoryData(FDPFaultTableDTO req) { + IPage page = new Page<>(); + page.setSize(req.getPageSize()); + page.setCurrent(req.getPageIndex()); + req.setOrderBy("CREATE_TIME"); + if (StringUtil.isBlank(req.getSource())){ + req.setSource("auto"); + } + String result = HttpRequestUtil.postCallObjectParam(req, getFaultStatusTableData, "POST"); + if (StringUtil.isNotBlank(result)) { + R fdpFaultHistoryDataVoR = JSONObject.parseObject(result, new TypeReference>() { + }); + if (fdpFaultHistoryDataVoR.isSuccess()&&ObjectUtil.isNotEmpty(fdpFaultHistoryDataVoR.getData()) + &&ObjectUtil.isNotEmpty(fdpFaultHistoryDataVoR.getData().getList())){ + List list = fdpFaultHistoryDataVoR.getData().getList(); + page.setTotal(fdpFaultHistoryDataVoR.getData().getTotalCount()); + page.setRecords(list); + } + } + return R.data(page); + } + +} diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java index d87a9dc..02c94ff 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java @@ -83,10 +83,12 @@ public class FdpAlarmServiceImpl implements FdpAlarmService { private AlarmEntity getAlarmEntity(FdpAlarmVo item) { AlarmEntity entity = new AlarmEntity(); - entity.setAlarmId(item.getFaultId()); + entity.setAlarmId(item.getUUID()); + entity.setRealId(item.getFaultId()); entity.setAlarmTime(item.getCreateTime()); entity.setAlarmContext(item.getFinfo()); entity.setAlarmType(EARLY); + entity.setDeviceCode(item.getDeviceCode()); entity.setDeviceName(item.getDeviceName()); entity.setAlarmStatus(Integer.valueOf(item.getStatus())); entity.setStationId(item.getStation()); diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/report/service/impl/OperStationMonthReportServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/report/service/impl/OperStationMonthReportServiceImpl.java index 9486a83..6671d89 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/report/service/impl/OperStationMonthReportServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/report/service/impl/OperStationMonthReportServiceImpl.java @@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.hnac.hzims.common.utils.DateUtil; +import com.hnac.hzims.fdp.dto.FDPFaultTableDTO; import com.hnac.hzims.fdp.dto.StatisticStatusDTO; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; import com.hnac.hzims.fdp.feign.IFdpDiagnoseClient; import com.hnac.hzims.fdp.vo.StatisticStatusVO; import com.hnac.hzims.operational.access.service.IOperAccessTaskService; @@ -17,6 +19,7 @@ import com.hnac.hzims.operational.duty.service.IImsDutyMainService; import com.hnac.hzims.operational.main.common.ExcelData; import com.hnac.hzims.operational.main.enums.ColumnEnum; import com.hnac.hzims.operational.main.service.IMainSystemMonitoringService; +import com.hnac.hzims.operational.maintenance.entity.OperMaintenanceTaskEntity; import com.hnac.hzims.operational.maintenance.service.IOperMaintenanceTaskService; import com.hnac.hzims.operational.report.service.IOperStationMonthReportService; import com.hnac.hzims.operational.report.vo.*; @@ -457,32 +460,38 @@ public class OperStationMonthReportServiceImpl implements IOperStationMonthRepor pool.execute(() -> { List list=new ArrayList<>(); if (CollectionUtil.isNotEmpty(stationEntityList)) { - StbAnalysisDTO param = new StbAnalysisDTO(); - param.setStartTime(LocalDateTime.parse(fmt.format(startDate)+" 00:00:00", org.springblade.core.tool.utils.DateUtil.DATETIME_FORMATTER)); - param.setEndTime(LocalDateTime.parse(fmt.format(endDate)+" 23:59:59", org.springblade.core.tool.utils.DateUtil.DATETIME_FORMATTER)); -// param.setStartTime(startDate.atStartOfDay()); -// param.setEndTime(endDate.at()); - List collect = stationEntityList.stream().filter(s -> ObjectUtil.isNotEmpty(s.getCode())).map(StationEntity::getCode).collect(Collectors.toList()); - param.setStations(Arrays.asList("902100000026")); -// param.setPageSize(10); -// param.setPage(0); - param.setNeedPage(false); - Result> result = soeDataClient.pageStbAnalysis(param); - if(result.isSuccess() && CollectionUtil.isNotEmpty(result.getData().getRecords())){ - List data = result.getData().getRecords(); - for (int i = 0; i < data.size(); i++) { - StbAnalysisVO stbAnalysisVO = data.get(i); + FDPFaultTableDTO fdpFaultTableDTO = new FDPFaultTableDTO(); + List stationIds = stationEntityList.stream().map(StationEntity::getCode).collect(Collectors.toList()); + String[] stationIdArray = new String[stationIds.size()]; + stationIds.toArray(stationIdArray); + fdpFaultTableDTO.setStationIds(stationIdArray); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + fdpFaultTableDTO.setCreateTimeLeft(formatter.format(LocalDateTime.of(startDate, LocalTime.MIN))); + fdpFaultTableDTO.setCreateTimeRight(formatter.format(LocalDateTime.of(endDate, LocalTime.MAX))); + fdpFaultTableDTO.setPageSize(-1); + fdpFaultTableDTO.setPageIndex(-1); + fdpFaultTableDTO.setSource("auto"); + fdpFaultTableDTO.setOrderBy("CREATE_TIME"); + int index=1; + List historyData = diagnoseClient.getHistoryData(fdpFaultTableDTO); + if (CollectionUtil.isNotEmpty(historyData)) { + Map> listMap = historyData.stream().collect(Collectors.groupingBy(FdpFaultHistoryDataEntity::getFaultId)); + for (Map.Entry> stringListEntry : listMap.entrySet()) { FDPRunReportVO fdpRunReportVO=new FDPRunReportVO(); - fdpRunReportVO.setIndex(i+1); - fdpRunReportVO.setLastBeginTime(stbAnalysisVO.getTs()); - fdpRunReportVO.setContent(stbAnalysisVO.getContent()); - fdpRunReportVO.setType(stbAnalysisVO.getFtype()); - Long count = data.stream().filter(s -> stbAnalysisVO.equals(s.getFaultid())).count(); - fdpRunReportVO.setNum(count.toString()); - fdpRunReportVO.setReason(stbAnalysisVO.getFinfo()); + List fdpFaultHistoryDataEntities = stringListEntry.getValue(); + FdpFaultHistoryDataEntity fdpFaultHistoryDataEntity = fdpFaultHistoryDataEntities.get(fdpFaultHistoryDataEntities.size() - 1); + fdpRunReportVO.setIndex(index); + fdpRunReportVO.setLastBeginTime(fdpFaultHistoryDataEntity.getCreateTime()); + fdpRunReportVO.setType("智能预警"); + fdpRunReportVO.setContent(fdpFaultHistoryDataEntity.getName()); + fdpRunReportVO.setNum(String.valueOf(fdpFaultHistoryDataEntities.size())); + fdpRunReportVO.setReason(fdpFaultHistoryDataEntity.getDiagReason()); + fdpRunReportVO.setAdvise(fdpFaultHistoryDataEntity.getDiagSolution()); list.add(fdpRunReportVO); + index++; } } + stationReportAllVo.setFdpRunReportVOList(list); } countDownLatch.countDown(); }); @@ -498,12 +507,13 @@ public class OperStationMonthReportServiceImpl implements IOperStationMonthRepor this.getStationReportConclusionV2(stationReportAllVo, params); return stationReportAllVo; } + /** * 导出统计月报 - * - * @param month 月份 - * @param stationCode 站点编码 - * @param type 导出类型 + * @param response + * @param stationReportAllVO + * @param deptId + * @throws Exception */ @Override public void exportStationMonthReport(HttpServletResponse response, StationRunReportAllVO stationReportAllVO,Long deptId) throws Exception { @@ -540,6 +550,7 @@ public class OperStationMonthReportServiceImpl implements IOperStationMonthRepor private HashMap getHashMap(StationRunReportAllVO stationReportAllVO, Long deptId) throws IllegalAccessException { HashMap map = new HashMap<>(); map.put("deptName", stationReportAllVO.getStationName()); + map.put("yearMon", stationReportAllVO.getYearMonth()); List userListByRoleAlias = userClient.relationUserListByRoleAlias("200000", deptId, PROJECT_MANAGER).getData(); if (CollectionUtil.isNotEmpty(userListByRoleAlias)){ User user = userListByRoleAlias.get(0); @@ -1162,8 +1173,8 @@ public class OperStationMonthReportServiceImpl implements IOperStationMonthRepor //巡检任务统计 if (CollectionUtil.isNotEmpty(stationReportAllVo.getInspectReportVOList())) { List inspectReportVOList = stationReportAllVo.getInspectReportVOList(); - int completeInspectTaskNum = inspectReportVOList.stream().filter(vo -> Func.isNotEmpty(vo.getCompleteNum())).mapToInt(RunReportVO::getCompleteNum).sum(); - int incompleteInspectTaskNum = inspectReportVOList.stream().filter(vo -> Func.isNotEmpty(vo.getIncompleteNum())).mapToInt(RunReportVO::getIncompleteNum).sum(); + int completeInspectTaskNum =inspectReportVOList.stream().filter(vo ->"合计".equals(vo.getUserName())).mapToInt(RunReportVO::getCompleteNum).sum(); + int incompleteInspectTaskNum =inspectReportVOList.stream().filter(vo ->"合计".equals(vo.getUserName())).mapToInt(RunReportVO::getIncompleteNum).sum(); if (completeInspectTaskNum == 0 && incompleteInspectTaskNum == 0) { conclusion.append("3、无巡检任务;\r\n"); } else { @@ -1208,9 +1219,10 @@ public class OperStationMonthReportServiceImpl implements IOperStationMonthRepor } // 两票 if (CollectionUtil.isNotEmpty(stationReportAllVo.getTicketInfoStatisticVOList())) { - int sum = stationReportAllVo.getTicketInfoStatisticVOList().stream().mapToInt(TicketInfoStatisticVO::getTicketInfoNumber).sum(); - int qualifiedNum = stationReportAllVo.getTicketInfoStatisticVOList().stream().mapToInt(TicketInfoStatisticVO::getTicketInfoQualifiedNum).sum(); - double ticketInfoProportion = new BigDecimal(qualifiedNum / (double) sum * 100).setScale(2, RoundingMode.HALF_DOWN).doubleValue(); + int sum = stationReportAllVo.getTicketInfoStatisticVOList().stream().filter(s->"合计".equals(s.getTicketInfoType())).mapToInt(TicketInfoStatisticVO::getTicketInfoNumber).sum(); + int qualifiedNum = stationReportAllVo.getTicketInfoStatisticVOList().stream().filter(s->"合计".equals(s.getTicketInfoType())).mapToInt(TicketInfoStatisticVO::getTicketInfoQualifiedNum).sum(); +// double ticketInfoProportion = new BigDecimal(qualifiedNum ).divide(sum,2, RoundingMode.HALF_DOWN).doubleValue(); + double ticketInfoProportion = new BigDecimal(qualifiedNum ).divide(new BigDecimal(sum*100),2, RoundingMode.HALF_DOWN).doubleValue(); String phenomenonConclusion = "5、本月开票%s张,合格率%s;"; conclusion.append(String.format(phenomenonConclusion,sum,ticketInfoProportion)).append(";\r\n"); }else { diff --git a/hzims-service/operational/src/main/resources/template/word/stationMonthReport.docx b/hzims-service/operational/src/main/resources/template/word/stationMonthReport.docx index 843960c187ab8c4f9c4bcf451490564f9a565b29..db30df2e117684a3390dd3e5e1a1a753bc7428e3 100644 GIT binary patch delta 13611 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 LVffYm>HU8Iu`ccY delta 14469 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 From 89aebc0dda9fd6019129af8e3e2b817b7c09dfa6 Mon Sep 17 00:00:00 2001 From: ty <1577900710@qq.com> Date: Tue, 6 Feb 2024 14:01:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E8=AF=8A=E6=96=AD=E5=88=97=E8=A1=A8=E9=A1=B5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hnac/hzims/fdp/dto/FDPFaultListInfoDTO.java | 46 +++++++++++++ .../hzims/fdp/entity/FdpFaultTableListEntity.java | 58 +++++++++++++++++ .../com/hnac/hzims/fdp/vo/FdpFaultTableDataVo.java | 30 +++++++++ .../fdp/controller/FdpListTableDataController.java | 56 ++++++++++++++++ .../hzims/fdp/service/IFdpHistoryDataService.java | 4 +- .../fdp/service/IFdpListTableDataService.java | 19 ++++++ .../service/impl/FdpListTableDataServiceImpl.java | 75 ++++++++++++++++++++++ 7 files changed, 286 insertions(+), 2 deletions(-) create mode 100644 hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/dto/FDPFaultListInfoDTO.java create mode 100644 hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/entity/FdpFaultTableListEntity.java create mode 100644 hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/vo/FdpFaultTableDataVo.java create mode 100644 hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpListTableDataController.java create mode 100644 hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpListTableDataService.java create mode 100644 hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpListTableDataServiceImpl.java diff --git a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/dto/FDPFaultListInfoDTO.java b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/dto/FDPFaultListInfoDTO.java new file mode 100644 index 0000000..53a9024 --- /dev/null +++ b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/dto/FDPFaultListInfoDTO.java @@ -0,0 +1,46 @@ +package com.hnac.hzims.fdp.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author ty + */ +@Data +public class FDPFaultListInfoDTO { + + @ApiModelProperty("站点ID数组") + private String stationId; + + @ApiModelProperty("设备名称") + private String deviceName; + + @ApiModelProperty("故障的专业”") + private String field; + + @ApiModelProperty("筛选是否用于展示") + private Integer display; + + @ApiModelProperty("筛选是否是根因") + private Integer isRoot; + + + @ApiModelProperty("故障名称模糊匹配") + private String nameLike; + + @ApiModelProperty("模糊匹配故障位置") + private String ordLike; + + @ApiModelProperty("分页的每页数量,-1则为不限制数量") + private Integer pageSize; + + @ApiModelProperty("分页的序号") + private Integer pageIndex; + + @ApiModelProperty("排序方式") + private String orderBy; + + @ApiModelProperty("升降序方式,“asc”或“desc”") + private String orderKind; + +} diff --git a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/entity/FdpFaultTableListEntity.java b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/entity/FdpFaultTableListEntity.java new file mode 100644 index 0000000..d880f4c --- /dev/null +++ b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/entity/FdpFaultTableListEntity.java @@ -0,0 +1,58 @@ +package com.hnac.hzims.fdp.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *

+ * + *

+ * + * @author ty + * @since 2024-02-05 + */ + +@Data +public class FdpFaultTableListEntity { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("ID") + @JSONField(name = "ID") + private String id; + + @ApiModelProperty(value = "站点ID") + @JSONField(name = "STATION") + private String station; + + + @ApiModelProperty(value = "位置") + @JSONField(name = "ORD") + private String ord; + + + @ApiModelProperty(value = "名称") + @JSONField(name = "NAME") + private String name; + + @ApiModelProperty(value = "故障ID") + @JSONField(name = "FIELD") + private String field; + + + @ApiModelProperty(value = "故障所属设备ID") + @JSONField(name = "DEVICE_ID") + private String deviceId; + + @ApiModelProperty(value = "故障所属设备名称") + @JSONField(name = "DEVICE_NAME") + private String deviceName; + + + @ApiModelProperty(value = "故障描述") + @JSONField(name = "INFO") + private String info; + + +} diff --git a/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/vo/FdpFaultTableDataVo.java b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/vo/FdpFaultTableDataVo.java new file mode 100644 index 0000000..796139f --- /dev/null +++ b/hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/fdp/vo/FdpFaultTableDataVo.java @@ -0,0 +1,30 @@ +package com.hnac.hzims.fdp.vo; + +import com.alibaba.fastjson.annotation.JSONField; +import com.hnac.hzims.fdp.entity.FdpFaultHistoryDataEntity; +import com.hnac.hzims.fdp.entity.FdpFaultTableListEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + *

+ * + *

+ * + * @author ty + * @since 2024-02-05 + */ + +@Data +public class FdpFaultTableDataVo { + + private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "") + @JSONField(name = "totalCount") + private Integer totalCount; + @ApiModelProperty(value = "") + @JSONField(name = "list") + private List list; +} diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpListTableDataController.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpListTableDataController.java new file mode 100644 index 0000000..98a173b --- /dev/null +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpListTableDataController.java @@ -0,0 +1,56 @@ +package com.hnac.hzims.fdp.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.hnac.hzims.common.logs.annotation.OperationAnnotation; +import com.hnac.hzims.common.logs.enums.BusinessType; +import com.hnac.hzims.common.logs.enums.OperatorType; +import com.hnac.hzims.fdp.dto.FDPFaultListInfoDTO; +import com.hnac.hzims.fdp.service.IFdpListTableDataService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.log.annotation.ApiLog; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.*; + + +/** + * 故障诊断任务表 + * + * @author ty + * @created 2024-02-05 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/fdp/list/table") +@Api(tags = "故障诊断任务表") +public class FdpListTableDataController extends BladeController { + + private final IFdpListTableDataService service; + /** + * 分页 + */ + @ApiLog + @GetMapping("/getProperty") + @ApiOperationSupport(order = 50) + @ApiOperation(value = "分页 查询参数:name,emId,faultId,reasonId,satisfaction") + @OperationAnnotation(moduleName = "智能诊断",title = "智能诊断任务",operatorType = OperatorType.MOBILE,businessType = + BusinessType.GENCODE, + action = "分页查询智能诊断任务列表") + public R getProperty(String property) { + return service.getProperty(property); + } + + @ApiLog + @PostMapping ("/getListByProperty") + @ApiOperationSupport(order = 50) + @ApiOperation(value = "分页 查询参数:name,emId,faultId,reasonId,satisfaction") + @OperationAnnotation(moduleName = "智能诊断",title = "智能诊断任务",operatorType = OperatorType.MOBILE,businessType = + BusinessType.GENCODE, + action = "分页查询智能诊断任务列表") + public R getListByProperty(@RequestBody FDPFaultListInfoDTO req) { + return service.getListByProperty(req); + } + +} diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpHistoryDataService.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpHistoryDataService.java index 51ae53a..d7a9640 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpHistoryDataService.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpHistoryDataService.java @@ -20,8 +20,8 @@ import java.util.List; /** * 服务类 * -* @author xiashandong -* @created 2021-05-25 17:32 +* @author ty +* @created 2024-02-06 **/ public interface IFdpHistoryDataService{ diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpListTableDataService.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpListTableDataService.java new file mode 100644 index 0000000..b159c32 --- /dev/null +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/IFdpListTableDataService.java @@ -0,0 +1,19 @@ +package com.hnac.hzims.fdp.service; + +import com.hnac.hzims.fdp.dto.FDPFaultListInfoDTO; +import org.springblade.core.tool.api.R; + +/** +* 服务类 +* +* @author ty +* @created 2024-02-06 +**/ +public interface IFdpListTableDataService { + + + + R getProperty(String property); + + R getListByProperty(FDPFaultListInfoDTO req); +} diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpListTableDataServiceImpl.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpListTableDataServiceImpl.java new file mode 100644 index 0000000..a4a03ad --- /dev/null +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpListTableDataServiceImpl.java @@ -0,0 +1,75 @@ +package com.hnac.hzims.fdp.service.impl; + + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.hnac.hzims.fdp.dto.FDPFaultListInfoDTO; +import com.hnac.hzims.fdp.entity.FdpFaultTableListEntity; +import com.hnac.hzims.fdp.service.IFdpListTableDataService; +import com.hnac.hzims.fdp.util.HttpRequestUtil; +import com.hnac.hzims.fdp.vo.FdpFaultTableDataVo; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.ObjectUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.xml.ws.WebServiceException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * @author hx + * @version 1.0 + * @date 2023/3/6 10:18 + */ +@Service +@RequiredArgsConstructor +@Slf4j +public class FdpListTableDataServiceImpl implements IFdpListTableDataService { + @Value("${url.getNeoFaultPropertyList}") + private String getNeoFaultPropertyList; + @Value("${url.getNeoFaultTableData}") + private String getNeoFaultTableData; + @Override + public R getProperty(String property) { + Map params = new HashMap<>(); + params.put("property",property); + String result = HttpRequestUtil.postCall(params,getNeoFaultPropertyList,"POST"); + R> res = JSONObject.parseObject(result, new TypeReference>>() { + }); + return res; + } + + @Override + public R getListByProperty(FDPFaultListInfoDTO req) { + IPage page = new Page<>(); + page.setSize(req.getPageSize()); + page.setCurrent(req.getPageIndex()); + req.setDisplay(1); + req.setIsRoot(1); + req.setOrderBy("NAME"); + req.setOrderKind("desc"); + String result = HttpRequestUtil.postCallObjectParam(req, getNeoFaultTableData, "POST"); + if (StringUtil.isNotBlank(result)) { + R fdpFaultHistoryDataVoR = JSONObject.parseObject(result, new TypeReference>() { + }); + if (!fdpFaultHistoryDataVoR.isSuccess()){ + throw new WebServiceException("请求失败,请紧急联系管理员!!!"); + } + if (fdpFaultHistoryDataVoR.isSuccess()&&ObjectUtil.isNotEmpty(fdpFaultHistoryDataVoR.getData()) + &&ObjectUtil.isNotEmpty(fdpFaultHistoryDataVoR.getData().getList())){ + List list = fdpFaultHistoryDataVoR.getData().getList(); + page.setTotal(fdpFaultHistoryDataVoR.getData().getTotalCount()); + page.setRecords(list); + } + } + return R.data(page); + } +} From ee3bcbafe4c18320ee1e50faf7340e370b9e76f3 Mon Sep 17 00:00:00 2001 From: ty <1577900710@qq.com> Date: Tue, 6 Feb 2024 16:22:57 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=99=BA=E8=83=BD?= =?UTF-8?q?=E8=AF=8A=E6=96=AD=E5=88=97=E8=A1=A8=E9=A1=B5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fdp/controller/FdpListTableDataController.java | 3 +++ .../service/impl/FdpListTableDataServiceImpl.java | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpListTableDataController.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpListTableDataController.java index 98a173b..a8b2bc1 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpListTableDataController.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/controller/FdpListTableDataController.java @@ -14,6 +14,8 @@ import org.springblade.core.log.annotation.ApiLog; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; + /** * 故障诊断任务表 @@ -27,6 +29,7 @@ import org.springframework.web.bind.annotation.*; @Api(tags = "故障诊断任务表") public class FdpListTableDataController extends BladeController { + @Resource private final IFdpListTableDataService service; /** * 分页 diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpListTableDataServiceImpl.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpListTableDataServiceImpl.java index a4a03ad..03eb3c1 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpListTableDataServiceImpl.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpListTableDataServiceImpl.java @@ -10,15 +10,20 @@ import com.hnac.hzims.fdp.entity.FdpFaultTableListEntity; import com.hnac.hzims.fdp.service.IFdpListTableDataService; import com.hnac.hzims.fdp.util.HttpRequestUtil; import com.hnac.hzims.fdp.vo.FdpFaultTableDataVo; +import com.hnac.hzims.operational.station.entity.StationEntity; +import com.hnac.hzims.operational.station.feign.IStationClient; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.StringUtil; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.xml.ws.WebServiceException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -33,6 +38,8 @@ import java.util.Map; @RequiredArgsConstructor @Slf4j public class FdpListTableDataServiceImpl implements IFdpListTableDataService { + @Resource + private IStationClient stationClient; @Value("${url.getNeoFaultPropertyList}") private String getNeoFaultPropertyList; @Value("${url.getNeoFaultTableData}") @@ -42,6 +49,21 @@ public class FdpListTableDataServiceImpl implements IFdpListTableDataService { Map params = new HashMap<>(); params.put("property",property); String result = HttpRequestUtil.postCall(params,getNeoFaultPropertyList,"POST"); + if ("STATION".equals(property)){ + List list=new ArrayList<>(); + R> res = JSONObject.parseObject(result, new TypeReference>>() { + }); + if (res.isSuccess()&& CollectionUtil.isNotEmpty(res.getData())){ + for (String s : res.getData()) { + R stationEntityR = stationClient.getStationByCode(s); + if (stationEntityR.isSuccess()&&ObjectUtil.isNotEmpty(stationEntityR.getData())){ + StationEntity station = stationEntityR.getData(); + list.add(station); + } + } + } + return R.data(list); + } R> res = JSONObject.parseObject(result, new TypeReference>>() { }); return res;