| | |
| | | package org.jeecg.modules.eam.service.impl; |
| | | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.flowable.engine.TaskService; |
| | | import org.flowable.task.api.Task; |
| | | import org.jeecg.common.api.vo.FileUploadResult; |
| | | import org.jeecg.common.api.vo.Result; |
| | | import org.jeecg.common.constant.CommonConstant; |
| | | import org.jeecg.common.constant.DataBaseConstant; |
| | |
| | | import org.jeecg.common.util.oConvertUtils; |
| | | 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.entity.EamEquipment; |
| | | import org.jeecg.modules.eam.entity.EamRepairOrder; |
| | | import org.jeecg.modules.eam.entity.EamRepairPerson; |
| | | import org.jeecg.modules.eam.entity.EamReportRepair; |
| | | import org.jeecg.modules.eam.mapper.EamRepairOrderMapper; |
| | | import org.jeecg.modules.eam.request.EamRepairOrderQuery; |
| | | import org.jeecg.modules.eam.request.EamRepairOrderRequest; |
| | | import org.jeecg.modules.eam.request.EamRepairOrderResponse; |
| | | import org.jeecg.modules.eam.request.EamReportRepairQuery; |
| | | import org.jeecg.modules.eam.service.IEamEquipmentExtendService; |
| | | import org.jeecg.modules.eam.service.IEamEquipmentService; |
| | | import org.jeecg.modules.eam.service.IEamRepairOrderService; |
| | | import org.jeecg.modules.eam.service.IEamReportRepairService; |
| | | import org.jeecg.modules.eam.service.*; |
| | | import org.jeecg.modules.eam.util.DateUtils; |
| | | import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; |
| | | import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; |
| | |
| | | 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.system.entity.BaseFactory; |
| | | import org.jeecg.modules.system.entity.BaseFactoryUser; |
| | | import org.jeecg.modules.system.service.IBaseFactoryService; |
| | | import org.jeecg.modules.system.service.IBaseFactoryUserService; |
| | | import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; |
| | | import org.jeecg.modules.system.service.ISysUserService; |
| | | import org.jeecg.modules.system.vo.UserSelector; |
| | |
| | | private FlowCommonService flowCommonService; |
| | | |
| | | @Resource |
| | | private ISysBusinessCodeRuleService businessCodeRuleService; |
| | | |
| | | @Resource |
| | | private IEamReportRepairService eamReportRepairService; |
| | | |
| | | @Resource |
| | |
| | | @Autowired |
| | | private ISysUserService sysUserService; |
| | | |
| | | @Autowired |
| | | private IBaseFactoryService baseFactoryService; |
| | | |
| | | @Autowired |
| | | private IBaseFactoryUserService baseFactoryUserService; |
| | | |
| | | @Autowired |
| | | private IEamRepairPersonService iEamRepairPersonService; |
| | | |
| | | /** |
| | | * 分页列表 |
| | | * |
| | |
| | | if (sysUser == null) { |
| | | return page; |
| | | } |
| | | if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) { |
| | | if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) { |
| | | //选择了设备,根据设备id过滤设备 |
| | | List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(",")); |
| | | List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(",")); |
| | | queryWrapper.in("e.equipment_code", equipArr); |
| | | } else { |
| | | //没有选择设备,根据车间过滤设备 |
| | | queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId()); |
| | | //没有选择设备,根据中心过滤设备 |
| | | 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 page; |
| | | } |
| | | } |
| | | //查询条件过滤 |
| | | if (query != null) { |
| | |
| | | if (StringUtils.isNotBlank(query.getRepairStatus())) { |
| | | queryWrapper.eq("wmo.repair_status", query.getRepairStatus()); |
| | | } |
| | | if (StringUtils.isNotBlank(query.getRepairer())) { |
| | | queryWrapper.like("wmo.repairer", query.getRepairer()); |
| | | } |
| | | if (StringUtils.isNotBlank(query.getRepairCode())) { |
| | | queryWrapper.like("wmo.repair_code", query.getRepairCode()); |
| | | } |
| | | // if(query.getStartTime() != null && query.getEndTime() != null) { |
| | | // queryWrapper.between("wmo.fault_start_time", query.getStartTime(), query.getEndTime()); |
| | | // } |
| | | //排序 |
| | | if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) { |
| | | String column = query.getColumn(); |
| | |
| | | return baseMapper.queryPageList(page, queryWrapper); |
| | | } |
| | | |
| | | /** |
| | | * 填报详情 |
| | | * @param id |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveRepairOrder(EamRepairOrder eamRepairOrder) { |
| | | String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE); |
| | | eamRepairOrder.setRepairCode(codeSeq); |
| | | EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId()); |
| | | if(eamReportRepair == null){ |
| | | throw new JeecgBootException("故障报修不存在,请刷新重试!"); |
| | | public List<EamRepairOrderDto> queryByReportId(String id){ |
| | | List<EamRepairOrder> eamRepairOrders=this.list( |
| | | new QueryWrapper<EamRepairOrder>().eq("id",id)); |
| | | List<EamRepairOrderDto> eamRepairOrderDtoList=new ArrayList<>(); |
| | | if (CollectionUtils.isEmpty(eamRepairOrders)) { |
| | | return null; |
| | | }else { |
| | | eamRepairOrders.forEach(eamRepairOrder->{ |
| | | EamRepairOrderDto eamRepairOrderDto=new EamRepairOrderDto(); |
| | | BeanUtils.copyProperties(eamRepairOrder,eamRepairOrderDto); |
| | | List<EamRepairPerson> eamRepairPersonList=iEamRepairPersonService.list( |
| | | new QueryWrapper<EamRepairPerson>().eq("repair_id",eamRepairOrder.getId())); |
| | | eamRepairOrderDto.setEamRepairPersonList(eamRepairPersonList); |
| | | eamRepairOrderDtoList.add(eamRepairOrderDto); |
| | | }); |
| | | } |
| | | eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0); |
| | | eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId()); |
| | | eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name()); |
| | | eamRepairOrder.setActualStartTime(DateUtils.getNow()); |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | eamRepairOrder.setRepairer(user.getUsername()); |
| | | super.save(eamRepairOrder); |
| | | EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId()); |
| | | // 启动维修流程 |
| | | flowCommonService.initActBusiness("工单号:" + codeSeq + ", 设备编号:" + eamEquipment.getEquipmentCode() + ";安装位置: " + eamEquipment.getInstallationPosition(), |
| | | eamRepairOrder.getId(), |
| | | "IEamRepairOrderService", |
| | | "eam_repair", |
| | | null); |
| | | Map<String, Object> variables = new HashMap<>(); |
| | | variables.put("dataId", eamRepairOrder.getId()); |
| | | variables.put("organization", "维修工单启动流程"); |
| | | variables.put("comment", "维修工单启动流程"); |
| | | variables.put("proofreading", true); |
| | | List<String> usernames = new ArrayList<>(); |
| | | usernames.add(user.getUsername()); |
| | | variables.put("NextAssignee", usernames); |
| | | Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables); |
| | | if (!result.isSuccess()) { |
| | | super.removeById(eamRepairOrder); |
| | | } else { |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name()); |
| | | eamReportRepairService.updateById(eamReportRepair); |
| | | //更新设备维修状态 |
| | | eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name()); |
| | | } |
| | | return eamRepairOrderDtoList; |
| | | } |
| | | |
| | | /** |
| | | * 指派 |
| | | * @param eamReportRepairQuery |
| | | * 填报维修工单 |
| | | * @param eamRepairOrderDto |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void assign(EamReportRepairQuery eamReportRepairQuery) { |
| | | EamRepairOrder eamRepairOrder = new EamRepairOrder(); |
| | | String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE); |
| | | eamRepairOrder.setRepairCode(codeSeq); |
| | | EamReportRepair eamReportRepair = eamReportRepairService.getById(eamReportRepairQuery.getId()); |
| | | if(eamReportRepair == null){ |
| | | throw new JeecgBootException("故障报修不存在,请刷新重试!"); |
| | | public boolean report(EamRepairOrderDto eamRepairOrderDto){ |
| | | EamRepairOrder eamRepairOrder=this.getById(eamRepairOrderDto.getId()); |
| | | if (eamRepairOrder==null){ |
| | | return false; |
| | | } |
| | | eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0); |
| | | eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId()); |
| | | eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name()); |
| | | eamRepairOrder.setActualStartTime(DateUtils.getNow()); |
| | | eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer()); |
| | | super.save(eamRepairOrder); |
| | | EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId()); |
| | | BeanUtils.copyProperties(eamRepairOrderDto,eamRepairOrder); |
| | | eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name()); |
| | | this.updateById(eamRepairOrder); |
| | | EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId()); |
| | | if (eamReportRepair==null){ |
| | | return false; |
| | | } |
| | | eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name()); |
| | | eamReportRepairService.updateById(eamReportRepair); |
| | | iEamRepairPersonService.remove(new QueryWrapper<EamRepairPerson>().eq("repair_id",eamRepairOrderDto.getId())); |
| | | if(CollectionUtils.isNotEmpty(eamRepairOrderDto.getEamRepairPersonList())) { |
| | | List<EamRepairPerson> persons = eamRepairOrderDto.getEamRepairPersonList().stream() |
| | | .map(person -> new EamRepairPerson() |
| | | .setRepairId(eamRepairOrder.getId()) |
| | | .setDelFlag(CommonConstant.DEL_FLAG_0)) |
| | | .collect(Collectors.toList()); |
| | | iEamRepairPersonService.saveBatch(persons); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void saveRepairOrder(String id) { |
| | | EamRepairOrder eamRepairOrder = this.getById(id); |
| | | List<EamRepairPerson> eamRepairPersonList=iEamRepairPersonService.list( |
| | | new QueryWrapper<EamRepairPerson>().eq("repair_id",eamRepairOrder.getId())); |
| | | if (CollectionUtils.isEmpty(eamRepairPersonList)) { |
| | | throw new RuntimeException("维修人员不能为空"); |
| | | } |
| | | if (StrUtil.isEmpty(eamRepairOrder.getRepairCode())) {} |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | | EamEquipment eamEquipment = eamEquipmentService.getById(eamRepairOrder.getEquipmentId()); |
| | | List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0001); |
| | | // 启动维修流程 |
| | | flowCommonService.initActBusiness("工单号:" + codeSeq + ", 设备编号:" + eamEquipment.getEquipmentCode() + ";安装位置: " + eamEquipment.getInstallationPosition(), |
| | | flowCommonService.initActBusiness("工单号:" + eamRepairOrder.getRepairCode() + ", 设备编号:" + eamEquipment.getEquipmentCode()+"发起维修流程", |
| | | eamRepairOrder.getId(), |
| | | "IEamRepairOrderService", |
| | | "eam_repair", |
| | | "repair_work_order", |
| | | null); |
| | | Map<String, Object> variables = new HashMap<>(); |
| | | variables.put("dataId", eamRepairOrder.getId()); |
| | | variables.put("organization", "维修工单启动流程"); |
| | | variables.put("comment", "维修工单启动流程"); |
| | | variables.put("proofreading", true); |
| | | List<String> usernames = new ArrayList<>(); |
| | | usernames.add(eamReportRepairQuery.getRepairer()); |
| | | variables.put("NextAssignee", usernames); |
| | | Result result = flowDefinitionService.startProcessInstanceByKey("eam_repair", variables); |
| | | if (CollectionUtils.isEmpty(userSelectorList)) { |
| | | throw new JeecgBootException("设备未存在操作员,无法进入下级审批!"); |
| | | }else { |
| | | List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | variables.put("NextAssignee", usernameList); |
| | | } |
| | | Result result = flowDefinitionService.startProcessInstanceByKey("repair_work_order", variables); |
| | | if (!result.isSuccess()) { |
| | | super.removeById(eamRepairOrder); |
| | | } else { |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name()); |
| | | eamRepairOrder.setRepairConfirm(user.getUsername()); |
| | | eamRepairOrder.setRepairConfirmTime(new Date()); |
| | | eamRepairOrder.setRepairStatus(EamRepairOrderRepairStatusEnum.PENDING_CONFIRMATION.name()); |
| | | this.updateById(eamRepairOrder); |
| | | EamReportRepair eamReportRepair=eamReportRepairService.getById(eamRepairOrder.getReportId()); |
| | | eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name()); |
| | | eamReportRepairService.updateById(eamReportRepair); |
| | | //更新设备维修状态 |
| | | eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name()); |
| | | eamEquipmentExtendService.updateEquipmentRepairStatus(eamRepairOrder.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name()); |
| | | } |
| | | } |
| | | |
| | |
| | | EamRepairOrder order = this.baseMapper.selectById(request.getId()); |
| | | if (order == null) { |
| | | throw new JeecgBootException("维修工单不存在,请刷新重试!"); |
| | | } |
| | | EamReportRepair eamReportRepair = eamReportRepairService.getById(order.getReportId()); |
| | | if (eamReportRepair == null) { |
| | | throw new JeecgBootException("故障报修不存在,请刷新重试!"); |
| | | } |
| | | // 获取当前登录用户 |
| | | LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); |
| | |
| | | if (equipment == null) { |
| | | throw new JeecgBootException("设备不存在,请检查!"); |
| | | } |
| | | |
| | | ReportRepairEnum status = ReportRepairEnum.getInstance(order.getRepairStatus()); |
| | | if (status == null) { |
| | | throw new JeecgBootException("工单状态不合法,请检查!"); |
| | | } |
| | | //流程变量 |
| | | Map<String, Object> values = new HashMap<>(); |
| | | List<UserSelector> userSelectors; |
| | | List<String> userApprovalList; |
| | | switch (status) { |
| | | case WAIT_INTERNAL_CONFIRM: |
| | | order.setRepairConfirm(request.getRepairConfirm()); |
| | | order.setRepairConfirmComment(request.getRepairConfirmComment()); |
| | | order.setRepairConfirmTime(new Date()); |
| | | values.put("dataId", order.getId()); |
| | | values.put("repairConfirm", request.getRepairConfirm()); |
| | | if(StringUtils.isNotBlank(request.getRepairConfirmComment())){ |
| | | values.put("organization", request.getRepairConfirmComment()); |
| | | values.put("comment", request.getRepairConfirmComment()); |
| | | request.setComment(request.getRepairConfirmComment()); |
| | | }else { |
| | | values.put("organization", "维修工单维修人确认完成"); |
| | | values.put("comment", "维修工单维修人确认完成"); |
| | | request.setComment("维修工单维修人确认完成"); |
| | | } |
| | | if(CommonConstant.STATUS_1.equals(request.getRepairConfirm())) { |
| | | //可内部维修 维修人进行维修 |
| | | values.put("NextAssignee", Arrays.asList(order.getRepairer().split(","))); |
| | | |
| | | order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name()); |
| | | }else { |
| | | //提交机动办维修,车间管理员确认 |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0003); |
| | | if (CollectionUtil.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("设备未分配给班组长,无法进入下级审批!"); |
| | | } |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | order.setRepairStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name()); |
| | | } |
| | | break; |
| | | case UNDER_INTERNAL_REPAIR: |
| | | // 内部维修 |
| | | values.put("dataId", order.getId()); |
| | | values.put("organization", "维修工单维修完成待操作工确认"); |
| | | values.put("comment", "维修工单维修完成待操作工确认"); |
| | | values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); |
| | | request.setComment("维修工单维修完成待操作工确认"); |
| | | order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name()); |
| | | order.setFaultReason(request.getFaultReason()); |
| | | order.setRepairDescription(request.getRepairDescription()); |
| | | order.setActualEndTime(new Date()); |
| | | // 处理附件 |
| | | if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { |
| | | List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | try { |
| | | String referenceFile = mapper.writeValueAsString(fileUploadResultList); |
| | | order.setImageFiles(referenceFile); |
| | | } catch (JsonProcessingException e) { |
| | | log.error("JSON转换失败:" + e.getMessage(), e); |
| | | } |
| | | } |
| | | //更新设备维修状态 |
| | | eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name()); |
| | | break; |
| | | case WAIT_LEADER_CONFIRM: |
| | | order.setLeaderConfirm(request.getLeaderConfirm()); |
| | | order.setLeaderConfirmComment(request.getLeaderConfirmComment()); |
| | | order.setLeaderUser(user.getUsername()); |
| | | order.setLeaderConfirmTime(new Date()); |
| | | values.put("dataId", order.getId()); |
| | | values.put("leaderConfirm", request.getLeaderConfirm()); |
| | | if(StringUtils.isNotBlank(request.getLeaderConfirmComment())){ |
| | | values.put("organization", request.getLeaderConfirmComment()); |
| | | values.put("comment", request.getLeaderConfirmComment()); |
| | | request.setComment(request.getLeaderConfirmComment()); |
| | | }else { |
| | | values.put("organization", "维修工单领导确认完成"); |
| | | values.put("comment", "维修工单领导确认完成"); |
| | | request.setComment("维修工单领导确认完成"); |
| | | } |
| | | if(CommonConstant.STATUS_1.equals(request.getLeaderConfirm())) { |
| | | //通过 提交机动办维修 |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), null, BusinessCodeConst.PCR0006); |
| | | if (CollectionUtil.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("设备未分配给公司管理员,无法进入下级审批!"); |
| | | } |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | order.setRepairStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name()); |
| | | }else { |
| | | //驳回 可内部维修 维修人进行维修 |
| | | values.put("NextAssignee", Arrays.asList(order.getRepairer().split(","))); |
| | | order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name()); |
| | | } |
| | | break; |
| | | case WAIT_EXTERNAL_CONFIRM: |
| | | order.setExternalConfirm(request.getExternalConfirm()); |
| | | order.setExternalConfirmComment(request.getExternalConfirmComment()); |
| | | order.setExternalRepairer(user.getUsername()); |
| | | order.setExternalConfirmTime(new Date()); |
| | | values.put("dataId", order.getId()); |
| | | values.put("externalConfirm", request.getExternalConfirm()); |
| | | if(StringUtils.isNotBlank(request.getExternalConfirmComment())){ |
| | | values.put("organization", request.getExternalConfirmComment()); |
| | | values.put("comment", request.getExternalConfirmComment()); |
| | | request.setComment(request.getExternalConfirmComment()); |
| | | }else { |
| | | values.put("organization", "维修工单机动办确认完成"); |
| | | values.put("comment", "维修工单机动办确认完成"); |
| | | request.setComment("维修工单机动办确认完成"); |
| | | } |
| | | if(CommonConstant.STATUS_1.equals(request.getExternalConfirm())) { |
| | | //机动办可维修 机动办维修人进行维修 |
| | | values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(","))); |
| | | order.setRepairStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name()); |
| | | }else { |
| | | //机动办不可维修 进行委外维修 |
| | | values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(","))); |
| | | order.setRepairStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name()); |
| | | } |
| | | break; |
| | | case UNDER_EXTERNAL_REPAIR: |
| | | // 机动办维修 |
| | | values.put("dataId", order.getId()); |
| | | values.put("organization", "维修工单机动办维修完成待操作工确认"); |
| | | values.put("comment", "维修工单机动办维修完成待操作工确认"); |
| | | values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); |
| | | request.setComment("维修工单机动办维修完成待操作工确认"); |
| | | order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name()); |
| | | order.setFaultReason(request.getFaultReason()); |
| | | order.setRepairDescription(request.getRepairDescription()); |
| | | order.setActualEndTime(new Date()); |
| | | // 处理附件 |
| | | if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { |
| | | List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | try { |
| | | String referenceFile = mapper.writeValueAsString(fileUploadResultList); |
| | | order.setImageFiles(referenceFile); |
| | | } catch (JsonProcessingException e) { |
| | | log.error("JSON转换失败:" + e.getMessage(), e); |
| | | } |
| | | } |
| | | //更新设备维修状态 |
| | | eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name()); |
| | | break; |
| | | case UNDER_OUTSIDE_REPAIR: |
| | | // 机动办维修 |
| | | values.put("dataId", order.getId()); |
| | | values.put("organization", "维修工单委外维修完成待操作工确认"); |
| | | values.put("comment", "维修工单委外维修完成待操作工确认"); |
| | | values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(","))); |
| | | request.setComment("维修工单委外维修完成待操作工确认"); |
| | | order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name()); |
| | | order.setOutsourcedUser(user.getUsername()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name()); |
| | | order.setFaultReason(request.getFaultReason()); |
| | | order.setRepairDescription(request.getRepairDescription()); |
| | | order.setActualEndTime(new Date()); |
| | | // 处理附件 |
| | | if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) { |
| | | List<FileUploadResult> fileUploadResultList = request.getImageFilesResult(); |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | try { |
| | | String referenceFile = mapper.writeValueAsString(fileUploadResultList); |
| | | order.setImageFiles(referenceFile); |
| | | } catch (JsonProcessingException e) { |
| | | log.error("JSON转换失败:" + e.getMessage(), e); |
| | | } |
| | | } |
| | | //更新设备维修状态 |
| | | eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name()); |
| | | break; |
| | | case WAIT_CONFIRM: |
| | | // 待确认, 维修员维修完成,报修人确认结束流程 |
| | | values.put("dataId", order.getId()); |
| | | values.put("organization", "维修工单流程结束"); |
| | | values.put("comment", "维修工单流程结束"); |
| | | request.setComment("维修工单流程结束"); |
| | | order.setRepairStatus(ReportRepairEnum.COMPLETE.name()); |
| | | eamReportRepair.setReportStatus(ReportRepairEnum.COMPLETE.name()); |
| | | order.setConfirmComment(request.getConfirmComment()); |
| | | order.setConfirmTime(new Date()); |
| | | order.setConfirmer(user.getUsername()); |
| | | //更新设备维修状态 |
| | | eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.NORMAL.name()); |
| | | break; |
| | | } |
| | | values.put("dataId", request.getId()); |
| | | values.put("assignee", user.getId()); |
| | | values.put("organization", request.getConfirmComment()); |
| | | values.put("comment", request.getConfirmComment()); |
| | | request.setComment(request.getConfirmComment()); |
| | | request.setValues(values); |
| | | |
| | | // 完成流程任务 |
| | | Result result = flowTaskService.complete(request); |
| | | if (!result.isSuccess()) { |
| | | throw new JeecgBootException("审批失败,请刷新查看!"); |
| | | } |
| | | //保存工单 |
| | | if (request.getConfirmResult() != null) { |
| | | if ("1".equals(request.getConfirmResult())) { |
| | | order.setRepairStatus(EamRepairOrderRepairStatusEnum.REPAIR_COMPLETED.name()); |
| | | }else { |
| | | order.setRepairStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name()); |
| | | } |
| | | } |
| | | order.setConfirmer(user.getUsername()); |
| | | order.setConfirmTime(new Date()); |
| | | order.setConfirmResult(request.getConfirmResult()); |
| | | order.setConfirmComment(request.getConfirmComment()); |
| | | this.baseMapper.updateById(order); |
| | | // 同步更新报修表状态 |
| | | EamReportRepair eamReportRepair=eamReportRepairService.getById(order.getReportId()); |
| | | eamReportRepair.setReportStatus(EamRepairOrderRepairStatusEnum.UNDER_MAINTENANCE.name()); |
| | | eamReportRepairService.updateById(eamReportRepair); |
| | | return order; |
| | | } |
| | |
| | | BeanUtils.copyProperties(eamRepairOrder, eamRepairOrderResponse); |
| | | EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId()); |
| | | BeanUtils.copyProperties(eamReportRepair, eamRepairOrderResponse); |
| | | eamRepairOrderResponse.setReportImageFiles(eamReportRepair.getImageFiles()); |
| | | eamRepairOrderResponse.setImageFiles(eamRepairOrder.getImageFiles()); |
| | | return eamRepairOrderResponse; |
| | | } |
| | | |