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.approve.vo.ApproveProcessVO; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.device.dto.DeviceRepairDto; import com.ruoyi.device.pojo.DeviceLedger; import com.ruoyi.device.pojo.DeviceRepair; import com.ruoyi.device.service.IDeviceLedgerService; import com.ruoyi.device.service.IDeviceRepairService; import com.ruoyi.framework.security.LoginUser; import com.ruoyi.framework.web.domain.AjaxResult; import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.domain.SysUser; 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.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; 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); ApproveProcessVO approveProcessVO = new ApproveProcessVO(); LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser user = loginUser.getUser(); // 获取当前登录公司 Long tenantId = loginUser.getTenantId(); if(null != tenantId){ LambdaQueryWrapper QueryWrapper = new LambdaQueryWrapper<>(); QueryWrapper.eq(DeviceRepair::getDeviceLedgerId,deviceRepair.getDeviceLedgerId()) .eq(DeviceRepair::getRemark,deviceRepair.getRemark()) .eq(DeviceRepair::getDeviceName,deviceRepair.getDeviceName()) .eq(DeviceRepair::getApproverId,deviceRepair.getApproverId()) .eq(DeviceRepair::getRepairTime,deviceRepair.getRepairTime()); DeviceRepair one = deviceRepairService.getOne(QueryWrapper); if(ObjectUtils.isEmpty(one)){ return AjaxResult.error("设备报修不存在"); } //获取当前登录部门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(one.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); } }