package com.ruoyi.device.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.approve.pojo.ApproveProcess; import com.ruoyi.approve.service.IApproveProcessService; import com.ruoyi.device.dto.DeviceRepairDto; import com.ruoyi.device.pojo.DeviceRepair; import com.ruoyi.device.service.IDeviceLedgerService; import com.ruoyi.device.service.IDeviceRepairService; import com.ruoyi.framework.web.domain.AjaxResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModelProperty; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.List; @Api(tags = "设备报修管理") @RequestMapping("/device/repair") @RestController public class DeviceRepairController { @Autowired private IDeviceRepairService deviceRepairService; @Autowired private IDeviceLedgerService deviceLedgerService; @Autowired private IApproveProcessService approveProcessService; @ApiModelProperty("设备报修列表") @GetMapping("/page") public AjaxResult page(Page page , DeviceRepairDto deviceRepairDto) { return AjaxResult.success(deviceRepairService.queryPage(page,deviceRepairDto)); } @PostMapping() @Transactional(rollbackFor = Exception.class) @ApiModelProperty("添加设备报修") public AjaxResult add( @RequestBody DeviceRepair deviceRepair) throws Exception { deviceRepairService.saveDeviceRepair(deviceRepair); // todo 前端代码不匹配,待处理 // ApproveProcessVO approveProcessVO = new ApproveProcessVO(); // LoginUser loginUser = SecurityUtils.getLoginUser(); // // 获取当前登录公司 // Long tenantId = loginUser.getTenantId(); // if(null != tenantId){ // //获取当前登录部门id // approveProcessVO.setApproveDeptId(tenantId); // //获取当前登录用户id // approveProcessVO.setApproveUser(loginUser.getUserId()); // //获取当前时间 // approveProcessVO.setApproveTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); // approveProcessVO.setApproveType(4); // approveProcessVO.setApproveUserIds(deviceRepair.getApproverId().toString()); // approveProcessVO.setApproveReason(deviceRepair.getRemark()); // approveProcessVO.setDeviceRepairId(deviceRepair.getId()); // approveProcessVO.setMaintenancePrice(deviceRepair.getMaintenancePrice()); // approveProcessService.addApprove(approveProcessVO); // } return AjaxResult.success(); } @ApiModelProperty("根据id查询设备报修") @GetMapping("/{id}") public AjaxResult detail(@PathVariable Long id) { DeviceRepairDto byId = deviceRepairService.detailById(id); return AjaxResult.success(byId); } @PutMapping () @ApiModelProperty("修改设备报修") public AjaxResult update( @RequestBody DeviceRepair deviceRepair) { return deviceRepairService.updateDeviceRepair(deviceRepair); } @PostMapping ("repair") @ApiModelProperty("设备维修") public AjaxResult repair( @RequestBody DeviceRepair deviceRepair) { return deviceRepairService.updateDeviceRepair(deviceRepair); } @DeleteMapping("/{ids}") @ApiModelProperty("删除设备报修") public AjaxResult delete(@PathVariable("ids") Long[] ids) { LambdaQueryWrapper QueryWrapper = new LambdaQueryWrapper<>(); QueryWrapper.in(ApproveProcess::getDeviceRepairId,ids); List approveProcessList = approveProcessService.list(QueryWrapper); if(!approveProcessList.isEmpty()){ approveProcessList.forEach(approveProcess -> { if (approveProcess.getApproveStatus() != 0){ //抛出异常 throw new RuntimeException("有正在处理中的审批流程,不能删除"); } }); } boolean b = deviceRepairService.removeBatchByIds(Arrays.asList(ids)); if (!b) { return AjaxResult.error("删除失败"); } return AjaxResult.success(); } @PostMapping("export") @ApiModelProperty("导出设备报修") public void export(HttpServletResponse response, Long[] ids) { deviceRepairService.export(response, ids); } }