Compare commits

...

2 Commits

Author SHA1 Message Date
Yueng 015d7c0896 fine()添加故障缓存 2024-10-08 01:42:44 +08:00
Yueng bb56bc2393 fine()添加故障缓存 2024-10-06 19:02:37 +08:00
25 changed files with 330 additions and 38 deletions

View File

@ -0,0 +1,26 @@
package com.muyu.enterprise.cache.faultCode;
import com.muyu.common.cache.CacheAbsBasic;
import com.muyu.domain.FaultCodeCache;
import com.muyu.domain.req.CarInformationAddReq;
import com.muyu.domain.req.FaultCodeAddReq;
/**
*
* @Authoryang
* @Packagecom.muyu.cache
* @Projectcloud-server-8
* @nameVehicleCacheService
* @Date2024/9/30 11:50
*/
public class VehicleCacheFaultCodeAddService extends CacheAbsBasic<String, FaultCodeCache> {
@Override
public String keyPre() {
return "FaultCodeCache:info:";
}
@Override
public String decode(String key) {
return key.replace("vehicle:info:","");
}
}

View File

@ -3,3 +3,4 @@ com.muyu.enterprise.cache.car.VehicleCacheCarInformationRespService
com.muyu.enterprise.cache.car.VehicleCacheCarInformationAddService
com.muyu.enterprise.cache.car.VehicleCacheCarInformationUpdService
com.muyu.enterprise.cache.car.VehicleCacheCarInformationFenceRespService
com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService

View File

@ -71,8 +71,8 @@ public class CarInformation {
/**
* ID
*/
@Schema(title = "车辆类型外键ID", type = "Integer")
private Integer carInformationType;
// @Schema(title = "车辆类型外键ID", type = "Long")
private Long carInformationType;
/**
*
*/
@ -107,6 +107,13 @@ public class CarInformation {
*/
private Integer carInformationState;
/**
* id
*/
private Integer carStrategyId;
public static CarInformation carInformationBuilder(CarInformation carInformation) {
return CarInformation.builder()
.carInformationId(carInformation.getCarInformationId())
@ -147,4 +154,23 @@ public class CarInformation {
.carInformationMotorModel(carInformation.getCarInformationMotorModel())
.build();
}
public static CarInformation carInformationListBuilder(CarInformation carInformation) {
return CarInformation.builder()
.carInformationId(carInformation.getCarInformationId())
.carInformationVIN(carInformation.getCarInformationVIN())
.carInformationLicensePlate(carInformation.getCarInformationLicensePlate())
.carInformationBrand(carInformation.getCarInformationBrand())
.carInformationColor(carInformation.getCarInformationColor())
.carInformationDriver(carInformation.getCarInformationDriver())
.carInformationMotorManufacturer(carInformation.getCarInformationMotorManufacturer())
.carInformationMotorModel(carInformation.getCarInformationMotorModel())
.carInformationBatteryManufacturer(carInformation.getCarInformationBatteryManufacturer())
.carInformationBatteryModel(carInformation.getCarInformationBatteryModel())
.carInformationFence(carInformation.getCarInformationFence())
.carInformationType(carInformation.getCarInformationType())
.carInformationMotorModel(carInformation.getCarInformationMotorModel())
.carStrategyId(carInformation.getCarStrategyId())
.build();
}
}

View File

@ -85,7 +85,7 @@ public class FaultCode {
public static FaultCode addfaultcode(FaultCodeAddReq faultCodeAddReq){
return FaultCode.builder()
.faultcodeId(0)
.faultcodeId(faultCodeAddReq.getFaultcodeId())
.messageTypeId(faultCodeAddReq.getMessageTypeId())
.faultcodeNumber(faultCodeAddReq.getFaultcodeNumber())
.faultGroup(faultCodeAddReq.getFaultGroup())

View File

@ -0,0 +1,46 @@
package com.muyu.domain;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
*
* @Authoryang
* @Packagecom.muyu.domain
* @Projectcloud-server-8
* @nameFaultCodeCache
* @Date2024/10/6 16:07
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@Tag(name = "故障码,电子围栏,车辆,报文")
public class FaultCodeCache {
/**
*
*/
private List<CarFence> carFences;
/**
*
*/
private WarnStrategy warnStrategies;
/**
*
*/
public List<CarInformation> carInformation;
/**
*
*/
private List<FaultCode> faultCode;
}

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.muyu.domain.req.FaultConditionAddReq;
import com.muyu.domain.req.FaultConditionUpdReq;
import com.muyu.domain.resp.FaultConditionTotalListResp;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -39,7 +40,7 @@ public class FaultCondition {
/**
* Id
*/
private long carTypeId;
private Long carTypeId;
/**
*Id
*/
@ -89,7 +90,11 @@ public class FaultCondition {
}
public static FaultCondition faultConditionBuilder(FaultCondition faultCondition) {
return FaultCondition.builder()
.carconditionId(faultCondition.getCarconditionId())
.carTypeId(faultCondition.getCarTypeId())
.messageTypeId(faultCondition.getMessageTypeId())
.build();
}
}

View File

@ -47,16 +47,22 @@ public class FaultLabel {
private String messageTypeBelongs;
public static FaultLabel addfaultLabel(FaultCodeAddReq faultCodeAddReq){
public static FaultLabel addfaultLabel(FaultLabel faultLabel){
return FaultLabel.builder()
.messageTypeId(0)
.messageTypeId(faultCodeAddReq.getMessageTypeId())
.messageTypeCode(faultCodeAddReq.getMessageTypeCode())
.messageTypeName(faultCodeAddReq.getMessageTypeName())
.messageTypeBelongs(faultCodeAddReq.getMessageTypeBelongs())
.messageTypeId(faultLabel.getMessageTypeId())
.messageTypeCode(faultLabel.getMessageTypeCode())
.messageTypeName(faultLabel.getMessageTypeName())
.messageTypeBelongs(faultLabel.getMessageTypeBelongs())
.build();
}
public static FaultLabel selectFaultLabel(FaultLabel faultLabel) {
return FaultLabel.builder()
.messageTypeId(faultLabel.messageTypeId)
.messageTypeCode(faultLabel.messageTypeCode)
.messageTypeName(faultLabel.messageTypeName)
.messageTypeBelongs(faultLabel.messageTypeBelongs)
.build();
}
}

View File

@ -78,7 +78,7 @@ public class CarInformationAddReq {
/**
* ID
*/
private Integer carInformationType;
private Long carInformationType;

View File

@ -74,7 +74,7 @@ public class CarInformationUpdReq {
* ID
*/
@Schema(title = "车辆类型外键ID", type = "Integer")
private Integer carInformationType;
private Long carInformationType;
/**
* (0 1 )

View File

@ -1,5 +1,7 @@
package com.muyu.domain.req;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -21,6 +23,10 @@ import lombok.experimental.SuperBuilder;
@Builder
public class FaultCodeAddReq {
/**
*Id
*/
private long faultcodeId;
/**
*Id
*/

View File

@ -31,7 +31,7 @@ public class FaultConditionListResp {
* Id
*/
private long carTypeId;
/**
/**
*Id
*/
private long messageTypeId;

View File

@ -9,6 +9,7 @@ import com.muyu.domain.req.FaultCodeUpdReq;
import com.muyu.domain.resp.FaultCodeTotalListResp;
import com.muyu.server.service.FaultCodeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -24,12 +25,14 @@ import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/faultcode")
@Tag(name = "车辆故障码控制层",description = "从故障信息表中查询数据")
public class FaultCodeController {
@Autowired
private FaultCodeService faultCodeService;
/**
* ()
* @param faultCodeListReq
@ -51,6 +54,7 @@ public class FaultCodeController {
@PostMapping("/faultcodeadd")
@Operation(summary = "新增故障码",description = "新增故障码信息")
public Result insertfaultcode(@Validated @RequestBody FaultCodeAddReq faultCodeAddReq){
faultCodeService.insert(faultCodeAddReq);
return Result.success(null,"新增成功");
}

View File

@ -59,7 +59,7 @@ public class FaultConditionController {
if (faultConditionList.size()>0){
return Result.error("此车辆类型已存在所对应的故障规则,无需重新制定,可在原规则上进行修改");
}
faultConditionService.save(FaultCondition.faultConditionadd(faultConditionAddReq));
faultConditionService.saveFaultCondition(FaultCondition.faultConditionadd(faultConditionAddReq));
return Result.success(null,"规则制定成功");
}

View File

@ -49,4 +49,9 @@ public interface CarFenceService extends IService<CarFence> {
*
*/
List<CarFenceGroupsResp> carGroupList(CarFenceGroupReq req);
/**
*
*/
List<CarFence> CarFenceList(Integer carInformationFence);
}

View File

@ -68,4 +68,9 @@ public interface CarInformationService extends IService<CarInformation> {
*/
List<CarInformationResp> selectBycarInformationIDAndLicensePlate();
/**
* chaxunCar
* @param faulttypeId
*/
List<CarInformation> selectCarInformation(Long faulttypeId);
}

View File

@ -8,6 +8,8 @@ import com.muyu.domain.req.FaultCodeListReq;
import com.muyu.domain.req.FaultCodeUpdReq;
import com.muyu.domain.resp.FaultCodeTotalListResp;
import java.util.List;
/**
*
@ -50,4 +52,10 @@ public interface FaultCodeService extends IService<FaultCode> {
* @return
*/
void del(Integer messageTypeId);
/**
* ()
* @return
*/
List<FaultCode> faultCodeList(long messageTypeId);
}

View File

@ -32,4 +32,12 @@ public interface FaultConditionService extends IService<FaultCondition> {
* @return
*/
List<FaultCondition> selectBytypeAndlabel(FaultConditionAddReq faultConditionAddReq);
void saveFaultCondition(FaultCondition faultCondition);
/**
*
* @return
*/
List<FaultCondition> saveFaultConditionList();
}

View File

@ -31,10 +31,10 @@ public interface FaultLabelService extends IService<FaultLabel> {
/**
*
* @param faultCodeAddReq
* @param faultLabel
* @return
*/
Integer insertfaultlabel(FaultCodeAddReq faultCodeAddReq);
Integer insertfaultlabel(FaultLabel faultLabel);
/**
*
@ -42,4 +42,5 @@ public interface FaultLabelService extends IService<FaultLabel> {
* @return
*/
Integer delfaultlabel(Integer messageTypeId);
}

View File

@ -316,4 +316,12 @@ public class CarFenceServiceImpl
});
return fenceGroupList;
}
@Override
public List<CarFence> CarFenceList(Integer carInformationFence) {
return this.list(new LambdaQueryWrapper<CarFence>().eq(CarFence::getId,carInformationFence))
.stream()
.map(CarFence::carFenceBuild)
.toList();
}
}

View File

@ -1,5 +1,6 @@
package com.muyu.server.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@ -149,4 +150,14 @@ public class CarInformationServiceImpl
return carInformationResps;
}
@Override
public List<CarInformation> selectCarInformation(Long faulttypeId) {
List<CarInformation> list = this.list(new LambdaQueryWrapper<CarInformation>()
.eq(CarInformation::getCarInformationType, faulttypeId))
.stream()
.map(CarInformation::carInformationListBuilder)
.toList();
return list;
}
}

View File

@ -5,20 +5,25 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.FaultCode;
import com.muyu.domain.FaultLabel;
import com.muyu.domain.*;
import com.muyu.domain.req.FaultCodeAddReq;
import com.muyu.domain.req.FaultCodeListReq;
import com.muyu.domain.req.FaultCodeUpdReq;
import com.muyu.domain.resp.FaultCodeListResp;
import com.muyu.domain.resp.FaultCodeTotalListResp;
import com.muyu.domain.resp.FaultConditionListResp;
import com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService;
import com.muyu.server.mapper.FaultCodeMapper;
import com.muyu.server.service.CarFenceService;
import com.muyu.server.service.CarInformationService;
import com.muyu.server.service.FaultCodeService;
import com.muyu.server.service.FaultLabelService;
import com.muyu.server.util.ObtainRootLogin;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@ -30,12 +35,13 @@ import java.util.List;
* @Date2024/9/17 14:53
*/
@Service
@AllArgsConstructor
public class FaultCodeServiceImpl extends ServiceImpl<FaultCodeMapper, FaultCode> implements FaultCodeService {
@Autowired
private FaultCodeMapper faultCodeMapper;
@Autowired
private FaultLabelService faultLabelService;
private final FaultCodeMapper faultCodeMapper;
private final FaultLabelService faultLabelService;
private final CarInformationService carInformationService;
private final CarFenceService carFenceService;
/**
* ()
@ -92,8 +98,13 @@ public class FaultCodeServiceImpl extends ServiceImpl<FaultCodeMapper, FaultCode
}
if (faultLabel==null && faultCode==null){
//添加故障项表
faultLabelService.insertfaultlabel(faultCodeAddReq);
FaultLabel faultLabel1 = new FaultLabel();
faultLabel1.setMessageTypeName(faultCodeAddReq.getMessageTypeName());
faultLabel1.setMessageTypeCode(faultCodeAddReq.getMessageTypeCode());
faultLabel1.setMessageTypeBelongs(faultCodeAddReq.getMessageTypeBelongs());
faultLabelService.insertfaultlabel(faultLabel1);
//添加故障码表
faultCodeMapper.insert(FaultCode.addfaultcode(faultCodeAddReq));
}
@ -120,10 +131,24 @@ public class FaultCodeServiceImpl extends ServiceImpl<FaultCodeMapper, FaultCode
public void del(Integer messageTypeId) {
// 使用LambdaQueryWrapper来构建查询条件
LambdaQueryWrapper<FaultCode> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(FaultCode::getMessageTypeId, messageTypeId); // 假设FaultCode实体类中有一个getMessageTypeId方法
// 假设FaultCode实体类中有一个getMessageTypeId方法
queryWrapper.eq(FaultCode::getMessageTypeId, messageTypeId);
//删除故障码表信息
faultCodeMapper.delete(queryWrapper);
//删除对应的故障名称表信息
faultLabelService.delfaultlabel(messageTypeId);
}
/**
* ()
* @return
*/
@Override
public List<FaultCode> faultCodeList(long messageTypeId) {
return this.list(new LambdaQueryWrapper<FaultCode>()
.eq(FaultCode::getMessageTypeId,messageTypeId))
.stream()
.map(FaultCode::faultCodeBuilder)
.toList();
}
}

View File

@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.muyu.domain.CarType;
import com.muyu.domain.FaultCode;
import com.muyu.domain.FaultCondition;
import com.muyu.domain.FaultLabel;
import com.muyu.domain.*;
import com.muyu.domain.req.FaultConditionAddReq;
import com.muyu.domain.req.FaultConditionListReq;
import com.muyu.domain.resp.FaultConditionListResp;
@ -15,9 +12,11 @@ import com.muyu.domain.resp.FaultConditionTotalListResp;
import com.muyu.domain.resp.FaultLogListResp;
import com.muyu.server.mapper.FaultConditionMapper;
import com.muyu.server.service.FaultConditionService;
import com.muyu.server.util.ObtainRootLogin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@ -30,7 +29,9 @@ import java.util.List;
*/
@Service
public class FaultConditionServiceImpl extends ServiceImpl<FaultConditionMapper, FaultCondition> implements FaultConditionService {
public class FaultConditionServiceImpl
extends ServiceImpl<FaultConditionMapper, FaultCondition>
implements FaultConditionService {
@Autowired
private FaultConditionMapper faultConditionMapper;
@ -83,4 +84,42 @@ public class FaultConditionServiceImpl extends ServiceImpl<FaultConditionMapper,
List<FaultCondition> list = this.list(queryWrapper);
return list;
}
@Override
public void saveFaultCondition(FaultCondition faultCondition) {
}
@Override
public List<FaultCondition> saveFaultConditionList() {
return this.list().stream().map(FaultCondition::faultConditionBuilder).toList();
}
// private void faultCache(long messageTypeId, Long faulttypeId,String faultcodeNumber) {
// FaultCodeCache faultCodeCache = new FaultCodeCache();
//
// //添加故障标签
// faultCodeCache.getFaultLabels().addAll(faultLabelService.selectFaultCode(messageTypeId));
//
// //添加车辆
// List<CarInformation> carInformationList = carInformationService.selectCarInformation(faulttypeId);
// faultCodeCache.getCarInformation().addAll(carInformationList);
//
// //添加故障码
// faultCodeCache.getFaultCode().addAll(this.list(new LambdaQueryWrapper<FaultCode>()
// .eq(FaultCode::getFaultcodeNumber, faultcodeNumber))
// .stream().map(FaultCode::faultCodeBuilder)
// .toList());
//
// //添加围栏
// ArrayList<CarFence> carFences1 = new ArrayList<>();
// carInformationList.forEach(carInformation -> {
// CarFence carFence = carFenceService.selectCarFenceList(carInformation.getCarInformationFence());
// carFences1.add(carFence);
// });
// faultCodeCache.getCarFences().addAll(carFences1);
// vehicleCacheFaultCodeAddService.put(vehicleCacheFaultCodeAddService.keyPre()
// + ObtainRootLogin.obtain()
// , faultCodeCache);
// }
}

View File

@ -56,12 +56,12 @@ public class FaultLabelServiceImpl extends ServiceImpl<FaultLabelMapper, FaultLa
/**
*
* @param faultCodeAddReq
* @param faultLabel
* @return
*/
@Override
public Integer insertfaultlabel(FaultCodeAddReq faultCodeAddReq) {
return faultLabelMapper.insert(FaultLabel.addfaultLabel(faultCodeAddReq));
public Integer insertfaultlabel(FaultLabel faultLabel) {
return this.save(faultLabel)?1:0;
}
/**
@ -73,7 +73,9 @@ public class FaultLabelServiceImpl extends ServiceImpl<FaultLabelMapper, FaultLa
public Integer delfaultlabel(Integer messageTypeId) {
// 使用LambdaQueryWrapper来构建查询条件
LambdaQueryWrapper<FaultLabel> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(FaultLabel::getMessageTypeId, messageTypeId); // 假设FaultCode实体类中有一个getMessageTypeId方法
// 假设FaultCode实体类中有一个getMessageTypeId方法
queryWrapper.eq(FaultLabel::getMessageTypeId, messageTypeId);
return faultLabelMapper.delete(queryWrapper);
}
}

View File

@ -54,7 +54,7 @@ public class FaultRuleServiceImpl extends ServiceImpl<FaultRuleMapper, CarFaultR
new LambdaQueryWrapper<CarInformation>()
.eq(CarInformation::getCarInformationVIN, carFaultRule.getVin()));
//根据车辆类型,查询表获取对应的类型的故障规则
Integer carInformationType = null;
Long carInformationType = null;
for (CarInformation carInformation : carInformationList) {
carInformationType= carInformation.getCarInformationType();
}

View File

@ -0,0 +1,60 @@
package com.muyu.server.util;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.*;
import com.muyu.enterprise.cache.faultCode.VehicleCacheFaultCodeAddService;
import com.muyu.server.service.*;
import lombok.AllArgsConstructor;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
import java.util.AbstractList;
import java.util.ArrayList;
import java.util.List;
/**
* @Authoryang
* @Packagecom.muyu.server.util
* @Projectcloud-server-8
* @nameRunCarCondition
* @Date2024/10/7 19:43
*/
@Component
@AllArgsConstructor
public class RunCarCondition implements ApplicationRunner {
private final VehicleCacheFaultCodeAddService vehicleCacheFaultCodeAddService;
private final FaultConditionService faultConditionService;
private final CarInformationService carInformationService;
private final CarFenceService carFenceService;
private final WarnStrategyService warnStrategyService;
private final FaultCodeService faultCodeService;
@Override
public void run(ApplicationArguments args) throws Exception {
List<FaultCondition> list = faultConditionService.saveFaultConditionList();
list.forEach(faultCondition -> {
List<CarInformation> carInformationList = carInformationService.selectCarInformation(faultCondition.getCarTypeId());
carInformationList.forEach(carInformation -> {
FaultCodeCache faultCodeCache = new FaultCodeCache();
if (StringUtils.isNotNull(carInformation.getCarInformationFence())){
faultCodeCache.setCarFences(carFenceService.CarFenceList(carInformation.getCarInformationFence()));
}
if (StringUtils.isNotNull(carInformation.getCarInformationState())) {
faultCodeCache.setWarnStrategies(warnStrategyService
.selectWarnStrategyById(Long.valueOf(carInformation.getCarInformationState())));
}
if (StringUtils.isNotNull(faultCondition.getMessageTypeId())) {
faultCodeCache.setFaultCode(faultCodeService.faultCodeList(faultCondition.getMessageTypeId()));
}
ArrayList<CarInformation> carInformations = new ArrayList<>();
carInformations.add(carInformation);
faultCodeCache.setCarInformation(carInformations);
vehicleCacheFaultCodeAddService.put(vehicleCacheFaultCodeAddService
.keyPre()+carInformation
.getCarInformationVIN(), faultCodeCache);
});
});
}
}