From df64c34d92cbe8501bbbfe837bc491a47452c0b6 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期一, 09 六月 2025 10:58:19 +0800 Subject: [PATCH] feat(eims): 新增保养工单批量修改功能并优化相关领域对象 --- eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java | 79 +++++++++++++++++++++++++++++++++++++-- 1 files changed, 75 insertions(+), 4 deletions(-) diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java index 529c96b..c85145d 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java @@ -20,15 +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.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; @@ -49,6 +53,8 @@ private final EimsMaintOrderMapper baseMapper; private final EimsMaintPlanMapper planMapper; private final SysDeptMapper sysDeptMapper; + private final EimsEquMapper equMapper; + private final IEimsSpareInoutService spareInoutService; /** * 鏌ヨ淇濆吇宸ュ崟 @@ -58,7 +64,13 @@ */ @Override public EimsMaintOrderVo queryById(Long id){ - return baseMapper.selectVoById(id); + EimsMaintOrderVo orderVo = baseMapper.selectVoById(id); + EimsEquVo equVo = equMapper.selectVoById(orderVo.getEquId()); + if(equVo!=null){ + orderVo.setEquName(equVo.getEquName()); + orderVo.setAssetNo(equVo.getAssetNo()); + } + return orderVo; } /** @@ -112,6 +124,8 @@ qw.eq(bo.getStatus() != null, "mo.status", bo.getStatus()); qw.eq(bo.getPlanTime()!=null, "mo.plan_time", bo.getPlanTime()); + qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null, + "mo.plan_time", params.get("beginPlanTime"), params.get("endPlanTime")); qw.orderByDesc("mo.create_time"); return qw; } @@ -174,6 +188,8 @@ lqw.eq(StringUtils.isNotBlank(bo.getStatus()), EimsMaintOrder::getStatus, bo.getStatus()); lqw.eq(bo.getPlanTime() != null, EimsMaintOrder::getPlanTime, bo.getPlanTime()); lqw.eq(bo.getPlanId() != null, EimsMaintOrder::getPlanId, bo.getPlanId()); + // 鎸夊垱寤烘椂闂村�掑簭 + lqw.orderByDesc(EimsMaintOrder::getCreateTime); return lqw; } @@ -280,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){ @@ -313,4 +368,20 @@ } return String.join(StringUtils.SEPARATOR, list); } + + + @Override + public List<EimsSpareVo> querySpareParts(String code) { + // 鏌ヨ鍏宠仈鐨勫浠讹紝鍏崇郴濡備笅锛氬浠跺嚭鍏ュ簱鍗曠殑associatedOrder 鍏宠仈浼犲叆鐨刢ode,澶囦欢鍑哄叆搴撴槑缁嗛�氳繃鍑哄叆搴撳崟鐨刬d鍏宠仈锛屽浠跺悕绉伴�氳繃鍑哄叆搴撴槑缁嗕腑鐨剆pareId鍏宠仈 + + 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(); + } } -- Gitblit v1.9.3