diff --git a/muyu-common/muyu-common-core/pom.xml b/muyu-common/muyu-common-core/pom.xml
index ed2fab4..3eb8ecc 100644
--- a/muyu-common/muyu-common-core/pom.xml
+++ b/muyu-common/muyu-common-core/pom.xml
@@ -77,7 +77,22 @@
jjwt
-
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.5.3.1
+
+
+ com.github.jsqlparser
+ jsqlparser
+
+
+ org.mybatis
+ mybatis
+
+
+
diff --git a/muyu-modules/muyu-business/muyu-business-common/pom.xml b/muyu-modules/muyu-business/muyu-business-common/pom.xml
index dcaea1b..b34c785 100644
--- a/muyu-modules/muyu-business/muyu-business-common/pom.xml
+++ b/muyu-modules/muyu-business/muyu-business-common/pom.xml
@@ -11,11 +11,6 @@
muyu-business-common
-
- 20
- 20
- UTF-8
-
com.muyu
diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/FaultCodesMapper.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/FaultCodesMapper.java
new file mode 100644
index 0000000..e19b4d8
--- /dev/null
+++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/mapper/FaultCodesMapper.java
@@ -0,0 +1,65 @@
+package com.muyu.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.*;
+import com.muyu.business.domain.*;
+import com.muyu.business.domain.req.*;
+import com.muyu.business.domain.res.*;
+
+import java.util.*;
+
+/**
+ * 故障码Mapper接口
+ *
+ * @author Li YongJie
+ * @date 2024-03-28
+ */
+public interface FaultCodesMapper extends BaseMapper {
+
+ /**
+ * 查询故障码列表
+ *
+ * @param faultCodeReq 故障码
+ * @return 故障码集合
+ */
+// public List selectFaultCodesList(FaultCodeReq faultCodeReq);
+
+ /**
+ * 新增故障码
+ *
+ * @param faultCodes 故障码
+ * @return 结果
+ */
+// public int insertFaultCodes(FaultCodeInfo faultCodes);
+
+ /**
+ * 查询故障码
+ *
+ * @param faultId 故障码主键
+ * @return 故障码
+ */
+// public FaultCodeInfo selectFaultCodesByFaultId(Long faultId);
+
+ /**
+ * 修改故障码
+ *
+ * @param faultCodes 故障码
+ * @return 结果
+ */
+// public int updateFaultCodes(FaultCodeInfo faultCodes);
+
+ /**
+ * 删除故障码
+ *
+ * @param faultId 故障码主键
+ * @return 结果
+ */
+// public int deleteFaultCodesByFaultId(Long faultId);
+
+ /**
+ * 批量删除故障码
+ *
+ * @param faultIds 需要删除的数据主键集合
+ * @return 结果
+ */
+// public int deleteFaultCodesByFaultIds(Long[] faultIds);
+}
diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/FaultCodesService.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/FaultCodesService.java
new file mode 100644
index 0000000..aa33f70
--- /dev/null
+++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/FaultCodesService.java
@@ -0,0 +1,72 @@
+package com.muyu.business.service;
+
+import com.baomidou.mybatisplus.extension.service.*;
+import com.muyu.business.domain.*;
+import com.muyu.business.domain.req.*;
+import com.muyu.business.domain.res.*;
+
+import java.util.*;
+
+/**
+ * 故障码Service接口
+ *
+ * @author Li YongJie
+ * @date 2024-03-28
+ */
+public interface FaultCodesService extends IService {
+ /**
+ * 查询故障码列表
+ *
+ * @param faultCodes 故障码
+ * @return 故障码集合
+ */
+ public List selectFaultCodesList(FaultCodeReq faultCodes);
+
+ /**
+ * 新增故障码
+ *
+ * @param faultCodes 故障码
+ * @return 结果
+ */
+ public int insertFaultCodes(FaultCodeInfo faultCodes);
+
+ /**
+ * 故障码详情
+ *
+ * @param faultId 故障码主键
+ * @return 故障码
+ */
+ public FaultCodeInfo selectFaultCodesByFaultId(Long faultId);
+
+ /**
+ * 修改故障码
+ *
+ * @param faultCodes 故障码
+ * @return 结果
+ */
+ public int updateFaultCodes(FaultCodeInfo faultCodes);
+
+ /**
+ * 删除故障码信息
+ *
+ * @param faultId 故障码主键
+ * @return 结果
+ */
+ public int deleteFaultCodesByFaultId(Long faultId);
+
+ /**
+ * 批量删除故障码
+ *
+ * @param faultIds 需要删除的故障码主键集合
+ * @return 结果
+ */
+ public int deleteFaultCodesByFaultIds(Long[] faultIds);
+
+ /**
+ * 修改故障码状态
+ *
+ * @param faultCodeInfo
+ * @return
+ */
+ int updateFaultCodesStatus(FaultCodeInfo faultCodeInfo);
+}
diff --git a/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultCodesServiceImpl.java b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultCodesServiceImpl.java
new file mode 100644
index 0000000..20194a1
--- /dev/null
+++ b/muyu-modules/muyu-business/muyu-business-server/src/main/java/com/muyu/business/service/impl/FaultCodesServiceImpl.java
@@ -0,0 +1,119 @@
+package com.muyu.business.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.*;
+import com.baomidou.mybatisplus.extension.service.impl.*;
+import com.muyu.business.domain.*;
+import com.muyu.business.domain.req.*;
+import com.muyu.business.domain.res.*;
+import com.muyu.business.mapper.*;
+import com.muyu.business.service.*;
+import com.muyu.common.core.utils.*;
+import com.muyu.common.security.utils.*;
+import org.springframework.beans.factory.annotation.*;
+import org.springframework.stereotype.*;
+
+import java.util.*;
+
+/**
+ * 故障码Service业务层处理
+ *
+ * @author Li YongJie
+ * @date 2024-03-28
+ */
+@Service
+public class FaultCodesServiceImpl extends ServiceImpl
+ implements FaultCodesService {
+
+ /**
+ * 注入故障码Mapper
+ */
+ @Autowired
+ private FaultCodesMapper faultCodesMapper;
+
+ /**
+ * 查询故障码列表
+ *
+ * @param faultCodeReq 故障码查询对象
+ * @return 故障码
+ */
+ @Override
+ public List selectFaultCodesList(FaultCodeReq faultCodeReq) {
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.like(StringUtils.isNotEmpty(faultCodeReq.getFaultName()),FaultCodeInfo::getFaultName, faultCodeReq.getFaultName());
+ wrapper.eq(StringUtils.isNotNull(faultCodeReq.getFaultCode()),FaultCodeInfo::getFaultCode, faultCodeReq.getFaultCode());
+ wrapper.eq(StringUtils.isNotEmpty(faultCodeReq.getAlarmFlag()),FaultCodeInfo::getAlarmFlag, faultCodeReq.getAlarmFlag());
+ return faultCodesMapper.selectList(wrapper);
+ }
+
+ /**
+ * 新增故障码
+ *
+ * @param faultCodes 故障码
+ * @return 结果
+ */
+ @Override
+ public int insertFaultCodes(FaultCodeInfo faultCodes) {
+ faultCodes.setCreateBy(SecurityUtils.getUsername());
+ faultCodes.setCreateTime(DateUtils.getNowDate());
+ return faultCodesMapper.insert(faultCodes);
+ }
+
+ /**
+ * 故障码详情
+ *
+ * @param faultId 故障码主键
+ * @return 故障码
+ */
+ @Override
+ public FaultCodeInfo selectFaultCodesByFaultId(Long faultId) {
+ return faultCodesMapper.selectById(faultId);
+ }
+
+ /**
+ * 修改故障码
+ *
+ * @param faultCodes 故障码
+ * @return 结果
+ */
+ @Override
+ public int updateFaultCodes(FaultCodeInfo faultCodes) {
+ faultCodes.setUpdateBy(SecurityUtils.getUsername());
+ faultCodes.setUpdateTime(DateUtils.getNowDate());
+ return faultCodesMapper.updateById(faultCodes);
+ }
+
+ /**
+ * 删除故障码信息
+ *
+ * @param faultId 故障码主键
+ * @return 结果
+ */
+ @Override
+ public int deleteFaultCodesByFaultId(Long faultId) {
+ return faultCodesMapper.deleteById(faultId);
+ }
+
+ /**
+ * 批量删除故障码
+ *
+ * @param faultIds 需要删除的故障码主键
+ * @return 结果
+ */
+ @Override
+ public int deleteFaultCodesByFaultIds(Long[] faultIds) {
+ return faultCodesMapper.deleteBatchIds(Arrays.asList(faultIds));
+ }
+
+ /**
+ * 修改故障码状态
+ *
+ * @param faultCodeInfo 故障码
+ * @return
+ */
+ @Override
+ public int updateFaultCodesStatus(FaultCodeInfo faultCodeInfo) {
+ faultCodeInfo.setUpdateBy(SecurityUtils.getUsername());
+ faultCodeInfo.setUpdateTime(DateUtils.getNowDate());
+ return faultCodesMapper.updateById(faultCodeInfo);
+ }
+}
diff --git a/muyu-modules/muyu-business/sql/fault_code_info/fault_code_info.sql b/muyu-modules/muyu-business/sql/fault_code_info/fault_code_info.sql
new file mode 100644
index 0000000..2cc9572
--- /dev/null
+++ b/muyu-modules/muyu-business/sql/fault_code_info/fault_code_info.sql
@@ -0,0 +1,44 @@
+-- 故障码管理
+-- 故障码信息表
+drop table if exists fault_code_info;
+create table fault_code_info(
+ fault_id int(11) comment '故障码主键' primary key auto_increment,
+ fault_name varchar(32) comment '故障名称',
+ fault_code varchar(32) comment '故障码',
+ fault_type tinyint(4) comment '故障类型:1-通讯丢失故障 2-车身故障 3-底盘故障 4-电子围栏故障 5-其他故障',
+ fault_level tinyint(4) comment '故障等级:1-高级故障 2-中级故障 3-低级故障',
+ alarm_flag char(1) default 'Y' comment '是否产生报警(Y正常 N报警)',
+ fault_desc varchar(100) comment '故障描述',
+ fault_location tinyint(4) comment '故障位置',
+ fault_value bigint(20) comment '故障值',
+ status char(1) default '0' comment '故障码状态(0正常 1停用)',
+ del_flag char(1) default '0' comment '删除标志(0存在 2删除)',
+ create_by varchar(64) default '' comment '创建者',
+ create_time datetime comment '创建时间',
+ update_by varchar(64) default '' comment '更新者',
+ update_time datetime comment '更新时间',
+ remark varchar(200) comment '备注'
+) engine=innodb comment = '故障码表';
+insert into fault_code_info(fault_name, fault_code, fault_type, fault_level, alarm_flag, fault_desc, fault_location, fault_value, status, del_flag, create_by, create_time, remark) values ('通讯丢失故障', '0001', 1, 1, '0', '通讯丢失故障', '车辆', 0, '0', '0', 'admin', now(), '通讯丢失故障');
+insert into fault_code_info(fault_name, fault_code, fault_type, fault_level, alarm_flag, fault_desc, fault_location, fault_value, status, del_flag, create_by, create_time, remark) values ('车身故障', '0002', 2, 1, '0', '车身故障', '车辆', 0, '0', '0', 'admin', now(), '车身故障');
+insert into fault_code_info(fault_name, fault_code, fault_type, fault_level, alarm_flag, fault_desc, fault_location, fault_value, status, del_flag, create_by, create_time, remark) values ('底盘故障', '0003', 3, 1, '0', '底盘故障', '车辆', 0, '0', '0', 'admin', now(),'底盘故障');
+insert into fault_code_info(fault_name, fault_code, fault_type, fault_level, alarm_flag, fault_desc, fault_location, fault_value, status, del_flag, create_by, create_time, remark) values ('电子围栏故障', '0004', 4, 1, '0', '电子围栏故障', '车辆', 0, '0', '0', 'admin', now(),'电子围栏故障');
+insert into fault_code_info(fault_name, fault_code, fault_type, fault_level, alarm_flag, fault_desc, fault_location, fault_value, status, del_flag, create_by, create_time, remark) values ('其他故障', '0005', 5, 1, '0', '其他故障', '车辆', 0, '0', '0', 'admin', now(), '其他故障');
+select fault_id,fault_name, fault_code, fault_type, fault_level, alarm_flag, fault_desc, fault_location, fault_value, status, del_flag from fault_code_info;
+
+
+-- 故障记录
+drop table if exists fault_logs;
+create table fault_logs (
+ log_id int(11) comment '故障码主键' primary key auto_increment,
+ car_vin varchar(100) comment '车辆VIN',
+ car_id bigint(40) comment '车辆编号',
+ fault_name varchar(32) comment '故障名称',
+ fault_code varchar(32) comment '故障码',
+ alarm_flag char(1) default 'Y' comment '是否产生报警(Y正常 N报警)',
+ start_alarm_time datetime comment '开始报警时间',
+ end_alarm_time datetime comment '最近报警时间',
+ processing_time datetime comment '处理时间',
+ processing_by varchar(32) comment '处理人',
+ processing_status char(1) comment ''
+)engine=innodb comment = '故障记录表';
diff --git a/muyu-modules/muyu-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml b/muyu-modules/muyu-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml
index 59f40b1..afb0ac6 100644
--- a/muyu-modules/muyu-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml
+++ b/muyu-modules/muyu-gen/src/main/resources/mapper/generator/GenTableColumnMapper.xml
@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-
+
@@ -33,7 +33,7 @@
select column_id, table_id, column_name, column_comment, column_type, java_type, java_field, is_pk, is_increment, is_required, is_insert, is_edit, is_list, is_query, query_type, html_type, dict_type, sort, create_by, create_time, update_by, update_time from gen_table_column
-