| 
					
				 | 
			
			
				@@ -0,0 +1,119 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.qmrb.system.controller; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Arrays; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.pojo.dto.ApplyInvoiceDTO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springdoc.core.annotations.ParameterObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.security.access.prepost.PreAuthorize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.validation.annotation.Validated; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.CrossOrigin; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.DeleteMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.GetMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.PathVariable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.PostMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.PutMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RequestBody; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.v3.oas.annotations.Operation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.v3.oas.annotations.Parameter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.v3.oas.annotations.security.SecurityRequirement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.swagger.v3.oas.annotations.tags.Tag; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.common.result.PageResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.common.result.Result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.common.result.ResultCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.framework.resubmit.Resubmit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.service.IParkingInvoiceRelationService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.pojo.form.ParkingInvoiceRelationForm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.pojo.vo.ParkingInvoiceRelationVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.pojo.query.ParkingInvoiceRelationQuery; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.qmrb.system.pojo.vo.Option; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hutool.core.util.StrUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.web.bind.annotation.RestController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import jakarta.validation.Valid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * <p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 停车记录与发票抬头关系表 前端控制器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * </p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author gs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @since 2025-04-07 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Tag(name = "停车记录与发票抬头关系表接口") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@RequestMapping("/api/v1/invoice_relation") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@CrossOrigin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class ParkingInvoiceRelationController{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IParkingInvoiceRelationService parkingInvoiceRelationService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@Operation(summary = "停车记录与发票抬头关系表分页列表", security = {@SecurityRequirement(name = "Authorization")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/page") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public PageResult<ParkingInvoiceRelationVO> getPage( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @ParameterObject ParkingInvoiceRelationQuery queryParams 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Page<ParkingInvoiceRelationVO> result = parkingInvoiceRelationService.getPage(queryParams); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return PageResult.success(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Operation(summary = "新增停车记录与发票抬头关系表", security = {@SecurityRequirement(name = "Authorization")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resubmit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Result<ParkingInvoiceRelationForm> saveForm( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @RequestBody @Valid ParkingInvoiceRelationForm form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ParkingInvoiceRelationForm result = parkingInvoiceRelationService.saveForm(form); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Result.success(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Operation(summary = "新增订单记录与发票抬头关系表", security = {@SecurityRequirement(name = "Authorization")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PostMapping("/saveFormByOrderId") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resubmit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Result<?> saveFormByOrderId( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @RequestBody @Valid ApplyInvoiceDTO dto 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<ParkingInvoiceRelationForm> result = parkingInvoiceRelationService.saveFormByOrderId(dto); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Result.success(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Operation(summary = "停车记录与发票抬头关系表表单数据", security = {@SecurityRequirement(name = "Authorization")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @GetMapping("/{id}/form") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Result<ParkingInvoiceRelationForm> getForm( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Parameter(description = "停车记录与发票抬头关系表ID") @PathVariable Long id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	ParkingInvoiceRelationForm formData = parkingInvoiceRelationService.getFormData(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Result.success(formData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Operation(summary = "修改停车记录与发票抬头关系表", security = {@SecurityRequirement(name = "Authorization")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @PutMapping(value = "/{id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Result<?> updateForm( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Parameter(description = "停车记录与发票抬头关系表ID") @PathVariable Long id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @RequestBody @Validated ParkingInvoiceRelationForm form) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = parkingInvoiceRelationService.updateForm(id,form); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Result.judge(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Operation(summary = "删除停车记录与发票抬头关系表", security = {@SecurityRequirement(name = "Authorization")}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @DeleteMapping("/{ids}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Result<?> deleteUsers( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Parameter(description = "停车记录与发票抬头关系表ID,多个以英文逗号(,)分割") @PathVariable String ids 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	if(StrUtil.isBlank(ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    		 return Result.failed(ResultCode.PARAM_ERROR, "删除的停车记录与发票抬头关系表数据为空"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 逻辑删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Long> idList = Arrays.asList(ids.split(",")).stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .map(idStr -> Long.parseLong(idStr)).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = parkingInvoiceRelationService.removeByIds(idList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Result.judge(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |