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<Motion> 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()); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |