From 12b762513c4fd6369b24d8cdab493320c72e81fc Mon Sep 17 00:00:00 2001 From: liuxy Date: Mon, 8 Sep 2025 09:09:37 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E6=89=8B=E6=8C=81=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BsrealStorattrServiceImpl.java | 1 - .../ext/controller/AcsToWmsController.java | 12 +- .../org/nl/wms/ext/enums/EXTConstant.java | 10 ++ .../nl/wms/ext/service/AcsToWmsService.java | 21 +++- .../nl/wms/ext/service/WmsToAcsService.java | 10 ++ .../ext/service/impl/AcsToWmsServiceImpl.java | 114 +++++++++++------- .../ext/service/impl/WmsToAcsServiceImpl.java | 8 +- .../java/org/nl/wms/ext/util/AcsUtil.java | 47 ++++++++ .../org/nl/wms/ext/util/BaseResponse.java | 6 +- .../impl/PdaInGroupBoxServiceImpl.java | 2 +- .../PdmBomCallMaterialDtlServiceImpl.java | 11 +- .../service/impl/SchBasePointServiceImpl.java | 32 ++++- .../dao/mapper/MdPbGroupplateMapper.xml | 6 +- .../service/impl/SelectOutServiceImpl.java | 11 +- .../impl/StIvtCombinedBoxServiceImpl.java | 11 +- .../src/views/wms/basedata/group/index.vue | 26 +++- 16 files changed, 253 insertions(+), 75 deletions(-) diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java index 4fcf024..d3197dc 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/BsrealStorattrServiceImpl.java @@ -116,7 +116,6 @@ public class BsrealStorattrServiceImpl extends ServiceImpl receiveTaskStatusAcs(@RequestBody String string) { - return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK); + public ResponseEntity receiveTaskStatusAcs(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(whereJson), HttpStatus.OK); + } + + @PostMapping("/resultCar") + @Log(value = "ACS给WMS反馈车号") + @SaIgnore + public ResponseEntity resultCar(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(acsToWmsService.resultCar(whereJson), HttpStatus.OK); } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/enums/EXTConstant.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/enums/EXTConstant.java index 528550b..b913c7c 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/enums/EXTConstant.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/enums/EXTConstant.java @@ -21,4 +21,14 @@ public class EXTConstant { * ACS下发任务接口地址 */ public final static String SEND_TASK_ACS_API = "api/wms/task"; + + /** + * ACS下发 取放货确认 + */ + public final static String CONFIRM_AGV_ACS_API = "api/wms/confirmAgv"; + + /** + * ACS下发 获取称重信息 + */ + public final static String GET_WEIGH_ACS_API = "api/wms/getWeigh"; } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java index 65d24fe..13e8675 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/AcsToWmsService.java @@ -1,5 +1,8 @@ package org.nl.wms.ext.service; +import com.alibaba.fastjson.JSONObject; +import org.nl.wms.ext.util.BaseResponse; + import java.util.Map; /** @@ -16,8 +19,20 @@ public interface AcsToWmsService { * ACS客户端--->WMS服务端 * ACS向WMS反馈任务状态 * - * @param string ACS反馈的任务数组 - * @return Map + * @param whereJson ACS反馈的任务数组 + * @return BaseResponse */ - Map receiveTaskStatusAcs(String string); + BaseResponse receiveTaskStatusAcs(JSONObject whereJson); + + /** + * ACS客户端--->WMS服务端 + * ACS给WMS反馈车号 + * @param whereJson { + * task_id: 任务标识 + * task_code: 任务编码 + * car_no: 车号 + * } + * @return BaseResponse + */ + BaseResponse resultCar(JSONObject whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java index b825276..cd0676e 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/WmsToAcsService.java @@ -30,4 +30,14 @@ public interface WmsToAcsService { * @return AcsResponse */ AcsResponse getWeighAcs(JSONObject whereJson); + + /** + * 确认取放货 + * @param whereJson { + * task_type: 1-取货确认 2- 放货确认 + * task_code: 任务号 + * } + * @return AcsResponse + */ + AcsResponse confirmAgv(JSONObject whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java index c82ac09..2c2c70d 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/AcsToWmsServiceImpl.java @@ -1,12 +1,13 @@ package org.nl.wms.ext.service.impl; -import com.alibaba.fastjson.JSONArray; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.common.exception.BadRequestException; import org.nl.wms.ext.enums.ResultAcsStatus; import org.nl.wms.ext.service.AcsToWmsService; +import org.nl.wms.ext.util.BaseResponse; import org.nl.wms.sch_manage.enums.TaskStatus; import org.nl.wms.sch_manage.service.ISchBaseTaskService; import org.nl.wms.sch_manage.service.dao.SchBaseTask; @@ -15,11 +16,9 @@ import org.nl.wms.sch_manage.service.util.TaskFactory; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Map; import java.util.concurrent.TimeUnit; /** @@ -55,52 +54,77 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { @Override @Transactional(rollbackFor = Exception.class) @SneakyThrows - public Map receiveTaskStatusAcs(String string) { - log.info("acs向lms反馈任务状态,请求参数:--------------------------------------" + string); - JSONArray array = JSONArray.parseArray(string); - //返回处理失败的任务 - JSONArray errArr = new JSONArray(); - for (int i = 0; i < array.size(); i++) { - JSONObject row = array.getJSONObject(i); - String task_id = row.getString("task_id"); - RLock lock = redissonClient.getLock(task_id); - boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); - try { - if (tryLock) { - SchBaseTask taskObj = iSchBaseTaskService.getById(task_id); - // acs反馈的任务类型 - String acs_task_status = row.getString("task_status"); - TaskStatus status; - if (ResultAcsStatus.EXECUTING.getCode().equals(acs_task_status)) { - // 执行中 - status = TaskStatus.EXECUTING; - } else if (ResultAcsStatus.FINISHED.getCode().equals(acs_task_status)) { - // 完成 - status = TaskStatus.FINISHED; - iSchBaseTaskService.updateById(taskObj); - } else { - // 取消 - status = TaskStatus.CANCELED; - } - // 根据配置编码执行相关配置内的方法 - AbstractTask task = taskFactory.getTask(taskObj.getConfig_code()); - task.updateTaskStatus(taskObj.getTask_code(),status); + public BaseResponse receiveTaskStatusAcs(JSONObject whereJson) { + log.info("acs向lms反馈任务状态,请求参数:--------------------------------------" + whereJson.toString()); + // 任务标识 + String task_id = whereJson.getString("task_id"); + // acs反馈的任务类型 + String acs_task_status = whereJson.getString("task_status"); + RLock lock = redissonClient.getLock(task_id); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + + try { + if (tryLock) { + SchBaseTask taskObj = iSchBaseTaskService.getById(task_id); + + TaskStatus status; + if (ResultAcsStatus.EXECUTING.getCode().equals(acs_task_status)) { + // 执行中 + status = TaskStatus.EXECUTING; + // 更新车号 + } else if (ResultAcsStatus.FINISHED.getCode().equals(acs_task_status)) { + // 完成 + status = TaskStatus.FINISHED; } else { - throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!"); - } - } finally { - if (tryLock) { - lock.unlock(); + // 取消 + status = TaskStatus.CANCELED; } + // 根据配置编码执行相关配置内的方法 + AbstractTask task = taskFactory.getTask(taskObj.getConfig_code()); + task.updateTaskStatus(taskObj.getTask_code(), status); + + } else { + throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!"); + } + } finally { + if (tryLock) { + lock.unlock(); } } - JSONObject result = new JSONObject(); - result.put("status", HttpStatus.OK.value()); - result.put("message", "任务状态反馈成功!"); - result.put("data", new JSONObject()); - result.put("errArr", errArr); - log.info("acs向lms反馈任务状态,返回参数:--------------------------------------" + result.toString()); - return result; + + log.info("acs向lms反馈任务状态,返回参数:--------------------------------------" + BaseResponse.responseOk().toString()); + return BaseResponse.responseOk(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + @SneakyThrows + public BaseResponse resultCar(JSONObject whereJson) { + log.info("acs向lms反馈任务车号,请求参数:--------------------------------------" + whereJson.toString()); + // 任务标识 + String task_id = whereJson.getString("task_id"); + // 车号 + String car_no = whereJson.getString("car_no"); + if (ObjectUtil.isEmpty(car_no)) { + throw new BadRequestException("车号不能为空!"); + } + + RLock lock = redissonClient.getLock(task_id); + boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLock) { + SchBaseTask taskObj = iSchBaseTaskService.getById(task_id); + taskObj.setCar_no(car_no); + iSchBaseTaskService.updateById(taskObj); + } else { + throw new BadRequestException("任务标识为:" + task_id + "的任务正在操作中!"); + } + } finally { + if (tryLock) { + lock.unlock(); + } + } + return BaseResponse.responseOk(); } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java index cc288ae..27350c3 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/service/impl/WmsToAcsServiceImpl.java @@ -30,6 +30,12 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { @Override public AcsResponse getWeighAcs(JSONObject whereJson) { - return null; + return AcsUtil.notifyAcs(EXTConstant.GET_WEIGH_ACS_API, whereJson); + } + + @Override + public AcsResponse confirmAgv(JSONObject whereJson) { + return AcsUtil.notifyAcs(EXTConstant.CONFIRM_AGV_ACS_API, whereJson); + } } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/AcsUtil.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/AcsUtil.java index 4082470..613e1dc 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/AcsUtil.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/AcsUtil.java @@ -80,4 +80,51 @@ public class AcsUtil { return resultAcs; } + /** + * 调用acs + * @param api acs地址 + * @param param 下发参数 + * @return AcsResponse + */ + public static AcsResponse notifyAcs(String api, JSONObject param) { + log.info("下发acs接口"+api+"的输入参数为:-------------------" + param.toString()); + + // 返回参数 + AcsResponse resultAcs; + // 系统参数类 + SysParamServiceImpl sysParamService = SpringContextHolder.getBean(SysParamServiceImpl.class); + //判断是否连接ACS系统 + Param isConnectAcs = sysParamService.findByCode(SysParamConstant.IS_CONNECT_ACS); + if (ObjectUtil.isEmpty(isConnectAcs)) { + return AcsResponse.requestError("系统参数表中:" + SysParamConstant.IS_CONNECT_ACS + "不存在"); + } + if (isConnectAcs.getValue().equals(IOSConstant.IS_DELETE_NO)) { + return AcsResponse.requestOkMessage("下发成功,未连接ACS系统!"); + } + + //ACS地址 + Param acsUrlParam = sysParamService.findByCode(SysParamConstant.ACS_URL); + if (ObjectUtil.isEmpty(acsUrlParam)) { + return AcsResponse.requestError("系统参数表中:" + SysParamConstant.ACS_URL + "不存在"); + } + + String url = acsUrlParam.getValue() + api; + try { + String resultMsg = HttpRequest.post(url) + .body(String.valueOf(param)) + .execute().body(); + // 格式转换 + JSONObject result = JSONObject.parseObject(resultMsg); + resultAcs = JSONObject.toJavaObject(result, AcsResponse.class); + + log.info("下发ACS任务的输出参数为:-------------------" + resultMsg); + } catch (Exception e) { + //网络不通 + String msg = e.getMessage(); + log.error("连接失败:{}", msg); + return AcsResponse.requestError("网络不通,操作失败!"); + } + return resultAcs; + } + } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/BaseResponse.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/BaseResponse.java index 42713ea..bd04456 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/BaseResponse.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/util/BaseResponse.java @@ -56,9 +56,8 @@ public class BaseResponse implements Serializable { return response; } - public static BaseResponse responseOk(String requestNo) { + public static BaseResponse responseOk() { BaseResponse response = new BaseResponse(); - response.setRequestNo(requestNo); response.setStatus(HttpStatus.HTTP_OK); response.setMessage("请求成功"); response.setResponseDate(DateUtil.now()); @@ -84,9 +83,8 @@ public class BaseResponse implements Serializable { return response; } - public static BaseResponse responseError(String requestNo, String message) { + public static BaseResponse responseError(String message) { BaseResponse response = new BaseResponse(); - response.setRequestNo(requestNo); response.setStatus(HttpStatus.HTTP_BAD_REQUEST); response.setMessage(message); response.setResponseDate(DateUtil.now()); diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaInGroupBoxServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaInGroupBoxServiceImpl.java index ab5992a..42ef7ee 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaInGroupBoxServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pda/general_management/service/impl/PdaInGroupBoxServiceImpl.java @@ -78,7 +78,7 @@ public class PdaInGroupBoxServiceImpl implements PdaInGroupBoxService { // 物料编码 String mater_code = split[0]; // 烘干次数 - String bake_num = split[10]; + String bake_num = split[7]; // 校验物料 MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(groupDao.getMaterial_id()); if (!materDao.getMaterial_code().equals(mater_code)) { diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialDtlServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialDtlServiceImpl.java index 12a0a43..3762cf8 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialDtlServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm_manage/service/impl/PdmBomCallMaterialDtlServiceImpl.java @@ -101,10 +101,15 @@ public class PdmBomCallMaterialDtlServiceImpl extends ServiceImpl queryAll(SchBasePointQuery whereJson, PageQuery page) { IPage pages = new Page<>(page.getPage() + 1, page.getSize()); @@ -204,19 +209,42 @@ public class SchBasePointServiceImpl extends ServiceImpl 1 = 1 diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/SelectOutServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/SelectOutServiceImpl.java index 9ff9b0a..951f371 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/SelectOutServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/SelectOutServiceImpl.java @@ -138,10 +138,15 @@ public class SelectOutServiceImpl extends ServiceImpl