From 4545af9041b432cbe79214d52be599e4ce8659aa Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期四, 14 八月 2025 15:55:39 +0800 Subject: [PATCH] 二保结构树代码 维修工单添加 领取按钮 领取后 生成维修开始时间 提交后 生成维修结束时间 计算 维修时长 故障时长 添加导出 --- lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java | 88 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 82 insertions(+), 6 deletions(-) diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java index 15ca1f2..1f74848 100644 --- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java +++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java @@ -19,6 +19,7 @@ import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; import org.jeecg.modules.eam.constant.*; import org.jeecg.modules.eam.dto.EamRepairOrderDto; +import org.jeecg.modules.eam.dto.EamRepairOrderExport; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamRepairOrder; import org.jeecg.modules.eam.entity.EamRepairPerson; @@ -36,6 +37,7 @@ import org.jeecg.modules.flowable.apithird.service.FlowCommonService; import org.jeecg.modules.flowable.service.IFlowDefinitionService; import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.flowable.util.TimeUtil; import org.jeecg.modules.system.entity.BaseFactory; import org.jeecg.modules.system.entity.BaseFactoryUser; import org.jeecg.modules.system.service.IBaseFactoryService; @@ -205,6 +207,18 @@ } BeanUtils.copyProperties(eamRepairOrderDto,eamRepairOrder); eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name()); + eamRepairOrder.setActualEndTime(new Date()); + //璁$畻缁翠慨鏃堕棿涓庢晠闅滄椂闂� + Date startTime; + Date endTime; + //缁翠慨缁撴潫鏃堕棿-缁翠慨寮�濮嬫椂闂�=缁翠慨鏃堕暱 + startTime=eamRepairOrder.getActualStartTime(); + endTime=eamRepairOrder.getActualEndTime(); + eamRepairOrder.setRepairDuration(TimeUtil.howLong(startTime,endTime,2)); + //缁翠慨缁撴潫鏃堕棿-鏁呴殰鎶ヤ慨鏃堕棿=鏁呴殰鏃堕暱 + startTime=eamRepairOrder.getCreateTime(); + endTime=eamRepairOrder.getActualEndTime(); + eamRepairOrder.setFaultDuration(TimeUtil.howLong(startTime,endTime,2)); this.updateById(eamRepairOrder); EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId()); if (eamReportRepair==null){ @@ -237,12 +251,6 @@ } if (StrUtil.isEmpty(eamRepairOrder.getRepairCode())) { throw new RuntimeException("宸ュ崟缂栧彿涓虹┖"); - } - if (eamRepairOrder.getActualStartTime()==null){ - throw new RuntimeException("缁翠慨寮�濮嬫椂闂翠负绌�"); - } - if (eamRepairOrder.getActualEndTime()==null){ - throw new RuntimeException("缁翠慨缁撴潫鏃堕棿涓虹┖"); } if (StrUtil.isEmpty(eamRepairOrder.getFaultReason())){ throw new RuntimeException("鏁呴殰鍘熷洜涓虹┖"); @@ -371,6 +379,74 @@ return eamRepairOrderResponse; } + /** + * 缁翠慨宸ュ崟瀵煎嚭 + * @param eamRepairOrderQuery + * @return + */ + @Override + public List<EamRepairOrderExport> exportList(EamRepairOrderQuery eamRepairOrderQuery){ + QueryWrapper<EamRepairOrderExport> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0); + //鐢ㄦ埛鏁版嵁鏉冮檺 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (sysUser == null) { + return new ArrayList<>(); + } + if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { + //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧 + List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); + queryWrapper.in("e.equipment_code", equipArr); + } else { + //娌℃湁閫夋嫨璁惧锛屾牴鎹腑蹇冭繃婊よ澶� + List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService. + list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId())); + if (!CollectionUtils.isEmpty(baseFactoryUserList)) { + Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet()); + Set<String> factoryCode = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()); + queryWrapper.in("e.factory_org_code", factoryCode); + } else { + return new ArrayList<>(); + } + } + //鏌ヨ鏉′欢杩囨护 + if (eamRepairOrderQuery != null) { + if (StringUtils.isNotBlank(eamRepairOrderQuery.getEquipmentId())) { + queryWrapper.eq("wmo.equipment_id", eamRepairOrderQuery.getEquipmentId()); + } + if (StringUtils.isNotBlank(eamRepairOrderQuery.getEquipmentCode())) { + queryWrapper.like("e.equipment_code", eamRepairOrderQuery.getEquipmentCode()); + } + if (StringUtils.isNotBlank(eamRepairOrderQuery.getEquipmentName())) { + queryWrapper.like("e.equipment_name", eamRepairOrderQuery.getEquipmentName()); + } + if (StringUtils.isNotBlank(eamRepairOrderQuery.getRepairStatus())) { + queryWrapper.eq("wmo.repair_status", eamRepairOrderQuery.getRepairStatus()); + } + if (StringUtils.isNotBlank(eamRepairOrderQuery.getRepairCode())) { + queryWrapper.like("wmo.repair_code", eamRepairOrderQuery.getRepairCode()); + } + //鎺掑簭 + if (StringUtils.isNotBlank(eamRepairOrderQuery.getColumn()) && StringUtils.isNotBlank(eamRepairOrderQuery.getOrder())) { + String column = eamRepairOrderQuery.getColumn(); + if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) { + column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX)); + } + if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(eamRepairOrderQuery.getOrder())) { + queryWrapper.orderByAsc("wmo." + oConvertUtils.camelToUnderline(column)); + } else { + queryWrapper.orderByDesc("wmo." + oConvertUtils.camelToUnderline(column)); + } + } else { + queryWrapper.orderByDesc("wmo.create_time"); + } + } else { + queryWrapper.orderByDesc("wmo.create_time"); + } + return this.baseMapper.queryExportList(queryWrapper); + + } + private boolean claimTask(String taskId, LoginUser user) { Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); if (task == null) { -- Gitblit v1.9.3