车间能级提升-智能设备管理系统
zhuguifei
2025-02-28 74448f9a9f1f8cb779023db3ea9eda762fc6ad0a
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.SneakyThrows;
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.MapstructUtils;
import org.dromara.common.core.utils.SpringUtils;
@@ -15,6 +16,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.eims.domain.*;
import org.dromara.eims.domain.vo.EimsRepairReqVo;
import org.dromara.eims.mapper.EimsRepairRecordMapper;
@@ -23,6 +25,7 @@
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.mapper.SysDeptMapper;
import org.redisson.misc.LogHelper;
import org.springframework.stereotype.Service;
import org.dromara.eims.domain.bo.EimsRepairResBo;
import org.dromara.eims.domain.vo.EimsRepairResVo;
@@ -115,7 +118,7 @@
            // 新增维修工单的时候更新报修单数据
            EimsRepairReqVo reqVo = reqMapper.selectVoById(bo.getReqId());
            reqVo.setRepairId(add.getId());
            reqVo.setStatus(DictConstants.REPAIR_REQ_STATUS_DETAIL.WEIXIU);
            reqVo.setStatus(DictConstants.REPAIR_REQ_STATUS_DETAIL.YIJIEDAN);
            EimsRepairReq req = MapstructUtils.convert(reqVo, EimsRepairReq.class);
            reqMapper.updateById(req);
@@ -135,9 +138,9 @@
            record.setResId(add.getId());
            record.setHandleTime(new Date());
            //接单状态
            record.setOpera(DictConstants.REPAIR_RECORD_HANDLE_DETAIL.JIEDAN);
            record.setOpera(DictConstants.REPAIR_RECORD_HANDLE_DETAIL.YIJIEDAN);
            record.setOperaUser(add.getCreateBy());
            record.setOperaResult("接单,生成维修工单");
            record.setOperaResult("生成维修工单");
            //新增时生成记录
            recordMapper.insert(record);
@@ -161,8 +164,7 @@
            insert.setResCode(reqVo.getCode().replace("BXD","WXD"));
            insert.setResUser(bo.getResUser());
            insert.setResDept(bo.getResDept());
            insert.setStatus(DictConstants.REPAIR_RES_STATUS_DETAIL.WEIXIU);
            insert.setStartTime(new Date());
            insert.setStatus(DictConstants.REPAIR_RES_STATUS_DETAIL.YIJIEDAN);
            Boolean b = insertByBo(insert);
            if(!b)throw new Exception("");
        }
@@ -178,29 +180,56 @@
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Boolean updateByBo(EimsRepairResBo bo) {
        LoginUser loginUser = LoginHelper.getLoginUser();
        EimsRepairRes update = MapstructUtils.convert(bo, EimsRepairRes.class);
        EimsRepairResVo resVo = baseMapper.selectVoById(bo.getId());
        String status = resVo.getStatus();
        //首次更新需要同步更新报修单状态
        //维修工单开始维修,同步更新报修单 以及 维修记录
        if (bo.getStatus().equals(DictConstants.REPAIR_RES_STATUS_DETAIL.WEIXIU) &&
            status.equals(DictConstants.REPAIR_RES_STATUS_DETAIL.YIJIEDAN)) {
            //1.设置开始维修时间
            //2.更新报修单为维修状态
            EimsRepairReqVo reqVo = reqMapper.selectVoById(bo.getReqId());
            reqVo.setStatus(DictConstants.REPAIR_REQ_STATUS_DETAIL.WEIXIU);
            EimsRepairReq req = MapstructUtils.convert(reqVo, EimsRepairReq.class);
            reqMapper.updateById(req);
            //3.生成维修记录
            EimsRepairRecord record = new EimsRepairRecord();
            record.setResId(bo.getId());
            record.setReqId(bo.getReqId());
            record.setHandleTime(new Date());
            record.setOpera(DictConstants.REPAIR_RECORD_HANDLE_DETAIL.WEIXIU);
            assert loginUser != null;
            record.setOperaUser(loginUser.getUserId());
            record.setOperaResult("开始维修");
            recordMapper.insert(record);
        }
        //维修工单完成,同步更新报修单 以及 维修记录
        if (bo.getStatus().equals(DictConstants.REPAIR_RES_STATUS_DETAIL.WANCHENG) &&
            status.equals(DictConstants.REPAIR_RES_STATUS_DETAIL.WEIXIU)) {
            //1.设置结束维修时间
            //2.更新报修单为完成状态
            EimsRepairReqVo reqVo = reqMapper.selectVoById(bo.getReqId());
            reqVo.setStatus(DictConstants.REPAIR_REQ_STATUS_DETAIL.WANCHENG);
            EimsRepairReq req = MapstructUtils.convert(reqVo, EimsRepairReq.class);
            reqMapper.updateById(req);
            //生成维修记录
            //3.生成维修记录
            EimsRepairRecord record = new EimsRepairRecord();
            record.setResId(bo.getId());
            record.setReqId(bo.getReqId());
            record.setHandleTime(new Date());
            //完成状态
            record.setOpera(DictConstants.REPAIR_RECORD_HANDLE_DETAIL.WANCHENG);
            record.setOperaUser(bo.getUpdateBy());
            assert loginUser != null;
            record.setOperaUser(loginUser.getUserId());
            record.setOperaResult("完成维修工单");
            recordMapper.insert(record);
        }
        validEntityBeforeSave(update);
        return baseMapper.updateById(update) > 0;