Files
invyone/backend-spring/src/main/java/com/erp/controller/DeliveryController.java
T

69 lines
2.6 KiB
Java

package com.erp.controller;
import com.erp.dto.ApiResponse;
import com.erp.service.DeliveryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api/delivery")
@Slf4j
public class DeliveryController {
@Autowired private DeliveryService deliveryService;
@GetMapping("/status")
public ResponseEntity<ApiResponse<Map<String, Object>>> getDeliveryStatus(
@RequestAttribute("companyCode") String companyCode) {
Map<String, Object> params = new HashMap<>();
params.put("companyCode", companyCode);
return ResponseEntity.ok(ApiResponse.success(deliveryService.getDeliveryStatus(params)));
}
@GetMapping("/delayed")
public ResponseEntity<ApiResponse<List<Map<String, Object>>>> getDelayedDeliveries(
@RequestAttribute("companyCode") String companyCode) {
Map<String, Object> params = new HashMap<>();
params.put("companyCode", companyCode);
return ResponseEntity.ok(ApiResponse.success(deliveryService.getDelayedDeliveries(params)));
}
@GetMapping("/issues")
public ResponseEntity<ApiResponse<List<Map<String, Object>>>> getCustomerIssues(
@RequestAttribute("companyCode") String companyCode,
@RequestParam(required = false) String status) {
Map<String, Object> params = new HashMap<>();
params.put("companyCode", companyCode);
if (status != null) params.put("status", status);
return ResponseEntity.ok(ApiResponse.success(deliveryService.getCustomerIssues(params)));
}
@PutMapping("/{id}/status")
public ResponseEntity<ApiResponse<Void>> updateDeliveryStatus(
@RequestAttribute("companyCode") String companyCode,
@PathVariable String id,
@RequestBody Map<String, Object> body) {
body.put("companyCode", companyCode);
body.put("id", id);
deliveryService.updateDeliveryStatus(body);
return ResponseEntity.ok(ApiResponse.success(null));
}
@PutMapping("/issues/{id}/status")
public ResponseEntity<ApiResponse<Void>> updateIssueStatus(
@RequestAttribute("companyCode") String companyCode,
@PathVariable String id,
@RequestBody Map<String, Object> body) {
body.put("companyCode", companyCode);
body.put("id", id);
deliveryService.updateIssueStatus(body);
return ResponseEntity.ok(ApiResponse.success(null));
}
}