fuliqi
2024-08-06 fa12bf28a088fe8cc82868fab9a9d689252108a3
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -16,10 +16,7 @@
import com.ycl.platform.domain.vo.WorkOrderVO;
import com.ycl.platform.domain.vo.WorkOrderYwConditionRecordVO;
import com.ycl.platform.domain.vo.screen.ScreenWorkOrderVO;
import com.ycl.platform.mapper.WorkOrderAuditingRecordMapper;
import com.ycl.platform.mapper.WorkOrderDistributeRecordMapper;
import com.ycl.platform.mapper.WorkOrderMapper;
import com.ycl.platform.mapper.WorkOrderYwConditionRecordMapper;
import com.ycl.platform.mapper.*;
import com.ycl.platform.service.NotifyService;
import com.ycl.platform.service.WorkOrderAuditingRecordService;
import com.ycl.platform.service.WorkOrderService;
@@ -36,6 +33,7 @@
import enumeration.general.WorkOrderDistributeWayEnum;
import enumeration.general.WorkOrderStatusEnum;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -55,6 +53,7 @@
 * @author xp
 * @since 2024-03-05
 */
@Slf4j
@Service
@RequiredArgsConstructor
public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService {
@@ -66,12 +65,25 @@
    private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper;
    private final NotifyService notifyService;
    private final WorkOrderDistributeRecordMapper workOrderDistributeRecordMapper;
    private final TMonitorMapper monitorMapper;
    private final String DISTRIBUTE_LOCK_KEY = "distributeLock";
    private final static String IMPORTANT = "important";
    @Autowired
    private RedisCache redisCache;
    @Override
    public Boolean innerAdd(List<WorkOrder> workOrderList) {
        int total = workOrderList.size();
        workOrderList.stream().filter(item -> {
            return StringUtils.hasText(item.getSerialNumber()) && Objects.nonNull(item.getStatus()) && StringUtils.hasText(item.getErrorType());
        });
        int real = workOrderList.size();
        boolean result = this.saveBatch(workOrderList);
        log.info("传入工单总数: {},实际添加工单数:{}", total, real);
        return result;
    }
    /**
     * 添加
@@ -132,7 +144,7 @@
        notifyService.save(notify);
        // 同步点位状态
        if (form.getAuditingResult() == WorkOrderStatusEnum.AUDITING_SUCCESS) {
            ywPointService.updateRecovery(Collections.singletonList(workOrder.getPointId()), 0);
            ywPointService.updateRecovery(Arrays.asList(workOrder.getSerialNumber()), 0);
        }
        return Result.ok("操作成功");
    }
@@ -299,7 +311,7 @@
        // 查询符合条件的工单
        List<WorkOrder> list = new LambdaQueryChainWrapper<>(baseMapper)
                .select(WorkOrder::getId, WorkOrder::getPointId)
                .select(WorkOrder::getSerialNumber, WorkOrder::getSerialNumber)
                .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE)
                .eq(Objects.nonNull(data.getUnitId()), WorkOrder::getUnitId, data.getUnitId())
                .eq(WorkOrder::getErrorType, data.getErrorType())
@@ -308,7 +320,7 @@
                .last("limit " + data.getFastNumLimit())
                .list();
        List<Integer> ids = list.stream().map(WorkOrder::getId).toList();
        List<Integer> pointIds = list.stream().map(WorkOrder::getPointId).toList();
        List<String> serialNumberList = list.stream().map(WorkOrder::getSerialNumber).toList();
        if (ids.isEmpty()) { return Result.error("没有符合条件的工单"); }
        if (!getDistributeLock()) { return Result.error("此刻有人下发中,为避免冲突,请稍后重试"); }
@@ -319,7 +331,7 @@
                    .update();
            addDistributeRecord(ids, WorkOrderDistributeWayEnum.FAST_DISTRIBUTE);
            // 同步点位状态
            ywPointService.updateRecovery(pointIds, 1);
            ywPointService.updateRecovery(serialNumberList, 1);
            return Result.ok("成功下发" + ids.size() + "条工单");
        } catch (Exception e) {
            return Result.error("操作失败");
@@ -352,8 +364,8 @@
                    .update();
            addDistributeRecord(query.getIds(), distributeWayEnum);
            // 同步点位状态
            List<Integer> pointIds = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getPointId).in(WorkOrder::getId, query.getIds()).list().stream().map(WorkOrder::getPointId).toList();
            ywPointService.updateRecovery(pointIds, 1);
            List<String> serialNumberList = new LambdaQueryChainWrapper<>(baseMapper).select(WorkOrder::getSerialNumber).in(WorkOrder::getId, query.getIds()).list().stream().map(WorkOrder::getSerialNumber).toList();
            ywPointService.updateRecovery(serialNumberList, 1);
            return Result.ok("成功下发" + query.getIds().size() + "条工单");
        } catch (Exception e) {
            return Result.error("操作失败");