|  |  | 
 |  |  | package com.zy.asrs.service.impl; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSON; | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.DateUtils; | 
 |  |  | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | import com.zy.asrs.utils.MatUtils; | 
 |  |  | import com.zy.asrs.utils.OrderInAndOutUtil; | 
 |  |  | import com.zy.asrs.utils.Utils; | 
 |  |  | import com.zy.common.model.DetlDto; | 
 |  |  | import com.zy.common.utils.NodeUtils; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  |  | 
 |  |  | import javax.rmi.CORBA.Util; | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  | 
 |  |  |     private BasArmService basArmService; | 
 |  |  |     @Autowired | 
 |  |  |     private BasArmMastService basArmMastService; | 
 |  |  |     @Autowired | 
 |  |  |     private BasArmMastSignService basArmMastSignService; | 
 |  |  |     @Autowired | 
 |  |  |     private BasAgvMastService basAgvMastService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  | 
 |  |  |     @Transactional | 
 |  |  |     public void taskArmReport(TaskArmReportParam param) { | 
 |  |  |         BasArmMast basArmMast = new BasArmMast(param); | 
 |  |  |         List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().eq("sorting_line", basArmMast.getStaNo())); | 
 |  |  |         List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>().eq("sorting_line_sou", basArmMast.getSortingLine())); | 
 |  |  |         for (BasArm basArm : basArmList) { | 
 |  |  |             if (basArm.getStatus()!=1){ | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             basArmMast.setArmNo(basArm.getArmNo()); | 
 |  |  |             basArmMast.setStaNo(basArm.getStaNo()); | 
 |  |  |             basArmMast.setStaNo(basArm.getStaNoSou()); | 
 |  |  |             break; | 
 |  |  |         } | 
 |  |  |         basArmMastService.insert(basArmMast); | 
 |  |  |         BasArmMast basArmMastOld = basArmMastService.selectOne( | 
 |  |  |                 new EntityWrapper<BasArmMast>() | 
 |  |  |                         .eq("sorting_line", basArmMast.getSortingLine()) | 
 |  |  |                         .eq("arm_no", basArmMast.getArmNo()) | 
 |  |  |                         .eq("status", 0) | 
 |  |  |         ); | 
 |  |  |         if (Cools.isEmpty(basArmMastOld)){ | 
 |  |  |             basArmMastService.insert(basArmMast); | 
 |  |  |         } else { | 
 |  |  |             throw new CoolException("等待前边货物抓取!!!"+ JSON.toJSONString(param)); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void taskArmCycleResult(TaskArmCycleResultParam param) { | 
 |  |  |         BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>() | 
 |  |  |                 .eq("arm_no", param.getArm_no()) | 
 |  |  |                 .eq("sorting_line", Integer.parseInt(param.getStaNo())) | 
 |  |  |                 .eq("status", 1) | 
 |  |  |         ); | 
 |  |  |         if (Cools.isEmpty(basArm)){ | 
 |  |  |             throw new CoolException("机械臂配置异常,查询不到机械臂数据!!!"+ JSON.toJSONString(param)); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         try{ | 
 |  |  |             BasArmMastSign basArmMastSign = basArmMastSignService.selectOne( | 
 |  |  |                     new EntityWrapper<BasArmMastSign>() | 
 |  |  |                             .eq("matnr", param.getSku()) | 
 |  |  |                             .eq("order_no", param.getOrderNo()) | 
 |  |  |                             .eq("create_time", param.getBindingTags()) | 
 |  |  |             ); | 
 |  |  |             if (!Cools.isEmpty(basArmMastSign)){ | 
 |  |  |                 basArmMastSign.setStatus(1); | 
 |  |  |                 basArmMastSignService.updateById(basArmMastSign); | 
 |  |  |             } | 
 |  |  |         } catch (Exception e){ | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         BasArmMast basArmMastListError = basArmMastService.selectOne( | 
 |  |  |                 new EntityWrapper<BasArmMast>() | 
 |  |  |                         .eq("sorting_line", basArm.getSortingLineSou()) | 
 |  |  |                         .eq("arm_no", param.getArm_no()) | 
 |  |  |                         .eq("status", 9) | 
 |  |  |         ); | 
 |  |  |         if (!Cools.isEmpty(basArmMastListError)){ | 
 |  |  |             if (Integer.parseInt(param.getPick_num()) ==1){ | 
 |  |  |                 basArmMastListError.setStatus(2); | 
 |  |  |                 basArmMastService.updateById(basArmMastListError); | 
 |  |  |             } | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         BasArmMast basArmMast = basArmMastService.selectOne( | 
 |  |  |                 new EntityWrapper<BasArmMast>() | 
 |  |  |                         .eq("sorting_line", basArm.getSortingLineSou()) | 
 |  |  |                         .eq("arm_no", param.getArm_no()) | 
 |  |  |                         .eq("status", 1) | 
 |  |  |         ); | 
 |  |  |         if (Cools.isEmpty(basArmMast)){ | 
 |  |  |             throw new CoolException("未查询到相关机械臂拆码垛任务!!!"+ JSON.toJSONString(param)); | 
 |  |  |         } | 
 |  |  |         if (Integer.parseInt(param.getPick_num()) !=1){ | 
 |  |  |             basArmMast.setStatus(9); | 
 |  |  |             basArmMastService.updateById(basArmMast); | 
 |  |  |         } else { | 
 |  |  |             basArmMast.setStatus(2); | 
 |  |  |             basArmMastService.updateById(basArmMast); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void taskArmWorkspaceStatus(TaskArmWorkspaceStatusParam param) { | 
 |  |  |         BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>() | 
 |  |  |                 .eq("arm_no", param.getArm_no()) | 
 |  |  |                 .eq("sta_no", Integer.parseInt(param.getId())) | 
 |  |  |                 .eq("status", 1) | 
 |  |  |         ); | 
 |  |  |         if (Cools.isEmpty(basArm)){ | 
 |  |  |             throw new CoolException("机械臂配置异常,查询不到机械臂数据!!!"+ JSON.toJSONString(param)); | 
 |  |  |         } | 
 |  |  |         BasArmMast basArmMast = basArmMastService.selectOne( | 
 |  |  |                 new EntityWrapper<BasArmMast>() | 
 |  |  |                         .eq("sta_no", basArm.getStaNoSou()) | 
 |  |  |                         .eq("arm_no", param.getArm_no()) | 
 |  |  |                         .eq("status", 2) | 
 |  |  |         ); | 
 |  |  |         if (Cools.isEmpty(basArmMast)){ | 
 |  |  |             throw new CoolException("未查询到相关机械臂拆码垛任务!!!"+ JSON.toJSONString(param)); | 
 |  |  |         } | 
 |  |  |         basArmMastService.updateArmMastStatus(param.getArm_no(),basArmMast.getSortingLine(),2,3); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public void taskArmWorkOrderStatus(OrderArmEndParam param) { | 
 |  |  |         BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>() | 
 |  |  |                 .eq("arm_no", param.getArm_no()) | 
 |  |  |                 .eq("sorting_line", Integer.parseInt(param.getStaNo())) | 
 |  |  |                 .eq("status", 1) | 
 |  |  |         ); | 
 |  |  |         if (Cools.isEmpty(basArm)){ | 
 |  |  |             throw new CoolException("机械臂配置异常,查询不到机械臂数据!!!"+ JSON.toJSONString(param)); | 
 |  |  |         } | 
 |  |  |         BasArmMast basArmMast = basArmMastService.selectOne( | 
 |  |  |                 new EntityWrapper<BasArmMast>() | 
 |  |  |                         .eq("sorting_line",basArm.getSortingLineSou()) | 
 |  |  |                         .eq("arm_no", param.getArm_no()) | 
 |  |  |                         .eq("status", 5) | 
 |  |  |         ); | 
 |  |  |         if (!Cools.isEmpty(basArmMast)){ | 
 |  |  |             basArmMastService.updateArmMastStatus(param.getArm_no(),basArmMast.getSortingLine(), 5,6); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public boolean TaskArmWorkOrderSign(OrderArmEndParam param) { | 
 |  |  |         BasArmMastSign basArmMastSignNew = basArmMastSignService.selectOne( | 
 |  |  |                 new EntityWrapper<BasArmMastSign>() | 
 |  |  |                         .eq("order_no", param.getOrderNo()) | 
 |  |  |                         .eq("create_time", param.getBindingTags()) | 
 |  |  |                         .eq("status", 0) | 
 |  |  |         ); | 
 |  |  |         if (Cools.isEmpty(basArmMastSignNew)){ | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |         return true; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     @Transactional | 
 |  |  |     public boolean TaskAgvReport(TaskAgvReportParam param) { | 
 |  |  |         BasAgvMast basAgvMast = basAgvMastService.selectOne(new EntityWrapper<BasAgvMast>().eq("task_no", param.getTaskNo())); | 
 |  |  |         if (Cools.isEmpty(basAgvMast)){ | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |         basAgvMast.setStatus(2); | 
 |  |  |         basAgvMastService.updateById(basAgvMast); | 
 |  |  |         return true; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |