This commit is contained in:
geting 2024-12-02 16:46:53 +08:00
commit d80b22f87d
7 changed files with 71 additions and 181 deletions

View File

@ -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.dto.FileDownloadDto;
import com.das.modules.fdr.domain.excel.SysFaultCodeDictExcel; import com.das.modules.fdr.domain.excel.SysFaultCodeDictExcel;
import com.das.modules.fdr.domain.excel.SysFaultRecordingExcel; 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.listener.SysFaultRecordingListener;
import com.das.modules.fdr.service.FaultRecorderService; import com.das.modules.fdr.service.FaultRecorderService;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
@ -42,6 +43,9 @@ public class FaultRecorderController {
@Autowired @Autowired
private SysFaultRecordingListener sysFaultRecordingListener; private SysFaultRecordingListener sysFaultRecordingListener;
@Autowired
private SysFaultCodeDictListener sysFaultCodeDictListener;
@RequestMapping(value = "/files", method = RequestMethod.POST) @RequestMapping(value = "/files", method = RequestMethod.POST)
public R<List<FileNode>> findList(@RequestBody JSONObject jsonObject) { public R<List<FileNode>> findList(@RequestBody JSONObject jsonObject) {
String code = jsonObject.getString("deviceCode"); String code = jsonObject.getString("deviceCode");
@ -104,7 +108,7 @@ public class FaultRecorderController {
* 故障字典描述导出 * 故障字典描述导出
*/ */
@PostMapping("/faultCodeDict/export") @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); faultRecorderService.exportFaultCodeDict(sysFaultCodeDict,request, response);
} }
@ -113,8 +117,8 @@ public class FaultRecorderController {
*/ */
@PostMapping("/faultCodeDict/import") @PostMapping("/faultCodeDict/import")
public R<Void> importFaultCodeDict(String id, @RequestParam("file") MultipartFile file) throws IOException { public R<Void> importFaultCodeDict(String id, @RequestParam("file") MultipartFile file) throws IOException {
sysFaultRecordingListener.setParent(Long.valueOf(id)); sysFaultCodeDictListener.setParent(Long.valueOf(id));
ExcelReaderBuilder read = EasyExcel.read(file.getInputStream(), SysFaultCodeDictExcel.class,sysFaultRecordingListener); ExcelReaderBuilder read = EasyExcel.read(file.getInputStream(), SysFaultCodeDictExcel.class,sysFaultCodeDictListener);
read.sheet().doRead(); read.sheet().doRead();
return R.success("导入成功"); return R.success("导入成功");
} }

View File

@ -24,7 +24,7 @@ public class SysFaultCodeDict {
private Long parent; private Long parent;
@TableField("code") @TableField("code")
private String code; private Long code;
@TableField("description") @TableField("description")
private String description; private String description;

View File

@ -13,7 +13,7 @@ public class SysFaultCodeDictExcel implements Serializable {
* 主键id * 主键id
*/ */
@ExcelProperty(value = "故障码",index = 0) @ExcelProperty(value = "故障码",index = 0)
private String code; private Long code;
/** /**
* 物模型ID * 物模型ID
*/ */

View File

@ -33,5 +33,5 @@ public interface FaultRecorderService {
List<SysFaultCodeDict> queryFaultCodeDict(String madeinfactory, String model); List<SysFaultCodeDict> queryFaultCodeDict(String madeinfactory, String model);
void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response); void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) throws IOException;
} }

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.das.common.config.SessionUtil; import com.das.common.config.SessionUtil;
import com.das.common.constant.FileConstants; import com.das.common.constant.FileConstants;
import com.das.common.exceptions.ServiceException; import com.das.common.exceptions.ServiceException;
import com.das.common.utils.ExcelUtil;
import com.das.common.utils.HuExcelUtils; import com.das.common.utils.HuExcelUtils;
import com.das.modules.auth.domain.vo.SysUserVo; import com.das.modules.auth.domain.vo.SysUserVo;
import com.das.modules.curve.domain.entity.CurveItemEntity; 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.FileNode;
import com.das.modules.fdr.domain.SysFaultCodeDict; import com.das.modules.fdr.domain.SysFaultCodeDict;
import com.das.modules.fdr.domain.SysFaultRecordingDesc; 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.FdrFormatVo;
import com.das.modules.fdr.domain.vo.FileParseConfig; import com.das.modules.fdr.domain.vo.FileParseConfig;
import com.das.modules.fdr.mapper.SysFaultCodeDictMapper; import com.das.modules.fdr.mapper.SysFaultCodeDictMapper;
@ -136,22 +138,13 @@ public class FaultRecorderServiceImpl implements FaultRecorderService {
} }
@Override @Override
public void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) { public void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) throws IOException {
List<SheetInfoBean> exportList = new ArrayList<>();
QueryWrapper<SysFaultCodeDict> queryWrapper = new QueryWrapper<>(); QueryWrapper<SysFaultCodeDict> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("PARENT",sysFaultCodeDict.getId()); queryWrapper.eq("PARENT",sysFaultCodeDict.getId());
queryWrapper.orderByAsc("code"); queryWrapper.orderByAsc("code");
List<SysFaultCodeDict> sysFaultRecordingDescList = sysFaultCodeDictMapper.selectList(queryWrapper); List<SysFaultCodeDict> sysFaultCodeDicts = sysFaultCodeDictMapper.selectList(queryWrapper);
TheoreticalPowerCurveEntity theoreticalPowerCurve = theoreticalPowerCurveMapper.selectById(sysFaultCodeDict.getId()); TheoreticalPowerCurveEntity theoreticalPowerCurve = theoreticalPowerCurveMapper.selectById(sysFaultCodeDict.getId());
LinkedHashMap<String, String> map = new LinkedHashMap<>(); ExcelUtil.download(response, theoreticalPowerCurve.getMadeinfactory()+theoreticalPowerCurve.getModel()+"风机故障码字典", SysFaultCodeDictExcel.class,sysFaultCodeDicts,null);
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()+"风机故障码字典");
} }
@Override @Override

View File

@ -181,6 +181,8 @@ const getAttributeList = () => {
} else { } else {
if (res.rows && res.rows.length === 0) { if (res.rows && res.rows.length === 0) {
tableData.value = [] tableData.value = []
pageSetting.total = res.total
resolve({ data: [], codeList: [] })
} else { } else {
ElMessage.error(res.msg) ElMessage.error(res.msg)
} }
@ -205,11 +207,11 @@ const getRealValueList = (data: { deviceId: string; attributes: string[] }, list
const getCompleteData = () => { const getCompleteData = () => {
getAttributeList() getAttributeList()
.then(({ data, codeList }: any) => { .then(({ data, codeList }: any) => {
if (data.length === 0) return
return getRealValueList({ deviceId: props.deviceId, attributes: codeList }, data) return getRealValueList({ deviceId: props.deviceId, attributes: codeList }, data)
}) })
.then((realData: any) => { .then((realData: any) => {
console.log(realData) if (!realData) return
const data = realData.list.map((item: any) => { const data = realData.list.map((item: any) => {
let realValItem = realData.realVal[props.deviceId]?.[item.attributeCode?.toLowerCase()] let realValItem = realData.realVal[props.deviceId]?.[item.attributeCode?.toLowerCase()]
if (enumStore.keys.includes(item.attributeCode)) { if (enumStore.keys.includes(item.attributeCode)) {
@ -217,14 +219,15 @@ const getCompleteData = () => {
} }
return { return {
...item, ...item,
realTimeValue: realTimeValue: realValItem
typeof realValItem === 'number' ? typeof realValItem === 'number'
? realValItem ? realValItem
? realValItem % 1 === 0 ? realValItem % 1 === 0
? realValItem ? realValItem
: realValItem.toFixed(3) : realValItem.toFixed(3)
: '-' : '-'
: realValItem, : realValItem
: '-',
} }
}) })
@ -489,7 +492,11 @@ const closeLineChart = () => {
watch( watch(
() => props.attributeType, () => props.attributeType,
() => { () => {
getCompleteData() if (pageSetting.current === 1) {
getCompleteData()
} else {
pageSetting.current = 1
}
} }
) )

View File

@ -273,192 +273,71 @@ export const excelDefaultConfig: any = {
name: '模拟量', name: '模拟量',
head: [ head: [
{ {
label: '功能码', label: '数据格式',
code: 'col1', code: 'dataType',
}, },
{ {
label: '数据类型', label: '数据类型',
code: 'col2', code: 'signMark',
},
{
label: '数据符号',
code: 'col3',
}, },
{ {
label: '寄存器地址', 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'], R0C4: [
R0C5: [ "32位浮点数(高位在第一个寄存器)",
'0 - 32位浮点数(高位在第一个寄存器)', "32位浮点数(高位在第二个寄存器)",
'1 - 32位浮点数(高位在第二个寄存器)', "16位归一化值",
'2 - 16位归一化值', "32位归一化值(高位在第一个寄存器)",
'3 - 32位归一化值(高位在第一个寄存器)', "32位归一化值(高位在第二个寄存器)",
'4 - 32位归一化值(高位在第二个寄存器)', "32位浮点数(小端系统模式)",
'5 - 32位浮点数(小端系统模式)', "32位BCD数据*高位在第一个寄存器*",
'6 - 32位BCD数据(*高位在第一个寄存器*)', "32位BCD数据*高位在第二个寄存器*",
'7 - 32位BCD数据(*高位在第二个寄存器*)', "16位BCD数据",
'8 - 16位BCD数据', "8位归一化值"
], // 数据类型的提示 ], // 数据类型的提示
R0C6: ['0 - 无符号', '1 - 有符号'], // 数据符号的提示
}, },
//遥控147 CONTROL //遥控147 CONTROL
147: { 147: {
name: '遥控量', name: '遥控量',
head: [ head: [
{ {
label: '功能码', label: '合闸寄存器地址',
code: 'col1', code: 'closeRegisterAddr',
}, },
{ {
label: '执行前需要预置', label: '合闸值',
code: 'col2', code: 'closeValue',
}, },
{ {
label: '选择合寄存器', label: '分闸寄存器地址',
code: 'col3', code: 'openRegisterAddr',
}, },
{ {
label: '执行合寄存器', label: '分闸值',
code: 'col4', 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 SETPOINT
146: { 146: {
name: '遥调量', name: '遥调量',
head: [ head: [
{ {
label: '遥调类型', label: '设值方式',
code: 'col1', code: 'setType',
}, },
{ {
label: '功能码', label: '寄存器地址',
code: 'col2', code: 'registerAddr',
},
{
label: '执行前需要预置',
code: 'col3',
},
{
label: '选择寄存器',
code: 'col4',
},
{
label: '执行寄存器',
code: 'col5',
},
{
label: '撤销寄存器',
code: 'col6',
}, },
], ],
R0C4: ['0 - 16位整型值', '1 - 32位值高位在第一个寄存器', '2 - 32位值高位在第二个寄存器'],
R0C5: ['06', '16'],
R0C6: ['0 - 直接执行', '1 - 预置执行'],
}, },
//遥脉139 ACCUMULATOR //遥脉139 ACCUMULATOR
139: { 139: {
name: '累计量', name: '累计量',
head: [ 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 //遥信140 DISCRETE
@ -466,16 +345,23 @@ export const excelDefaultConfig: any = {
name: '离散量', name: '离散量',
head: [ head: [
{ {
label: '功能码', label: '数据格式',
code: 'col1', code: 'dataType',
}, },
{ label: '偏移量', code: 'col2' },
{ {
label: '寄存器', label: '数据偏移量',
code: 'col3', code: 'offSet',
},
{
label: '寄存器地址',
code: 'registerAddr',
}, },
], ],
R0C4: ['01', '02', '03', '04'], R0C4: [
"8位归一化值",
"16位归一化值",
"32位归一化值",
]
}, },
}, },
// MODBASETCP从 // MODBASETCP从