feat(新增故障统计)

master
031026 2024-06-20 22:41:24 +08:00
commit b8f3a4443f
7 changed files with 137 additions and 10 deletions

View File

@ -0,0 +1,23 @@
package com.muyu.many.domain.req;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
*
*
* @ClassName DefectInfoAndFaultInfoList
* @Author AnNan.Wang
* @Date 2024/6/21 20:32
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class DefectInfoAndFaultInfoList {
private String defectCode;
private Integer numCode;
}

View File

@ -0,0 +1,32 @@
package com.muyu.many.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
*
*
* @ClassName FaultInfoVo
* @Author AnNan.Wang
* @Date 2024/6/21 20:05
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class FaultInfoVo {
/**
*
*/
private Date startTime;
/**
*
*/
private Date endTime;
}

View File

@ -6,10 +6,13 @@ import javax.servlet.http.HttpServletResponse;
import com.muyu.authentication.service.FaultInfoService;
import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder;
import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.many.domain.DefectInfo;
import com.muyu.many.domain.FaultInfo;
import com.muyu.many.domain.req.DefectInfoAndFaultInfoList;
import com.muyu.many.domain.req.FaultInfoEditReq;
import com.muyu.many.domain.req.FaultInfoQueryReq;
import com.muyu.many.domain.req.FaultInfoSaveReq;
import com.muyu.many.domain.vo.FaultInfoVo;
import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@ -113,4 +116,12 @@ public class FaultInfoController extends BaseController {
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return toAjax(b);
}
@PostMapping("/statistics")
public Result<List<DefectInfoAndFaultInfoList>> getDefectInfoAndFaultInfoList(@RequestBody FaultInfoVo faultInfoVo){
return Result.success(
faultInfoService.getDefectInfoAndFaultInfoList(faultInfoVo)
);
}
}

View File

@ -1,12 +1,20 @@
package com.muyu.authentication.rabbitmq.vo;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.muyu.authentication.mapper.FaultInfoMapper;
import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder;
import com.muyu.many.domain.Enterprise;
import com.muyu.many.domain.FaultInfo;
import lombok.extern.log4j.Log4j2;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.List;
/**
*
*
@ -20,25 +28,56 @@ import org.springframework.stereotype.Component;
public class BreakdownAbnormalMq {
@Autowired
private FaultInfoMapper faultInfoMapper;
@Autowired
private StringRedisTemplate redisTemplate;
@RabbitListener(queues = "discover_time")
public void discoverTime(String message){
log.info("开始消费");
//转换
FaultInfo faultInfo = JSON.parseObject(message, FaultInfo.class);
// redis
// VIN
// ent_????
log.info("faultInfo:{}", faultInfo);
String key=faultInfo.getVin()+"123";
String ent = redisTemplate.opsForValue().get(key);
DynamicDataSourceHolder.setDynamicDataSourceKey(ent);
faultInfoMapper.insert(faultInfo);
log.info("消费结束");
DynamicDataSourceHolder.removeDynamicDataSourceKey();
}
@RabbitListener(queues = "resolve_time")
public void resolveTime(String message){
log.info("开始消费");
FaultInfo parse = JSON.parseObject(message, FaultInfo.class);
FaultInfo faultInfo = JSON.parseObject(message, FaultInfo.class);
log.info("faultInfo:{}", faultInfo);
String key=faultInfo.getVin()+"123";
String ent = redisTemplate.opsForValue().get(key);
DynamicDataSourceHolder.setDynamicDataSourceKey(ent);
//获取最新一天数据
List<FaultInfo> faultInfos = faultInfoMapper.selectList(
new QueryWrapper<FaultInfo>().orderByDesc("id").last("limit 1")
);
//判断非空
if (!faultInfos.isEmpty()) {
//获取第一条数据
FaultInfo latestFaultInfo = faultInfos.get(0);
// 这里可以对 latestFaultInfo 进行进一步操作或者返回
log.info("Latest FaultInfo: {}", latestFaultInfo);
//修改数据
faultInfoMapper.updateById(
FaultInfo.builder()
.id(latestFaultInfo.getId())
.endTime(faultInfo.getEndTime())
.build()
);
log.info("消费结束");
}
log.info("消费结束");
}
}

View File

@ -3,6 +3,8 @@ package com.muyu.authentication.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.many.domain.FaultInfo;
import com.muyu.many.domain.req.DefectInfoAndFaultInfoList;
import com.muyu.many.domain.vo.FaultInfoVo;
/**
* Service
@ -19,4 +21,5 @@ public interface FaultInfoService extends IService<FaultInfo> {
*/
public List<FaultInfo> list(FaultInfo faultInfo);
List<DefectInfoAndFaultInfoList> getDefectInfoAndFaultInfoList(FaultInfoVo faultInfoVo);
}

View File

@ -1,5 +1,6 @@
package com.muyu.authentication.service.impl;
import java.util.ArrayList;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -7,6 +8,8 @@ import com.muyu.authentication.mapper.FaultInfoMapper;
import com.muyu.authentication.service.FaultInfoService;
import com.muyu.common.core.utils.ObjUtils;
import com.muyu.many.domain.FaultInfo;
import com.muyu.many.domain.req.DefectInfoAndFaultInfoList;
import com.muyu.many.domain.vo.FaultInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -52,11 +55,26 @@ public class FaultInfoServiceImpl extends ServiceImpl<FaultInfoMapper, FaultInfo
if (ObjUtils.notNull(faultInfo.getEndTime())){
queryWrapper.eq(FaultInfo::getEndTime, faultInfo.getEndTime());
}
return list(queryWrapper);
}
@Override
public List<DefectInfoAndFaultInfoList> getDefectInfoAndFaultInfoList(FaultInfoVo faultInfoVo) {
//条件
LambdaQueryWrapper<FaultInfo> queryWrapper = new LambdaQueryWrapper<>();
if (ObjUtils.notNull(faultInfoVo.getEndTime())){
queryWrapper.le(FaultInfo::getEndTime,faultInfoVo.getEndTime());
}
if (ObjUtils.notNull(faultInfoVo.getStartTime())){
queryWrapper.ge(FaultInfo::getStartTime,faultInfoVo.getStartTime());
}
List<FaultInfo> list = list(queryWrapper);
List<DefectInfoAndFaultInfoList> arrayList = new ArrayList<>();
for (FaultInfo faultInfo : list) {
}
return null;
}
}

View File

@ -1 +1,2 @@
com.muyu.authentication.rabbitmq.MessageConsumer
com.muyu.authentication.rabbitmq.vo.BreakdownAbnormalMq