3 天以前 b701cf0331e91900bf8055009a745d4953a6c510
src/main/java/com/ruoyi/device/controller/DeviceRepairController.java
@@ -1,31 +1,20 @@
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.DeviceMonthlyRepairTableDTO;
import com.ruoyi.device.dto.DeviceRepairDto;
import com.ruoyi.device.pojo.DeviceLedger;
import com.ruoyi.device.dto.RepairAmountGroupDTO;
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;
@@ -39,8 +28,6 @@
    @Autowired
    private IDeviceLedgerService deviceLedgerService;
    @Autowired
    private IApproveProcessService approveProcessService;
    @ApiModelProperty("设备报修列表")
    @GetMapping("/page")
@@ -49,40 +36,9 @@
    }
    @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();
    public AjaxResult add( @RequestBody DeviceRepair deviceRepair) {
        return deviceRepairService.saveDeviceRepair(deviceRepair);
    }
    @ApiModelProperty("根据id查询设备报修")
@@ -101,23 +57,13 @@
    @PostMapping ("repair")
    @ApiModelProperty("设备维修")
    public AjaxResult repair( @RequestBody DeviceRepair deviceRepair) {
        deviceRepair.setStatus(1);
        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("删除失败");
@@ -130,4 +76,27 @@
    public void export(HttpServletResponse response, Long[] ids) {
        deviceRepairService.export(response, ids);
    }
    /**
     * 按年份查询每月报修金额(按设备台账分组)
     * @param year 前端传入的年份(如2025)
     */
    @GetMapping("/monthlyAmount")
    @ApiModelProperty("按年份查询每月报修金额(按设备台账分组)")
    public AjaxResult getMonthlyAmount(@RequestParam(defaultValue = "2025", required = true,name = "year") String year) {
        List<DeviceMonthlyRepairTableDTO> result = deviceRepairService.getMonthlyRepairAmountByYear(year);
        return AjaxResult.success(result);
    }
    /**
     * 按年份查询报修金额(按设备台账分组)
     * @param year 前端传入的年份(如2025)
     */
    @GetMapping("/yearlyAmount")
    @ApiModelProperty("按年份查询报修金额(按设备台账分组)")
    public AjaxResult yearlyAmount(@RequestParam(defaultValue = "2025", required = true,name = "year") String year) {
        List<RepairAmountGroupDTO> result = deviceRepairService.getRepairAmountByYear(year);
        return AjaxResult.success(result);
    }
}