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.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<List<FileNode>> 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<Void> 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("导入成功");
}

View File

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

View File

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

View File

@ -33,5 +33,5 @@ public interface FaultRecorderService {
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.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<SheetInfoBean> exportList = new ArrayList<>();
public void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) throws IOException {
QueryWrapper<SysFaultCodeDict> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("PARENT",sysFaultCodeDict.getId());
queryWrapper.orderByAsc("code");
List<SysFaultCodeDict> sysFaultRecordingDescList = sysFaultCodeDictMapper.selectList(queryWrapper);
List<SysFaultCodeDict> sysFaultCodeDicts = sysFaultCodeDictMapper.selectList(queryWrapper);
TheoreticalPowerCurveEntity theoreticalPowerCurve = theoreticalPowerCurveMapper.selectById(sysFaultCodeDict.getId());
LinkedHashMap<String, String> 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

View File

@ -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
}
}
)

View File

@ -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
}