| | |
| | | package com.zy.asrs.task.handler; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.BasDevp; |
| | | import com.zy.asrs.entity.WrkMast; |
| | | import com.zy.asrs.entity.WrkMastSta; |
| | | import com.zy.asrs.service.WrkMastStaService; |
| | | 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; |
| | |
| | | @Transactional |
| | | public class WrkMastSplitTwinInItHandler extends AbstractHandler<String> { |
| | | @Autowired |
| | | private WrkMastStaService wrkMastStaService; |
| | | private WrkMastSplitTwinService wrkMastSplitTwinService; |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | |
| | | public ReturnT<String> start(WrkMast wrkMast,BasDevp basDevp,Integer type) { |
| | | public ReturnT<String> start(WrkMastSplitTwin wrkMastSplitTwin) { //取货任务完成 放货 |
| | | try { |
| | | WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkMast.getWrkNo().longValue())); |
| | | if (!Cools.isEmpty(wrkMastSta)){ |
| | | return SUCCESS; |
| | | } |
| | | switch (type){ |
| | | case 13://出 3:取放 |
| | | if (Cools.isEmpty(wrkMastSta)){ |
| | | WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp); |
| | | wrkMastSta1.setType(1); //类型 1:非空 2:空板 |
| | | wrkMastSta1.setWrkType(3); //工作类型 1:取(叠盘) 2:拆盘 3:取放 5:满取 6:满放 |
| | | wrkMastStaService.insert(wrkMastSta1); |
| | | } |
| | | break; |
| | | case 21://1:取(叠盘) |
| | | if (Cools.isEmpty(wrkMastSta)){ |
| | | WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp); |
| | | wrkMastSta1.setType(fullKM(wrkMast)? 1:2); |
| | | wrkMastSta1.setWrkType(1);//工作类型 1:取(叠盘) 2:拆盘 3:取放 5:满取 6:满放 |
| | | wrkMastStaService.insert(wrkMastSta1); |
| | | }; |
| | | break; |
| | | case 22://2:放(拆盘) |
| | | if (Cools.isEmpty(wrkMastSta)){ |
| | | WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp); |
| | | wrkMastSta1.setType(fullKM(wrkMast)? 1:2); |
| | | wrkMastSta1.setWrkType(5);//工作类型 1:取(叠盘) 2:拆盘 3:取放 5:满取 6:满放 |
| | | wrkMastStaService.insert(wrkMastSta1); |
| | | }; |
| | | break; |
| | | case 23://3:满取 |
| | | if (Cools.isEmpty(wrkMastSta)){ |
| | | WrkMastSta wrkMastSta1 = new WrkMastSta(wrkMast,new Date(),basDevp); |
| | | wrkMastSta1.setType(fullKM(wrkMast)? 1:2); |
| | | wrkMastSta1.setWrkType(5); |
| | | wrkMastStaService.insert(wrkMastSta1); |
| | | } |
| | | default: |
| | | return SUCCESS; |
| | | } |
| | | 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); |
| | | log.error("前后双工位拆分堆垛机执行作业生成异常!!!"+e.getMessage()); |
| | | return FAIL; |
| | | } |
| | | return SUCCESS; |
| | | } |
| | | |
| | | public boolean fullKM(WrkMast wrkMast){ |
| | | if (wrkMast.getIoType()!=10 && wrkMast.getIoType()!=110){ |
| | | return true; |
| | | 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(wrkMastSplitTwin.getWrkStart())); |
| | | wrkMastSplitTwinNew.setStartBay(LocAndStaCodeUtil.getBay(wrkMastSplitTwin.getWrkStart())); |
| | | wrkMastSplitTwinNew.setStartLev(LocAndStaCodeUtil.getLev(wrkMastSplitTwin.getWrkStart())); |
| | | wrkMastSplitTwinNew.setEndRow(LocAndStaCodeUtil.getRow(wrkMastSplitTwin.getWrkStart())); |
| | | wrkMastSplitTwinNew.setEndBay(LocAndStaCodeUtil.getBay(wrkMastSplitTwin.getWrkStart())); |
| | | wrkMastSplitTwinNew.setEndLev(LocAndStaCodeUtil.getLev(wrkMastSplitTwin.getWrkStart())); |
| | | 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 false; |
| | | return SUCCESS; |
| | | } |
| | | |
| | | } |