车间能级提升-智能设备管理系统
baoshiwei
2025-06-09 df64c34d92cbe8501bbbfe837bc491a47452c0b6
eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java
@@ -20,17 +20,19 @@
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.eims.domain.EimsMaintPlan;
import org.dromara.eims.domain.bo.EimsMaintPlanBo;
import org.dromara.eims.domain.vo.EimsEquVo;
import org.dromara.eims.domain.vo.MaintOrdeGroupVo;
import org.dromara.eims.domain.EimsSpareInout;
import org.dromara.eims.domain.bo.EimsSpareBo;
import org.dromara.eims.domain.bo.EimsSpareInoutBo;
import org.dromara.eims.domain.bo.MaintOrderBo;
import org.dromara.eims.domain.vo.*;
import org.dromara.eims.mapper.EimsEquMapper;
import org.dromara.eims.mapper.EimsMaintPlanMapper;
import org.dromara.eims.service.IEimsSpareInoutService;
import org.dromara.system.domain.SysDept;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.mapper.SysDeptMapper;
import org.springframework.stereotype.Service;
import org.dromara.eims.domain.bo.EimsMaintOrderBo;
import org.dromara.eims.domain.vo.EimsMaintOrderVo;
import org.dromara.eims.domain.EimsMaintOrder;
import org.dromara.eims.mapper.EimsMaintOrderMapper;
import org.dromara.eims.service.IEimsMaintOrderService;
@@ -52,6 +54,7 @@
    private final EimsMaintPlanMapper planMapper;
    private final SysDeptMapper sysDeptMapper;
    private final EimsEquMapper equMapper;
    private final IEimsSpareInoutService spareInoutService;
    /**
     * 查询保养工单
@@ -293,6 +296,45 @@
    }
    /**
     * 批量修改保养工单
     *
     * @param bo 保养工单
     * @return 是否修改成功
     */
    @Override
    public boolean updateBatchByBo(MaintOrderBo bo) {
        LoginUser loginUser = LoginHelper.getLoginUser();
        List<EimsMaintOrder> list = MapstructUtils.convert(bo.getMaintOrderList(),  EimsMaintOrder.class);
        list.forEach(e -> {
            e.setStatus(DictConstants.MAINT_ORDER_STATUS_DETAIL.DAIYANZHENG);
            e.setEndTime(new Date());
            e.setMaintUser(loginUser.getUserId());
            e.setUpdateTime(new Date());
        });
        bo.getMaintOrderList().forEach(item -> {
            // 判断备件列表是否为空,不为空则新增一个备件出库单,同时增加出库明细
            if (item.getSpareParts() != null && item.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(item.getSpareParts());
                spareInoutBo.setChargeUser(loginUser.getUserId());
                spareInoutBo.setChargeDept(loginUser.getDeptId());
                spareInoutBo.setAssociatedOrder(item.getMaintCode());
                // 保存进数据库
                Boolean b = spareInoutService.insertByBo(spareInoutBo);
            }
        });
        return baseMapper.updateBatchById(list);
    }
    /**
     * 保存前的数据校验
     */
    private void validEntityBeforeSave(EimsMaintOrder entity){
@@ -326,4 +368,20 @@
        }
        return String.join(StringUtils.SEPARATOR, list);
    }
    @Override
    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();
    }
}