From c96fbe6b0aeb413a17c429133ee6d81d138144b9 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 09 六月 2026 10:58:52 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 100 insertions(+), 4 deletions(-)

diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java
index 27cd985..56c7fd2 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/controller/XpCheckLocationController.java
@@ -1,18 +1,29 @@
 package com.xiaopeng.maintenance.controller;
 
+import cn.hutool.core.collection.CollUtil;
+import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient;
 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.log.annotation.AdminOperationLog;
+import com.xiaopeng.common.log.enums.AdminBusinessType;
+import com.xiaopeng.common.log.enums.AdminOperationType;
+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.ArrayList;
 import java.util.List;
+import com.xiaopeng.common.log.annotation.AdminOperationLog;
+import com.xiaopeng.common.log.enums.AdminBusinessType;
+import com.xiaopeng.common.log.enums.AdminOperationType;
 
 /**
  * @author MiTao
@@ -24,6 +35,8 @@
 @RequiredArgsConstructor(onConstructor_ = @Lazy)
 public class XpCheckLocationController {
     private final IXpCheckLocationService xpCheckLocationService;
+    private final XpFleetClient xpFleetClient;
+    private final TokenService tokenService;
 
     @GetMapping("/api/v1/check-location/list")
     @ApiOperation(value = "获取打卡地址列表", tags = {"管理后台-车队管理"})
@@ -31,9 +44,92 @@
         return R.ok(xpCheckLocationService.lambdaQuery().eq(XpCheckLocation::getStatus, DisabledEnum.YES.getCode()).list());
     }
 
-    @GetMapping("/inner/check-location/queryById")
+    @GetMapping("/logan/inner/check-location/queryById")
     @ApiOperation(value = "根据ID查询打卡地址", tags = {"内部接口"})
     public R<XpCheckLocation> queryById(@RequestParam Long id) {
         return R.ok(xpCheckLocationService.getById(id));
     }
+
+    @PostMapping("/logan/inner/check-location/listByIds")
+    @ApiOperation(value = "根据ID列表批量查询打卡地址", tags = {"内部接口"})
+    public R<List<XpCheckLocation>> listByIds(@RequestBody List<Long> ids) {
+        if (CollUtil.isEmpty(ids)) {
+            return R.ok(new ArrayList<>());
+        }
+        return R.ok(xpCheckLocationService.listByIds(ids));
+    }
+
+    @ApiOperation(value = "根据ID查询打卡地址", tags = {"运维APP-排班与考勤"})
+    @GetMapping("/maintenance-app/api/v1/check-location/queryByUserId")
+    public R<XpCheckLocation> queryByUserId() {
+        Long id = tokenService.getLoginOperationUser().getId();
+        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 = {"管理后台-运维执行"})
+    @AdminOperationLog(
+            businessType = AdminBusinessType.CHECK_LOCATION_MANAGEMENT,
+            operationType = AdminOperationType.ADD,
+            content = "新增打卡地点",
+            appendRequestData = true
+    )
+    public  R<String> add(@RequestBody XpCheckLocation dto){
+        xpCheckLocationService.save(dto);
+        return R.ok();
+    }
+
+    @PostMapping("/api/v1/check-location/edit")
+    @ApiOperation(value = "编辑打卡地", tags = {"管理后台-运维执行"})
+    @AdminOperationLog(
+            businessType = AdminBusinessType.CHECK_LOCATION_MANAGEMENT,
+            operationType = AdminOperationType.EDIT,
+            content = "编辑打卡地点",
+            appendRequestData = true
+    )
+    public  R<String> edit(@RequestBody XpCheckLocation dto){
+        xpCheckLocationService.updateById(dto);
+        return R.ok();
+    }
+
+    @DeleteMapping("/api/v1/check-location/deleteById")
+    @ApiOperation(value = "删除打卡地", tags = {"管理后台-运维执行"})
+    @AdminOperationLog(
+            businessType = AdminBusinessType.CHECK_LOCATION_MANAGEMENT,
+            operationType = AdminOperationType.DELETE,
+            contentExpression = "'删除打卡地点,id=' + #p0",
+            appendRequestData = false
+    )
+    public  R<String> deleteById(@RequestParam Long id){
+        // 判断打卡地是否已被使用
+        Long data = xpFleetClient.getUseCountByLocationId(id).getData();
+        if (data > 0) {
+            return R.fail("打卡地已被使用,请先解除关联");
+        }
+        xpCheckLocationService.removeById(id);
+        return R.ok();
+    }
+
+    @PostMapping("/api/v1/check-location/updateStatus")
+    @ApiOperation(value = "启用禁用打卡地", tags = {"管理后台-运维执行"})
+    @AdminOperationLog(
+            businessType = AdminBusinessType.CHECK_LOCATION_MANAGEMENT,
+            operationTypeExpression = "#p0.status == 1 ? T(com.xiaopeng.common.log.enums.AdminOperationType).ENABLE : T(com.xiaopeng.common.log.enums.AdminOperationType).DISABLE",
+            contentExpression = "(#p0.status == 1 ? '启用打卡地点,id=' : '禁用打卡地点,id=') + #p0.id",
+            appendRequestData = false
+    )
+    public  R<String> updateStatus(@RequestBody LocationUpdateStatusDTO dto){
+        XpCheckLocation xpCheckLocation = xpCheckLocationService.getById(dto.getId());
+        xpCheckLocation.setStatus(dto.getStatus());
+        xpCheckLocationService.updateById(xpCheckLocation);
+        return R.ok();
+    }
+
 }

--
Gitblit v1.7.1