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<DeviceRepair> 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<ApproveProcess> QueryWrapper = new LambdaQueryWrapper<>();
|
QueryWrapper.in(ApproveProcess::getDeviceRepairId,ids);
|
List<ApproveProcess> 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);
|
}
|
}
|