package com.zy.asrs.task.handler; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.WrkMastSplitTwin; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.service.WrkMastSplitTwinService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.utils.LocAndStaCodeUtil; 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; /** * Created by Monkey D. Luffy on 2024.06.07 * 亳州煜星..............以下.............亳州煜星.............前后双工位拆分堆垛机执行作业生成 */ @Slf4j @Service @Transactional public class WrkMastSplitTwinInItHandler extends AbstractHandler { @Autowired private WrkMastSplitTwinService wrkMastSplitTwinService; @Autowired private WrkMastService wrkMastService; public ReturnT start(WrkMastSplitTwin wrkMastSplitTwin) { //取货任务完成 放货 try { Date now = new Date(); WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMastSplitTwin); wrkMastSplitTwin.setWrkSts(4);//工作状态 0: 初始 1: 等待取货完成 2: 取货完成待作业 3: 等待放货完成 4: 完成 wrkMastSplitTwin.setUpdateTime(now); wrkMastSplitTwinService.updateById(wrkMastSplitTwin); wrkMastSplitTwinNew.setCreateTime(now); wrkMastSplitTwinNew.setUpdateTime(now); wrkMastSplitTwinNew.setWrkSts(0);//工作状态 0: 初始 1: 等待取货完成 2: 取货完成待作业 3: 等待放货完成 4: 完成 wrkMastSplitTwinNew.setWrkType(2);//工作类型 0: 未知 1: 取 2: 放 3: 取放 4: 完成 wrkMastSplitTwinService.insert(wrkMastSplitTwinNew); }catch (Exception e){ log.error("前后双工位拆分堆垛机执行作业生成异常!!!"+e.getMessage()); return FAIL; } return SUCCESS; } public ReturnT start(WrkMastSplitTwin wrkMastSplitTwin,WrkMast wrkMast,Integer crnStation) { //取货任务完成 放货 try { Date now = new Date(); WrkMastSplitTwin wrkMastSplitTwinNew = new WrkMastSplitTwin(wrkMast,crnStation,now); switch (wrkMastSplitTwin.getIoType()){ case 1: wrkMastSplitTwinNew.setWrkStart(wrkMast.getStaNo().toString()); wrkMastSplitTwinNew.setWrkEnd(wrkMast.getLocNo()); break; case 2: wrkMastSplitTwinNew.setWrkStart(wrkMast.getSourceLocNo()); wrkMastSplitTwinNew.setWrkEnd(wrkMast.getIoType()==11? wrkMast.getLocNo():wrkMast.getSourceStaNo().toString()); break; default: log.error("前后双工位拆分堆垛机执行作业生成异常!!!====>工作号={},任务类型={},任务类型异常!",wrkMastSplitTwin.getWrkNo(),wrkMastSplitTwin.getIoType$()); return FAIL; } wrkMastSplitTwinNew.setStartRow(LocAndStaCodeUtil.getRow(wrkMastSplitTwinNew.getWrkStart())); wrkMastSplitTwinNew.setStartBay(LocAndStaCodeUtil.getBay(wrkMastSplitTwinNew.getWrkStart())); wrkMastSplitTwinNew.setStartLev(LocAndStaCodeUtil.getLev(wrkMastSplitTwinNew.getWrkStart())); wrkMastSplitTwinNew.setEndRow(LocAndStaCodeUtil.getRow(wrkMastSplitTwinNew.getWrkEnd())); wrkMastSplitTwinNew.setEndBay(LocAndStaCodeUtil.getBay(wrkMastSplitTwinNew.getWrkEnd())); wrkMastSplitTwinNew.setEndLev(LocAndStaCodeUtil.getLev(wrkMastSplitTwinNew.getWrkEnd())); wrkMastSplitTwinNew.setWrkType(1);//工作类型 0: 未知 1: 取 2: 放 3: 取放 4: 完成 wrkMastSplitTwinNew.setIoType(wrkMastSplitTwin.getIoType());//任务类型 0: 未知 1: 入库 2: 出库 wrkMastSplitTwinNew.setWrkSts(0);//工作状态 0: 初始 1: 等待取货完成 2: 取货完成待作业 3: 等待放货完成 4: 完成 wrkMastSplitTwinService.insert(wrkMastSplitTwinNew); wrkMast.setWrkSts(wrkMast.getWrkSts()+1); wrkMast.setAppeTime(now); wrkMastService.updateById(wrkMast); }catch (Exception e){ log.error("前后双工位拆分堆垛机执行作业生成异常!!!"+e.getMessage()); return FAIL; } return SUCCESS; } }