From 25addf67536c8ba62f2f2ebf0e6ffe2e4154beba Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 28 五月 2025 12:12:57 +0800 Subject: [PATCH] art: 流程启动-简述信息修改 --- lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java | 79 ++++++++++++++++++++++++++++++++------- 1 files changed, 65 insertions(+), 14 deletions(-) diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java index 6a381ad..95051b6 100644 --- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java +++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamInspectionOrderServiceImpl.java @@ -18,8 +18,13 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.DataBaseConstant; +import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog; +import org.jeecg.modules.eam.constant.BusinessCodeConst; +import org.jeecg.modules.eam.constant.EquipmentMaintenanceStatus; +import org.jeecg.modules.eam.constant.EquipmentOperationTagEnum; import org.jeecg.modules.eam.constant.InspectionStatus; import org.jeecg.modules.eam.entity.EamEquipment; import org.jeecg.modules.eam.entity.EamInspectionOrder; @@ -27,10 +32,9 @@ import org.jeecg.modules.eam.mapper.EamInspectionOrderMapper; import org.jeecg.modules.eam.request.EamInspectionOrderQuery; import org.jeecg.modules.eam.request.EamInspectionOrderRequest; -import org.jeecg.modules.eam.service.IEamEquipmentService; -import org.jeecg.modules.eam.service.IEamInspectionOrderDetailService; -import org.jeecg.modules.eam.service.IEamInspectionOrderService; -import org.jeecg.modules.eam.service.IEamReportRepairService; +import org.jeecg.modules.eam.service.*; +import org.jeecg.modules.eam.vo.EquipmentInspectionStatistics; +import org.jeecg.modules.eam.vo.EquipmentRepairStatistics; import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; import org.jeecg.modules.flowable.apithird.business.service.impl.FlowMyBusinessServiceImpl; import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; @@ -38,6 +42,7 @@ import org.jeecg.modules.flowable.service.IFlowDefinitionService; import org.jeecg.modules.flowable.service.IFlowTaskService; import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.IMdcProductionService; import org.jeecg.modules.system.service.IMdcUserProductionService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -45,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -79,6 +85,10 @@ private IMdcUserProductionService mdcUserProductionService; @Autowired private IEamReportRepairService eamReportRepairService; + @Autowired + private IEamEquipmentExtendService eamEquipmentExtendService; + @Autowired + private IMdcProductionService mdcProductionService; @Override public IPage<EamInspectionOrder> queryPageList(Page<EamInspectionOrder> page, EamInspectionOrderQuery query) { @@ -144,6 +154,27 @@ } @Override + public List<EquipmentInspectionStatistics> equipmentInspectionStatistics(String productionId, LocalDate firstOfMonth, LocalDate today) { + if (StringUtils.isNotBlank(productionId)) { + //杞﹂棿缂栫爜涓嶄负绌� + List<String> productIds = mdcProductionService.recursionChildren(productionId); + if (CollectionUtil.isEmpty(productIds)) { + return Collections.emptyList(); + } + List<EquipmentInspectionStatistics> list = this.baseMapper.equipmentInspectionStatistics(productIds, firstOfMonth.toString(), today.plusDays(1).toString()); + if (CollectionUtil.isEmpty(list)) { + return Collections.emptyList(); + } + return list; + } + List<EquipmentInspectionStatistics> list = this.baseMapper.equipmentInspectionStatistics(null, firstOfMonth.toString(), today.plusDays(1).toString()); + if (CollectionUtil.isEmpty(list)) { + return Collections.emptyList(); + } + return list; + } + + @Override @Transactional(rollbackFor = Exception.class) public boolean addInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) { EamInspectionOrder eamInspectionOrder = new EamInspectionOrder(); @@ -176,6 +207,8 @@ } if (StrUtil.isNotBlank(eamInspectionOrderRequest.getOperator())) { triggerProcess(eamInspectionOrder); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentInspectionStatus(eamInspectionOrder.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_INSPECTION.name()); } return true; } @@ -194,7 +227,7 @@ eamInspectionOrder.setEquipmentCode(equipment.getEquipmentCode()); } System.out.println("璁惧鐐规锛�" + eamInspectionOrder.getId()); - flowCommonService.initActBusiness("宸ュ崟鍙凤細" + eamInspectionOrder.getOrderNum() + "璁惧缂栧彿" + eamInspectionOrder.getEquipmentCode() + "杩涜璁惧鐐规", + flowCommonService.initActBusiness("宸ュ崟鍙凤細" + eamInspectionOrder.getOrderNum() + "璁惧缂栧彿" + eamInspectionOrder.getEquipmentCode() + ";杩涜璁惧鐐规", eamInspectionOrder.getId(), "IEamInspectionOrderService", "eam_inspection", null); Map<String, Object> variables = new HashMap<>(); variables.put("dataId", eamInspectionOrder.getId()); @@ -215,11 +248,15 @@ @Override + @Transactional(rollbackFor = {Exception.class}) public boolean editInspectionOrder(EamInspectionOrderRequest eamInspectionOrderRequest) { EamInspectionOrder eamInspectionOrder = new EamInspectionOrder(); BeanUtils.copyProperties(eamInspectionOrderRequest, eamInspectionOrder); if (StrUtil.isNotEmpty(eamInspectionOrder.getOperator())) { eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name()); + triggerProcess(eamInspectionOrder); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentInspectionStatus(eamInspectionOrder.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_INSPECTION.name()); } super.updateById(eamInspectionOrder); //澶勭悊鏄庣粏鏁版嵁 @@ -242,8 +279,12 @@ * @return */ @Override + @Transactional(rollbackFor = Exception.class) public boolean takeInspectionOrder(String id) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(user == null || !BusinessCodeConst.PCR0001.equals(user.getPost())) { + throw new JeecgBootException("涓嶆槸鎿嶄綔宸ワ紝鏃犳硶棰嗗彇姝ゅ伐鍗曪紒"); + } EamInspectionOrder eamInspectionOrder = this.getById(id); if (eamInspectionOrder == null) { return false; @@ -253,6 +294,8 @@ eamInspectionOrder.setInspectionStatus(InspectionStatus.UNDER_INSPECTION.name()); this.triggerProcess(eamInspectionOrder); this.updateById(eamInspectionOrder); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentInspectionStatus(eamInspectionOrder.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_INSPECTION.name()); return true; } } @@ -281,40 +324,42 @@ * @return */ @Override - public Result<?> inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest) { + @Transactional(rollbackFor = Exception.class) + @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.POINT_INSPECTION, businessTable = "eam_inspection_order") + public EamInspectionOrder inspectionProcess(EamInspectionOrderRequest eamInspectionOrderRequest) { try { // 妫�鏌ヨ姹傚弬鏁� if (!isValidRequest(eamInspectionOrderRequest)) { - return Result.error("闈炴硶鍙傛暟"); + throw new JeecgBootException("闈炴硶鍙傛暟"); } // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 LoginUser user = getCurrentUser(); if (user == null || StrUtil.isBlank(user.getId())) { - return Result.error("璐﹀彿涓嶅瓨鍦�"); + throw new JeecgBootException("璐﹀彿涓嶅瓨鍦�"); } eamInspectionOrderRequest.setAssignee(user.getUsername()); // 鑾峰彇鐐规宸ュ崟淇℃伅 EamInspectionOrder eamInspectionOrder = getEamInspectionOrder(eamInspectionOrderRequest.getDataId()); if (eamInspectionOrder == null) { - return Result.error("鏈壘鍒板搴旀暟鎹�"); + throw new JeecgBootException("鏈壘鍒板搴旀暟鎹�"); } // 鑾峰彇娴佺▼涓氬姟璁板綍 FlowMyBusiness flowMyBusiness = getFlowMyBusiness(eamInspectionOrderRequest.getInstanceId()); if (flowMyBusiness == null) { - return Result.error("娴佺▼璁板綍涓嶅瓨鍦�"); + throw new JeecgBootException("娴佺▼璁板綍涓嶅瓨鍦�"); } // 妫�鏌ョ敤鎴锋槸鍚︽湁鏉冮檺鎿嶄綔浠诲姟 if (!isUserAuthorized(flowMyBusiness, user)) { - return Result.error("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�"); + throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�"); } // 璁ら浠诲姟 if (!claimTask(flowMyBusiness.getTaskId(), user)) { - return Result.error("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰�"); + throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰�"); } // 璁剧疆娴佺▼鍙橀噺 @@ -334,9 +379,9 @@ updateEamInspectionOrderDetail(eamInspectionOrder); } - return Result.OK("鎿嶄綔鎴愬姛"); + return eamInspectionOrder; } catch (Exception e) { - return Result.error("鎿嶄綔澶辫触锛�" + e.getMessage()); + throw new JeecgBootException("鎿嶄綔澶辫触锛�" + e.getMessage()); } } @@ -436,6 +481,8 @@ } eamInspectionOrderDetailService.remove(new QueryWrapper<EamInspectionOrderDetail>().eq("order_id", order.getId())); eamInspectionOrderDetailService.saveBatch(request.getTableDetailList()); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentInspectionStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.INSPECTION_CONFIRM.name()); } else if (InspectionStatus.WAIT_CONFIRM.name().equals(order.getInspectionStatus()) && StrUtil.isNotEmpty(request.getConfirmDealType())) { // 鐝粍闀跨‘璁や换鍔� order.setInspectionStatus(InspectionStatus.COMPLETE.name()); @@ -443,6 +490,8 @@ order.setConfirmComment(request.getConfirmComment()); order.setConfirmDealType(request.getConfirmDealType()); order.setConfirmTime(new Date()); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentInspectionStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name()); } } } @@ -488,6 +537,8 @@ if (InspectionStatus.UNDER_INSPECTION.name().equals(type)) { eamInspectionOrder.setOperator(loginUser.getUsername()); this.triggerProcess(eamInspectionOrder); + //鏇存柊璁惧淇濆吇鐘舵�� + eamEquipmentExtendService.updateEquipmentInspectionStatus(eamInspectionOrder.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_INSPECTION.name()); } else { eamInspectionOrder.setOperator(null); } -- Gitblit v1.9.3