车间能级提升-智能设备管理系统
baoshiwei
2025-06-12 bab490d2da009c1a23b352b3b964e0c2dd06a0b3
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java
@@ -7,6 +7,7 @@
import org.dromara.common.core.constant.DictConstants;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.service.RepairResService;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StringUtils;
@@ -18,10 +19,10 @@
import lombok.RequiredArgsConstructor;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.eims.domain.*;
import org.dromara.eims.domain.vo.EimsEquVo;
import org.dromara.eims.domain.vo.EimsFixtureVo;
import org.dromara.eims.domain.vo.EimsRepairReqVo;
import org.dromara.eims.domain.bo.EimsSpareInoutBo;
import org.dromara.eims.domain.vo.*;
import org.dromara.eims.mapper.*;
import org.dromara.eims.service.IEimsSpareInoutService;
import org.dromara.eims.utils.DataFilterUtil;
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.vo.SysDeptVo;
@@ -29,7 +30,6 @@
import org.redisson.misc.LogHelper;
import org.springframework.stereotype.Service;
import org.dromara.eims.domain.bo.EimsRepairResBo;
import org.dromara.eims.domain.vo.EimsRepairResVo;
import org.dromara.eims.service.IEimsRepairResService;
import org.springframework.transaction.annotation.Transactional;
@@ -51,6 +51,7 @@
    private final EimsRepairRecordMapper recordMapper;
    private final EimsEquMapper equMapper;
    private final EimsFixtureMapper fixtureMapper;
    private final IEimsSpareInoutService spareInoutService;
    /**
     * 查询维修工单
@@ -66,6 +67,7 @@
            EimsRepairReqVo reqVo = reqMapper.selectVoById(reqId);
            resVo.setReqType(reqVo.getReqType());
            resVo.setReqCode(reqVo.getCode());
            resVo.setReqDesc(reqVo.getReqDesc());
            if(reqVo.getEquId()!=null){
                EimsEquVo equVo = equMapper.selectVoById(reqVo.getEquId());
@@ -83,9 +85,25 @@
                }
            }
            resVo.setSpareParts(querySpareParts(resVo.getResCode()));
        }
        return resVo;
    }
    public List<EimsSpareVo> querySpareParts(String code) {
        // 查询关联的备件,关系如下:备件出入库单的associatedOrder 关联传入的code,备件出入库明细通过出入库单的id关联,备件名称通过出入库明细中的spareId关联
        EimsSpareInoutBo bo = new EimsSpareInoutBo();
        bo.setAssociatedOrder(code);
        List<EimsSpareInoutVo> list = spareInoutService.queryList(bo);
        if (!list.isEmpty()) {
            // 查询备件明细和名称
            EimsSpareInoutVo eimsSpareInoutVo = spareInoutService.queryById(list.get(0).getId());
            return eimsSpareInoutVo.getSpareList();
        }
        return List.of();
    }
    /**
@@ -261,6 +279,23 @@
            recordMapper.insert(record);
        }
        validEntityBeforeSave(update);
        // 判断备件列表是否为空,不为空则新增一个备件出库单,同时增加出库明细
        if (bo.getSpareParts() != null && bo.getSpareParts().size() > 0) {
            EimsSpareInoutBo spareInoutBo = new EimsSpareInoutBo();
            // 根据日期生成单号,格式为CK+日期+流水号
            spareInoutBo.setOrderCode("CK"+ DateUtils.dateTimeNow("yyyyMMddHHmmss"));
            spareInoutBo.setOrderTime(new Date());
            spareInoutBo.setType(DictConstants.SPARE_INOUT_TYPE_DETAIL.CK);
            spareInoutBo.setPartnerName(loginUser.getNickname());
            spareInoutBo.setSpareList(bo.getSpareParts());
            spareInoutBo.setChargeUser(loginUser.getUserId());
            spareInoutBo.setChargeDept(loginUser.getDeptId());
            spareInoutBo.setAssociatedOrder(bo.getResCode());
            // 保存进数据库
            Boolean b = spareInoutService.insertByBo(spareInoutBo);
        }
        return baseMapper.updateById(update) > 0;
    }
@@ -302,6 +337,7 @@
        qw.eq(bo.getReqType() != null, "req.req_type", bo.getReqType());
        qw.eq(bo.getReqUser() != null, "res.req_user", bo.getReqUser());
        qw.eq(bo.getAssetNo() != null, "equ.asset_no", bo.getAssetNo());
        qw.eq(bo.getEquId() != null, "req.equ_id", bo.getEquId());
        qw.between(params.get("beginReqTime") != null && params.get("endReqTime") != null,
            "req.req_time", params.get("beginReqTime"), params.get("endReqTime"));
@@ -314,6 +350,9 @@
        qw.eq(StringUtils.isNotBlank(bo.getStatus()), "res.status", bo.getStatus());
        String s = params.get("status") == null ? "" : params.get("status").toString();
        String[] status = s.split(",");
        qw.in(params.get("status") != null, "res.status", status);
        qw.orderByDesc("res.create_time");
        return qw;
    }