From 2c0e3414d8032b5cd5e673dd587afc7d1a9bab7c Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 15 五月 2025 15:56:10 +0800 Subject: [PATCH] 外置输送线流动到位上报wms --- src/main/java/com/zy/asrs/task/TaskReportScheduler.java | 103 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 96 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java index 7fc824e..e6f44f2 100644 --- a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java +++ b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java @@ -13,15 +13,19 @@ import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.TaskWrkReport; import com.zy.asrs.entity.TaskWrkReportLog; +import com.zy.asrs.entity.param.TaskCreateParam; import com.zy.asrs.entity.wms.WmsFeedback; import com.zy.asrs.mapper.TaskWrkMapper; -import com.zy.asrs.service.ApiLogService; -import com.zy.asrs.service.LocMastService; -import com.zy.asrs.service.TaskWrkReportLogService; -import com.zy.asrs.service.TaskWrkReportService; +import com.zy.asrs.service.*; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import com.zy.common.utils.Synchro; +import com.zy.core.DevpThread; +import com.zy.core.cache.MessageQueue; +import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.Task; +import com.zy.core.model.protocol.StaProtocol; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -30,6 +34,7 @@ import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.Date; /** @@ -55,6 +60,9 @@ @Value("${wms.taskExecCallback}") private String TaskExecCallback; + @Value("${wms.completeDevpTask}") + private String completeDevpTask; + @Resource private TaskWrkMapper taskWrkMapper; @@ -64,6 +72,13 @@ @Resource private CommonService commonService; + @Resource + private OpenService openService; + + // 鐩戝惉澶栫疆杈撻�佺嚎 + public static final ArrayList<Integer> staNos = new ArrayList<Integer>() {{ + add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308); + }}; @Scheduled(cron = "0/5 * * * * ? ") public synchronized void execute() throws IOException { @@ -116,6 +131,7 @@ } + // 绔嬩綋搴撹窇搴撶▼搴忥紝鐢熶骇鍕跨敤 // @Scheduled(cron = "0/5 * * * * ? ") public synchronized void autoMoveLoc() { int flag = 1; // 1.璺�23鍙峰爢鍨涙満鍓�7鍒楋紝1鍙峰爢鍨涙満1锛�9灞� 2.璺�23鍙峰爢鍨涙満鍚�8-12鍒楋紝1鍙峰爢鍨涙満2-8灞� @@ -126,15 +142,31 @@ // 鑾峰彇鍫嗗灈鏈哄贩閬撳湪搴撳簱浣� LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("crn_no", i)); if (locMast != null) { + // 50娆″嚭涓�娆″簱 + int count1 = locMastService.selectCount(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", 1)); + if (count1 % 25 == 0) { + TaskCreateParam taskCreateParam = new TaskCreateParam(); + taskCreateParam.setTaskNo(locMast.getLocNo()+"0"); + taskCreateParam.setStartPoint(locMast.getLocNo()); + taskCreateParam.setIoType(2); + taskCreateParam.setTaskPriority(11); + taskCreateParam.setBarcode(locMast.getBarcode()); + taskCreateParam.setTargetPoint(i == 1 ? "114" : i == 2 ? "111" : "105"); + openService.taskCreate(taskCreateParam); + return; + } // 鑾峰彇涓�涓Щ鍔ㄧ殑鐩爣搴撲綅 LocMast locMast1; if (flag == 1) { if (i == 1) { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") - .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").in("lev1",1,9)); - } else { + .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1")); + } else if(i==2) { locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") - .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").le("bay1",7)); + .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").gt("bay1",7)); + }else { + locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("crn_no", i).eq("status", "0") + .eq("loc_sts","O").orderBy("lev1").orderBy("bay1").orderBy("row1").gt("bay1",7)); } } else { @@ -156,6 +188,7 @@ taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type)); taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 taskWrk.setCreateTime(now); + taskWrk.setAssignTime(now); taskWrk.setIoType(3);//浠诲姟绫诲瀷 taskWrk.setIoPri(11);//浼樺厛绾� taskWrk.setBarcode(locMast.getBarcode());//鏉$爜 @@ -172,6 +205,62 @@ } } + // 鐩戝惉澶栫疆杈撻�佺嚎锛屾湁浠诲姟鍙峰拰鍙嚭淇″彿锛屼笂鎶ユ垚鍔熸竻闄や换鍔″彿鐩爣绔� + @Scheduled(cron = "0/3 * * * * ? ") + public synchronized void completeDevpTask() { + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2); + if (devpThread != null) { + for(Integer site : staNos) { + StaProtocol staProtocol = devpThread.getStation().get(site); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (staProtocol.isOutEnable() && staProtocol.getWorkNo() != 0 && staProtocol.isAutoing() && staProtocol.isLoading()) { + String response = ""; + boolean bool = false; + JSONObject request = new JSONObject(); + request.put("site",site); + try { + log.info("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms={}", site); + response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath(completeDevpTask) + .setJson(request.toJSONString()) + .build() + .doPost(); + if (!Cools.isEmpty(response)) { + JSONObject jsonObject = JSON.parseObject(response); + if (Integer.parseInt(String.valueOf(jsonObject.get("code"))) == 200) { + bool = true; + staProtocol.setWorkNo((short) 0); + staProtocol.setStaNo((short) 0); + boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol)); + if (result) { + log.info("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms,娓呴櫎杈撻�佺嚎绔欑偣{}鍛戒护涓嬪彂鎴愬姛锛�",site); + } else { + log.error("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms,娓呴櫎杈撻�佺嚎绔欑偣{}鍛戒护涓嬪彂澶辫触锛�" ,site); + } + } + } + } catch (Exception e) { + log.error("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms寮傚父{},杩斿洖鍊�={}", request, response); + } finally { + apiLogService.save("澶栫疆杈撻�佺嚎娴佸姩鍒颁綅涓婃姤wms" + , wmsUrl + completeDevpTask + , null + , "127.0.0.1" + , request.toJSONString() + , response + , bool + ); + } + } + } + } + } + private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) { WmsFeedback feedback = new WmsFeedback(); feedback.setBarcode(taskWrk.getBarcode()); -- Gitblit v1.9.1