xuhy
2026-02-24 20baa77b1ce6c6dc980077965927a5877440a17d
管理后台,人员资质审核,打卡地址管理
5个文件已添加
13个文件已修改
431 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpQualificationAuditController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/XpQualificationAuditMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/model/dto/QualificationReviewDTO.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/model/query/XpQualificationAuditQuery.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpQualificationAuditService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpQualificationAuditMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/account/XpQualificationAuditVO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleRepairController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/dto/LocationUpdateStatusDTO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/mapper/XpCheckLocationMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/XpCheckLocationQuery.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpCheckLocationService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpVehicleRepairService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCheckLocationServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpVehicleRepairServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-maintenance-boot/src/main/resources/mapper/maintenance/XpCheckLocationMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpQualificationAuditController.java
@@ -1,7 +1,17 @@
package com.xiaopeng.account.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.xiaopeng.account.model.dto.QualificationReviewDTO;
import com.xiaopeng.account.model.query.XpQualificationAuditQuery;
import com.xiaopeng.account.service.IXpQualificationAuditService;
import com.xiaopeng.api.vo.account.XpQualificationAuditVO;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
@@ -13,8 +23,45 @@
 * @author mitao
 * @since 2026-02-03
 */
@Controller
@RequestMapping("/xp-qualification-audit")
@Api(tags = "资质审核记录")
@RestController
@RequestMapping("")
public class XpQualificationAuditController {
    @Autowired
    private IXpQualificationAuditService xpQualificationAuditService;
    @Autowired
    private TokenService tokenService;
    /**
     * 管理后台-综合审核-人员资质审核分页列表
     */
    @ApiOperation(value = "管理后台-综合审核-人员资质审核分页列表", tags = {"管理后台-服务中心"})
    @PostMapping("/api/v1/qualificationAudit/pageList")
    public R<PageInfo<XpQualificationAuditVO>> pageList(@RequestBody XpQualificationAuditQuery query) {
        PageInfo<XpQualificationAuditVO> pageList = xpQualificationAuditService.pageList(query);
        return R.ok(pageList);
    }
    /**
     * 管理后台-综合审核-人员资质审核
     */
    @ApiOperation(value = "管理后台-综合审核-人员资质批量审核(单审核共用)", tags = {"管理后台-服务中心"})
    @PostMapping("/api/v1/qualificationAudit/audit")
    public R<String> audit(@RequestBody QualificationReviewDTO dto) {
        Long userid = tokenService.getLoginUser().getUserid();
        xpQualificationAuditService.audit(dto,userid);
        return R.ok();
    }
    /**
     * 管理后台-综合审核-人员资质审核删除
     */
    @ApiOperation(value = "管理后台-综合审核-人员资质审核删除", tags = {"管理后台-服务中心"})
    @DeleteMapping("/api/v1/qualificationAudit/deleteById")
    public R<String> deleteById(@RequestParam Long id) {
        xpQualificationAuditService.removeById(id);
        return R.ok();
    }
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/XpQualificationAuditMapper.java
@@ -1,7 +1,14 @@
package com.xiaopeng.account.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaopeng.account.model.query.XpQualificationAuditQuery;
import com.xiaopeng.api.model.account.XpQualificationAudit;
import com.xiaopeng.api.vo.account.XpQualificationAuditVO;
import com.xiaopeng.common.core.web.page.PageInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
@@ -13,4 +20,12 @@
 */
public interface XpQualificationAuditMapper extends BaseMapper<XpQualificationAudit> {
    /**
     * 列表查询
     *
     * @param pageInfo 分页参数
     * @param query 查询参数
     * @return 分页数据
     */
    List<XpQualificationAuditVO> pageList(@Param("pageInfo") PageInfo<XpQualificationAuditVO> pageInfo, @Param("query")XpQualificationAuditQuery query);
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/model/dto/QualificationReviewDTO.java
New file
@@ -0,0 +1,20 @@
package com.xiaopeng.account.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
@ApiModel(value = "资质审核DTO", description = "资质审核DTO")
public class QualificationReviewDTO implements Serializable {
    @ApiModelProperty(value = "资质审核id集合")
    private List<Long> ids;
    @ApiModelProperty(value = "审核状态 1待审核 2审核通过 3审核驳回")
    private Integer auditStatus;
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/model/query/XpQualificationAuditQuery.java
New file
@@ -0,0 +1,24 @@
package com.xiaopeng.account.model.query;
import com.xiaopeng.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "资质审核记录查询参数XpQualificationAuditQuery")
public class XpQualificationAuditQuery extends BasePage {
    @ApiModelProperty(value = "员工姓名")
    private String nickName;
    @ApiModelProperty(value = "联系电话")
    private String phoneNumber;
    @ApiModelProperty(value = "角色id")
    private Long roleId;
    @ApiModelProperty(value = "审核状态 1待审核 2审核通过 3审核驳回")
    private Integer auditStatus;
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpQualificationAuditService.java
@@ -1,7 +1,11 @@
package com.xiaopeng.account.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.account.model.dto.QualificationReviewDTO;
import com.xiaopeng.account.model.query.XpQualificationAuditQuery;
import com.xiaopeng.api.model.account.XpQualificationAudit;
import com.xiaopeng.api.vo.account.XpQualificationAuditVO;
import com.xiaopeng.common.core.web.page.PageInfo;
/**
 * <p>
@@ -13,4 +17,20 @@
 */
public interface IXpQualificationAuditService extends IService<XpQualificationAudit> {
    /**
     * 管理后台-综合审核-人员资质审核
     *
     * @param query 查询参数
     * @return 列表
     */
    PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query);
    /**
     * 管理后台-综合审核-人员资质审核
     *
     * @param dto 参数
     * @param userid 用户id
     */
    void audit(QualificationReviewDTO dto, Long userid);
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
@@ -1,10 +1,31 @@
package com.xiaopeng.account.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaopeng.account.mapper.SysRoleMapper;
import com.xiaopeng.account.mapper.XpOperationsRoleMapper;
import com.xiaopeng.account.mapper.XpOperationsUserMapper;
import com.xiaopeng.account.mapper.XpQualificationAuditMapper;
import com.xiaopeng.account.model.dto.QualificationReviewDTO;
import com.xiaopeng.account.model.query.XpQualificationAuditQuery;
import com.xiaopeng.account.service.ISysRoleService;
import com.xiaopeng.account.service.IXpQualificationAuditService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.model.account.SysRole;
import com.xiaopeng.api.model.account.XpOperationsRole;
import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.model.account.XpQualificationAudit;
import com.xiaopeng.api.vo.account.XpQualificationAuditVO;
import com.xiaopeng.common.core.web.page.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -17,4 +38,62 @@
@Service
public class XpQualificationAuditServiceImpl extends ServiceImpl<XpQualificationAuditMapper, XpQualificationAudit> implements IXpQualificationAuditService {
    @Autowired
    private XpOperationsRoleMapper xpOperationsRoleMapper;
    @Autowired
    private SysRoleMapper sysRoleMapper;
    @Override
    public PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query) {
        PageInfo<XpQualificationAuditVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<XpQualificationAuditVO> list = this.baseMapper.pageList(pageInfo, query);
        if(CollectionUtils.isEmpty(list)){
            return pageInfo;
        }
        // 查询角色名称
        List<Long> operationsUserIds = list.stream().map(XpQualificationAuditVO::getOperationsUserId).collect(Collectors.toList());
        // 查询用户信息
        List<XpOperationsRole> xpOperationsRoles = xpOperationsRoleMapper.selectList(Wrappers.lambdaQuery(XpOperationsRole.class)
                .in(XpOperationsRole::getOperationsUserId, operationsUserIds));
        if(!CollectionUtils.isEmpty(xpOperationsRoles)){
            List<Long> roleIds = xpOperationsRoles.stream().map(XpOperationsRole::getRoleId).collect(Collectors.toList());
            // 查询列表关联的所有角色
            List<SysRole> sysRoles = sysRoleMapper.selectList(Wrappers.lambdaQuery(SysRole.class)
                    .in(SysRole::getId, roleIds));
            if(!CollectionUtils.isEmpty(sysRoles)){
                // 角色匹配账号id
                Map<Long, List<SysRole>> map = new HashMap<>();
                for (XpOperationsRole xpOperationsRole : xpOperationsRoles) {
                    List<SysRole> sysRoleList = sysRoles.stream().filter(sysRole -> sysRole.getId().equals(xpOperationsRole.getRoleId())).collect(Collectors.toList());
                    map.put(xpOperationsRole.getOperationsUserId(), sysRoleList);
                }
                // 角色名称匹配
                for (XpQualificationAuditVO xpQualificationAuditVO : list) {
                    map.get(xpQualificationAuditVO.getOperationsUserId()).forEach(sysRole -> {
                        xpQualificationAuditVO.getRoleNames().add(sysRole.getRoleName());
                    });
                }
            }
        }
        pageInfo.setRecords(list);
        return pageInfo;
    }
    @Override
    public void audit(QualificationReviewDTO dto, Long userid) {
        List<XpQualificationAudit> qualificationAudits = this.listByIds(dto.getIds());
        for (XpQualificationAudit qualificationAudit : qualificationAudits) {
            qualificationAudit.setAuditUserId(userid);
            qualificationAudit.setAuditTime(LocalDateTime.now());
            qualificationAudit.setAuditStatus(dto.getAuditStatus());
//        qualificationAudit.setAuditRemarks(dto.getAuditRemarks());
        }
        this.updateBatchById(qualificationAudits);
    }
}
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpQualificationAuditMapper.xml
@@ -6,5 +6,30 @@
    <sql id="Base_Column_List">
        id, operations_user_id, id_card_front, id_card_back, driver_license, certificate_of_no_criminal_record, training_graduation_certificate, audit_user_id, audit_time, audit_status, is_deleted, create_time, update_time, create_by, update_by
    </sql>
    <select id="pageList" resultType="com.xiaopeng.api.vo.account.XpQualificationAuditVO">
        select xqa.id, xqa.operations_user_id, xqa.id_card_front, xqa.id_card_back, xqa.driver_license,
        xqa.certificate_of_no_criminal_record, xqa.training_graduation_certificate,
        xqa.audit_user_id, xqa.audit_time, xqa.audit_status, xqa.create_time,
        xou.nick_name, xou.phone_number, xou.avatar,xou.unique_number
        from xp_qualification_audit xqa
        left join xp_operations_user xou on xqa.operations_user_id = xou.id
        left join xp_operations_role xor on xou.id = xor.operations_user_id
        <where>
            <if test="query.nickName != null and query.nickName != ''">
                and xou.nick_name like concat('%',#{query.nickName},'%')
            </if>
            <if test="query.phoneNumber != null and query.phoneNumber != ''">
                and xou.phone_number like concat('%',#{query.phoneNumber},'%')
            </if>
            <if test="query.roleId != null">
                and xor.role_id = #{query.roleId}
            </if>
            <if test="query.auditStatus != null">
                and xqa.audit_status = #{query.auditStatus}
            </if>
            AND xqa.is_deleted = 0
        </where>
        order by xqa.create_time desc
    </select>
</mapper>
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/account/XpQualificationAuditVO.java
New file
@@ -0,0 +1,28 @@
package com.xiaopeng.api.vo.account;
import com.xiaopeng.api.model.account.XpQualificationAudit;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "运维人员资质证书审核记录XpQualificationAuditVO", description = "运维人员资质证书审核记录VO")
public class XpQualificationAuditVO extends XpQualificationAudit {
    @ApiModelProperty(value = "员工姓名")
    private String nickName;
    @ApiModelProperty(value = "联系电话")
    private String phoneNumber;
    @ApiModelProperty(value = "角色名称")
    private List<String> roleNames;
    @ApiModelProperty(value = "头像")
    private String avatar;
    @ApiModelProperty(value = "唯一编号")
    private String uniqueNumber;
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java
@@ -3,15 +3,16 @@
import com.xiaopeng.api.model.maintenance.XpCheckLocation;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.enums.DisabledEnum;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.common.security.service.TokenService;
import com.xiaopeng.maintenance.dto.LocationUpdateStatusDTO;
import com.xiaopeng.maintenance.model.query.XpCheckLocationQuery;
import com.xiaopeng.maintenance.service.IXpCheckLocationService;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Lazy;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -46,4 +47,41 @@
        return R.ok(xpCheckLocationService.queryByUserId(id));
    }
    @PostMapping("/api/v1/check-location/pageList")
    @ApiOperation(value = "获取打卡地址分页列表", tags = {"管理后台-运维执行"})
    public  R<PageInfo<XpCheckLocation>> pageList(@RequestBody XpCheckLocationQuery query){
        PageInfo<XpCheckLocation> pageList = xpCheckLocationService.pageList(query);
        return R.ok(pageList);
    }
    @PostMapping("/api/v1/check-location/add")
    @ApiOperation(value = "新增打卡地", tags = {"管理后台-运维执行"})
    public  R<String> add(@RequestBody XpCheckLocation dto){
        xpCheckLocationService.save(dto);
        return R.ok();
    }
    @PostMapping("/api/v1/check-location/edit")
    @ApiOperation(value = "编辑打卡地", tags = {"管理后台-运维执行"})
    public  R<String> edit(@RequestBody XpCheckLocation dto){
        xpCheckLocationService.updateById(dto);
        return R.ok();
    }
    @DeleteMapping("/api/v1/check-location/deleteById")
    @ApiOperation(value = "删除打卡地", tags = {"管理后台-运维执行"})
    public  R<String> deleteById(@RequestParam Long id){
        xpCheckLocationService.removeById(id);
        return R.ok();
    }
    @PostMapping("/api/v1/check-location/updateStatus")
    @ApiOperation(value = "启用禁用打卡地", tags = {"管理后台-运维执行"})
    public  R<String> updateStatus(@RequestBody LocationUpdateStatusDTO dto){
        XpCheckLocation xpCheckLocation = xpCheckLocationService.getById(dto.getId());
        xpCheckLocation.setStatus(dto.getStatus());
        xpCheckLocationService.updateById(xpCheckLocation);
        return R.ok();
    }
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpVehicleRepairController.java
@@ -44,17 +44,7 @@
    public R<String> saveRepair(@RequestBody XpVehicleRepairStartDTO dto) {
        Long id = tokenService.getLoginOperationUser().getId();
        // 创建车辆维修记录
        XpVehicleRepair xpVehicleRepair = new XpVehicleRepair();
        xpVehicleRepair.setVehicleId(dto.getVehicleId());
        xpVehicleRepair.setStartTime(dto.getStartTime());
        xpVehicleRepair.setEndTime(dto.getEndTime());
        xpVehicleRepair.setRepairReason(dto.getRepairReason());
        xpVehicleRepair.setStartRepairPicture(dto.getStartRepairPicture());
        xpVehicleRepair.setSendUserId(id);
        xpVehicleRepair.setSendTime(LocalDateTime.now());
        xpVehicleRepairService.save(xpVehicleRepair);
        xpVehicleRepairService.saveRepair(dto,id);
        return R.ok();
    }
    /**
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/dto/LocationUpdateStatusDTO.java
New file
@@ -0,0 +1,19 @@
package com.xiaopeng.maintenance.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@ApiModel(value = "打卡地址更新状态LocationUpdateStatusDTO", description = "打卡地址更新状态DTO")
public class LocationUpdateStatusDTO implements Serializable {
    @ApiModelProperty(value = "打卡地址ID")
    private Long id;
    @ApiModelProperty(value = "打卡地址状态 1=启用 0=禁用")
    private Integer status;
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/mapper/XpCheckLocationMapper.java
@@ -2,6 +2,11 @@
import com.xiaopeng.api.model.maintenance.XpCheckLocation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.maintenance.model.query.XpCheckLocationQuery;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
@@ -13,4 +18,12 @@
 */
public interface XpCheckLocationMapper extends BaseMapper<XpCheckLocation> {
    /**
     * 获取打卡地址列表
     *
     * @param pageInfo
     * @param query
     * @return
     */
    List<XpCheckLocation> pageList(@Param("pageInfo")PageInfo<XpCheckLocation> pageInfo, @Param("query") XpCheckLocationQuery query);
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/model/query/XpCheckLocationQuery.java
New file
@@ -0,0 +1,15 @@
package com.xiaopeng.maintenance.model.query;
import com.xiaopeng.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "车辆打卡地址分页查询参数XpCheckLocationQuery")
public class XpCheckLocationQuery extends BasePage {
    @ApiModelProperty(value = "打卡地址")
    private String locationAddress;
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpCheckLocationService.java
@@ -2,6 +2,8 @@
import com.xiaopeng.api.model.maintenance.XpCheckLocation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.maintenance.model.query.XpCheckLocationQuery;
/**
 * <p>
@@ -20,4 +22,12 @@
     * @return
     */
    XpCheckLocation queryByUserId(Long id);
    /**
     * 打卡地址分页列表
     *
     * @param query
     * @return
     */
    PageInfo<XpCheckLocation> pageList(XpCheckLocationQuery query);
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/IXpVehicleRepairService.java
@@ -3,6 +3,7 @@
import com.xiaopeng.api.model.maintenance.XpVehicleRepair;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.maintenance.dto.XpVehicleRepairStartDTO;
import com.xiaopeng.maintenance.model.query.XpVehicleRepairPageQuery;
import com.xiaopeng.maintenance.model.vo.XpVehicleRepairVO;
import com.xiaopeng.maintenance.vo.RepairStatusVO;
@@ -41,4 +42,12 @@
     * @return
     */
    RepairStatusVO queryRepairStatus(Long vehicleId);
    /**
     * 保存车辆维修信息
     *
     * @param dto
     * @param id
     */
    void saveRepair(XpVehicleRepairStartDTO dto, Long id);
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpCheckLocationServiceImpl.java
@@ -2,15 +2,25 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient;
import com.xiaopeng.api.model.account.SysRole;
import com.xiaopeng.api.model.account.XpOperationsRole;
import com.xiaopeng.api.model.maintenance.XpCheckLocation;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.vo.account.XpQualificationAuditVO;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.maintenance.mapper.XpCheckLocationMapper;
import com.xiaopeng.maintenance.model.query.XpCheckLocationQuery;
import com.xiaopeng.maintenance.service.IXpCheckLocationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * <p>
@@ -33,4 +43,12 @@
        }
        return this.getById(xpFleet.getLocationId());
    }
    @Override
    public PageInfo<XpCheckLocation> pageList(XpCheckLocationQuery query) {
        PageInfo<XpCheckLocation> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<XpCheckLocation> list = this.baseMapper.pageList(pageInfo, query);
        pageInfo.setRecords(list);
        return pageInfo;
    }
}
xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/service/impl/XpVehicleRepairServiceImpl.java
@@ -11,6 +11,7 @@
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.web.page.PageInfo;
import com.xiaopeng.maintenance.dto.XpVehicleRepairStartDTO;
import com.xiaopeng.maintenance.mapper.XpVehicleRepairMapper;
import com.xiaopeng.maintenance.model.query.XpVehicleRepairPageQuery;
import com.xiaopeng.maintenance.model.vo.XpVehicleRepairVO;
@@ -23,6 +24,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -198,4 +200,18 @@
        return repairStatusVO;
    }
    @Override
    public void saveRepair(XpVehicleRepairStartDTO dto, Long id) {
        // 创建车辆维修记录
        XpVehicleRepair xpVehicleRepair = new XpVehicleRepair();
        xpVehicleRepair.setVehicleId(dto.getVehicleId());
        xpVehicleRepair.setStartTime(dto.getStartTime());
        xpVehicleRepair.setEndTime(dto.getEndTime());
        xpVehicleRepair.setRepairReason(dto.getRepairReason());
        xpVehicleRepair.setStartRepairPicture(dto.getStartRepairPicture());
        xpVehicleRepair.setSendUserId(id);
        xpVehicleRepair.setSendTime(LocalDateTime.now());
        this.save(xpVehicleRepair);
    }
}
xp-robotaxi-maintenance-boot/src/main/resources/mapper/maintenance/XpCheckLocationMapper.xml
@@ -2,4 +2,15 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xiaopeng.maintenance.mapper.XpCheckLocationMapper">
    <select id="pageList" resultType="com.xiaopeng.api.model.maintenance.XpCheckLocation">
        select id,location_address,location_range,location_lon,location_lat,status,create_time
        from xp_check_location
        <where>
            <if test="query.locationAddress != null and query.locationAddress != ''">
                and location_address like concat('%',#{query.locationAddress},'%')
            </if>
            AND is_deleted = 0
        </where>
        order by create_time desc
    </select>
</mapper>