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<String> {
|
@Autowired
|
private WrkMastSplitTwinService wrkMastSplitTwinService;
|
@Autowired
|
private WrkMastService wrkMastService;
|
|
public ReturnT<String> 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<String> 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;
|
}
|
|
}
|