| | |
| | | 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 |
| | |
| | | @RequiredArgsConstructor(onConstructor_ = @Lazy) |
| | | public class XpCheckLocationController { |
| | | private final IXpCheckLocationService xpCheckLocationService; |
| | | private final XpFleetClient xpFleetClient; |
| | | private final TokenService tokenService; |
| | | |
| | | @GetMapping("/api/v1/check-location/list") |
| | |
| | | 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("/api/v1/check-location/queryByUserId") |
| | | @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(); |
| | | } |
| | | |
| | | } |