mitao
3 天以前 67e7b5fc821a35f013e7a46a5957f4c6394d236d
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/AssetRepairRequestController.java
@@ -6,34 +6,44 @@
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.constants.ApprovalApplicationCodePrefix;
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.model.AssetType;
import com.ruoyi.system.query.AssetRepairRequestListQuery;
import com.ruoyi.system.query.AssetStatisticsListQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.service.AssetMainService;
import com.ruoyi.system.service.AssetRepairRecordService;
import com.ruoyi.system.service.AssetRepairRequestItemService;
import com.ruoyi.system.service.AssetRepairRequestService;
import com.ruoyi.system.service.AssetTypeService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.OaApprovalApplicationAssetItemService;
import com.ruoyi.system.service.TDeptService;
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 org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -65,6 +75,8 @@
    private ISysUserService sysUserService;
    @Resource
    private AssetMainService assetMainService;
    @Autowired
    private AssetTypeService assetTypeService;
    @ApiOperation("资产报修分页列表")
    @PostMapping("/pageList")
@@ -111,7 +123,7 @@
    @ApiOperation(value = "资产报修新增")
    @PostMapping(value = "/add")
    public R add(@RequestBody AddAssetRepairRequestDTO dto) {
        dto.setRepairNo("1");
        dto.setRepairNo(generateRepairNo());
        Long userId = tokenService.getLoginUser().getUserId();
        dto.setReporterId(userId.intValue());
        assetRepairRequestService.save(dto);
@@ -122,6 +134,27 @@
        return R.ok();
    }
    /**
     * 生成维修单号
     * 格式:WX + 日期 + 4位序号
     */
    private String generateRepairNo() {
        String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
        // 查询当天已生成的维修单号数量
        Long count = assetRepairRequestService.lambdaQuery()
                .likeRight(AssetRepairRequest::getRepairNo, ApprovalApplicationCodePrefix.ASSET_REPAIR_REQUEST)
                .ge(AssetRepairRequest::getCreateTime, LocalDate.now().atStartOfDay())
                .lt(AssetRepairRequest::getCreateTime, LocalDate.now().plusDays(1).atStartOfDay())
                .count();
        // 生成4位序号,从0001开始
        int sequence = (count != null ? count.intValue() : 0) + 1;
        String sequenceStr = String.format("%04d", sequence);
        return ApprovalApplicationCodePrefix.ASSET_REPAIR_REQUEST + dateStr + sequenceStr;
    }
    @Log(title = "资产报修-编辑", businessType = BusinessType.UPDATE)
    @ApiOperation(value = "资产报修编辑")
    @PostMapping(value = "/update")
@@ -138,6 +171,11 @@
        AddAssetRepairRequestDTO res = new AddAssetRepairRequestDTO();
        AssetRepairRequest assetRepairRequest = assetRepairRequestService.getById(id);
        BeanUtils.copyProperties(assetRepairRequest, res);
        //查询类型名称
        AssetType assetType = assetTypeService.getById(assetRepairRequest.getAssetTypeId());
        if (Objects.nonNull(assetType)) {
            res.setAssetTypeName(assetType.getTypeName());
        }
        List<AssetRepairListVO> items = assetRepairRequestItemService.listDetail(id);
        res.setListDetail(items);
        SysUser sysUser = sysUserService.selectUserById(Long.valueOf(assetRepairRequest.getReporterId()));