| | |
| | | import cn.hutool.core.collection.CollectionUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | 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.entity.EamBaseHFCode; |
| | | import org.jeecg.modules.eam.entity.EamEquipment; |
| | | import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrder; |
| | | import org.jeecg.modules.eam.entity.EamThirdMaintenanceOrderDetail; |
| | | import org.jeecg.modules.eam.entity.*; |
| | | import org.jeecg.modules.eam.mapper.EamThirdMaintenanceOrderMapper; |
| | | import org.jeecg.modules.eam.request.EamInspectionOrderRequest; |
| | | import org.jeecg.modules.eam.request.EamThirdMaintenanceBaseResponse; |
| | | import org.jeecg.modules.eam.request.EamThirdMaintenanceQuery; |
| | | import org.jeecg.modules.eam.request.EamThirdMaintenanceRequest; |
| | | import org.jeecg.modules.eam.service.*; |
| | | import org.jeecg.modules.eam.vo.EamThirdMaintenanceBaseVo; |
| | | 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.FlowCallBackServiceI; |
| | |
| | | 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.ISysDictService; |
| | | import org.jeecg.modules.system.service.ISysUserService; |
| | | import org.jeecg.modules.system.vo.UserSelector; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | private IEamBaseHFCodeService eamBaseHFCodeService; |
| | | @Resource |
| | | private IEamThirdMaintenanceOrderDetailService eamThirdMaintenanceOrderDetailService; |
| | | @Resource |
| | | private IEamThirdMaintenanceSpareService eamThirdMaintenanceSpareService; |
| | | @Resource |
| | | private ISysDictService sysDictService; |
| | | |
| | | @Override |
| | | public IPage<EamThirdMaintenanceOrder> queryPageList(Page<EamThirdMaintenanceOrder> page, EamThirdMaintenanceQuery query) { |
| | |
| | | eamThirdMaintenanceOrderMapper.updateById(entity); |
| | | |
| | | //启动流程 |
| | | flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode() + (equipment.getInstallationPosition() == null ? "" : ";安装位置: " + equipment.getInstallationPosition()), |
| | | flowCommonService.initActBusiness("工单号:" + entity.getOrderNum() + ";设备编号: " + equipment.getEquipmentCode(), |
| | | entity.getId(), "IEamThirdMaintenanceOrderService", "third_maintenance_process", null); |
| | | Map<String, Object> variables = new HashMap<>(); |
| | | variables.put("dataId", entity.getId()); |
| | |
| | | |
| | | /** |
| | | * 查询三保工单基本信息 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | |
| | | return Result.ok(eamThirdMaintenanceRequestList); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean updateMaintenanceStatus(String orderId, String maintenanceStatus) { |
| | | LambdaUpdateWrapper<EamThirdMaintenanceOrder> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(EamThirdMaintenanceOrder::getId, orderId); |
| | | updateWrapper.set(EamThirdMaintenanceOrder::getMaintenanceStatus, maintenanceStatus); |
| | | updateWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0); |
| | | updateWrapper.in(EamThirdMaintenanceOrder::getMaintenanceStatus, Arrays.asList(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name(), ThirdMaintenanceStatusEnum.FREEZE.name())); |
| | | int update = this.getBaseMapper().update(null, updateWrapper); |
| | | return update > 0; |
| | | } |
| | | |
| | | @Override |
| | | public List<EamThirdMaintenanceOrder> selectWaitMaintenanceOrderList() { |
| | | LambdaQueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(EamThirdMaintenanceOrder::getMaintenanceStatus, ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name()); |
| | | queryWrapper.isNotNull(EamThirdMaintenanceOrder::getFreezeOrderDate); |
| | | queryWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0); |
| | | LocalDate localDate = LocalDate.now(); |
| | | queryWrapper.lt(EamThirdMaintenanceOrder::getFreezeOrderDate, localDate.toString()); |
| | | return this.getBaseMapper().selectList(queryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<EamThirdMaintenanceOrder> selectUnCompletedThirdMaintenanceOrderList() { |
| | | LambdaQueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new LambdaQueryWrapper<>(); |
| | | List<String> statusList = Arrays.asList(ThirdMaintenanceStatusEnum.WAIT_MAINTENANCE.name(), |
| | | ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name(), |
| | | ThirdMaintenanceStatusEnum.WAIT_CHECK.name(), |
| | | ThirdMaintenanceStatusEnum.UNDER_FIRST_ACCEPTANCE.name(), |
| | | ThirdMaintenanceStatusEnum.UNDER_SECOND_ACCEPTANCE.name(), |
| | | ThirdMaintenanceStatusEnum.OPERATOR_SIGNATURE.name(), |
| | | ThirdMaintenanceStatusEnum.REPAIRMAN_SIGNATURE.name(), |
| | | ThirdMaintenanceStatusEnum.REPAIR_MANAGER_SIGNATURE.name(), |
| | | ThirdMaintenanceStatusEnum.INSPECTOR_SIGNATURE.name(), |
| | | ThirdMaintenanceStatusEnum.FREEZE.name() |
| | | ); |
| | | queryWrapper.in(EamThirdMaintenanceOrder::getMaintenanceStatus, statusList); |
| | | queryWrapper.isNotNull(EamThirdMaintenanceOrder::getOrderExpirationDate); |
| | | queryWrapper.eq(EamThirdMaintenanceOrder::getDelFlag, CommonConstant.DEL_FLAG_0); |
| | | LocalDate localDate = LocalDate.now(); |
| | | queryWrapper.lt(EamThirdMaintenanceOrder::getOrderExpirationDate, localDate.toString()); |
| | | return this.getBaseMapper().selectList(queryWrapper); |
| | | } |
| | | |
| | | /** |
| | | * 获取工单基本信息 |
| | | * |
| | | * @param id 工单id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public JSONObject exportThirdMaintenanceOrderBaseInfo(String id) { |
| | | // 创建结果对象 |
| | | JSONObject result = new JSONObject(); |
| | | EamThirdMaintenanceBaseResponse eamThirdMaintenanceBaseResponse = eamThirdMaintenanceOrderMapper.findThirdMaintenanceBaseInfo(id); |
| | | if (eamThirdMaintenanceBaseResponse == null) { |
| | | return result; |
| | | } |
| | | eamThirdMaintenanceBaseResponse.setOperatorSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getOperatorSignature()) + "," + eamThirdMaintenanceBaseResponse.getAssistantOperator()); |
| | | eamThirdMaintenanceBaseResponse.setRepairmanSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getRepairmanSignature()) + "," + eamThirdMaintenanceBaseResponse.getAssistantRepairman()); |
| | | eamThirdMaintenanceBaseResponse.setRepairManagerSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getRepairManagerSignature())); |
| | | eamThirdMaintenanceBaseResponse.setInspectorSignature(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", eamThirdMaintenanceBaseResponse.getInspectorSignature())); |
| | | eamThirdMaintenanceBaseResponse.setEquipmentCategory(sysDictService.queryDictTextByKey("equipment_category", eamThirdMaintenanceBaseResponse.getEquipmentCategory())); |
| | | //检查人和检查时间 |
| | | EamThirdMaintenanceBaseVo vo = eamThirdMaintenanceOrderDetailService.selectCreatByAndTimeByOrderId(id); |
| | | if (vo != null) { |
| | | eamThirdMaintenanceBaseResponse.setCreateBy(sysDictService.queryTableDictTextByKey("sys_user", "realname", "username", vo.getOperateBy())); |
| | | eamThirdMaintenanceBaseResponse.setCreateTime(vo.getOperateTime()); |
| | | } |
| | | result.put("data",Collections.singletonList(eamThirdMaintenanceBaseResponse)); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 设置流程变量 |
| | | */ |
| | |
| | | values.put("dataId", order.getId()); |
| | | values.put("organization", "技术状态鉴定结束"); |
| | | values.put("comment", "技术状态鉴定结束"); |
| | | if (CommonConstant.YN_O.equals(request.getFullyFunctional()) && CommonConstant.YN_O.equals(request.getRunningNormally())) { |
| | | if (CommonConstant.YN_1.equals(request.getFullyFunctional()) && CommonConstant.YN_1.equals(request.getRunningNormally())) { |
| | | values.put("confirmation", "1"); |
| | | // 获取下一步执行人 |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); |
| | |
| | | } |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("NextAssignee", userApprovalList); |
| | | request.setComment("检查人检查结束"); |
| | | //更新设备保养状态 |
| | | eamEquipmentExtendService.updateEquipmentMaintenanceStatus(order.getEquipmentId(), EquipmentMaintenanceStatus.UNDER_THIRD_MAINTENANCE.name()); |
| | | } else { |
| | | values.put("confirmation", "2"); |
| | | } |
| | | request.setComment("检查人检查结束"); |
| | | break; |
| | | case UNDER_MAINTENANCE: |
| | | // 保养结束 |
| | |
| | | values.put("organization", "保养人保养结束"); |
| | | values.put("comment", "保养人保养结束"); |
| | | // 获取下一步执行人 |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0002); |
| | | userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003); |
| | | if (CollectionUtil.isEmpty(userSelectors)) { |
| | | throw new JeecgBootException("设备未分配给维修工,无法进入下级审批!"); |
| | | throw new JeecgBootException("设备未分配给设备检验员,无法进入下级审批!"); |
| | | } |
| | | userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList()); |
| | | values.put("NextAssignee", userApprovalList); |
| | |
| | | case WAIT_CHECK: |
| | | // 技术状态鉴定结束 |
| | | order.setInspector(user.getUsername()); |
| | | order.setFullyFunctional(request.getFullyFunctionalResult()); |
| | | order.setRunningNormally(request.getRunningNormallyResult()); |
| | | order.setFullyFunctional(request.getFullyFunctional()); |
| | | order.setRunningNormally(request.getRunningNormally()); |
| | | order.setInspectTime(new Date()); |
| | | if (CommonConstant.YN_O.equals(request.getFullyFunctionalResult()) && CommonConstant.YN_O.equals(request.getRunningNormallyResult())) { |
| | | if (CommonConstant.YN_1.equals(request.getFullyFunctional()) && CommonConstant.YN_1.equals(request.getRunningNormally())) { |
| | | // 鉴定通过 |
| | | order.setMaintenanceStatus(ThirdMaintenanceStatusEnum.UNDER_MAINTENANCE.name()); |
| | | } else { |
| | |
| | | // 三保明细处理 |
| | | eamThirdMaintenanceOrderDetailService.remove(new LambdaQueryWrapper<EamThirdMaintenanceOrderDetail>().eq(EamThirdMaintenanceOrderDetail::getOrderId, order.getId())); |
| | | eamThirdMaintenanceOrderDetailService.saveBatch(request.getTableDetailList()); |
| | | // 三保备件明细处理 |
| | | if (request.getTableSpareList() != null && !request.getTableSpareList().isEmpty()) { |
| | | List<EamThirdMaintenanceSpare> tableSpareList = request.getTableSpareList(); |
| | | tableSpareList.forEach(eamThirdMaintenanceSpare -> { |
| | | eamThirdMaintenanceSpare.setOrderId(request.getId()); |
| | | }); |
| | | eamThirdMaintenanceSpareService.saveBatch(tableSpareList); |
| | | } |
| | | break; |
| | | case UNDER_FIRST_ACCEPTANCE: |
| | | // 第一次验收结束 |