package com.emergencyrepair.business.controller;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.emergencyrepair.business.dto.Requests;
|
import com.emergencyrepair.business.entity.Fault;
|
import com.emergencyrepair.business.entity.WorkOrder;
|
import com.emergencyrepair.business.service.BusinessService;
|
import com.emergencyrepair.common.Result;
|
import lombok.RequiredArgsConstructor;
|
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 org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.format.annotation.DateTimeFormat;
|
|
import java.time.LocalDate;
|
import java.util.List;
|
|
@RestController
|
@RequestMapping("/api/faults")
|
@RequiredArgsConstructor
|
public class FaultController {
|
private final BusinessService businessService;
|
|
@GetMapping("/page")
|
public Result<Page<Fault>> page(@RequestParam(defaultValue = "1") long current,
|
@RequestParam(defaultValue = "20") long size,
|
@RequestParam(required = false) String status,
|
@RequestParam(required = false) String keyword,
|
@RequestParam(required = false) String xNo,
|
@RequestParam(required = false) String teamMajor,
|
@RequestParam(required = false) String engineeringMajor,
|
@RequestParam(required = false) String reportUnit,
|
@RequestParam(required = false) String owner,
|
@RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate reportDateStart,
|
@RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate reportDateEnd,
|
@RequestParam(required = false) String contractorName,
|
@RequestParam(required = false) String faultNature) {
|
return Result.ok(businessService.pageFaults(status, keyword, xNo, teamMajor, engineeringMajor,
|
reportUnit, owner, reportDateStart, reportDateEnd, contractorName, faultNature, current, size));
|
}
|
|
@GetMapping
|
public Result<List<Fault>> list(@RequestParam(required = false) String status,
|
@RequestParam(required = false) String keyword,
|
@RequestParam(required = false) String xNo,
|
@RequestParam(required = false) String teamMajor,
|
@RequestParam(required = false) String engineeringMajor,
|
@RequestParam(required = false) String reportUnit,
|
@RequestParam(required = false) String owner,
|
@RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate reportDateStart,
|
@RequestParam(required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate reportDateEnd,
|
@RequestParam(required = false) String contractorName,
|
@RequestParam(required = false) String faultNature) {
|
return Result.ok(businessService.listFaults(status, keyword, xNo, teamMajor, engineeringMajor,
|
reportUnit, owner, reportDateStart, reportDateEnd, contractorName, faultNature));
|
}
|
|
@PostMapping
|
public Result<Fault> create(@RequestBody Fault fault) {
|
fault.setId(null);
|
return Result.ok(businessService.saveFault(fault));
|
}
|
|
@PutMapping("/{id}")
|
public Result<Fault> update(@PathVariable Long id, @RequestBody Fault fault) {
|
fault.setId(id);
|
return Result.ok(businessService.saveFault(fault));
|
}
|
|
@DeleteMapping("/{id}")
|
public Result<Void> delete(@PathVariable Long id) {
|
businessService.deleteFault(id);
|
return Result.ok();
|
}
|
|
@PostMapping("/cancel")
|
public Result<Void> cancel(@RequestBody Requests.CancelRequest request) {
|
businessService.cancelFaults(request);
|
return Result.ok();
|
}
|
|
@PostMapping("/report")
|
public Result<Void> report(@RequestBody Requests.IdList request) {
|
businessService.reportFaults(request.getIds());
|
return Result.ok();
|
}
|
|
@PostMapping("/review")
|
public Result<Void> review(@RequestBody Requests.ReviewRequest request) {
|
businessService.xcbReview(request);
|
return Result.ok();
|
}
|
|
@PostMapping("/approve")
|
public Result<Void> approve(@RequestBody Requests.ApprovalRequest request) {
|
businessService.approve(request);
|
return Result.ok();
|
}
|
|
@GetMapping("/dispatchable")
|
public Result<List<Fault>> dispatchable(@RequestParam(required = false) String keyword) {
|
return Result.ok(businessService.listFaults("JCC_DIRECTOR_APPROVED", keyword));
|
}
|
|
@PostMapping("/dispatch")
|
public Result<List<WorkOrder>> dispatch(@RequestBody Requests.DispatchRequest request) {
|
return Result.ok(businessService.dispatch(request));
|
}
|
}
|