package com.ruoyi.web.controller.api; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.TDept; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.AddAssetRepairRequestDTO; import com.ruoyi.system.dto.AddContractDTO; import com.ruoyi.system.model.AssetMain; import com.ruoyi.system.model.AssetRepairRequest; import com.ruoyi.system.model.AssetRepairRequestItem; import com.ruoyi.system.query.AssetRepairRequestListQuery; import com.ruoyi.system.query.AssetStatisticsListQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.AssetRepairListVO; import com.ruoyi.system.vo.AssetRepairRequestVO; import com.ruoyi.system.vo.AssetStatisticsVO; import com.ruoyi.system.vo.GrabListVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.models.auth.In; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; /** *

* 资产报修主表 前端控制器 *

* * @author WuGuanFengYue * @since 2025-09-15 */ @RestController @RequestMapping("/asset-repair-request") @Api(tags = {"资产报修"}) public class AssetRepairRequestController { @Resource private AssetRepairRecordService assetRepairRecordService; @Resource private AssetRepairRequestService assetRepairRequestService; @Resource private OaApprovalApplicationAssetItemService approvalApplicationAssetItemService; @Resource private AssetRepairRequestItemService assetRepairRequestItemService; @Autowired private TokenService tokenService; @Autowired private TDeptService deptService; @Autowired private ISysUserService sysUserService; @Resource private AssetMainService assetMainService; @ApiOperation("资产报修分页列表") @PostMapping("/pageList") public R> pageList(@RequestBody AssetRepairRequestListQuery query) { String deptId = tokenService.getLoginUser().getDeptId(); List deptIds = deptService.getAllSubDeptIds(deptId); if (deptIds.isEmpty()) { return R.ok(new PageInfo<>()); } else { query.setDeptIds(deptIds); List userIds = sysUserService.selectAllList().stream().filter(e -> deptIds.contains(Integer.valueOf(e.getDeptId()))) .map(SysUser::getUserId).collect(Collectors.toList()); if (userIds.isEmpty()){ return R.ok(new PageInfo<>()); } } return R.ok(assetRepairRecordService.pageList(query)); } @ApiOperation("资产报修不分页列表") @PostMapping("/listAll") public R> listAll(@RequestBody AssetRepairRequestListQuery query) { String deptId = tokenService.getLoginUser().getDeptId(); List deptIds = deptService.getAllSubDeptIds(deptId); if (deptIds.isEmpty()) { return R.ok(new ArrayList<>()); } else { query.setDeptIds(deptIds); List userIds = sysUserService.selectAllList().stream().filter(e -> deptIds.contains(Integer.valueOf(e.getDeptId()))) .map(SysUser::getUserId).collect(Collectors.toList()); if (userIds.isEmpty()){ return R.ok(new ArrayList<>()); } } List assetMainIds = assetMainService.lambdaQuery().in(AssetMain::getOwnershipDeptId, deptIds).list() .stream().map(AssetMain::getId).collect(Collectors.toList()); if (assetMainIds.isEmpty()){ return R.ok(new ArrayList<>()); } query.setAssetMainIds(assetMainIds); return R.ok(assetRepairRecordService.listAll(query)); } @Log(title = "资产报修-新增", businessType = BusinessType.INSERT) @ApiOperation(value = "资产报修新增") @PostMapping(value = "/add") public R add(@RequestBody AddAssetRepairRequestDTO dto) { dto.setRepairNo("1"); Long userId = tokenService.getLoginUser().getUserId(); dto.setReporterId(userId.intValue()); assetRepairRequestService.save(dto); for (AssetRepairRequestItem assetRepairRequestItem : dto.getList()) { assetRepairRequestItem.setRepairRequestId(dto.getId()); } assetRepairRequestItemService.saveBatch(dto.getList()); return R.ok(); } @Log(title = "资产报修-编辑", businessType = BusinessType.UPDATE) @ApiOperation(value = "资产报修编辑") @PostMapping(value = "/update") public R update(@RequestBody AddAssetRepairRequestDTO dto) { assetRepairRequestService.updateById(dto); assetRepairRequestItemService.remove(new LambdaQueryWrapper() .eq(AssetRepairRequestItem::getRepairRequestId, dto.getId())); assetRepairRequestItemService.saveBatch(dto.getList()); return R.ok(); } @ApiOperation(value = "资产报修详情") @GetMapping(value = "/detail") public R detail(Integer id) { AddAssetRepairRequestDTO res = new AddAssetRepairRequestDTO(); AssetRepairRequest assetRepairRequest = assetRepairRequestService.getById(id); BeanUtils.copyProperties(assetRepairRequest, res); List items = assetRepairRequestItemService.listDetail(id); res.setListDetail(items); SysUser sysUser = sysUserService.selectUserById(Long.valueOf(assetRepairRequest.getReporterId())); if (sysUser!=null){ res.setReporterName(sysUser.getNickName()); } return R.ok(res); } @Log(title = "资产报修-删除", businessType = BusinessType.DELETE) @ApiOperation(value = "资产报修-删除") @DeleteMapping(value = "/delete") public R delete(@RequestParam String ids) { assetRepairRequestItemService.remove(new LambdaQueryWrapper() .in(AssetRepairRequestItem::getRepairRequestId, Arrays.asList(ids.split(",")))); assetRepairRequestService.removeBatchByIds(Arrays.asList(ids.split(","))); return R.ok(); } }