package com.yuanchu.mom.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.annotation.ValueAuth;
import com.yuanchu.mom.annotation.ValueClassify;
import com.yuanchu.mom.dto.DeviceExaminePlanDto;
import com.yuanchu.mom.dto.DeviceExamineRecordContrastDto;
import com.yuanchu.mom.dto.DeviceExamineRecordDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.pojo.DeviceExaminePlan;
import com.yuanchu.mom.pojo.DeviceExaminePlanDetails;
import com.yuanchu.mom.service.DeviceExaminePlanDetailsService;
import com.yuanchu.mom.service.DeviceExaminePlanService;
import com.yuanchu.mom.service.DeviceExamineRecordContrastService;
import com.yuanchu.mom.service.DeviceExamineRecordService;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
*
* 设备核查计划主表 前端控制器
*
*
* @author 江苏鵷雏网络科技有限公司
* @since 2024-12-16 07:14:04
*/
@Api(tags = "设备核查计划")
@AllArgsConstructor
@RestController
@RequestMapping("/deviceExaminePlan")
public class DeviceExaminePlanController {
private DeviceExaminePlanService deviceExaminePlanService;
private DeviceExaminePlanDetailsService deviceExaminePlanDetailsService;
private DeviceExamineRecordService deviceExamineRecordService;
private DeviceExamineRecordContrastService deviceExamineRecordContrastService;
/**
* 新增设备核查计划
* @return
*/
@ApiOperation(value = "新增设备核查计划")
@PostMapping("/addDeviceExaminePlan")
public Result addDeviceExaminePlan(@RequestBody DeviceExaminePlanDto examinePlanDto){
return Result.success(deviceExaminePlanService.addDeviceExaminePlan(examinePlanDto));
}
/**
* 导入设备核查计划
* @return
*/
@ApiOperation(value = "导入设备核查计划")
@PostMapping("/importDeviceExaminePlan")
public Result importDeviceExaminePlan(MultipartFile file){
return Result.success(deviceExaminePlanService.importDeviceExaminePlan(file));
}
/**
* 设备核查计划删除
* @return
*/
@ApiOperation(value = "设备核查计划删除")
@GetMapping("/delQualitySupervise")
public Result delQualitySupervise(Integer planId){
return Result.success(deviceExaminePlanService.removeById(planId));
}
/**
* 设备核查计划批准
* @return
*/
@ValueClassify("质量设备核查计划")
@ApiOperation(value = "设备核查计划批准")
@PostMapping("/ratifyDeviceExaminePlan")
public Result ratifyDeviceExaminePlan(@RequestBody DeviceExaminePlan DeviceExaminePlan){
return Result.success(deviceExaminePlanService.ratifyDeviceExaminePlan(DeviceExaminePlan));
}
/**
* 设备核查计划列表
* @param data
* @return
*/
@ApiOperation(value = "设备核查计划列表")
@PostMapping("/pageDeviceExaminePlan")
public Result> pageDeviceExaminePlan(@RequestBody Map data) throws Exception {
Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
DeviceExaminePlan DeviceExaminePlan = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceExaminePlan.class);
return Result.success(deviceExaminePlanService.pageDeviceExaminePlan(page, DeviceExaminePlan));
}
/**
* 设备核查计划详情列表
* @param data
* @return
*/
@ApiOperation(value = "设备核查计划详情列表")
@PostMapping("/pageDeviceExaminePlanDetail")
public Result> pageDeviceExaminePlanDetail(@RequestBody Map data) throws Exception {
Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
DeviceExaminePlanDetails deviceExaminePlanDetails = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), DeviceExaminePlanDetails.class);
return Result.success(deviceExaminePlanService.pageDeviceExaminePlanDetail(page, deviceExaminePlanDetails));
}
/**
* 新增设备核查计划详情
* @return
*/
@ApiOperation(value = "新增设备核查计划详情")
@PostMapping("/addDeviceExaminePlanDetail")
public Result addDeviceExaminePlanDetail(@RequestBody DeviceExaminePlanDetails deviceExaminePlanDetail){
if (deviceExaminePlanDetail.getPlanId() == null) {
throw new ErrorException("缺少设备核查计划主表id");
}
return Result.success(deviceExaminePlanDetailsService.save(deviceExaminePlanDetail));
}
/**
* 修改设备核查计划详情
* @return
*/
@ApiOperation(value = "修改设备核查计划详情")
@PostMapping("/updateDeviceExaminePlanDetail")
public Result updateDeviceExaminePlanDetail(@RequestBody DeviceExaminePlanDetails deviceExaminePlanDetail){
return Result.success(deviceExaminePlanDetailsService.updateById(deviceExaminePlanDetail));
}
/**
* 删除设备核查计划详情
* @return
*/
@ApiOperation(value = "删除设备核查计划详情")
@GetMapping("/delDeviceExaminePlanDetail")
public Result delDeviceExaminePlanDetail(Integer planDetailsId){
return Result.success(deviceExaminePlanDetailsService.removeById(planDetailsId));
}
/**
* 导出设备核查计划
* @param planId 设备核查计划id
* @return
*/
@ApiOperation(value = "导出设备核查计划")
@GetMapping("/exportDeviceExaminePlanDetail")
public void exportDeviceExaminePlanDetail(Integer planId, HttpServletResponse response){
deviceExaminePlanService.exportDeviceExaminePlanDetail(planId, response);
}
/*********************************************** 报告 **************************************************/
/**
* 查询核查记录
* @return
*/
@ApiOperation(value = "查询核查记录")
@GetMapping("/getExamineRecord")
public Result getExamineRecord(Integer planDetailsId){
return Result.success(deviceExamineRecordService.getExamineRecord(planDetailsId));
}
/**
* 新增核查记录
* @return
*/
@ApiOperation(value = "新增核查记录")
@PostMapping("/addExamineRecord")
public Result addExamineRecord(@RequestBody DeviceExamineRecordDto deviceExamineRecordDto){
return Result.success(deviceExamineRecordService.addExamineRecord(deviceExamineRecordDto));
}
/**
* 复核核查记录
* @return
*/
@ApiOperation(value = "复核核查记录")
@PostMapping("/reviewExamineRecord")
public Result reviewExamineRecord(@RequestBody DeviceExamineRecordDto deviceExamineRecordDto){
return Result.success(deviceExamineRecordService.reviewExamineRecord(deviceExamineRecordDto));
}
/**
* 导出复核核查记录
* @param planDetailsId
* @return
*/
@ValueAuth
@ApiOperation(value = "导出复核核查记录")
@GetMapping("/exportReviewExamineRecordDetail")
public void exportReviewExamineRecordDetail(Integer planDetailsId, HttpServletResponse response){
deviceExamineRecordService.exportReviewExamineRecordDetail(planDetailsId, response);
}
/*********************************************** 报告对比 **************************************************/
/**
* 查询核查对比记录
* @return
*/
@ApiOperation(value = "查询核查对比记录")
@GetMapping("/getExamineRecordContrast")
public Result getExamineRecordContrast(Integer planDetailsId){
return Result.success(deviceExamineRecordContrastService.getExamineRecordContrast(planDetailsId));
}
/**
* 新增核查对比记录
* @return
*/
@ApiOperation(value = "新增核查对比记录")
@PostMapping("/addExamineRecordContrast")
public Result addExamineRecordContrast(@RequestBody DeviceExamineRecordContrastDto deviceExamineRecordContrastDto){
return Result.success(deviceExamineRecordContrastService.addExamineRecordContrast(deviceExamineRecordContrastDto));
}
/**
* 审核核查对比记录
* @return
*/
@ApiOperation(value = "审核核查对比记录")
@PostMapping("/reviewExamineRecordContrast")
public Result reviewExamineRecordContrast(@RequestBody DeviceExamineRecordContrastDto deviceExamineRecordContrastDto){
return Result.success(deviceExamineRecordContrastService.reviewExamineRecordContrast(deviceExamineRecordContrastDto));
}
/**
* 导出审核核查对比记录
* @param planDetailsId
* @return
*/
@ValueAuth
@ApiOperation(value = "导出审核核查对比记录")
@GetMapping("/exportReviewExamineRecordContrast")
public Result exportReviewExamineRecordContrast(Integer planDetailsId, HttpServletResponse response){
deviceExamineRecordContrastService.exportReviewExamineRecordContrast(planDetailsId, response);
return Result.success();
}
}