From 2f0009c750de4d47a18cce4a5a403fa83ba0c209 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 02 七月 2025 08:58:27 +0800 Subject: [PATCH] feat(report): 新增设备稼动率统计功能 --- eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java | 80 +++++++++++++++++++++++++++++++++++----- 1 files changed, 70 insertions(+), 10 deletions(-) diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java index c697818..2c1ec00 100644 --- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java +++ b/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,18 +19,16 @@ 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; 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; import org.dromara.eims.service.IEimsRepairResService; import org.springframework.transaction.annotation.Transactional; @@ -51,6 +50,7 @@ private final EimsRepairRecordMapper recordMapper; private final EimsEquMapper equMapper; private final EimsFixtureMapper fixtureMapper; + private final IEimsSpareInoutService spareInoutService; /** * 鏌ヨ缁翠慨宸ュ崟 @@ -66,21 +66,43 @@ 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()); - resVo.setAssetNo(equVo.getAssetNo()); - resVo.setEquName(equVo.getEquName()); + if(equVo!=null){ + resVo.setAssetNo(equVo.getAssetNo()); + resVo.setEquName(equVo.getEquName()); + } + } if(reqVo.getFixtureId()!=null){ EimsFixtureVo fixtureVo = fixtureMapper.selectVoById(reqVo.getFixtureId()); - resVo.setFixtureName(fixtureVo.getFixtureName()); - resVo.setAssetNo(fixtureVo.getAssetNo()); + if(fixtureVo!=null){ + resVo.setFixtureName(fixtureVo.getFixtureName()); + resVo.setAssetNo(fixtureVo.getAssetNo()); + } } + resVo.setSpareParts(querySpareParts(resVo.getResCode())); } return resVo; + } + + + 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(); } /** @@ -256,6 +278,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; } @@ -288,6 +327,16 @@ return TableDataInfo.build(page); } + @Override + public Integer listUnfinished(String status) { + // 鏍规嵁宸ュ崟鐘舵�佹煡璇㈡�绘暟 + if (!status.isEmpty()) { + List<String> statusList = Arrays.asList(status.split(",")); + return baseMapper.listUnfinished(statusList); + } + return 0; + } + private QueryWrapper<EimsRepairRes> buildWrapper(EimsRepairResBo bo) { Map<String, Object> params = bo.getParams(); QueryWrapper<EimsRepairRes> qw = Wrappers.query(); @@ -297,15 +346,26 @@ 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")); List<Long> resDeptIds = getAllDescendantIds(bo.getResDept()); qw.in(bo.getResDept() != null, "res.res_dept", resDeptIds); List<Long> reqDeptIds = getAllDescendantIds(bo.getReqDept()); qw.in(bo.getReqDept() != null, "res.req_dept", reqDeptIds); - + if (params.get("searchValue") != null && StringUtils.isNotBlank(params.get("searchValue").toString())) { + qw.and( wq ->wq.like("equ.equ_name", params.get("searchValue")) + .or().like("equ.asset_no", params.get("searchValue")) + ); + } 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; } -- Gitblit v1.9.3