| | |
| | | private IGdWorkOrderFlowService gdWorkOrderFlowService; |
| | | |
| | | @Override |
| | | public GdWorkOrderEntity getWorkOrderDetail(GdWorkOrderEntity gdWorkOrder) { |
| | | return baseMapper.getWorkOrderDetail(gdWorkOrder); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<GdWorkOrderVO> selectGdWorkOrderPage(IPage<GdWorkOrderVO> page, WorkOrderPageParam gdWorkOrder) { |
| | | return page.setRecords(baseMapper.selectGdWorkOrderPage(page, gdWorkOrder)); |
| | | } |
| | |
| | | @Override |
| | | public List<GdWorkOrderExcel> exportGdWorkOrder(Wrapper<GdWorkOrderEntity> queryWrapper) { |
| | | List<GdWorkOrderExcel> gdWorkOrderList = baseMapper.exportGdWorkOrder(queryWrapper); |
| | | //gdWorkOrderList.forEach(gdWorkOrder -> { |
| | | // gdWorkOrderList.forEach(gdWorkOrder -> { |
| | | // gdWorkOrder.setTypeName(DictCache.getValue(DictEnum.YES_NO, GdWorkOrder.getType())); |
| | | //}); |
| | | return gdWorkOrderList; |
| | |
| | | |
| | | /** |
| | | * 保存工单任务表 |
| | | * |
| | | * @param workOrderParam |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean saveWorkOrder(WorkOrderAddParam workOrderParam) { |
| | | public boolean saveOrUpdateWorkOrder(WorkOrderAddParam workOrderParam) { |
| | | GdWorkOrderEntity entity = Objects.requireNonNull(BeanUtil.copy(workOrderParam, GdWorkOrderEntity.class)); |
| | | |
| | | // 验证并格式化几何数据 |
| | |
| | | String timestamp = OrderNumUtils.initOrderNum(WordOrderConstant.ORDER_REDIS_KEY); |
| | | entity.setWorkOrderCode(WordOrderConstant.ORDER_PREFIX + timestamp); |
| | | } |
| | | entity.setCreateUser(AuthUtil.getUserId()); |
| | | entity.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); |
| | | boolean save = save(entity); |
| | | Integer save = 0; |
| | | if (entity.getId() != null) { |
| | | entity.setUpdateUser(AuthUtil.getUserId()); |
| | | entity.setUpdateTime(new Date()); |
| | | save = baseMapper.updateWorkOrderById(entity); |
| | | } else { |
| | | entity.setCreateUser(AuthUtil.getUserId()); |
| | | entity.setCreateTime(new Date()); |
| | | entity.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); |
| | | entity.setStatus(1); |
| | | entity.setIsDeleted(0); |
| | | save = baseMapper.saveWorkOrder(entity); |
| | | } |
| | | // 保存成功 |
| | | if (save){ |
| | | if (save > 0) { |
| | | // 保存流转记录 |
| | | GdWorkOrderFlowEntity gdWorkOrderFlowEntity = new GdWorkOrderFlowEntity(); |
| | | gdWorkOrderFlowEntity.setCreateUser(AuthUtil.getUserId()); |
| | |
| | | |
| | | /** |
| | | * 处理工单状态变更(接单或拒接接单) |
| | | * |
| | | * @param statusParam |
| | | * @return |
| | | */ |
| | |
| | | return false; |
| | | } |
| | | |
| | | // 检查工单当前状态是否为发布中_接单中(10) |
| | | if (!workOrder.getWorkOrderStatus().equals(WorkOrderStatusEnum.PUBLISHING_ACCEPTING.getCode())) { |
| | | // 检查当前状态是否允许该操作类型 |
| | | WorkOrderStatusEnum currentStatus = WorkOrderStatusEnum.getByCode(workOrder.getWorkOrderStatus()); |
| | | if (currentStatus == null || !currentStatus.isAllowedOperation(statusParam.getOperationType())) { |
| | | return false; |
| | | } |
| | | |
| | | // 操作类型:1接单,2拒接接单 |
| | | // 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 8.不同意修改 |
| | | Integer operationType = statusParam.getOperationType(); |
| | | Byte newStatus = null; |
| | | String newStatus = null; |
| | | String flowName = null; |
| | | String flowDesc = null; |
| | | |
| | | if (operationType == 1) { |
| | | // 接单操作:更新状态为响应中_待拆分(20) |
| | | newStatus = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getCode(); |
| | | flowName = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getStageDesc(); |
| | | flowDesc = AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), CommonConstant.YYYY_MM_DD_HH_MM_SS); |
| | | } else if (operationType == 2) { |
| | | // 拒接接单操作:更新状态为发布中_拒绝接单(11) |
| | | newStatus = WorkOrderStatusEnum.PUBLISHING_REJECTING.getCode(); |
| | | flowName = WorkOrderStatusEnum.PUBLISHING_REJECTING.getStageDesc(); |
| | | flowDesc = AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), CommonConstant.YYYY_MM_DD_HH_MM_SS) ; |
| | | } else { |
| | | // 无效的操作类型 |
| | | return false; |
| | | // 统一设置流转描述前缀 |
| | | String flowDesc = AuthUtil.getUserName() + " " + org.springblade.core.tool.utils.DateUtil.format(new Date(), CommonConstant.YYYY_MM_DD_HH_MM_SS); |
| | | |
| | | switch (operationType) { |
| | | case 1: |
| | | case 7: |
| | | // 接单操作:更新状态为响应中_待拆分(20) |
| | | newStatus = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getCode(); |
| | | flowName = WorkOrderStatusEnum.RESPONDING_TO_BE_SPLIT.getStageDesc(); |
| | | break; |
| | | case 2: |
| | | // 拒接接单操作:更新状态为发布中_拒绝接单(11) |
| | | newStatus = WorkOrderStatusEnum.PUBLISHING_REJECTING.getCode(); |
| | | flowName = WorkOrderStatusEnum.PUBLISHING_REJECTING.getStageDesc(); |
| | | break; |
| | | case 3: |
| | | // 申请取消操作:更新状态为响应中_申请取消(21) |
| | | newStatus = WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL.getCode(); |
| | | flowName = WorkOrderStatusEnum.RESPONDING_APPLY_CANCEL.getStageDesc(); |
| | | break; |
| | | case 4: |
| | | // 申请修改操作:更新状态为响应中_申请修改(22) |
| | | newStatus = WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY.getCode(); |
| | | flowName = WorkOrderStatusEnum.RESPONDING_APPLY_MODIFY.getStageDesc(); |
| | | break; |
| | | case 5: |
| | | // 已取消操作:更新状态为响应中_已取消(23) |
| | | newStatus = WorkOrderStatusEnum.RESPONDING_CANCELED.getCode(); |
| | | flowName = WorkOrderStatusEnum.RESPONDING_CANCELED.getStageDesc(); |
| | | break; |
| | | case 6: |
| | | // 已取消操作:更新状态为响应中_已取消(24) |
| | | newStatus = WorkOrderStatusEnum.RESPONDING_REJECT_CANCEL.getCode(); |
| | | flowName = WorkOrderStatusEnum.RESPONDING_REJECT_CANCEL.getStageDesc(); |
| | | break; |
| | | case 8: |
| | | // 已取消操作:更新状态为响应中_已取消(25) |
| | | newStatus = WorkOrderStatusEnum.RESPONDING_REJECT_MODIFY.getCode(); |
| | | flowName = WorkOrderStatusEnum.RESPONDING_REJECT_MODIFY.getStageDesc(); |
| | | break; |
| | | default: |
| | | // 无效的操作类型 |
| | | return false; |
| | | } |
| | | |
| | | // 更新工单状态 |
| | | workOrder.setWorkOrderStatus(newStatus); |
| | | workOrder.setUpdateUser(AuthUtil.getUserId()); |
| | | workOrder.setUpdateTime(new Date()); |
| | | workOrder.setGeom(null); |
| | | boolean update = updateById(workOrder); |
| | | |
| | | // 更新成功,保存流转记录 |