| | |
| | | package com.ycl.platform.service.impl; |
| | | |
| | | import com.ycl.platform.domain.entity.WorkOrder; |
| | | import com.ycl.platform.mapper.WorkOrderMapper; |
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; |
| | | import com.ycl.exception.ServiceException; |
| | | import com.ycl.platform.domain.entity.*; |
| | | import com.ycl.platform.domain.form.*; |
| | | import com.ycl.platform.domain.query.DistributeWorkOrderQuery; |
| | | import com.ycl.platform.domain.vo.DistributeWorkOrderVO; |
| | | import com.ycl.platform.mapper.*; |
| | | import com.ycl.platform.service.WorkOrderService; |
| | | import com.ycl.system.Result; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ycl.platform.domain.form.WorkOrderForm; |
| | | import com.ycl.platform.domain.vo.WorkOrderVO; |
| | | import com.ycl.platform.domain.query.WorkOrderQuery; |
| | | import java.util.List; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.ycl.system.page.PageUtil; |
| | | import com.ycl.utils.DateUtils; |
| | | import enumeration.general.FastDistributeTypeEnum; |
| | | import enumeration.general.WorkOrderStatusEnum; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.security.core.context.SecurityContextHolder; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.Assert; |
| | | import java.util.ArrayList; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.util.StringUtils; |
| | | |
| | | /** |
| | | * 工单 服务实现类 |
| | |
| | | public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService { |
| | | |
| | | private final WorkOrderMapper workOrderMapper; |
| | | private final YwUnitMapper ywUnitMapper; |
| | | private final YwPeopleMapper ywPeopleMapper; |
| | | private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper; |
| | | private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; |
| | | |
| | | |
| | | /** |
| | | * 添加 |
| | |
| | | return Result.ok("修改成功"); |
| | | } |
| | | return Result.error("修改失败"); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result auditing(WorkOrderAuditingForm form) { |
| | | WorkOrder workOrder = baseMapper.selectById(form.getId()); |
| | | if (Objects.isNull(workOrder)) { |
| | | throw new ServiceException("工单不存在"); |
| | | } |
| | | // 工单状态 |
| | | if ("pass".equals(form.getAuditingResult())) { |
| | | workOrder.setStatus(WorkOrderStatusEnum.FINISH); |
| | | } else { |
| | | workOrder.setStatus(WorkOrderStatusEnum.AUDITING); |
| | | } |
| | | baseMapper.updateById(workOrder); |
| | | // 添加一条审核记录 |
| | | WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord(); |
| | | workOrderAuditingRecord.setWorkOrderId(workOrder.getId()); |
| | | workOrderAuditingRecord.setAuditingUser(1); |
| | | workOrderAuditingRecord.setResult(form.getAuditingResult()); |
| | | workOrderAuditingRecord.setRemark(form.getAuditingRemark()); |
| | | workOrderAuditingRecordMapper.insert(workOrderAuditingRecord); |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Result ywCondition(WorkOrderYWConditionForm form) { |
| | | WorkOrder workOrder = baseMapper.selectById(form.getId()); |
| | | if (Objects.isNull(workOrder)) { |
| | | throw new ServiceException("工单不存在"); |
| | | } |
| | | // 工单状态 |
| | | // workOrder.setStatus("commit-condition"); |
| | | baseMapper.updateById(workOrder); |
| | | // 添加一条运维情况记录 |
| | | WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord(); |
| | | workOrderYwConditionRecord.setWorkOrderId(workOrder.getId()); |
| | | workOrderYwConditionRecord.setCommitUser(1); |
| | | workOrderYwConditionRecord.setYwCondition(form.getYwCondition()); |
| | | workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord); |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public Result ywResult(WorkOrderYWResultForm form) { |
| | | return null; |
| | | } |
| | | |
| | | @Override |
| | | public Result checkResult(WorkOrderCheckResultForm form) { |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public Result page(WorkOrderQuery query) { |
| | | |
| | | IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper) |
| | | .eq(StringUtils.hasText(query.getWorkOrderNo()), WorkOrder::getWorkOrderNo, query.getWorkOrderNo()) |
| | | .ne(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) |
| | | .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()), |
| | | WorkOrder::getYwHandleTime, |
| | | DateUtils.getDayStart(query.getStart()), |
| | | DateUtils.getDayEnd(query.getEnd())) |
| | | .orderByDesc(WorkOrder::getCreateTime) |
| | | .page(PageUtil.getPage(query, WorkOrder.class)); |
| | | |
| | | List<WorkOrderVO> vos = page.getRecords().stream() |
| | | .map( |
| | | entity -> WorkOrderVO.getVoByEntity(entity, null) |
| | | entity -> { |
| | | WorkOrderVO vo = WorkOrderVO.getVoByEntity(entity, null); |
| | | YwUnit unit = ywUnitMapper.selectById(vo.getUnitId()); |
| | | if (Objects.nonNull(unit)) { |
| | | vo.setUnitName(unit.getUnitName()); |
| | | } |
| | | YwPeople ywPeople = ywPeopleMapper.selectById(vo.getYwPeopleId()); |
| | | if (Objects.nonNull(ywPeople)) { |
| | | vo.setYwPeopleName(ywPeople.getYwPersonName()); |
| | | } |
| | | return vo; |
| | | } |
| | | ) |
| | | .collect(Collectors.toList()); |
| | | return Result.ok().data(vos).total(page.getTotal()); |
| | | } |
| | | |
| | | @Override |
| | | public Result distributePage(DistributeWorkOrderQuery query) { |
| | | IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper) |
| | | .eq(Objects.nonNull(query.getUnitId()), WorkOrder::getUnitId, query.getUnitId()) |
| | | .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) |
| | | .orderByDesc(WorkOrder::getCreateTime) |
| | | .page(PageUtil.getPage(query, WorkOrder.class)); |
| | | List<WorkOrderVO> vos = page.getRecords().stream() |
| | | .map( |
| | | entity -> { |
| | | WorkOrderVO vo = WorkOrderVO.getVoByEntity(entity, null); |
| | | YwUnit unit = ywUnitMapper.selectById(vo.getUnitId()); |
| | | if (Objects.nonNull(unit)) { |
| | | vo.setUnitName(unit.getUnitName()); |
| | | } |
| | | YwPeople ywPeople = ywPeopleMapper.selectById(vo.getYwPeopleId()); |
| | | if (Objects.nonNull(ywPeople)) { |
| | | vo.setYwPeopleName(ywPeople.getYwPersonName()); |
| | | } |
| | | return vo; |
| | | } |
| | | ) |
| | | .collect(Collectors.toList()); |
| | | return Result.ok().data(vos).total(page.getTotal()); |
| | | } |
| | | |
| | | @Override |
| | | public Result distributeFast(DistributeWorkOrderVO data) { |
| | | List<WorkOrder> willDistributeList = new ArrayList<>(32); |
| | | // 如果是自定义时间范围 |
| | | if (FastDistributeTypeEnum.CUSTOM == data.getFastWay()) { |
| | | |
| | | } |
| | | |
| | | new LambdaUpdateChainWrapper<>(baseMapper) |
| | | .set(WorkOrder::getStatus, WorkOrderStatusEnum.DISTRIBUTED) |
| | | .update(); |
| | | |
| | | return Result.ok("操作成功"); |
| | | } |
| | | |
| | | /** |
| | | * 根据id查找 |
| | | * @param id |