Merge branch 'main' of https://git.jsspisoft.com/ry-das
This commit is contained in:
commit
d80b22f87d
@ -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("导入成功");
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ public class SysFaultCodeDict {
|
||||
private Long parent;
|
||||
|
||||
@TableField("code")
|
||||
private String code;
|
||||
private Long code;
|
||||
|
||||
@TableField("description")
|
||||
private String description;
|
||||
|
@ -13,7 +13,7 @@ public class SysFaultCodeDictExcel implements Serializable {
|
||||
* 主键id
|
||||
*/
|
||||
@ExcelProperty(value = "故障码",index = 0)
|
||||
private String code;
|
||||
private Long code;
|
||||
/**
|
||||
* 物模型ID
|
||||
*/
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user