| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.alibaba.excel.util.DateUtils; |
| | | import com.alibaba.excel.util.StringUtils; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.SnowflakeIdWorker; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.mes.*; |
| | | import com.zy.asrs.entity.param.CombParam; |
| | | import com.zy.asrs.entity.param.EmptyPlateOutParam; |
| | | import com.zy.asrs.entity.rcs.*; |
| | | import com.zy.asrs.entity.rcs.RcsReporterTask; |
| | | import com.zy.asrs.entity.rcs.RcsTaskContinue; |
| | | import com.zy.asrs.entity.rcs.RcsTaskSubmit; |
| | | import com.zy.asrs.entity.rcs.RcsTaskTargetRoute; |
| | | import com.zy.asrs.mapper.AgvInfoMapper; |
| | | import com.zy.asrs.mapper.MatItemBarcodeMapper; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.OrderInAndOutUtil; |
| | | import com.zy.common.model.DetlDto; |
| | | import com.zy.common.model.enums.WorkNoType; |
| | | import com.zy.common.service.CommonService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | import javax.annotation.Resource; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | import java.util.concurrent.ExecutionException; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.Stream; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | MesReturn mesReturn = new MesReturn(); |
| | | |
| | | // 1、物料信息同步 |
| | | int matSuccess = 0; |
| | | for (MesMatInfo mesMatInfo : matRecvForm.getItemdata()) { |
| | | if (synMatInfo(mesMatInfo) == 1) { |
| | | matSuccess++; |
| | | } else { |
| | | throw new CoolException("同步物料信息失败"); |
| | | } |
| | |
| | | throw new CoolException("保存出库订单明细档失败"); |
| | | } |
| | | |
| | | // TODO:若AGV和输送线没有安全交互,则要保证立库出货完成后再呼叫AGV。 |
| | | // 立库生成订单后,自动调度AGV运送到站点,目前多托生成多个。 |
| | | try { |
| | | if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) { |
| | |
| | | mesOutFeedback.setStationId(dbMemo.getString("StationId")); |
| | | mesOutFeedback.setItemno(dbMemo.getString("Itemno")); |
| | | mesOutFeedback.setTuoPanId(zpalletId); |
| | | if (itemBarCode != null && itemBarCode.size() > 0) { |
| | | if (itemBarCode.size() > 0) { |
| | | mesOutFeedback.setQty(itemBarCode.size()); |
| | | mesOutFeedback.setItemBarcode(itemBarCode); |
| | | } |
| | |
| | | |
| | | // 下发给RCS |
| | | RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit(); |
| | | // 模板名 |
| | | if(transTask.getCurStationId().startsWith("LL") || transTask.getCurStationId().startsWith("LG")) { // 起点产线 |
| | | rcsTaskSubmit.setTaskType("CS2"); |
| | | } else if(transTask.getNextStationId().startsWith("LL") || transTask.getNextStationId().startsWith("LG")) { // 终点产线 |
| | | rcsTaskSubmit.setTaskType("CS"); |
| | | } else { // 不涉及产线 |
| | | rcsTaskSubmit.setTaskType("CS3"); |
| | | } |
| | | rcsTaskSubmit.setRobotTaskCode(transTask.getTaskno()); |
| | | rcsTaskSubmit.setInitPriority(10); //默认10 |
| | | List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>(); |
| | |
| | | rcsTaskSubmit.setTargetRoute(targetRouteList); |
| | | |
| | | // 转发给海康或华晓RCS |
| | | // int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory()); |
| | | int success = 1; |
| | | int success = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory()); |
| | | if (success == 1) { |
| | | int workNo = commonService.getWorkNo(WorkNoType.OTHER.type); |
| | | Date now = new Date(); |