diff --git a/pom.xml b/pom.xml index be4035d..0139fc2 100644 --- a/pom.xml +++ b/pom.xml @@ -45,10 +45,17 @@ 4.4.7 3.5.5 7.1.4 + 4.12.0 + + com.squareup.okhttp3 + okhttp + ${okhttp.version} + + org.springframework.boot diff --git a/src/main/java/com/zg/common/utils/http/OkHttpUtils.java b/src/main/java/com/zg/common/utils/http/OkHttpUtils.java new file mode 100644 index 0000000..9500233 --- /dev/null +++ b/src/main/java/com/zg/common/utils/http/OkHttpUtils.java @@ -0,0 +1,92 @@ +package com.zg.common.utils.http; + +import okhttp3.*; + +import java.io.IOException; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class OkHttpUtils { + + // 通用客户端配置:10 秒连接,15 秒读/写 + private static final OkHttpClient client = new OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.SECONDS) + .readTimeout(15, TimeUnit.SECONDS) + .writeTimeout(15, TimeUnit.SECONDS) + .build(); + + private static final MediaType JSON = MediaType.get("application/json; charset=utf-8"); + private static final MediaType FORM = MediaType.get("application/x-www-form-urlencoded"); + + /** + * GET 请求(不带 header) + */ + public static String get(String url) { + Request request = new Request.Builder().url(url).get().build(); + return execute(request); + } + + /** + * GET 请求(带自定义 header) + */ + public static String getWithHeaders(String url, Map headers) { + Request.Builder builder = new Request.Builder().url(url); + if (headers != null) { + headers.forEach(builder::addHeader); + } + return execute(builder.get().build()); + } + + /** + * POST 请求(表单提交) + */ + public static String postForm(String url, Map formParams) { + FormBody.Builder formBuilder = new FormBody.Builder(); + if (formParams != null) { + formParams.forEach(formBuilder::add); + } + Request request = new Request.Builder() + .url(url) + .post(formBuilder.build()) + .build(); + return execute(request); + } + + /** + * POST 请求(JSON 提交) + */ + public static String postJson(String url, String jsonBody) { + RequestBody body = RequestBody.create(jsonBody, JSON); + Request request = new Request.Builder() + .url(url) + .post(body) + .build(); + return execute(request); + } + + /** + * POST 请求(JSON + header) + */ + public static String postJsonWithHeaders(String url, String jsonBody, Map headers) { + RequestBody body = RequestBody.create(jsonBody, JSON); + Request.Builder builder = new Request.Builder().url(url).post(body); + if (headers != null) { + headers.forEach(builder::addHeader); + } + return execute(builder.build()); + } + + /** + * 执行请求 + */ + private static String execute(Request request) { + try (Response response = client.newCall(request).execute()) { + if (!response.isSuccessful()) { + throw new RuntimeException("请求失败,状态码:" + response.code()); + } + return response.body() != null ? response.body().string() : ""; + } catch (IOException e) { + throw new RuntimeException("请求异常:" + e.getMessage(), e); + } + } +} diff --git a/src/main/java/com/zg/project/wisdom/controller/AgvTaskResultController.java b/src/main/java/com/zg/project/wisdom/controller/AgvTaskResultController.java index 504fe84..e706ab3 100644 --- a/src/main/java/com/zg/project/wisdom/controller/AgvTaskResultController.java +++ b/src/main/java/com/zg/project/wisdom/controller/AgvTaskResultController.java @@ -83,8 +83,9 @@ public class AgvTaskResultController extends BaseController { if (StringUtils.isBlank(dto.getTaskNo())) { throw new ServiceException("taskNo 不能为空"); } - agvTaskResultService.handleUpGoods(dto.getTaskNo(), dto.getMaterialStatus()); - return AjaxResult.success("上架任务已提交至WCS"); + // 返回 taskId + String taskId = agvTaskResultService.handleUpGoods(dto.getTaskNo(), dto.getMaterialStatus()); + return AjaxResult.success("上架任务已提交至WCS").put("taskId", taskId); } /** diff --git a/src/main/java/com/zg/project/wisdom/domain/WcsTaskResult.java b/src/main/java/com/zg/project/wisdom/domain/WcsTaskResult.java index f666ccb..12c44c9 100644 --- a/src/main/java/com/zg/project/wisdom/domain/WcsTaskResult.java +++ b/src/main/java/com/zg/project/wisdom/domain/WcsTaskResult.java @@ -1,5 +1,13 @@ package com.zg.project.wisdom.domain; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.zg.framework.aspectj.lang.annotation.Excel; +import com.zg.framework.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.util.Date; + import com.zg.framework.aspectj.lang.annotation.Excel; import com.zg.framework.web.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -13,13 +21,15 @@ public class WcsTaskResult extends BaseEntity { /** 主键ID */ private Long id; - /** 请求ID */ + /** 请求ID(立库传的是 taskID) */ + @JsonProperty("taskID") @Excel(name = "请求ID") private String taskId; - /** 状态 */ + /** 状态(立库传的是 TaskStatus) */ + @JsonProperty("TaskStatus") @Excel(name = "状态") - private String TaskStatus; + private String taskStatus; /** 说明 */ @Excel(name = "状态说明") @@ -59,7 +69,6 @@ public class WcsTaskResult extends BaseEntity { private String isDelete; // Getter / Setter - public Long getId() { return id; } @@ -77,11 +86,11 @@ public class WcsTaskResult extends BaseEntity { } public String getTaskStatus() { - return TaskStatus; + return taskStatus; } - public void setTaskStatus(String TaskStatus) { - this.TaskStatus = TaskStatus; + public void setTaskStatus(String taskStatus) { + this.taskStatus = taskStatus; } public String getMsg() { @@ -167,21 +176,21 @@ public class WcsTaskResult extends BaseEntity { @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("taskId", getTaskId()) - .append("TaskStatus", getTaskStatus()) - .append("msg", getMsg()) - .append("jobId", getJobId()) - .append("owner", getOwner()) - .append("type", getType()) - .append("priority", getPriority()) - .append("sourceName", getSourceName()) - .append("targetName", getTargetName()) - .append("isDelete", getIsDelete()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); + .append("id", getId()) + .append("taskId", getTaskId()) + .append("taskStatus", getTaskStatus()) + .append("msg", getMsg()) + .append("jobId", getJobId()) + .append("owner", getOwner()) + .append("type", getType()) + .append("priority", getPriority()) + .append("sourceName", getSourceName()) + .append("targetName", getTargetName()) + .append("isDelete", getIsDelete()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); } } diff --git a/src/main/java/com/zg/project/wisdom/domain/dto/AgvDTO.java b/src/main/java/com/zg/project/wisdom/domain/dto/AgvDTO.java index a30ef7a..a78c87c 100644 --- a/src/main/java/com/zg/project/wisdom/domain/dto/AgvDTO.java +++ b/src/main/java/com/zg/project/wisdom/domain/dto/AgvDTO.java @@ -4,16 +4,40 @@ import lombok.Data; @Data public class AgvDTO { + + /** 请求ID(唯一标识此次任务,建议格式:任务号 + 两位后缀) */ private String requestId; + + /** 任务编号(可与 requestId 相同,也可为空) */ private String taskId; + + /** 作业ID(AGV/WCS系统生成的作业单号) */ private String jobId; + + /** 所属者(AGV/WCS系统标识的任务所属单位或系统) */ private String owner; + + /** 任务类型(如“inbound”、“outbound”、“move”等) */ private String type; + + /** 优先级(如“normal”、“high”等) */ private String priority; + + /** 起始位置(如库位编号、货位编码等) */ private String sourceName; + + /** 目标位置(如目标库位、货架位置等) */ private String targetName; + + /** 创建时间(可传 ISO8601 字符串,也可为空) */ private String createdAt; + + /** 更新时间(可传 ISO8601 字符串,也可为空) */ private String updatedAt; + + /** 当前状态(必须传。可选值包括:CREATED、ALLOCATED、WAITING_PICK_UP、PICK_UP_COMPLETED、WAITING_TAKE_DOWN、END_ARRIVE、TAKE_DOWN_COMPLETED、FINISHED、FAILURE、PROCESSING 等) */ private String status; + + /** 状态说明(可传入本状态的文字描述,例如“任务已完成”) */ private String msg; } diff --git a/src/main/java/com/zg/project/wisdom/mapper/AgyWcsMapper.java b/src/main/java/com/zg/project/wisdom/mapper/AgvWcsMapper.java similarity index 56% rename from src/main/java/com/zg/project/wisdom/mapper/AgyWcsMapper.java rename to src/main/java/com/zg/project/wisdom/mapper/AgvWcsMapper.java index 4876183..28adb1e 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/AgyWcsMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/AgvWcsMapper.java @@ -2,6 +2,6 @@ package com.zg.project.wisdom.mapper; import com.zg.project.wisdom.domain.AgyWcs; -public interface AgyWcsMapper { - int insertAgyWcs(AgyWcs aw); +public interface AgvWcsMapper { + int insertAgvWcs(AgyWcs aw); } \ No newline at end of file diff --git a/src/main/java/com/zg/project/wisdom/mapper/DdTaskMapper.java b/src/main/java/com/zg/project/wisdom/mapper/DdTaskMapper.java index d3f73ee..0c6e715 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/DdTaskMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/DdTaskMapper.java @@ -45,7 +45,7 @@ public interface DdTaskMapper { /** * 根据任务编号更新任务状态 */ - void updateTaskStatusByTaskNo(String taskNo, int i); + int updateTaskStatusByTaskNo(@Param("taskNo") String taskNo, @Param("status") Integer status); /** * 根据任务编号查询调度任务 diff --git a/src/main/java/com/zg/project/wisdom/service/IAgvTaskResultService.java b/src/main/java/com/zg/project/wisdom/service/IAgvTaskResultService.java index e04d7ad..19a2e03 100644 --- a/src/main/java/com/zg/project/wisdom/service/IAgvTaskResultService.java +++ b/src/main/java/com/zg/project/wisdom/service/IAgvTaskResultService.java @@ -28,9 +28,13 @@ public interface IAgvTaskResultService { /** 处理AGV回调 */ void handleAgvCallback(AgvDTO dto); - - /** 上架 */ - void handleUpGoods(String taskNo,Integer materialStatus ); + /** + * 上架任务处理(调用 WCS) + * @param taskNo 调度任务编号 + * @param materialStatus 物料状态(0=空托盘,1=有货) + * @return 上架任务 taskId + */ + String handleUpGoods(String taskNo, Integer materialStatus); /** 下架 */ void handleOutGoods(OutGoodsDTO dto); diff --git a/src/main/java/com/zg/project/wisdom/service/IDdTaskService.java b/src/main/java/com/zg/project/wisdom/service/IDdTaskService.java index 56e429f..a076bd1 100644 --- a/src/main/java/com/zg/project/wisdom/service/IDdTaskService.java +++ b/src/main/java/com/zg/project/wisdom/service/IDdTaskService.java @@ -1,6 +1,5 @@ package com.zg.project.wisdom.service; -import com.zg.framework.web.domain.AjaxResult; import com.zg.project.wisdom.domain.DdTask; import com.zg.project.wisdom.domain.dto.TaskExecuteDTO; import com.zg.project.wisdom.domain.vo.TaskExecuteResultVO; @@ -45,6 +44,8 @@ public interface IDdTaskService { int deleteDdTaskById(Long id); /** * 执行任务 + * + * @return */ TaskExecuteResultVO executeTask(TaskExecuteDTO dto); } diff --git a/src/main/java/com/zg/project/wisdom/service/impl/AgvTaskResultServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/AgvTaskResultServiceImpl.java index 61d7928..74a4428 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/AgvTaskResultServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/AgvTaskResultServiceImpl.java @@ -7,6 +7,7 @@ import com.zg.common.utils.DateUtils; import com.zg.common.utils.SecurityUtils; import com.zg.common.utils.StringUtils; import com.zg.common.utils.http.HttpUtils; +import com.zg.common.utils.http.OkHttpUtils; import com.zg.project.information.mapper.MtdMapper; import com.zg.project.wisdom.domain.AgvTaskResult; import com.zg.project.wisdom.domain.AgyWcs; @@ -15,7 +16,7 @@ import com.zg.project.wisdom.domain.WcsTaskResult; import com.zg.project.wisdom.domain.dto.AgvDTO; import com.zg.project.wisdom.domain.dto.OutGoodsDTO; import com.zg.project.wisdom.mapper.AgvTaskResultMapper; -import com.zg.project.wisdom.mapper.AgyWcsMapper; +import com.zg.project.wisdom.mapper.AgvWcsMapper; import com.zg.project.wisdom.mapper.DdTaskMapper; import com.zg.project.wisdom.mapper.WcsTaskResultMapper; import com.zg.project.wisdom.service.IAgvTaskResultService; @@ -46,20 +47,20 @@ public class AgvTaskResultServiceImpl implements IAgvTaskResultService { private MtdMapper mtdMapper; @Autowired - private AgyWcsMapper agyWcsMapper; + private AgvWcsMapper agyWcsMapper; -// @Value("${agv.job.create-url}") -// private String agvJobCreateUrl; -// -// @Value("${wcs.job.create-url}") -// private String wcsJobCreateUrl; - - @Value("${mock.agv-job-create-url}") + @Value("${agv.job.create-url}") private String agvJobCreateUrl; - @Value("${mock.wcs-job-create-url}") + @Value("${wcs.job.create-url}") private String wcsJobCreateUrl; +// @Value("${mock.agv-job-create-url}") +// private String agvJobCreateUrl; +// +// @Value("${mock.wcs-job-create-url}") +// private String wcsJobCreateUrl; + @Override public AgvTaskResult selectAgvTaskResultById(Long id) { @@ -123,8 +124,8 @@ public class AgvTaskResultServiceImpl implements IAgvTaskResultService { agvTaskResultMapper.insertAgvTaskResult(result); - // 如果状态为 FINISHED,则将 dd_task 中状态置为 2(已完成) - if ("FINISHED".equalsIgnoreCase(dto.getStatus())) { + // 如果状态为 TAKE_DOWN_COMPLETED,则将 dd_task 中状态置为 2(已完成) + if ("TAKE_DOWN_COMPLETED".equalsIgnoreCase(dto.getStatus())) { ddTaskMapper.updateTaskStatusByTaskNo(taskNo, 2); } @@ -135,8 +136,7 @@ public class AgvTaskResultServiceImpl implements IAgvTaskResultService { * @param */ @Override - public void handleUpGoods(String taskNo, Integer materialStatus) { - String userId = SecurityUtils.getUserId().toString(); + public String handleUpGoods(String taskNo, Integer materialStatus) { Date now = DateUtils.getNowDate(); // 1. 查询调度任务 @@ -146,12 +146,11 @@ public class AgvTaskResultServiceImpl implements IAgvTaskResultService { } // 2. 构造 WCS 请求参数 - String taskId = taskNo + "21"; // 上架任务编号(taskNo + 21) + String taskId = taskNo + "21"; // 上架任务编号(WCS) JSONObject wcsParam = new JSONObject(); wcsParam.put("TaskID", taskId); - wcsParam.put("TrayNo", ""); // 固定空 - + wcsParam.put("TrayNo", ""); wcsParam.put("Materialstatus", materialStatus); if (materialStatus != null && materialStatus == 1) { @@ -166,41 +165,50 @@ public class AgvTaskResultServiceImpl implements IAgvTaskResultService { wcsParam.put("Quantity", ""); } - wcsParam.put("Mlocation", ddTask.getSourceName()); - wcsParam.put("Tlocation", ddTask.getTargetName()); + wcsParam.put("Mlocation", ddTask.getTargetName()); + wcsParam.put("Tlocation", ddTask.getSourceName()); + + log.info("[上架] 调用 WCS 接口参数: {}", wcsParam.toJSONString()); + + // 3. 发起调用 + String wcsResp = OkHttpUtils.postJson(wcsJobCreateUrl, wcsParam.toJSONString()); - log.info("[上架] 调用 WCS 接口: {}", wcsParam.toJSONString()); - String wcsResp = HttpUtils.sendPost(wcsJobCreateUrl, wcsParam.toJSONString()); if (StringUtils.isBlank(wcsResp)) { throw new ServiceException("WCS 接口无响应"); } JSONObject json = JSON.parseObject(wcsResp); - if (!Objects.equals(json.getInteger("code"), 0)) { - throw new ServiceException("WCS 上架失败:" + json.getString("msg")); + + if (!json.containsKey("result")) { + throw new ServiceException("WCS 返回格式异常:" + wcsResp); } - // 3. 写入 WCS 执行结果记录 + String result = json.getString("result"); + if (!"success".equalsIgnoreCase(result)) { + throw new ServiceException("WCS 上架失败:" + json.getString("errorMessage")); + } + + // 4. 插入执行记录 WcsTaskResult wcs = new WcsTaskResult(); wcs.setTaskId(taskId); - wcs.setTaskStatus("1"); // 等待WCS回调 - wcs.setMsg(json.getString("msg")); + wcs.setTaskStatus("0"); // 成功 + wcs.setMsg(json.getString("errorMessage")); wcs.setOwner("wms"); - wcs.setType("1"); // 上架 + wcs.setType("1"); wcs.setPriority("1"); wcs.setSourceName(ddTask.getSourceName()); wcs.setTargetName(ddTask.getTargetName()); wcs.setIsDelete("0"); - wcs.setCreateBy(userId); wcs.setCreateTime(now); wcs.setUpdateTime(now); wcsTaskResultMapper.insertWcsTaskResult(wcs); log.info("[上架] 执行成功,任务 {} 状态已更新为已完成", taskNo); + + // ✅ 返回 taskId + return taskId; } - - /** * 货物下架 * @param @@ -310,7 +318,7 @@ public class AgvTaskResultServiceImpl implements IAgvTaskResultService { AgyWcs mapping = new AgyWcs(); mapping.setRequestId(agvRequestId); mapping.setTaskId(wcsTaskId); - agyWcsMapper.insertAgyWcs(mapping); + agyWcsMapper.insertAgvWcs(mapping); log.info("[下架] AGV 搬运任务提交成功"); } diff --git a/src/main/java/com/zg/project/wisdom/service/impl/DdTaskServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/DdTaskServiceImpl.java index 692ce28..5995af5 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/DdTaskServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/DdTaskServiceImpl.java @@ -6,7 +6,7 @@ import com.zg.common.exception.ServiceException; import com.zg.common.utils.DateUtils; import com.zg.common.utils.SecurityUtils; import com.zg.common.utils.StringUtils; -import com.zg.common.utils.http.HttpUtils; +import com.zg.common.utils.http.OkHttpUtils; import com.zg.project.information.mapper.MtdMapper; import com.zg.project.wisdom.domain.AgvTaskResult; import com.zg.project.wisdom.domain.AgyWcs; @@ -15,7 +15,7 @@ import com.zg.project.wisdom.domain.WcsTaskResult; import com.zg.project.wisdom.domain.dto.TaskExecuteDTO; import com.zg.project.wisdom.domain.vo.TaskExecuteResultVO; import com.zg.project.wisdom.mapper.AgvTaskResultMapper; -import com.zg.project.wisdom.mapper.AgyWcsMapper; +import com.zg.project.wisdom.mapper.AgvWcsMapper; import com.zg.project.wisdom.mapper.DdTaskMapper; import com.zg.project.wisdom.mapper.WcsTaskResultMapper; import com.zg.project.wisdom.service.IDdTaskService; @@ -49,7 +49,7 @@ public class DdTaskServiceImpl implements IDdTaskService { private MtdMapper mtdMapper; @Autowired - private AgyWcsMapper agyWcsMapper; + private AgvWcsMapper agyWcsMapper; // @Value("${agv.job.create-url}") private String agvJobCreateUrl; @@ -57,6 +57,9 @@ public class DdTaskServiceImpl implements IDdTaskService { @Value("${wcs.job.create-url}") private String wcsJobCreateUrl; + @Value("${wcs.job.chuku-url}") + private String wcsJobChukuUrl; + // @Value("${mock.agv-job-create-url}") // private String agvJobCreateUrl; // @@ -126,6 +129,8 @@ public class DdTaskServiceImpl implements IDdTaskService { /** * 执行任务 + * + * @return */ @Override @Transactional(rollbackFor = Exception.class) @@ -151,8 +156,8 @@ public class DdTaskServiceImpl implements IDdTaskService { String requestId = null; String taskIdParam = null; String response; - int code; String msg; + int code = 200; String userId = SecurityUtils.getUserId().toString(); Date now = DateUtils.getNowDate(); @@ -161,7 +166,7 @@ public class DdTaskServiceImpl implements IDdTaskService { taskIdParam = taskNo + "22"; JSONObject wcsParam = new JSONObject(); wcsParam.put("TaskID", taskIdParam); - wcsParam.put("TaskType", 2); + wcsParam.put("TaskType", 1); wcsParam.put("Mlocation", task.getSourceName()); wcsParam.put("TrayNo", ""); wcsParam.put("Materialstatus", materialStatus); @@ -181,21 +186,24 @@ public class DdTaskServiceImpl implements IDdTaskService { } log.info("[任务执行] 出库 → 调用WCS,taskId={}, param={}", taskIdParam, wcsParam); - response = HttpUtils.sendPostJson(wcsJobCreateUrl, wcsParam.toJSONString()); + response = OkHttpUtils.postJson(wcsJobChukuUrl, wcsParam.toJSONString()); + + if (StringUtils.isBlank(response)) { + throw new ServiceException("WCS 无响应或返回为空"); + } JSONObject respJson; try { respJson = JSON.parseObject(response); - code = respJson.getInteger("code"); - msg = respJson.getString("msg"); + String result = respJson.getString("result"); + msg = respJson.getString("errorMessage"); + if (!"success".equalsIgnoreCase(result)) { + throw new ServiceException("WCS任务执行失败: " + msg); + } } catch (Exception e) { throw new ServiceException("WCS响应解析失败: " + response); } - if (code != 200) { - throw new ServiceException("WCS任务执行失败: " + msg); - } - WcsTaskResult wcs = new WcsTaskResult(); wcs.setTaskId(taskIdParam); wcs.setTaskStatus("1"); @@ -211,19 +219,19 @@ public class DdTaskServiceImpl implements IDdTaskService { wcs.setUpdateTime(now); wcsTaskResultMapper.insertWcsTaskResult(wcs); - // 调用 AGV + // 调用 AGV(使用 OkHttpUtils) requestId = taskNo + "12"; JSONObject agvParam = new JSONObject(); agvParam.put("owner", "wms"); agvParam.put("type", "1"); agvParam.put("priority", 1); - agvParam.put("sourceName", task.getSourceName()); + agvParam.put("sourceName", "v01-010101"); agvParam.put("targetName", targetName); agvParam.put("taskNo", taskNo); agvParam.put("requestId", requestId); log.info("[任务执行] 出库 → 调用AGV,requestId={}, param={}", requestId, agvParam); - response = HttpUtils.sendPostJson(agvJobCreateUrl, agvParam.toJSONString()); + response = OkHttpUtils.postJson(agvJobCreateUrl, agvParam.toJSONString()); try { respJson = JSON.parseObject(response); @@ -256,10 +264,10 @@ public class DdTaskServiceImpl implements IDdTaskService { AgyWcs mapping = new AgyWcs(); mapping.setRequestId(requestId); mapping.setTaskId(taskIdParam); - agyWcsMapper.insertAgyWcs(mapping); + agyWcsMapper.insertAgvWcs(mapping); } else { - // 入库/移库任务 → 调用 AGV + // 入库/移库任务 → 调用 AGV(使用 OkHttpUtils) requestId = taskNo + ("0".equals(taskType) ? "11" : "12"); JSONObject param = new JSONObject(); param.put("owner", "wms"); @@ -271,7 +279,7 @@ public class DdTaskServiceImpl implements IDdTaskService { param.put("requestId", requestId); log.info("[任务执行] 类型={}(AGV),requestId={}, param={}", taskType, requestId, param); - response = HttpUtils.sendPostJson(agvJobCreateUrl, param.toJSONString()); + response = OkHttpUtils.postJson(agvJobCreateUrl, param.toJSONString()); JSONObject respJson; try { @@ -316,4 +324,4 @@ public class DdTaskServiceImpl implements IDdTaskService { return vo; } -} + } diff --git a/src/main/java/com/zg/project/wisdom/service/impl/WcsTaskResultServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/WcsTaskResultServiceImpl.java index 8baff53..ea83b4d 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/WcsTaskResultServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/WcsTaskResultServiceImpl.java @@ -23,15 +23,8 @@ public class WcsTaskResultServiceImpl implements IWcsTaskResultService { result.setTaskId(taskId); result.setTaskStatus(dto.getTaskStatus()); result.setMsg(dto.getMsg()); - result.setJobId(dto.getJobId()); - result.setOwner(dto.getOwner()); - result.setType(dto.getType()); - result.setPriority(dto.getPriority()); - result.setSourceName(dto.getSourceName()); - result.setTargetName(dto.getTargetName()); result.setCreateBy("wcs"); result.setCreateTime(DateUtils.getNowDate()); - result.setUpdateTime(DateUtils.getNowDate()); result.setIsDelete("0"); wcsTaskResultMapper.insertWcsTaskResult(result); diff --git a/src/main/resources/application-druid.yml b/src/main/resources/application-druid.yml index d077f57..7fb4159 100644 --- a/src/main/resources/application-druid.yml +++ b/src/main/resources/application-druid.yml @@ -6,8 +6,8 @@ spring: druid: # 主库数据源 master: -# url: jdbc:mysql://192.168.1.20:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 - url: jdbc:mysql://192.168.1.251:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.1.20:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 +# url: jdbc:mysql://192.168.1.251:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 # url: jdbc:mysql://localhost:3306/wisdom?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: shzg diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a186d61..e830924 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -68,8 +68,8 @@ spring: # redis 配置 redis: # 地址 -# host: 192.168.1.20 - host: 192.168.1.251 + host: 192.168.1.20 +# host: 192.168.1.251 # host: localhost # 端口,默认为6379 port: 6379 @@ -150,8 +150,8 @@ agv: wcs: job: - create-url: http://192.168.1.230:8188/wcs/task/create - + create-url: http://192.168.1.137:6060/API/Ruku # WCS入库任务接口 + chuku-url: http://192.168.1.137:6060/API/Chuku # WCS出库任务接口 #rfid: # device: # conn-id: 192.168.1.88:9090 diff --git a/src/main/resources/mybatis/monitor/SysLogininforMapper.xml b/src/main/resources/mybatis/monitor/AgvWcsMapper.xml similarity index 100% rename from src/main/resources/mybatis/monitor/SysLogininforMapper.xml rename to src/main/resources/mybatis/monitor/AgvWcsMapper.xml diff --git a/src/main/resources/mybatis/wisdom/AgyWcsMapper.xml b/src/main/resources/mybatis/wisdom/AgyWcsMapper.xml index 9b560dd..28fe366 100644 --- a/src/main/resources/mybatis/wisdom/AgyWcsMapper.xml +++ b/src/main/resources/mybatis/wisdom/AgyWcsMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -12,8 +12,8 @@ - - INSERT INTO agy_wcs (requestId, TaskID) + + INSERT INTO agv_wcs (requestId, TaskID) VALUES (#{requestId}, #{taskId}) diff --git a/src/main/resources/mybatis/wisdom/WcsTaskResultMapper.xml b/src/main/resources/mybatis/wisdom/WcsTaskResultMapper.xml index 694f836..b717025 100644 --- a/src/main/resources/mybatis/wisdom/WcsTaskResultMapper.xml +++ b/src/main/resources/mybatis/wisdom/WcsTaskResultMapper.xml @@ -29,34 +29,18 @@ task_id, task_status, msg, - job_id, - owner, - type, - priority, - source_name, - target_name, create_time, - update_time, is_delete, - create_by, - update_by + create_by ) VALUES ( #{taskId}, - #{TaskStatus}, + #{taskStatus}, #{msg}, - #{jobId}, - #{owner}, - #{type}, - #{priority}, - #{sourceName}, - #{targetName}, #{createTime}, - #{updateTime}, #{isDelete}, - #{createBy}, - #{updateBy} + #{createBy} ) @@ -64,7 +48,7 @@ SELECT COUNT(*) FROM wcs_task_result WHERE task_id = #{taskId} - AND TaskStatus = '1' + AND task_status = '1'