From e55ff5d7f7608480eec493aad1030a662ec08fb5 Mon Sep 17 00:00:00 2001
From: PQZ <pangqingzhou@gmail.com>
Date: Fri, 11 Oct 2024 14:03:58 +0800
Subject: [PATCH] 1

---
 .../iocoder/yudao/common/BaseConstants.java   |   6 +
 .../controller/admin/UserCarController.java   |  21 ++++
 .../yudao/module/custom/entity/UserCar.java   | 119 ++++++++++++++++++
 .../module/custom/mapper/UserCarMapper.java   |  16 +++
 .../module/custom/service/UserCarService.java |  14 +++
 .../service/impl/UserCarServiceImpl.java      |  23 ++++
 .../resources/mapper/custom/UserCarMapper.xml |  12 ++
 .../service/RepairRecordsItemService.java     |  12 +-
 .../base/service/RepairRecordsService.java    |   7 +-
 .../impl/RepairRecordsItemServiceImpl.java    |  33 +++++
 .../impl/RepairRecordsServiceImpl.java        |  14 +--
 .../base/vo/RepairRecordsSaveReqVO.java       |   2 +
 12 files changed, 268 insertions(+), 11 deletions(-)
 create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/UserCarController.java
 create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/entity/UserCar.java
 create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/mapper/UserCarMapper.java
 create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/UserCarService.java
 create mode 100644 dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/UserCarServiceImpl.java
 create mode 100644 dl-module-base/src/main/resources/mapper/custom/UserCarMapper.xml

diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/common/BaseConstants.java b/dl-module-base/src/main/java/cn/iocoder/yudao/common/BaseConstants.java
index f65c46be..670e7666 100644
--- a/dl-module-base/src/main/java/cn/iocoder/yudao/common/BaseConstants.java
+++ b/dl-module-base/src/main/java/cn/iocoder/yudao/common/BaseConstants.java
@@ -94,5 +94,11 @@ public class BaseConstants {
     public static final String ORDER_KKYL = "3";
     /**订单店铺名称*/
     public static final String ORDER_TENANT_NAME = "蓝安集团";
+    /**工单*/
+    public static final String REPAIR_RECORD_TYPE_TICKET = "ticket";
+    /**工单附属项目*/
+    public static final String REPAIR_RECORD_TYPE_REPAIR_ITEM = "repairItem";
+    /**维修记录*/
+    public static final String REPAIR_RECORD_TYPE_RECORD = "record";
 
 }
diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/UserCarController.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/UserCarController.java
new file mode 100644
index 00000000..06d28ae7
--- /dev/null
+++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/controller/admin/UserCarController.java
@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.custom.controller.admin;
+
+import cn.iocoder.yudao.module.custom.service.UserCarService;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@Tag(name = "管理后台 - 用户车辆信息表--用户个人录入的")
+@RestController
+@RequestMapping("/base/user-car")
+@Validated
+public class UserCarController {
+
+    @Resource
+    private UserCarService userCarService;
+
+
+}
\ No newline at end of file
diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/entity/UserCar.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/entity/UserCar.java
new file mode 100644
index 00000000..e5dbe0db
--- /dev/null
+++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/entity/UserCar.java
@@ -0,0 +1,119 @@
+package cn.iocoder.yudao.module.custom.entity;
+
+import lombok.*;
+import java.util.*;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 用户车辆信息表--用户个人录入的 DO
+ *
+ * @author vinjor-M
+ */
+@TableName("base_user_car")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserCar extends BaseDO {
+
+    /**
+     * 主键标识
+     */
+    @TableId(type = IdType.ASSIGN_UUID)
+    private String id;
+    /**
+     * 发动机号码
+     */
+    private String engineNumber;
+    /**
+     * 车架号
+     */
+    private String vin;
+    /**
+     * 车牌号
+     */
+    private String licenseNumber;
+    /**
+     * 车辆品牌
+     */
+    private String carBrand;
+    /**
+     * 车辆型号
+     */
+    private String carModel;
+    /**
+     * 车辆性质:营运 非营运等
+     */
+    private String carNature;
+    /**
+     * 车辆类别:私家车 货车 教练车 公务车 出租车
+     */
+    private String carCategory;
+    /**
+     * 行驶证图片
+     */
+    private String carLicenseImg;
+    /**
+     * 车辆注册日期
+     */
+    private LocalDateTime carRegisterDate;
+    /**
+     * 保养日期
+     */
+    private LocalDateTime maintenanceDate;
+    /**
+     * 保养里程
+     */
+    private Long maintenanceMileage;
+    /**
+     * 年检日期
+     */
+    private LocalDateTime inspectionDate;
+    /**
+     * 保险日期
+     */
+    private LocalDateTime insuranceDate;
+    /**
+     * 二级维护时间
+     */
+    private LocalDateTime checkDate;
+    /**
+     * 下次保养日期
+     */
+    private LocalDateTime nextMaintenanceDate;
+    /**
+     * 下次保养里程
+     */
+    private Long nextMaintenanceMileage;
+    /**
+     * 下次年检日期
+     */
+    private LocalDateTime nextInspectionDate;
+    /**
+     * 保险到期日期
+     */
+    private LocalDateTime insuranceExpiryDate;
+    /**
+     * 下次二级维护时间
+     */
+    private LocalDateTime nextCheckDate;
+    /**
+     * 是否车主
+     */
+    private String isOwner;
+
+}
\ No newline at end of file
diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/mapper/UserCarMapper.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/mapper/UserCarMapper.java
new file mode 100644
index 00000000..6954e49e
--- /dev/null
+++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/mapper/UserCarMapper.java
@@ -0,0 +1,16 @@
+package cn.iocoder.yudao.module.custom.mapper;
+
+import cn.iocoder.yudao.module.custom.entity.UserCar;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户车辆信息表--用户个人录入的 Mapper
+ *
+ * @author vinjor-M
+ */
+@Mapper
+public interface UserCarMapper extends BaseMapper<UserCar> {
+
+
+}
\ No newline at end of file
diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/UserCarService.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/UserCarService.java
new file mode 100644
index 00000000..df877698
--- /dev/null
+++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/UserCarService.java
@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.module.custom.service;
+
+import cn.iocoder.yudao.module.custom.entity.UserCar;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 用户车辆信息表--用户个人录入的 Service 接口
+ *
+ * @author vinjor-M
+ */
+public interface UserCarService extends IService<UserCar> {
+
+
+}
\ No newline at end of file
diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/UserCarServiceImpl.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/UserCarServiceImpl.java
new file mode 100644
index 00000000..ac74f5d9
--- /dev/null
+++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/custom/service/impl/UserCarServiceImpl.java
@@ -0,0 +1,23 @@
+package cn.iocoder.yudao.module.custom.service.impl;
+
+import cn.iocoder.yudao.module.custom.entity.UserCar;
+import cn.iocoder.yudao.module.custom.mapper.UserCarMapper;
+import cn.iocoder.yudao.module.custom.service.UserCarService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+/**
+ * 用户车辆信息表--用户个人录入的 Service 实现类
+ *
+ * @author vinjor-M
+ */
+@Service
+@Validated
+public class UserCarServiceImpl extends ServiceImpl<UserCarMapper, UserCar> implements UserCarService {
+
+    @Resource
+    private UserCarMapper userCarMapper;
+}
\ No newline at end of file
diff --git a/dl-module-base/src/main/resources/mapper/custom/UserCarMapper.xml b/dl-module-base/src/main/resources/mapper/custom/UserCarMapper.xml
new file mode 100644
index 00000000..248fa658
--- /dev/null
+++ b/dl-module-base/src/main/resources/mapper/custom/UserCarMapper.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.iocoder.yudao.module.custom.mapper.UserCarMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>
\ No newline at end of file
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairRecordsItemService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairRecordsItemService.java
index 57b2f2c2..56da29c6 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairRecordsItemService.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairRecordsItemService.java
@@ -10,8 +10,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface RepairRecordsItemService extends IService<RepairRecordsItem> {
 
-
-
-
+    /**
+     * 根据主表id删除附件
+     *
+     * @param mainType ticket:工单;repairItem:工单附属项目;record:维修记录
+     * @param mainId   主表id
+     * @author PQZ
+     * @date 11:43 2024/10/11
+     **/
+    void removeByMainId(String mainType, String mainId);
 
 }
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairRecordsService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairRecordsService.java
index e1d42d02..99e4c745 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairRecordsService.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairRecordsService.java
@@ -19,7 +19,12 @@ import java.util.List;
  */
 public interface RepairRecordsService extends IService<RepairRecords> {
 
-
+    /**
+     * 创建维修记录
+     * @author PQZ
+     * @date 11:41 2024/10/11
+     * @param saveReqVO RepairRecordsSaveReqVO实体
+    **/
     void saveRepairRecord(RepairRecordsSaveReqVO saveReqVO);
 
 }
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairRecordsItemServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairRecordsItemServiceImpl.java
index 4aa60220..c8271100 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairRecordsItemServiceImpl.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairRecordsItemServiceImpl.java
@@ -1,14 +1,18 @@
 package cn.iocoder.yudao.module.base.service.impl;
 
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.module.base.entity.RepairRecordsItem;
 import cn.iocoder.yudao.module.base.mapper.RepairRecordsItemMapper;
 import cn.iocoder.yudao.module.base.service.RepairRecordsItemService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 
+import static cn.iocoder.yudao.common.BaseConstants.*;
+
 /**
  * 维修记录 Service 实现类
  *
@@ -22,4 +26,33 @@ public class RepairRecordsItemServiceImpl extends ServiceImpl<RepairRecordsItemM
     private RepairRecordsItemMapper itemMapper;
 
 
+    /**
+     * 根据主表id删除附件
+     *
+     * @param mainType ticket:工单;repairItem:工单附属项目;record:维修记录
+     * @param mainId   主表id
+     * @author PQZ
+     * @date 11:43 2024/10/11
+     **/
+    @Override
+    public void removeByMainId(String mainType, String mainId) {
+        LambdaQueryWrapper<RepairRecordsItem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        switch (mainType) {
+            //匹配根据工单表id删除条件
+            case REPAIR_RECORD_TYPE_TICKET:
+                lambdaQueryWrapper.eq(RepairRecordsItem::getTicketId, mainId);
+                break;
+            //匹配根据工单子表id删除条件
+            case REPAIR_RECORD_TYPE_REPAIR_ITEM:
+                lambdaQueryWrapper.eq(RepairRecordsItem::getRepairItemId,mainId);
+                break;
+            //匹配根据根据记录表id删除条件
+            case REPAIR_RECORD_TYPE_RECORD:
+                lambdaQueryWrapper.eq(RepairRecordsItem::getRecordId,mainId);
+                break;
+            default:
+                break;
+        }
+        remove(lambdaQueryWrapper);
+    }
 }
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairRecordsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairRecordsServiceImpl.java
index 200a65cb..68a630cb 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairRecordsServiceImpl.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairRecordsServiceImpl.java
@@ -1,21 +1,14 @@
 package cn.iocoder.yudao.module.base.service.impl;
 
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.base.entity.RepairRecords;
 import cn.iocoder.yudao.module.base.mapper.RepairRecordsMapper;
 import cn.iocoder.yudao.module.base.service.RepairRecordsService;
-import cn.iocoder.yudao.module.base.vo.RepairRecordsPageReqVO;
-import cn.iocoder.yudao.module.base.vo.RepairRecordsRespVO;
 import cn.iocoder.yudao.module.base.vo.RepairRecordsSaveReqVO;
-import cn.iocoder.yudao.module.base.vo.RepairWorkerPageReqVO;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * 维修记录 Service 实现类
@@ -30,6 +23,13 @@ public class RepairRecordsServiceImpl extends ServiceImpl<RepairRecordsMapper, R
     private RepairRecordsMapper repairRecordsMapper;
 
 
+    /**
+     * 创建维修记录
+     *
+     * @param saveReqVO RepairRecordsSaveReqVO实体
+     * @author PQZ
+     * @date 11:41 2024/10/11
+     **/
     @Override
     public void saveRepairRecord(RepairRecordsSaveReqVO saveReqVO) {
 
diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairRecordsSaveReqVO.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairRecordsSaveReqVO.java
index d4eda512..fc4d3090 100644
--- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairRecordsSaveReqVO.java
+++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/vo/RepairRecordsSaveReqVO.java
@@ -13,6 +13,8 @@ public class RepairRecordsSaveReqVO extends RepairRecords {
 
     /**维修记录附件表*/
     List<RepairRecordsItem> itemList;
+    /**当前维修记录中需要保存的附件信息*/
+    String images;
 
 
 }