From 385a7a63f86903b74c4a878ab22b69a63a8f5e54 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 15 五月 2025 15:54:23 +0800 Subject: [PATCH] 外置输送线wms通知输送线流动 --- src/main/java/com/zy/asrs/task/TaskReportScheduler.java | 136 +++++++++++++++++++++++++++++++++++++-------- 1 files changed, 111 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java index 60e64f4..7fc824e 100644 --- a/src/main/java/com/zy/asrs/task/TaskReportScheduler.java +++ b/src/main/java/com/zy/asrs/task/TaskReportScheduler.java @@ -2,14 +2,24 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; +import com.core.common.Cools; +import com.core.common.DateUtils; import com.core.exception.CoolException; import com.zy.asrs.domain.enums.TaskStatusType; +import com.zy.asrs.domain.enums.WorkNoType; +import com.zy.asrs.entity.LocMast; +import com.zy.asrs.entity.TaskWrk; import com.zy.asrs.entity.TaskWrkReport; import com.zy.asrs.entity.TaskWrkReportLog; +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.common.service.CommonService; import com.zy.common.utils.HttpHandler; import com.zy.common.utils.Synchro; import lombok.extern.slf4j.Slf4j; @@ -18,8 +28,9 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.io.IOException; -import java.util.HashMap; +import java.util.Date; /** * 瀹氭椂灏嗕换鍔�(瀹屾垚銆佸彇娑�)杞垚鏃ュ織 @@ -41,51 +52,61 @@ @Value("${wms.url}") private String wmsUrl; - @Value("${wms.TaskExecCallback}") + @Value("${wms.taskExecCallback}") private String TaskExecCallback; + @Resource + private TaskWrkMapper taskWrkMapper; - @Scheduled(cron = "0/3 * * * * ? ") - public void execute() throws IOException { - Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 10)); + @Resource + private LocMastService locMastService; + + @Resource + private CommonService commonService; + + + @Scheduled(cron = "0/5 * * * * ? ") + public synchronized void execute() throws IOException { + Page<TaskWrkReport> taskWrkReportPage = taskWrkReportService.selectPage(new Page<>(0, 100), new EntityWrapper<TaskWrkReport>().orderBy("create_time", true)); if (taskWrkReportPage.getRecords() != null) { + //鏂板涓�涓繃婊ゆ満鍒� for (TaskWrkReport taskWrk : taskWrkReportPage.getRecords()) { - HashMap<String, Object> headParam = new HashMap<>(); - if (taskWrk.getStatus().equals(TaskStatusType.OVER.id) || taskWrk.getStatus() == 7) {//瀹屾垚 - headParam.put("Result", 1); - } else if (taskWrk.getStatus().equals(TaskStatusType.CANCEL.id)) { - headParam.put("Result", 2); - } + WmsFeedback wmsFeedback = getWmsFeedback(taskWrk); String response = ""; - Boolean bool = false; + boolean bool = false; try { - headParam.put("TaskNo", taskWrk.getTaskNo()); log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk); response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(wmsUrl) .setPath(TaskExecCallback) - .setJson(JSON.toJSONString(headParam)) + .setJson(JSON.toJSONString(wmsFeedback)) .build() .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - TaskWrkReportLog taskWrkLog = new TaskWrkReportLog(); - Synchro.Copy(taskWrk, taskWrkLog); - if (!taskWrkReportLogService.insert(taskWrkLog)) { - throw new CoolException("杞巻鍙叉。澶辫触" + taskWrkLog); + if (!Cools.isEmpty(response)) { + JSONObject jsonObject = JSON.parseObject(response); + if (Integer.parseInt(String.valueOf(jsonObject.get("code"))) == 200) { + TaskWrkReportLog taskWrkLog = new TaskWrkReportLog(); + Synchro.Copy(taskWrk, taskWrkLog); + taskWrkLog.setId(null); + if (!taskWrkReportLogService.insert(taskWrkLog)) { + throw new CoolException("杞巻鍙叉。澶辫触" + taskWrkLog); + } + if (!taskWrkReportService.deleteById(taskWrk)) { + throw new CoolException("浠诲姟妗e垹闄ゅけ璐�" + taskWrkLog); + } + bool = true; + } } - if (!taskWrkReportService.deleteById(taskWrk)) { - throw new CoolException("浠诲姟妗e垹闄ゅけ璐�" + taskWrkLog); - } - bool = true; + } catch (Exception e) { log.error("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms澶辫触{},杩斿洖鍊�={}", taskWrk, response); } finally { - apiLogService.save("wcs瀹屾垚鎴栬�呭彇娑堜换鍔′笂鎶ms" + apiLogService.save("浠诲姟鐘舵�佷笂鎶�" , wmsUrl + TaskExecCallback , null , "127.0.0.1" - , JSON.toJSONString(headParam) + , JSON.toJSONString(wmsFeedback) , response , bool ); @@ -95,4 +116,69 @@ } +// @Scheduled(cron = "0/5 * * * * ? ") + public synchronized void autoMoveLoc() { + int flag = 1; // 1.璺�23鍙峰爢鍨涙満鍓�7鍒楋紝1鍙峰爢鍨涙満1锛�9灞� 2.璺�23鍙峰爢鍨涙満鍚�8-12鍒楋紝1鍙峰爢鍨涙満2-8灞� + for(int i = 1; i <= 3; i++ ){ + // 鑾峰彇鍫嗗灈鏈哄搴斾换鍔� + Integer count = taskWrkMapper.selectCount(new EntityWrapper<TaskWrk>().eq("crn_no", i)); + if (count == 0) { + // 鑾峰彇鍫嗗灈鏈哄贩閬撳湪搴撳簱浣� + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("crn_no", i)); + if (locMast != null) { + // 鑾峰彇涓�涓Щ鍔ㄧ殑鐩爣搴撲綅 + 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 { + 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)); + } + + } else { + 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",2,3,4,5,6,7,8)); + } 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)); + } + + } + + if (locMast1 != null) { + // 鍒涘缓绉诲簱浠诲姟 + TaskWrk taskWrk = new TaskWrk(); + Date now = new Date(); + taskWrk.setTaskNo(locMast1.getLocNo());//浠诲姟鍙� + taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type)); + taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 + taskWrk.setCreateTime(now); + taskWrk.setIoType(3);//浠诲姟绫诲瀷 + taskWrk.setIoPri(11);//浼樺厛绾� + taskWrk.setBarcode(locMast.getBarcode());//鏉$爜 + taskWrk.setCrnNo(locMast.getCrnNo()); + taskWrk.setWrkSts(11); + taskWrk.setStartPoint(locMast.getLocNo());//璧风偣 + taskWrk.setTargetPoint(locMast1.getLocNo()); + taskWrkMapper.insert(taskWrk); + locMast1.setStatus("1"); + locMastService.updateById(locMast1); + } + } + } + } + } + + private WmsFeedback getWmsFeedback(TaskWrkReport taskWrk) { + WmsFeedback feedback = new WmsFeedback(); + feedback.setBarcode(taskWrk.getBarcode()); + feedback.setReportTime(DateUtils.convert(new Date())); + feedback.setIoType(taskWrk.getIoType()); + feedback.setTaskNo(taskWrk.getTaskNo()); + feedback.setStatus(taskWrk.getStatus()); + return feedback; + } } -- Gitblit v1.9.1