test(测试故障记录)

master
031026 2024-06-21 21:32:05 +08:00
commit e8550ba001
7 changed files with 53 additions and 23 deletions

View File

@ -55,13 +55,13 @@ public class FaultInfo extends BaseEntity {
private String failureLevel;
/** 故障开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
@Excel(name = "故障开始时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty(name = "故障开始时间", value = "故障开始时间")
private Date startTime;
/** 故障结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
@Excel(name = "故障结束时间", width = 30, dateFormat = "yyyy-MM-dd")
@ApiModelProperty(name = "故障结束时间", value = "故障结束时间")
private Date endTime;

View File

@ -18,6 +18,7 @@ import lombok.experimental.SuperBuilder;
@NoArgsConstructor
@AllArgsConstructor
public class DefectInfoAndFaultInfoList {
private String defectCode;
private Integer numCode;
private String vin ;
private String faultCode;
private Integer count;
}

View File

@ -1,5 +1,6 @@
package com.muyu.many.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -24,9 +25,13 @@ public class FaultInfoVo {
/**
*
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
private Date startTime;
/**
*
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")
private Date endTime;
}

View File

@ -3,6 +3,8 @@ package com.muyu.authentication.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.many.domain.FaultInfo;
import com.muyu.many.domain.req.DefectInfoAndFaultInfoList;
import com.muyu.many.domain.vo.FaultInfoVo;
/**
* Mapper
@ -12,4 +14,5 @@ import com.muyu.many.domain.FaultInfo;
*/
public interface FaultInfoMapper extends BaseMapper<FaultInfo> {
List<DefectInfoAndFaultInfoList> getDefectInfoAndFaultInfoList(FaultInfoVo faultInfoVo);
}

View File

@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
/**
@ -40,6 +41,7 @@ public class BreakdownAbnormalMq {
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);
@ -54,13 +56,24 @@ public class BreakdownAbnormalMq {
log.info("开始消费");
FaultInfo faultInfo = JSON.parseObject(message, FaultInfo.class);
log.info("faultInfo:{}", faultInfo);
String key=faultInfo.getVin()+"123";
String[] split = faultInfo.getVin().split("-");
log.info("split:{}",split[0]);
FaultInfo build = FaultInfo.builder()
.faultCode(split[1])
.vin(split[0])
.endTime(faultInfo.getEndTime())
.build();
String key=build.getVin()+"123";
String ent = redisTemplate.opsForValue().get(key);
DynamicDataSourceHolder.setDynamicDataSourceKey(ent);
//获取最新一天数据
List<FaultInfo> faultInfos = faultInfoMapper.selectList(
new QueryWrapper<FaultInfo>().orderByDesc("id").last("limit 1")
new QueryWrapper<FaultInfo>()
.eq("fault_code", build.getFaultCode()) // 替换 yourFaultCode 为实际的故障代码值
.orderByDesc("start_time")
.last("LIMIT 1")
);
//判断非空
if (!faultInfos.isEmpty()) {
@ -73,9 +86,10 @@ public class BreakdownAbnormalMq {
faultInfoMapper.updateById(
FaultInfo.builder()
.id(latestFaultInfo.getId())
.endTime(faultInfo.getEndTime())
.endTime(new Date())
.build()
);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
log.info("消费结束");
}
log.info("消费结束");

View File

@ -6,11 +6,13 @@ import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.authentication.mapper.FaultInfoMapper;
import com.muyu.authentication.service.FaultInfoService;
import com.muyu.clw.common.many.datasource.holder.DynamicDataSourceHolder;
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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -25,6 +27,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@Service
public class FaultInfoServiceImpl extends ServiceImpl<FaultInfoMapper, FaultInfo> implements FaultInfoService {
@Autowired
private FaultInfoMapper faultInfoMapper;
/**
*
*
@ -61,20 +66,8 @@ public class FaultInfoServiceImpl extends ServiceImpl<FaultInfoMapper, FaultInfo
@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;
List<DefectInfoAndFaultInfoList> defectInfoAndFaultInfoList = faultInfoMapper.getDefectInfoAndFaultInfoList(faultInfoVo);
DynamicDataSourceHolder.removeDynamicDataSourceKey();
return defectInfoAndFaultInfoList;
}
}

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.fault.mapper.FaultInfoMapper">
<mapper namespace="com.muyu.authentication.mapper.FaultInfoMapper">
<resultMap type="com.muyu.many.domain.FaultInfo" id="FaultInfoResult">
<result property="id" column="id" />
@ -21,4 +21,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectFaultInfoVo">
select id, fault_code, vin, failure_level, start_time, end_time, remark, create_by, create_time, update_by, update_time from fault_info
</sql>
<select id="getDefectInfoAndFaultInfoList"
resultType="com.muyu.many.domain.req.DefectInfoAndFaultInfoList">
SELECT vin,fault_code, COUNT(*) as count
FROM fault_info
<where>
<if test="startTime != null and startTime != ''">
and start_time &lt; #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and end_time >= #{endTime}
</if>
</where>
GROUP BY fault_code;
</select>
</mapper>