From ae54e42cbe354ef5c39954eed2eab18de9504946 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期五, 13 六月 2025 13:02:25 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/tzmsewcs' into tzmsewcs --- src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 158 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java new file mode 100644 index 0000000..94eb972 --- /dev/null +++ b/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java @@ -0,0 +1,158 @@ +package com.zy.asrs.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.core.common.Cools; +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.wms.StorageEscalationParam; +import com.zy.asrs.entity.wms.WmsResult; +import com.zy.asrs.service.*; +import com.zy.common.service.CommonService; +import com.zy.common.utils.HttpHandler; +import com.zy.common.utils.Synchro; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.Date; + +@Slf4j +@Service("toWmsService") +public class ToWmsServiceImpl implements ToWmsService { + + @Autowired + private TaskWrkService taskWrkService; + + + @Autowired + private TaskWrkReportService taskWrkReportService; + + @Autowired + private CommonService commonService; + + @Autowired + private LocMastService locMastService; + + + @Autowired + private ApiLogService apiLogService; + + + @Value("${wms.url}") + private String wmsUrl; + /** + * 鐢宠鍏ュ簱 + */ + @Value("${wms.inboundTaskApplyPath}") + private String inboundTaskApplyPath; + /** + * 浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS + */ + @Value("${wms.taskExecCallback}") + private String taskExecCallback; + /** + * 浠诲姟瀹屾垚缁撴潫鏃讹紝WCS鍥炶皟WMS + */ + @Value("${wms.taskStatusFeedbackPath}") + private String taskStatusFeedbackPath; + + @Value("${wms.code}") + private String code; + + @Value("${wms.successCode}") + private String successCode; + + @Value("${wms.msg}") + private String msg; + + @Value("${wms.data}") + private String data; + + @Override + public void addReportLog(TaskWrk taskWrk) { + TaskWrkReport taskWrkReport = new TaskWrkReport(); + Synchro.Copy(taskWrk, taskWrkReport); + taskWrkReport.setCreateTime(new Date()); + taskWrkReportService.insert(taskWrkReport); + } + + @Override + public TaskWrk getLocNoFromWms(StorageEscalationParam wmsParam) { + String response = ""; + Boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath(inboundTaskApplyPath) + .setJson(JSON.toJSONString(wmsParam)) + .build() + .doPost(); + if (!Cools.isEmpty(response)) { + JSONObject jsonObject = JSON.parseObject(response); + if (!Cools.isEmpty(jsonObject.get(code)) && jsonObject.get(code).equals(successCode)) { + //鏈変簺涓夋柟wms绯荤粺涓嶈兘鍙婃椂杩斿洖搴撲綅鍙凤紝杩欐椂鍊欏氨闇�瑕� + //ZWmsResult result = JSON.parseObject(jsonObject.get(data).toString(), WmsResult.class); + TaskWrk taskWrk = null; + int i = 1; + while (i < 10) { + taskWrk = taskWrkService.selectByBarcode(wmsParam.getBarcode()); + if (taskWrk != null) { + break; + } + try { + i++; + Thread.sleep(500L); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + } + return taskWrk; + } + } + } catch (IOException e) { + e.printStackTrace(); + log.info("璇锋眰wms鎶ラ敊锛寋}", e.getMessage()); + } finally { + addApiLog("鍏ュ簱浠诲姟璇锋眰鑾峰彇搴撲綅", wmsUrl + inboundTaskApplyPath, JSON.toJSONString(wmsParam), response, success); + } + return null; + } + + + private TaskWrk createInTask(WmsResult result, String barcode, Integer startPoint) { + //String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn()); + String locNo = result.getLocNo(); + Date now = new Date(); + TaskWrk taskWrk = new TaskWrk(); + int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙� + taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙� + taskWrk.setWrkNo(workNo1); + taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//浠诲姟鐘舵�侊細娲惧彂 + taskWrk.setCreateTime(now); + taskWrk.setIoType(1);//浠诲姟绫诲瀷 + taskWrk.setIoPri(13);//浼樺厛绾� + taskWrk.setBarcode(barcode);//鏉$爜 + LocMast locMast = locMastService.selectByLocNo(locNo); + taskWrk.setCrnNo(locMast.getCrnNo()); + taskWrk.setTargetPoint(locNo); + taskWrk.setStartPoint(startPoint + ""); + taskWrk.setCrnNo(result.getCrnNo()); + if (taskWrk.getIoType() == 1) { + taskWrk.setWrkSts(2); + if (!Cools.isEmpty(taskWrk.getTargetPoint())) { + taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); + } + } + return taskWrk; + } + + private void addApiLog(String nameSpace, String url, String param, String response, Boolean success) { + apiLogService.save(nameSpace, url, null, "127.0.0.1", param, response, success); + } +} -- Gitblit v1.9.1