diff --git a/das/src/main/java/com/das/modules/fdr/controller/FaultRecorderController.java b/das/src/main/java/com/das/modules/fdr/controller/FaultRecorderController.java index 2d5a1bdc..3f0af781 100644 --- a/das/src/main/java/com/das/modules/fdr/controller/FaultRecorderController.java +++ b/das/src/main/java/com/das/modules/fdr/controller/FaultRecorderController.java @@ -15,6 +15,7 @@ import com.das.modules.fdr.domain.SysFaultRecordingDesc; import com.das.modules.fdr.domain.dto.FileDownloadDto; import com.das.modules.fdr.domain.excel.SysFaultCodeDictExcel; import com.das.modules.fdr.domain.excel.SysFaultRecordingExcel; +import com.das.modules.fdr.listener.SysFaultCodeDictListener; import com.das.modules.fdr.listener.SysFaultRecordingListener; import com.das.modules.fdr.service.FaultRecorderService; import jakarta.servlet.http.HttpServletRequest; @@ -42,6 +43,9 @@ public class FaultRecorderController { @Autowired private SysFaultRecordingListener sysFaultRecordingListener; + @Autowired + private SysFaultCodeDictListener sysFaultCodeDictListener; + @RequestMapping(value = "/files", method = RequestMethod.POST) public R> findList(@RequestBody JSONObject jsonObject) { String code = jsonObject.getString("deviceCode"); @@ -104,7 +108,7 @@ public class FaultRecorderController { * 故障字典描述导出 */ @PostMapping("/faultCodeDict/export") - public void exportSysFaultCodeDict(@RequestBody SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) { + public void exportSysFaultCodeDict(@RequestBody SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) throws IOException { faultRecorderService.exportFaultCodeDict(sysFaultCodeDict,request, response); } @@ -113,8 +117,8 @@ public class FaultRecorderController { */ @PostMapping("/faultCodeDict/import") public R importFaultCodeDict(String id, @RequestParam("file") MultipartFile file) throws IOException { - sysFaultRecordingListener.setParent(Long.valueOf(id)); - ExcelReaderBuilder read = EasyExcel.read(file.getInputStream(), SysFaultCodeDictExcel.class,sysFaultRecordingListener); + sysFaultCodeDictListener.setParent(Long.valueOf(id)); + ExcelReaderBuilder read = EasyExcel.read(file.getInputStream(), SysFaultCodeDictExcel.class,sysFaultCodeDictListener); read.sheet().doRead(); return R.success("导入成功"); } diff --git a/das/src/main/java/com/das/modules/fdr/domain/SysFaultCodeDict.java b/das/src/main/java/com/das/modules/fdr/domain/SysFaultCodeDict.java index 5ac217c3..95d30aea 100644 --- a/das/src/main/java/com/das/modules/fdr/domain/SysFaultCodeDict.java +++ b/das/src/main/java/com/das/modules/fdr/domain/SysFaultCodeDict.java @@ -24,7 +24,7 @@ public class SysFaultCodeDict { private Long parent; @TableField("code") - private String code; + private Long code; @TableField("description") private String description; diff --git a/das/src/main/java/com/das/modules/fdr/domain/excel/SysFaultCodeDictExcel.java b/das/src/main/java/com/das/modules/fdr/domain/excel/SysFaultCodeDictExcel.java index dd56d260..b3c6704e 100644 --- a/das/src/main/java/com/das/modules/fdr/domain/excel/SysFaultCodeDictExcel.java +++ b/das/src/main/java/com/das/modules/fdr/domain/excel/SysFaultCodeDictExcel.java @@ -13,7 +13,7 @@ public class SysFaultCodeDictExcel implements Serializable { * 主键id */ @ExcelProperty(value = "故障码",index = 0) - private String code; + private Long code; /** * 物模型ID */ diff --git a/das/src/main/java/com/das/modules/fdr/service/FaultRecorderService.java b/das/src/main/java/com/das/modules/fdr/service/FaultRecorderService.java index c5a41d4c..bdc89a28 100644 --- a/das/src/main/java/com/das/modules/fdr/service/FaultRecorderService.java +++ b/das/src/main/java/com/das/modules/fdr/service/FaultRecorderService.java @@ -33,5 +33,5 @@ public interface FaultRecorderService { List queryFaultCodeDict(String madeinfactory, String model); - void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response); + void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) throws IOException; } diff --git a/das/src/main/java/com/das/modules/fdr/service/impl/FaultRecorderServiceImpl.java b/das/src/main/java/com/das/modules/fdr/service/impl/FaultRecorderServiceImpl.java index 69d9a56e..17c86d0f 100644 --- a/das/src/main/java/com/das/modules/fdr/service/impl/FaultRecorderServiceImpl.java +++ b/das/src/main/java/com/das/modules/fdr/service/impl/FaultRecorderServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.das.common.config.SessionUtil; import com.das.common.constant.FileConstants; import com.das.common.exceptions.ServiceException; +import com.das.common.utils.ExcelUtil; import com.das.common.utils.HuExcelUtils; import com.das.modules.auth.domain.vo.SysUserVo; import com.das.modules.curve.domain.entity.CurveItemEntity; @@ -18,6 +19,7 @@ import com.das.modules.fdr.config.MinioProperties; import com.das.modules.fdr.domain.FileNode; import com.das.modules.fdr.domain.SysFaultCodeDict; import com.das.modules.fdr.domain.SysFaultRecordingDesc; +import com.das.modules.fdr.domain.excel.SysFaultCodeDictExcel; import com.das.modules.fdr.domain.vo.FdrFormatVo; import com.das.modules.fdr.domain.vo.FileParseConfig; import com.das.modules.fdr.mapper.SysFaultCodeDictMapper; @@ -136,22 +138,13 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { } @Override - public void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) { - List exportList = new ArrayList<>(); + public void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) throws IOException { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("PARENT",sysFaultCodeDict.getId()); queryWrapper.orderByAsc("code"); - List sysFaultRecordingDescList = sysFaultCodeDictMapper.selectList(queryWrapper); + List sysFaultCodeDicts = sysFaultCodeDictMapper.selectList(queryWrapper); TheoreticalPowerCurveEntity theoreticalPowerCurve = theoreticalPowerCurveMapper.selectById(sysFaultCodeDict.getId()); - LinkedHashMap map = new LinkedHashMap<>(); - SheetInfoBean sheetDTO = new SheetInfoBean(); - map.put("code", "故障码"); - map.put("description", "故障描述"); - sheetDTO.setSheetName(theoreticalPowerCurve.getMadeinfactory()); - sheetDTO.setFieldAndAlias(map); - sheetDTO.setCollection(sysFaultRecordingDescList); - exportList.add(sheetDTO); - HuExcelUtils.exportExcel(response, exportList, theoreticalPowerCurve.getMadeinfactory()+theoreticalPowerCurve.getModel()+"风机故障码字典"); + ExcelUtil.download(response, theoreticalPowerCurve.getMadeinfactory()+theoreticalPowerCurve.getModel()+"风机故障码字典", SysFaultCodeDictExcel.class,sysFaultCodeDicts,null); } @Override diff --git a/ui/dasadmin/src/views/backend/equipment/equipmentManagement/measurement.vue b/ui/dasadmin/src/views/backend/equipment/equipmentManagement/measurement.vue index ea0bcd0e..23e52612 100644 --- a/ui/dasadmin/src/views/backend/equipment/equipmentManagement/measurement.vue +++ b/ui/dasadmin/src/views/backend/equipment/equipmentManagement/measurement.vue @@ -181,6 +181,8 @@ const getAttributeList = () => { } else { if (res.rows && res.rows.length === 0) { tableData.value = [] + pageSetting.total = res.total + resolve({ data: [], codeList: [] }) } else { ElMessage.error(res.msg) } @@ -205,11 +207,11 @@ const getRealValueList = (data: { deviceId: string; attributes: string[] }, list const getCompleteData = () => { getAttributeList() .then(({ data, codeList }: any) => { + if (data.length === 0) return return getRealValueList({ deviceId: props.deviceId, attributes: codeList }, data) }) .then((realData: any) => { - console.log(realData) - + if (!realData) return const data = realData.list.map((item: any) => { let realValItem = realData.realVal[props.deviceId]?.[item.attributeCode?.toLowerCase()] if (enumStore.keys.includes(item.attributeCode)) { @@ -217,14 +219,15 @@ const getCompleteData = () => { } return { ...item, - realTimeValue: - typeof realValItem === 'number' + realTimeValue: realValItem + ? typeof realValItem === 'number' ? realValItem ? realValItem % 1 === 0 ? realValItem : realValItem.toFixed(3) : '-' - : realValItem, + : realValItem + : '-', } }) @@ -489,7 +492,11 @@ const closeLineChart = () => { watch( () => props.attributeType, () => { - getCompleteData() + if (pageSetting.current === 1) { + getCompleteData() + } else { + pageSetting.current = 1 + } } ) diff --git a/ui/dasadmin/src/views/backend/node/utils.ts b/ui/dasadmin/src/views/backend/node/utils.ts index b310fbfd..31b88497 100644 --- a/ui/dasadmin/src/views/backend/node/utils.ts +++ b/ui/dasadmin/src/views/backend/node/utils.ts @@ -273,192 +273,71 @@ export const excelDefaultConfig: any = { name: '模拟量', head: [ { - label: '功能码', - code: 'col1', + label: '数据格式', + code: 'dataType', }, { label: '数据类型', - code: 'col2', - }, - { - label: '数据符号', - code: 'col3', + code: 'signMark', }, { label: '寄存器地址', - code: 'col4', + code: 'registerAddr', }, - { - label: '上界', - code: 'upBound', - }, - { - label: '下界', - code: 'lowBound' - }, - { - label: '基值', - code: 'base', - default: 0 - }, - { - label: '系数', - code: 'coef', - default: 1 - }, - { - label: '限值1', - code: 'limit1Enable', - default: 0 - }, - { - label: '限值1上限', - code: 'limit1High' - }, - { - label: '限值1下限', - code: 'limit1Low' - }, - { - label: '限值2', - code: 'limit2Enable', - default: 0 - }, - { - label: '限值2上限', - code: 'limit2High' - }, - { - label: '限值2下限', - code: 'limit2Low' - } ], - R0C4: ['03', '04'], - R0C5: [ - '0 - 32位浮点数(高位在第一个寄存器)', - '1 - 32位浮点数(高位在第二个寄存器)', - '2 - 16位归一化值', - '3 - 32位归一化值(高位在第一个寄存器)', - '4 - 32位归一化值(高位在第二个寄存器)', - '5 - 32位浮点数(小端系统模式)', - '6 - 32位BCD数据(*高位在第一个寄存器*)', - '7 - 32位BCD数据(*高位在第二个寄存器*)', - '8 - 16位BCD数据', + R0C4: [ + "32位浮点数(高位在第一个寄存器)", + "32位浮点数(高位在第二个寄存器)", + "16位归一化值", + "32位归一化值(高位在第一个寄存器)", + "32位归一化值(高位在第二个寄存器)", + "32位浮点数(小端系统模式)", + "32位BCD数据(*高位在第一个寄存器*)", + "32位BCD数据(*高位在第二个寄存器*)", + "16位BCD数据", + "8位归一化值" ], // 数据类型的提示 - R0C6: ['0 - 无符号', '1 - 有符号'], // 数据符号的提示 }, //遥控147 CONTROL 147: { name: '遥控量', head: [ { - label: '功能码', - code: 'col1', + label: '合闸寄存器地址', + code: 'closeRegisterAddr', }, { - label: '执行前需要预置', - code: 'col2', + label: '合闸值', + code: 'closeValue', }, { - label: '选择合寄存器', - code: 'col3', + label: '分闸寄存器地址', + code: 'openRegisterAddr', }, { - label: '执行合寄存器', - code: 'col4', + label: '分闸值', + code: 'openValue', }, - { - label: '撤销合寄存器', - code: 'col5', - }, - - { - label: '合闸数值', - code: 'col6', - }, - { - label: '选择分寄存器', - code: 'col7', - }, - { - label: '执行分寄存器', - code: 'col8', - }, - { - label: '撤销分寄存器', - code: 'col9', - }, - { - label: '分闸数值', - code: 'col10', - }, - ], - R0C4: ['05', '15', '06', '16'], - R0C5: ['0 - 直接执行', '1 - 预置执行'], + ] }, //遥调146 SETPOINT 146: { name: '遥调量', head: [ { - label: '遥调类型', - code: 'col1', + label: '设值方式', + code: 'setType', }, { - label: '功能码', - code: 'col2', - }, - { - label: '执行前需要预置', - code: 'col3', - }, - { - label: '选择寄存器', - code: 'col4', - }, - { - label: '执行寄存器', - code: 'col5', - }, - { - label: '撤销寄存器', - code: 'col6', + label: '寄存器地址', + code: 'registerAddr', }, ], - R0C4: ['0 - 16位整型值', '1 - 32位值高位在第一个寄存器', '2 - 32位值高位在第二个寄存器'], - R0C5: ['06', '16'], - R0C6: ['0 - 直接执行', '1 - 预置执行'], }, //遥脉139 ACCUMULATOR 139: { name: '累计量', head: [ - { - label: '功能码', - code: 'col1', - }, - { - label: '数据类型', - code: 'col2', - }, - { - label: '寄存器地址', - code: 'col3', - }, - ], - R0C4: ['03', '04'], - R0C5: [ - '0 - 16位无符号整型值', - '1 - 32位无符号整型值(高位在第一个寄存器)', - '2 - 32位有符号整型值(高位在第一个寄存器)', - '3 - 32位无符号整型值(高位在第二个寄存器)', - '4 - 32位有符号整型值(高位在第二个寄存器)', - '5 - 32位浮点数值(高位在第一个寄存器)', - '6 - 32位浮点数值(高位在第二个寄存器)', - '7 - 64位双精度值(AB CD EF GH)', - '8 - 64位双精度值(GH EF CD AB)', - '9 - 32位短浮点数值(小端模式)', - '10 - 32位BCD数据(*高位在第一个寄存器*)', ], }, //遥信140 DISCRETE @@ -466,16 +345,23 @@ export const excelDefaultConfig: any = { name: '离散量', head: [ { - label: '功能码', - code: 'col1', + label: '数据格式', + code: 'dataType', }, - { label: '偏移量', code: 'col2' }, { - label: '寄存器', - code: 'col3', + label: '数据偏移量', + code: 'offSet', + }, + { + label: '寄存器地址', + code: 'registerAddr', }, ], - R0C4: ['01', '02', '03', '04'], + R0C4: [ + "8位归一化值", + "16位归一化值", + "32位归一化值", + ] }, }, // MODBASETCP从 @@ -714,7 +600,7 @@ export const createUpLoadExcelData = (workbookData: any) => { continue } params[sheetkeyMap[fieldKey]] = sheets[item].cellData[key][fieldKey]?.v ?? '' - } + } sheetData.params = JSON.stringify(params) data.push(sheetData) } @@ -754,7 +640,7 @@ export const createSheetData = (data: any, protocol: string | number) => { }) }) resultData[item] = result - }) + }) return resultData }