故障字典相关接口新增
This commit is contained in:
parent
4629023202
commit
0bb6eb8a58
@ -10,8 +10,10 @@ import com.das.modules.curve.domain.entity.CurveItemEntity;
|
|||||||
import com.das.modules.curve.domain.excel.CurveItemExcel;
|
import com.das.modules.curve.domain.excel.CurveItemExcel;
|
||||||
import com.das.modules.equipment.entity.SysEquipment;
|
import com.das.modules.equipment.entity.SysEquipment;
|
||||||
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.SysFaultRecordingDesc;
|
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.SysFaultRecordingExcel;
|
import com.das.modules.fdr.domain.excel.SysFaultRecordingExcel;
|
||||||
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;
|
||||||
@ -97,4 +99,35 @@ public class FaultRecorderController {
|
|||||||
List<SysFaultRecordingDesc> sysFaultRecordingDescList = faultRecorderService.queryFaultRecordingDes(madeinfactory,model);
|
List<SysFaultRecordingDesc> sysFaultRecordingDescList = faultRecorderService.queryFaultRecordingDes(madeinfactory,model);
|
||||||
return R.success(sysFaultRecordingDescList);
|
return R.success(sysFaultRecordingDescList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 故障字典描述导出
|
||||||
|
*/
|
||||||
|
@PostMapping("/faultCodeDict/export")
|
||||||
|
public void exportSysFaultCodeDict(@RequestBody SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
faultRecorderService.exportFaultCodeDict(sysFaultCodeDict,request, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 故障字典导入
|
||||||
|
*/
|
||||||
|
@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);
|
||||||
|
read.sheet().doRead();
|
||||||
|
return R.success("导入成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据制造商厂家型号查询故障信息描述
|
||||||
|
* @return 信息中英文描述
|
||||||
|
*/
|
||||||
|
@PostMapping("/faultCodeDict/query")
|
||||||
|
public R<List<SysFaultCodeDict>> queryAllSysFaultCodeDict(@RequestBody JSONObject jsonObject) {
|
||||||
|
String madeinfactory = jsonObject.getString("madeinfactory");
|
||||||
|
String model = jsonObject.getString("model");
|
||||||
|
List<SysFaultCodeDict> sysFaultCodeDicts = faultRecorderService.queryFaultCodeDict(madeinfactory,model);
|
||||||
|
return R.success(sysFaultCodeDicts);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,48 @@
|
|||||||
|
package com.das.modules.fdr.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
@TableName("sys_fault_code_dict")
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SysFaultCodeDict {
|
||||||
|
|
||||||
|
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@TableField("parent")
|
||||||
|
private Long parent;
|
||||||
|
|
||||||
|
@TableField("code")
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
@TableField("description")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
@TableField("revision")
|
||||||
|
private Integer revision;
|
||||||
|
|
||||||
|
@TableField("created_by")
|
||||||
|
private String createdBy;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@TableField("created_time")
|
||||||
|
private Date createdTime;
|
||||||
|
|
||||||
|
@TableField("updated_by")
|
||||||
|
private String updatedBy;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@TableField("updated_time")
|
||||||
|
private Date updatedTime;
|
||||||
|
}
|
@ -0,0 +1,22 @@
|
|||||||
|
package com.das.modules.fdr.domain.excel;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SysFaultCodeDictExcel implements Serializable {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "故障码",index = 0)
|
||||||
|
private String code;
|
||||||
|
/**
|
||||||
|
* 物模型ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "故障描述",index = 1)
|
||||||
|
private String description;
|
||||||
|
}
|
@ -0,0 +1,96 @@
|
|||||||
|
package com.das.modules.fdr.listener;
|
||||||
|
|
||||||
|
import com.alibaba.excel.context.AnalysisContext;
|
||||||
|
import com.alibaba.excel.event.AnalysisEventListener;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.das.common.exceptions.ServiceException;
|
||||||
|
import com.das.common.utils.BeanCopyUtils;
|
||||||
|
import com.das.common.utils.CommonFunction;
|
||||||
|
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.excel.SysFaultRecordingExcel;
|
||||||
|
import com.das.modules.fdr.service.impl.FaultRecorderServiceImpl;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物模型属性监听器
|
||||||
|
*
|
||||||
|
* @author huguanghan
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
@Data
|
||||||
|
public class SysFaultCodeDictListener extends AnalysisEventListener<SysFaultCodeDictExcel> {
|
||||||
|
@Autowired
|
||||||
|
private FaultRecorderServiceImpl faultRecorderService;
|
||||||
|
|
||||||
|
public SysFaultCodeDictListener(FaultRecorderServiceImpl faultRecorderService) {
|
||||||
|
this.faultRecorderService = faultRecorderService;
|
||||||
|
}
|
||||||
|
|
||||||
|
//parentId
|
||||||
|
private Long parent;
|
||||||
|
|
||||||
|
/**计数标记*/
|
||||||
|
private Integer flag=0;
|
||||||
|
|
||||||
|
/**存放插入*/
|
||||||
|
ArrayList<SysFaultCodeDict> sysFaultCodeDicts = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invoke(SysFaultCodeDictExcel sysFaultCodeDictExcel, AnalysisContext analysisContext) {
|
||||||
|
// 如果一行Excel数据均为空值,则不装载该行数据
|
||||||
|
if (CommonFunction.objCheckIsNull(sysFaultCodeDictExcel)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
log.info("解析到一条数据:{}", JSON.toJSONString(sysFaultCodeDictExcel));
|
||||||
|
SysFaultCodeDict sysFaultCodeDict = new SysFaultCodeDict();
|
||||||
|
BeanCopyUtils.copy(sysFaultCodeDictExcel, sysFaultCodeDict);
|
||||||
|
sysFaultCodeDict.setParent(parent);
|
||||||
|
//加入集合
|
||||||
|
sysFaultCodeDicts.add(sysFaultCodeDict);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
|
||||||
|
//确保最后遗留的数据也存储到数据库
|
||||||
|
if (!sysFaultCodeDicts.isEmpty()){
|
||||||
|
saveData();
|
||||||
|
}
|
||||||
|
log.info("所有数据解析完成!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 存储数据库
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private void saveData() {
|
||||||
|
log.info("{}条数据,开始存储数据库!", flag);
|
||||||
|
try {
|
||||||
|
faultRecorderService.batchInsert(sysFaultCodeDicts,parent);
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new ServiceException(e.getMessage());
|
||||||
|
}finally {
|
||||||
|
clear();
|
||||||
|
}
|
||||||
|
log.info("存储数据库成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clear(){
|
||||||
|
//清理缓存
|
||||||
|
sysFaultCodeDicts.clear();
|
||||||
|
flag=0;
|
||||||
|
log.info("缓存已清理");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
|||||||
|
package com.das.modules.fdr.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.das.modules.fdr.domain.SysFaultCodeDict;
|
||||||
|
import com.das.modules.fdr.domain.SysFaultRecordingDesc;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface SysFaultCodeDictMapper extends BaseMapper<SysFaultCodeDict> {
|
||||||
|
|
||||||
|
}
|
@ -2,6 +2,7 @@ package com.das.modules.fdr.service;
|
|||||||
|
|
||||||
import com.das.modules.equipment.entity.SysEquipment;
|
import com.das.modules.equipment.entity.SysEquipment;
|
||||||
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.SysFaultRecordingDesc;
|
import com.das.modules.fdr.domain.SysFaultRecordingDesc;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -29,4 +30,8 @@ public interface FaultRecorderService {
|
|||||||
void exportFaultRecordingDesc(SysFaultRecordingDesc sysFaultRecordingDesc, HttpServletRequest request, HttpServletResponse response);
|
void exportFaultRecordingDesc(SysFaultRecordingDesc sysFaultRecordingDesc, HttpServletRequest request, HttpServletResponse response);
|
||||||
|
|
||||||
List<SysFaultRecordingDesc> queryFaultRecordingDes(String madeinfactory, String model);
|
List<SysFaultRecordingDesc> queryFaultRecordingDes(String madeinfactory, String model);
|
||||||
|
|
||||||
|
List<SysFaultCodeDict> queryFaultCodeDict(String madeinfactory, String model);
|
||||||
|
|
||||||
|
void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response);
|
||||||
}
|
}
|
||||||
|
@ -16,9 +16,11 @@ import com.das.modules.equipment.entity.SysEquipment;
|
|||||||
import com.das.modules.equipment.mapper.SysEquipmentMapper;
|
import com.das.modules.equipment.mapper.SysEquipmentMapper;
|
||||||
import com.das.modules.fdr.config.MinioProperties;
|
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.SysFaultRecordingDesc;
|
import com.das.modules.fdr.domain.SysFaultRecordingDesc;
|
||||||
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.SysFaultRecordingDescMapper;
|
import com.das.modules.fdr.mapper.SysFaultRecordingDescMapper;
|
||||||
import com.das.modules.fdr.service.FaultRecorderService;
|
import com.das.modules.fdr.service.FaultRecorderService;
|
||||||
import com.das.modules.fdr.service.MinioViewsServcie;
|
import com.das.modules.fdr.service.MinioViewsServcie;
|
||||||
@ -51,9 +53,6 @@ public class FaultRecorderServiceImpl implements FaultRecorderService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
MinioClient minioClient;
|
MinioClient minioClient;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private MinioProperties minioProperties;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysEquipmentMapper sysEquipmentMapper;
|
private SysEquipmentMapper sysEquipmentMapper;
|
||||||
|
|
||||||
@ -63,6 +62,9 @@ public class FaultRecorderServiceImpl implements FaultRecorderService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private TheoreticalPowerCurveMapper theoreticalPowerCurveMapper;
|
private TheoreticalPowerCurveMapper theoreticalPowerCurveMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysFaultCodeDictMapper sysFaultCodeDictMapper;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<FileNode> getDirOrFileList(String fileType,String name, String startTime, String endTime) {
|
public List<FileNode> getDirOrFileList(String fileType,String name, String startTime, String endTime) {
|
||||||
@ -121,6 +123,37 @@ public class FaultRecorderServiceImpl implements FaultRecorderService {
|
|||||||
return sysFaultRecordingDescMapper.selectList(sysFaultRecordingDescQueryWrapper);
|
return sysFaultRecordingDescMapper.selectList(sysFaultRecordingDescQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysFaultCodeDict> queryFaultCodeDict(String madeinfactory, String model) {
|
||||||
|
QueryWrapper<TheoreticalPowerCurveEntity> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("madeinfactory",madeinfactory);
|
||||||
|
queryWrapper.eq("MODEL",model);
|
||||||
|
TheoreticalPowerCurveEntity theoreticalPowerCurveEntity = theoreticalPowerCurveMapper.selectOne(queryWrapper);
|
||||||
|
QueryWrapper<SysFaultCodeDict> sysFaultCodeDictQueryWrapper = new QueryWrapper<>();
|
||||||
|
sysFaultCodeDictQueryWrapper.eq("parent",theoreticalPowerCurveEntity.getId());
|
||||||
|
sysFaultCodeDictQueryWrapper.orderByAsc("code");
|
||||||
|
return sysFaultCodeDictMapper.selectList(sysFaultCodeDictQueryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void exportFaultCodeDict(SysFaultCodeDict sysFaultCodeDict, HttpServletRequest request, HttpServletResponse response) {
|
||||||
|
List<SheetInfoBean> exportList = new ArrayList<>();
|
||||||
|
QueryWrapper<SysFaultCodeDict> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("PARENT",sysFaultCodeDict.getId());
|
||||||
|
queryWrapper.orderByAsc("code");
|
||||||
|
List<SysFaultCodeDict> sysFaultRecordingDescList = 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()+"风机故障码字典");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void download(String path,HttpServletResponse httpServletResponse) throws IOException {
|
public void download(String path,HttpServletResponse httpServletResponse) throws IOException {
|
||||||
Path tempDir = Files.createTempDirectory(null);
|
Path tempDir = Files.createTempDirectory(null);
|
||||||
@ -267,4 +300,22 @@ public class FaultRecorderServiceImpl implements FaultRecorderService {
|
|||||||
sysFaultRecordingDescMapper.insert(item);
|
sysFaultRecordingDescMapper.insert(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void batchInsert(List<SysFaultCodeDict> insertSysFaultCodeDictList, Long parent) {
|
||||||
|
//先删除制造商数据
|
||||||
|
QueryWrapper<SysFaultCodeDict> queryWrapper = new QueryWrapper<>();
|
||||||
|
queryWrapper.eq("PARENT",parent);
|
||||||
|
sysFaultCodeDictMapper.delete(queryWrapper);
|
||||||
|
|
||||||
|
//新增新的制造商数据
|
||||||
|
for (SysFaultCodeDict item : insertSysFaultCodeDictList){
|
||||||
|
SysUserVo sysUserVo = (SysUserVo) StpUtil.getTokenSession().get(SessionUtil.SESSION_USER_KEY);
|
||||||
|
item.setCreatedTime(new Date());
|
||||||
|
item.setUpdatedTime(new Date());
|
||||||
|
item.setCreatedBy(sysUserVo.getAccount());
|
||||||
|
item.setUpdatedBy(sysUserVo.getAccount());
|
||||||
|
item.setRevision(1);
|
||||||
|
sysFaultCodeDictMapper.insert(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user