diff --git a/muyu-modules/muyu-modules-many/muyu-modules-many-common/src/main/java/com/muyu/many/domain/req/DefectInfoAndFaultInfoList.java b/muyu-modules/muyu-modules-many/muyu-modules-many-common/src/main/java/com/muyu/many/domain/req/DefectInfoAndFaultInfoList.java new file mode 100644 index 0000000..2933da5 --- /dev/null +++ b/muyu-modules/muyu-modules-many/muyu-modules-many-common/src/main/java/com/muyu/many/domain/req/DefectInfoAndFaultInfoList.java @@ -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; +} diff --git a/muyu-modules/muyu-modules-many/muyu-modules-many-common/src/main/java/com/muyu/many/domain/vo/FaultInfoVo.java b/muyu-modules/muyu-modules-many/muyu-modules-many-common/src/main/java/com/muyu/many/domain/vo/FaultInfoVo.java new file mode 100644 index 0000000..94364c1 --- /dev/null +++ b/muyu-modules/muyu-modules-many/muyu-modules-many-common/src/main/java/com/muyu/many/domain/vo/FaultInfoVo.java @@ -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; +} diff --git a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/controller/FaultInfoController.java b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/controller/FaultInfoController.java index e6b10f6..a525a62 100644 --- a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/controller/FaultInfoController.java +++ b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/controller/FaultInfoController.java @@ -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> getDefectInfoAndFaultInfoList(@RequestBody FaultInfoVo faultInfoVo){ + return Result.success( + faultInfoService.getDefectInfoAndFaultInfoList(faultInfoVo) + ); + } } diff --git a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/rabbitmq/vo/BreakdownAbnormalMq.java b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/rabbitmq/vo/BreakdownAbnormalMq.java index 3b3f44f..d104b77 100644 --- a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/rabbitmq/vo/BreakdownAbnormalMq.java +++ b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/rabbitmq/vo/BreakdownAbnormalMq.java @@ -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 faultInfos = faultInfoMapper.selectList( + new QueryWrapper().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("消费结束"); } } diff --git a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/service/FaultInfoService.java b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/service/FaultInfoService.java index 1ed61ef..96ab05e 100644 --- a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/service/FaultInfoService.java +++ b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/service/FaultInfoService.java @@ -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 { */ public List list(FaultInfo faultInfo); + List getDefectInfoAndFaultInfoList(FaultInfoVo faultInfoVo); } diff --git a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/service/impl/FaultInfoServiceImpl.java b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/service/impl/FaultInfoServiceImpl.java index 44c47f9..2957064 100644 --- a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/service/impl/FaultInfoServiceImpl.java +++ b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/java/com/muyu/authentication/service/impl/FaultInfoServiceImpl.java @@ -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 getDefectInfoAndFaultInfoList(FaultInfoVo faultInfoVo) { + //条件 + LambdaQueryWrapper 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 list = list(queryWrapper); + List arrayList = new ArrayList<>(); + for (FaultInfo faultInfo : list) { + + } + return null; + } } diff --git a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index e832e10..a44a73c 100644 --- a/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/muyu-modules/muyu-modules-many/muyu-modules-many-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,2 @@ com.muyu.authentication.rabbitmq.MessageConsumer +com.muyu.authentication.rabbitmq.vo.BreakdownAbnormalMq