| | |
| | | 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 TagService tagService; |
| | | @Autowired |
| | | private TagMapper tagMapper; |
| | | @Autowired |
| | | private BasArmService basArmService; |
| | | @Autowired |
| | | private BasArmMastService basArmMastService; |
| | | @Autowired |
| | | private BasArmMastSignService basArmMastSignService; |
| | | @Autowired |
| | | private BasAgvMastService basAgvMastService; |
| | | @Autowired |
| | | private LocOwnerService locOwnerService; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | } |
| | | DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE); |
| | | Date now = new Date(); |
| | | LocOwner locOwner = null; |
| | | if (!Cools.isEmpty(param.getOwnerId())) { |
| | | locOwner = locOwnerService.selectById(param.getOwnerId()); |
| | | } else { |
| | | locOwner = locOwnerService.selectById(1); |
| | | } |
| | | // 单据主档 |
| | | order = new Order( |
| | | String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] |
| | |
| | | DateUtils.convert(now), // 单据日期 |
| | | docType.getDocId(), // 单据类型 |
| | | null, // 项目编号 |
| | | null, // |
| | | param.getStandby1(), //项目名称 客户PO号 |
| | | null, // 调拨项目编号 |
| | | null, // 初始票据号 |
| | | null, // 票据号 |
| | | null, // 客户编号 |
| | | null, // 客户 |
| | | locOwner.getOwnerUuid(), // 客户编号 |
| | | locOwner.getOwner(), // 客户 |
| | | null, // 联系方式 |
| | | null, // 操作人员 |
| | | null, // 合计金额 |
| | |
| | | orderDetl.setStandby1(detlDto.getStandby1()); |
| | | orderDetl.setStandby2(detlDto.getStandby2()); |
| | | orderDetl.setStandby3(detlDto.getStandby3()); |
| | | orderDetl.setBoxType1(detlDto.getBoxType1()); |
| | | orderDetl.setBoxType2(detlDto.getBoxType2()); |
| | | orderDetl.setBoxType3(detlDto.getBoxType3()); |
| | | orderDetl.setOrderId(order.getId()); |
| | | orderDetl.setOrderNo(order.getOrderNo()); |
| | | orderDetl.setCreateBy(9527L); |
| | |
| | | } |
| | | DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE); |
| | | Date now = new Date(); |
| | | LocOwner locOwner = null; |
| | | if (!Cools.isEmpty(param.getOwnerId())) { |
| | | locOwner = locOwnerService.selectById(param.getOwnerId()); |
| | | } else { |
| | | locOwner = locOwnerService.selectById(1); |
| | | } |
| | | // 单据主档 |
| | | order = new Order( |
| | | String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] |
| | |
| | | DateUtils.convert(now), // 单据日期 |
| | | docType.getDocId(), // 单据类型 |
| | | null, // 项目编号 |
| | | null, // |
| | | param.getStandby1(), //项目名称 客户PO号 |
| | | null, // 调拨项目编号 |
| | | null, // 初始票据号 |
| | | null, // 票据号 |
| | | null, // 客户编号 |
| | | null, // 客户 |
| | | locOwner.getOwnerUuid(), // 客户编号 |
| | | locOwner.getOwner(), // 客户 |
| | | null, // 联系方式 |
| | | null, // 操作人员 |
| | | null, // 合计金额 |
| | |
| | | orderDetl.setStandby1(detlDto.getStandby1()); |
| | | orderDetl.setStandby2(detlDto.getStandby2()); |
| | | orderDetl.setStandby3(detlDto.getStandby3()); |
| | | orderDetl.setBoxType1(detlDto.getBoxType1()); |
| | | orderDetl.setBoxType2(detlDto.getBoxType2()); |
| | | orderDetl.setBoxType3(detlDto.getBoxType3()); |
| | | orderDetl.setOrderId(order.getId()); |
| | | orderDetl.setOrderNo(order.getOrderNo()); |
| | | orderDetl.setCreateBy(9527L); |
| | |
| | | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void taskArmReport(TaskArmReportParam param) { |
| | | BasArmMast basArmMast = new BasArmMast(param); |
| | | 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.getStaNoSou()); |
| | | break; |
| | | } |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |