package com.zy.asrs.wcs.core.service.impl; import com.zy.asrs.wcs.core.entity.Task; import com.zy.asrs.wcs.core.kernel.AnalyzeService; import com.zy.asrs.wcs.core.model.enums.TaskStsType; import com.zy.asrs.wcs.core.service.TaskService; import com.zy.asrs.wcs.rcs.News; import com.zy.asrs.wcs.core.entity.Motion; import com.zy.asrs.wcs.core.service.MotionService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; /** * 立体仓库WCS系统主流程业务 * Created by vincent on 2020/8/6 */ @Slf4j @Service("mainService") @Transactional public class MainServiceImpl { @Autowired private TaskService taskService; @Autowired private AnalyzeService analyzeService; @Autowired private MotionService motionService; /** * 组托 * 入库站,根据条码扫描生成入库工作档,工作状态 2 */ public synchronized void generateInboundWrk() { } // 解析入库工作档 public synchronized void analyzeInBoundTask() { for (Task task : taskService.selectWaitAnalyzeInBoundTask()) { // generate motion list List motionList = analyzeService.generateMotion(task); if (motionList.isEmpty()) { continue; } motionService.batchInsert(motionList, task.getUuid(), Integer.valueOf(task.getTaskNo())); // 更新工作主档 task.setTaskSts(TaskStsType.ANALYZE_INBOUND.sts); // 工作状态 task.setUpdateTime(new Date()); if (!taskService.updateById(task)) { News.error("更新工作档失败!!! [工作号:{}]", task.getTaskNo()); } } } }