From 32295f60c0f603d8e4158723f5a7b80a44b61558 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Wed, 28 Jan 2026 08:43:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E6=B7=BB=E5=8A=A0=E6=8E=A5?= =?UTF-8?q?=E7=BA=BF=E6=96=B9=E5=BC=8F=E3=80=81=E4=B8=80=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E5=80=BC=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../harmonic/pojo/param/excel/ExcelParam.java | 50 +++++++++++ .../njcn/harmonic/pojo/po/ExcelRptTemp.java | 2 + .../njcn/harmonic/pojo/po/excel/SysExcel.java | 37 +++++++++ .../pojo/po/excel/SysExcelRelation.java | 35 ++++++++ .../common/mapper/ExcelRptTempMapper.java | 1 + .../common/mapper/SysExcelMapper.java | 16 ++++ .../common/mapper/SysExcelRelationMapper.java | 16 ++++ .../mapper/mapping/ExcelRptTempMapper.xml | 38 ++++++++- .../common/pojo/vo/ReportTemplateVO.java | 3 + .../common/pojo/vo/SysExcelRelationVO.java | 18 ++++ .../service/ISysExcelRelationService.java | 23 +++++ .../common/service/ISysExcelService.java | 32 +++++++ .../impl/CustomReportTableServiceImpl.java | 70 +++++++++++++--- .../impl/SysExcelRelationServiceImpl.java | 65 +++++++++++++++ .../service/impl/SysExcelServiceImpl.java | 83 +++++++++++++++++++ 15 files changed, 475 insertions(+), 14 deletions(-) create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/excel/ExcelParam.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/excel/SysExcel.java create mode 100644 pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/excel/SysExcelRelation.java create mode 100644 pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/SysExcelMapper.java create mode 100644 pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/SysExcelRelationMapper.java create mode 100644 pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/vo/SysExcelRelationVO.java create mode 100644 pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/ISysExcelRelationService.java create mode 100644 pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/ISysExcelService.java create mode 100644 pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/SysExcelRelationServiceImpl.java create mode 100644 pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/SysExcelServiceImpl.java diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/excel/ExcelParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/excel/ExcelParam.java new file mode 100644 index 000000000..d2a547d8e --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/excel/ExcelParam.java @@ -0,0 +1,50 @@ +package com.njcn.harmonic.pojo.param.excel; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * @author xy + * + */ +@Data +public class ExcelParam implements Serializable { + + @ApiModelProperty("模板分类名称") + @NotBlank(message = "模板分类名称不可为空") + private String modelTypeName; + + @ApiModelProperty("模板分类类型") + private String modelType; + + @ApiModelProperty("排序") + private Integer sort; + + + @Data + public static class ListExcelParam implements Serializable { + + @ApiModelProperty("模板分类id") + private String id; + + @ApiModelProperty("模板id") + private List modelIds; + } + + @Data + @EqualsAndHashCode(callSuper = true) + public static class UpdateExcelParam extends ExcelParam implements Serializable { + + @ApiModelProperty("模板id") + private String id; + + } + + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ExcelRptTemp.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ExcelRptTemp.java index fc388204a..d12ef6050 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ExcelRptTemp.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ExcelRptTemp.java @@ -34,4 +34,6 @@ public class ExcelRptTemp extends BaseEntity { private Integer sort; + private String wiringMethod; + } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/excel/SysExcel.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/excel/SysExcel.java new file mode 100644 index 000000000..e7efee86d --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/excel/SysExcel.java @@ -0,0 +1,37 @@ +package com.njcn.harmonic.pojo.po.excel; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.njcn.db.bo.BaseEntity; +import java.io.Serializable; +import lombok.Getter; +import lombok.Setter; + +/** + *

+ * + *

+ * + * @author xy + * @since 2026-01-27 + */ +@Getter +@Setter +@TableName("sys_excel") +public class SysExcel extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + + /** + * 报表类型名称 + */ + private String excelName; + + private String excelType; + + private Integer sort; +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/excel/SysExcelRelation.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/excel/SysExcelRelation.java new file mode 100644 index 000000000..32d3e3b3d --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/excel/SysExcelRelation.java @@ -0,0 +1,35 @@ +package com.njcn.harmonic.pojo.po.excel; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + *

+ * + *

+ * + * @author xy + * @since 2026-01-27 + */ +@Getter +@Setter +@TableName("sys_excel_relation") +public class SysExcelRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * sys_excel的主键id + */ + private String sysExcelId; + + /** + * sys_excel_rpt_temp的主键id + */ + private String sysExcelRptTempId; + + +} diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/ExcelRptTempMapper.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/ExcelRptTempMapper.java index dfd65fc87..61818e0f5 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/ExcelRptTempMapper.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/ExcelRptTempMapper.java @@ -27,6 +27,7 @@ public interface ExcelRptTempMapper extends BaseMapper { List getReportTemplateByDept(@Param("ids") List ids); + List getReportTemplateByIds(@Param("ids") List ids); @Select("${sqlStr}") StatisticalDataDTO dynamicSql(@Param("sqlStr")String sql); diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/SysExcelMapper.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/SysExcelMapper.java new file mode 100644 index 000000000..bc84e2784 --- /dev/null +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/SysExcelMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.common.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.excel.SysExcel; + +/** + *

+ * Mapper 接口 + *

+ * + * @author xy + * @since 2026-01-27 + */ +public interface SysExcelMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/SysExcelRelationMapper.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/SysExcelRelationMapper.java new file mode 100644 index 000000000..45c4dc865 --- /dev/null +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/SysExcelRelationMapper.java @@ -0,0 +1,16 @@ +package com.njcn.harmonic.common.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.harmonic.pojo.po.excel.SysExcelRelation; + +/** + *

+ * Mapper 接口 + *

+ * + * @author xy + * @since 2026-01-27 + */ +public interface SysExcelRelationMapper extends BaseMapper { + +} diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/mapping/ExcelRptTempMapper.xml b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/mapping/ExcelRptTempMapper.xml index 006870d63..432c1e70b 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/mapping/ExcelRptTempMapper.xml +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/mapper/mapping/ExcelRptTempMapper.xml @@ -8,9 +8,11 @@ a.name, a.dept_id, b.name deptName, - a.activation, + a.activation,, + a.wiring_method wiringMethod a.update_time, - c.name updateBy + c.name updateBy, + a.sort sort from sys_excel_rpt_temp a left join sys_dept b on a.dept_id = b.id left join sys_user c on a.update_by = c.id @@ -21,6 +23,7 @@ b.name like CONCAT('%', #{baseParam.searchValue},'%') ) + order by a.sort asc + + diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/vo/ReportTemplateVO.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/vo/ReportTemplateVO.java index d3ec1d4f9..b9657b7be 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/vo/ReportTemplateVO.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/vo/ReportTemplateVO.java @@ -31,4 +31,7 @@ public class ReportTemplateVO extends BaseEntity { private String reportForm; + private String wiringMethod; + + private Integer sort; } diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/vo/SysExcelRelationVO.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/vo/SysExcelRelationVO.java new file mode 100644 index 000000000..a10ddc09e --- /dev/null +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/pojo/vo/SysExcelRelationVO.java @@ -0,0 +1,18 @@ +package com.njcn.harmonic.common.pojo.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author xy + */ +@Data +public class SysExcelRelationVO implements Serializable { + + private String sysExcelId; + + private List relationIds; + +} diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/ISysExcelRelationService.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/ISysExcelRelationService.java new file mode 100644 index 000000000..19f148330 --- /dev/null +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/ISysExcelRelationService.java @@ -0,0 +1,23 @@ +package com.njcn.harmonic.common.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.harmonic.common.pojo.vo.SysExcelRelationVO; +import com.njcn.harmonic.pojo.param.excel.ExcelParam; +import com.njcn.harmonic.pojo.po.excel.SysExcelRelation; + +/** + *

+ * 服务类 + *

+ * + * @author xy + * @since 2026-01-27 + */ +public interface ISysExcelRelationService extends IService { + + //查询已绑定的关系 + SysExcelRelationVO getRelation(String id); + + //重新绑定模板 + boolean bandRelation(ExcelParam.ListExcelParam param); +} diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/ISysExcelService.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/ISysExcelService.java new file mode 100644 index 000000000..b9e6be14e --- /dev/null +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/ISysExcelService.java @@ -0,0 +1,32 @@ +package com.njcn.harmonic.common.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.device.pq.pojo.vo.LineStateVO; +import com.njcn.harmonic.pojo.param.excel.ExcelParam; +import com.njcn.harmonic.pojo.po.excel.SysExcel; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author xy + * @since 2026-01-27 + */ +public interface ISysExcelService extends IService { + + //新增 + boolean addSysExcel(ExcelParam param); + + //删除 + boolean deleteSysExcel(String id); + + //修改 + boolean updateSysExcel(ExcelParam.UpdateExcelParam param); + + //查询 + List querySysExcel(); + +} diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java index 45976e1f3..40e35fdab 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java @@ -19,14 +19,13 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.api.CsCommTerminalFeignClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient; -import com.njcn.device.biz.pojo.po.PqsDeviceUnit; +import com.njcn.harmonic.common.mapper.ExcelRptTempMapper; import com.njcn.harmonic.common.pojo.dto.DeviceUnitCommDTO; +import com.njcn.harmonic.common.service.CustomReportTableService; import com.njcn.harmonic.enums.HarmonicResponseEnum; import com.njcn.harmonic.pojo.dto.ReportTemplateDTO; import com.njcn.harmonic.pojo.param.ReportSearchParam; import com.njcn.harmonic.pojo.po.ExcelRptTemp; -import com.njcn.harmonic.common.mapper.ExcelRptTempMapper; -import com.njcn.harmonic.common.service.CustomReportTableService; import com.njcn.influx.constant.InfluxDbSqlConstant; import com.njcn.influx.pojo.constant.InfluxDBTableConstant; import com.njcn.oss.enums.OssResponseEnum; @@ -91,6 +90,12 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { private final String STR_FOUR = "%"; private final String UVOLTAGE_DEV = "UVOLTAGE_DEV"; private final String VOLTAGE_DEV = "VOLTAGE_DEV"; + private static final Map PHASE_MAPPING = new HashMap() {{ + put("AB", "A"); + put("BC", "B"); + put("CA", "C"); + put("M", "T"); + }}; @Override public void getCustomReport(ReportSearchParam reportSearchParam,Map newMap,DeviceUnitCommDTO deviceUnitCommDTO, HttpServletResponse response) { @@ -141,9 +146,20 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { throw new BusinessException(CommonResponseEnum.FAIL,"字典类型模板缺少!"); } - DictData epdDic = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.EPD.getCode(),DicDataTypeEnum.CS_DATA_TYPE.getCode()).getData(); List eleEpdPqdList= epdFeignClient.dictMarkByDataType(epdDic.getId()).getData(); + + Map tMap = new HashMap<>(); + eleEpdPqdList.forEach(item->{ + String phase; + if (Objects.isNull(PHASE_MAPPING.get(item.getPhase()))) { + phase = item.getPhase(); + } else { + phase = PHASE_MAPPING.get(item.getPhase()); + } + tMap.put((item.getOtherName() + phase + item.getResourcesId()).toUpperCase(), item.getPrimaryFormula()); + }); + eleEpdPqdList = eleEpdPqdList.stream().filter(it->"T".equals(it.getPhase())||"M".equals(it.getPhase())).collect(Collectors.toList()); List noPhaseList = eleEpdPqdList.stream().filter(it->StrUtil.isNotBlank(it.getOtherName())).map(it->it.getOtherName().toUpperCase()).collect(Collectors.toList()); @@ -173,13 +189,13 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { phaseMap.forEach((phaseKey, phaseVal) -> { StringBuilder sql = new StringBuilder(InfluxDbSqlConstant.SELECT); if (InfluxDbSqlConstant.MAX.equalsIgnoreCase(valueTypeKey)) { - assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap,noPhaseList); + assSqlByMysql(tMap,newMap.get("LEVEL"),newMap.get("PT"),newMap.get("CT"),phaseVal, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap,noPhaseList); } else if (InfluxDbSqlConstant.MIN.equalsIgnoreCase(valueTypeKey)) { - assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.MIN, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap,noPhaseList); + assSqlByMysql(tMap,newMap.get("LEVEL"),newMap.get("PT"),newMap.get("CT"),phaseVal, sql, endList, InfluxDbSqlConstant.MIN, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap,noPhaseList); } else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(valueTypeKey)) { - assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.AVG_WEB, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap,noPhaseList); + assSqlByMysql(tMap,newMap.get("LEVEL"),newMap.get("PT"),newMap.get("CT"),phaseVal, sql, endList, InfluxDbSqlConstant.AVG_WEB, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap,noPhaseList); } else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) { - assSqlByMysql(phaseVal, sql, endList, InfluxDbSqlConstant.CP95, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap,noPhaseList); + assSqlByMysql(tMap,newMap.get("LEVEL"),newMap.get("PT"),newMap.get("CT"),phaseVal, sql, endList, InfluxDbSqlConstant.CP95, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap,noPhaseList); } }); @@ -453,6 +469,37 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { } + public Double getData(String data) { + double ratio = 1.0; + String[] parts = data.split(":"); + if (parts.length == 2) { + try { + int num1 = Integer.parseInt(parts[0]); + int num2 = Integer.parseInt(parts[1]); + // 如果需要计算比值 + ratio = (double) num1 / num2; + } catch (NumberFormatException e) { + System.out.println("字符串格式错误"); + } + } + return ratio; + } + + public String appendData(Map tMap,String name, double pt, double ct) { + String result; + String format = tMap.get(name); + if (Objects.equals(format, "*PT")) { + result = "*"+pt+"/1000"; + } else if (Objects.equals(format, "*CT")) { + result = "*"+ct; + } else if (Objects.equals(format, "*PT*CT")) { + result = "*"+pt+"*"+ct+"/1000"; + } else { + result = ""; + } + return result; + } + /** * @param data 同类型的cell模板 * @param sql 单个cell模板 @@ -461,8 +508,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { * @param assNoPassMap 用于存储不合格的指标 * @date 2023/10/20 */ - - private void assSqlByMysql(List data, StringBuilder sql, List endList, String method, ReportSearchParam reportSearchParam, Map limitMap, Map overLimitMap, Map assNoPassMap,List noPhaseList) { + private void assSqlByMysql(Map tMap, String dataLevel, String pt, String ct, List data, StringBuilder sql, List endList, String method, ReportSearchParam reportSearchParam, Map limitMap, Map overLimitMap, Map assNoPassMap,List noPhaseList) { //sql拼接示例:select MAX(IHA2) as IHA2 from power_quality_data where Phase = 'A' and LineId='1324564568' and Stat_Method='max' tz('Asia/Shanghai') if (InfluxDbSqlConstant.CP95.equals(method)) { for (int i = 0; i < data.size(); i++) { @@ -471,6 +517,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { .append(InfluxDbSqlConstant.LBK) .append(data.get(i).getTemplateName()) .append(InfluxDbSqlConstant.RBK) + .append(Objects.equals(dataLevel, "Secondary") ? " " + appendData(tMap, data.get(i).getTemplateName()+data.get(i).getPhase()+data.get(0).getResourceId(), getData(pt), getData(ct)) : "") .append(InfluxDbSqlConstant.AS) .append("\""+data.get(i).getItemName()+"\""); } else { @@ -478,6 +525,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { .append(InfluxDbSqlConstant.LBK) .append(data.get(i).getTemplateName()) .append(InfluxDbSqlConstant.RBK) + .append(Objects.equals(dataLevel, "Secondary") ? " " + appendData(tMap, data.get(i).getTemplateName()+data.get(i).getPhase()+data.get(0).getResourceId(), getData(pt), getData(ct)) : "") .append(InfluxDbSqlConstant.AS) .append("\""+data.get(i).getItemName()+"\"").append(StrUtil.COMMA); } @@ -489,6 +537,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { .append(InfluxDbSqlConstant.LBK) .append(data.get(i).getTemplateName()) .append(InfluxDbSqlConstant.RBK) + .append(Objects.equals(dataLevel, "Secondary") ? " " + appendData(tMap, data.get(i).getTemplateName()+data.get(i).getPhase()+data.get(0).getResourceId(), getData(pt), getData(ct)) : "") .append(InfluxDbSqlConstant.AS) .append("\""+data.get(i).getItemName()+"\""); } else { @@ -496,6 +545,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { .append(InfluxDbSqlConstant.LBK) .append(data.get(i).getTemplateName()) .append(InfluxDbSqlConstant.RBK) + .append(Objects.equals(dataLevel, "Secondary") ? " " + appendData(tMap, data.get(i).getTemplateName()+data.get(i).getPhase()+data.get(0).getResourceId(), getData(pt), getData(ct)) : "") .append(InfluxDbSqlConstant.AS) .append("\""+data.get(i).getItemName()+"\"").append(StrUtil.COMMA); } diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/SysExcelRelationServiceImpl.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/SysExcelRelationServiceImpl.java new file mode 100644 index 000000000..f0569af94 --- /dev/null +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/SysExcelRelationServiceImpl.java @@ -0,0 +1,65 @@ +package com.njcn.harmonic.common.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.harmonic.common.mapper.SysExcelRelationMapper; +import com.njcn.harmonic.common.pojo.vo.SysExcelRelationVO; +import com.njcn.harmonic.common.service.ISysExcelRelationService; +import com.njcn.harmonic.pojo.param.excel.ExcelParam; +import com.njcn.harmonic.pojo.po.excel.SysExcelRelation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author xy + * @since 2026-01-27 + */ +@Service +@Slf4j +@RequiredArgsConstructor +@DS("sjzx") +public class SysExcelRelationServiceImpl extends ServiceImpl implements ISysExcelRelationService { + + @Override + public SysExcelRelationVO getRelation(String id) { + SysExcelRelationVO vo = new SysExcelRelationVO(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysExcelRelation::getSysExcelId, id); + List list = this.list(queryWrapper); + vo.setSysExcelId(id); + if (!list.isEmpty()) { + vo.setRelationIds(list.stream().map(SysExcelRelation::getSysExcelRptTempId).collect(Collectors.toList())); + } + return vo; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean bandRelation(ExcelParam.ListExcelParam param) { + //先删除 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysExcelRelation::getSysExcelId, param.getId()); + this.remove(queryWrapper); + //再绑定 + if (!param.getModelIds().isEmpty()) { + List list = param.getModelIds().stream().map(id -> { + SysExcelRelation relation = new SysExcelRelation(); + relation.setSysExcelId(param.getId()); + relation.setSysExcelRptTempId(id); + return relation; + }).collect(Collectors.toList()); + this.saveBatch(list); + } + return true; + } +} diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/SysExcelServiceImpl.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/SysExcelServiceImpl.java new file mode 100644 index 000000000..91d0ce7f5 --- /dev/null +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/SysExcelServiceImpl.java @@ -0,0 +1,83 @@ +package com.njcn.harmonic.common.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.harmonic.common.mapper.SysExcelMapper; +import com.njcn.harmonic.common.mapper.SysExcelRelationMapper; +import com.njcn.harmonic.common.service.ISysExcelService; +import com.njcn.harmonic.pojo.param.excel.ExcelParam; +import com.njcn.harmonic.pojo.po.excel.SysExcel; +import com.njcn.harmonic.pojo.po.excel.SysExcelRelation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 服务实现类 + *

+ * + * @author xy + * @since 2026-01-27 + */ +@Service +@Slf4j +@RequiredArgsConstructor +@DS("sjzx") +public class SysExcelServiceImpl extends ServiceImpl implements ISysExcelService { + + private final SysExcelRelationMapper sysExcelRelationMapper; + + @Override + public boolean addSysExcel(ExcelParam param) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysExcel::getExcelName, param.getModelTypeName()); + if (this.count(queryWrapper) > 0) { + throw new BusinessException("名称重复"); + } + + SysExcel sysExcel = new SysExcel(); + sysExcel.setExcelName(param.getModelTypeName()); + sysExcel.setExcelType(param.getModelType()); + sysExcel.setSort(param.getSort()); + return this.save(sysExcel); + } + + @Override + public boolean deleteSysExcel(String id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysExcelRelation::getSysExcelId, id); + if (sysExcelRelationMapper.selectCount(queryWrapper) > 0) { + throw new BusinessException("请先删除关联关系"); + } + return this.removeById(id); + } + + @Override + public boolean updateSysExcel(ExcelParam.UpdateExcelParam param) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysExcel::getExcelName, param.getModelTypeName()).ne(SysExcel::getId, param.getId()); + if (this.count(queryWrapper) > 0) { + throw new BusinessException("名称重复"); + } + SysExcel sysExcel = new SysExcel(); + sysExcel.setId(param.getId()); + sysExcel.setExcelName(param.getModelTypeName()); + sysExcel.setExcelType(param.getModelType()); + sysExcel.setSort(param.getSort()); + return this.updateById(sysExcel); + } + + @Override + public List querySysExcel() { + return this.list().stream().sorted(Comparator.comparing(SysExcel::getSort)).collect(Collectors.toList()); + } + + +}