package com.xiaopeng.vehicleConvoy.controller; import com.xiaopeng.common.core.domain.R; 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.vehicleConvoy.model.dto.XpPolicyApplicationAuditDTO; import com.xiaopeng.vehicleConvoy.model.query.XpPolicyApplicationQuery; import com.xiaopeng.vehicleConvoy.model.vo.QueryPolicyInfoVO; import com.xiaopeng.vehicleConvoy.model.vo.XpPolicyApplicationVO; import com.xiaopeng.vehicleConvoy.service.IXpPolicyApplicationService; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import com.xiaopeng.common.log.annotation.AdminOperationLog; import com.xiaopeng.common.log.enums.AdminBusinessType; import com.xiaopeng.common.log.enums.AdminOperationType; /** * @author MiTao * @date 2026-02-09 15:30 * */ @Slf4j @Validated @RestController @RequiredArgsConstructor public class XpPolicyApplicationController { private final IXpPolicyApplicationService xpPolicyApplicationService; private final TokenService tokenService; @ApiOperation("保单审核申请分页列表") @PostMapping("/api/v1/policyApplication/pageList") public R> pageList(@RequestBody XpPolicyApplicationQuery query) { PageInfo pageInfo = xpPolicyApplicationService.pageList(query); return R.ok(pageInfo); } @ApiOperation("批量审核") @PostMapping("/api/v1/policyApplication/batchAudit") @AdminOperationLog( businessType = AdminBusinessType.POLICY_APPLICATION, operationType = AdminOperationType.AUDIT, contentExpression = "'批量审核保单申请,ids=' + #p0.ids + ',auditStatus=' + #p0.auditStatus", appendRequestData = false ) public R batchAudit(@Valid @RequestBody XpPolicyApplicationAuditDTO dto) { xpPolicyApplicationService.batchAudit(dto); return R.ok(); } @ApiOperation("删除保单申请") @DeleteMapping("/api/v1/policyApplication/deleteById/{id}") @AdminOperationLog( businessType = AdminBusinessType.POLICY_APPLICATION, operationType = AdminOperationType.DELETE, contentExpression = "'删除保单申请,id=' + #p0", appendRequestData = false ) public R deleteById(@PathVariable Long id) { xpPolicyApplicationService.removeById(id); return R.ok(); } @ApiOperation(value = "申请保单查看", tags = {"运维APP-车辆管理"}) @GetMapping("/maintenance-app/api/v1/policyApplication/applyPolicyInformation") public R applyPolicyInformation(@RequestParam Long vehicleId) { Long id = tokenService.getLoginOperationUser().getId(); xpPolicyApplicationService.applyPolicyInformation(vehicleId,id); return R.ok(); } @ApiOperation(value = "通过车辆id查询保单审核明细", tags = {"运维APP-车辆管理"}) @GetMapping("/maintenance-app/api/v1/policyApplication/queryPolicyInfoByVid") public R queryPolicyInfoByVid(@RequestParam Long vehicleId) { Long id = tokenService.getLoginOperationUser().getId(); QueryPolicyInfoVO queryPolicyInfoVO = xpPolicyApplicationService.queryPolicyInfoByVid(vehicleId,id); return R.ok(queryPolicyInfoVO); } }