opt: ndc驱动、解包完善

This commit is contained in:
2025-09-15 13:20:56 +08:00
parent 53b6c5bd7a
commit 8a30bc065d
19 changed files with 395 additions and 390 deletions

View File

@@ -22,6 +22,11 @@ public class EXTConstant {
*/
public final static String SEND_TASK_ACS_API = "api/wms/task";
/**
* 向ACS查询设备信息
*/
public final static String QUERY_DEVICE_INFO_API = "api/wms/querydevice";
/**
* 回传MES接口地址
*/

View File

@@ -1,6 +1,8 @@
package org.nl.wms.ext_manage.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.wms.ext_manage.service.util.AcsResponse;
import org.nl.wms.sch_manage.service.util.AcsTaskDto;
@@ -22,4 +24,11 @@ public interface WmsToAcsService {
* @return AcsResponse
*/
AcsResponse renotifyAcs(List<AcsTaskDto> list);
/**
* 获取设备状态
*
* @return
*/
AcsResponse getPointStatus(JSONArray whereJson);
}

View File

@@ -1,5 +1,7 @@
package org.nl.wms.ext_manage.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.nl.wms.ext_manage.enums.EXTConstant;
import org.nl.wms.ext_manage.service.WmsToAcsService;
@@ -26,4 +28,9 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
public AcsResponse renotifyAcs(List<AcsTaskDto> list) {
return AcsUtil.notifyAcs(EXTConstant.SEND_TASK_ACS_API, list);
}
@Override
public AcsResponse getPointStatus(JSONArray whereJson) {
return AcsUtil.notifyAcs(EXTConstant.QUERY_DEVICE_INFO_API, whereJson);
}
}

View File

@@ -17,6 +17,8 @@ import org.nl.common.utils.SecurityUtils;
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
import org.nl.wms.basedata_manage.service.*;
import org.nl.wms.basedata_manage.service.dao.*;
import org.nl.wms.ext_manage.service.WmsToAcsService;
import org.nl.wms.ext_manage.service.util.AcsResponse;
import org.nl.wms.pda_manage.sch_manage.service.GroupInfoPdaVo;
import org.nl.wms.pda_manage.sch_manage.service.PdaJBService;
import org.nl.wms.pda_manage.sch_manage.service.mapper.PdaJBMapper;
@@ -114,6 +116,8 @@ public class PdaJBServiceImpl implements PdaJBService {
private ISchBaseTaskService taskService;
@Resource
private IMdCsSupplierbaseService supplierbaseService;
@Resource
private WmsToAcsService wmsToAcsService;
@Override
public PdaResponse getOrderList(JSONObject whereJson) {
String flag = whereJson.getString("flag");
@@ -270,9 +274,19 @@ public class PdaJBServiceImpl implements PdaJBService {
if (ObjectUtil.isEmpty(param)) {
throw new BadRequestException("请先定义 " + JB_STANDARD_ERROR + " 系统参数!");
}
// todo: 调用acs获取
// 调用acs获取
JSONArray req = new JSONArray();
JSONObject device = new JSONObject();
req.add(device);
device.put("device_code", pointCode);
AcsResponse pointStatus = wmsToAcsService.getPointStatus(req);
if (pointStatus.getCode() != 200) {
throw new BadRequestException("ACS读取重量数据失败, 请手动输入重量!");
}
JSONObject deviceInfo = pointStatus.getData().getJSONObject(0);
String netWeight = deviceInfo.getString("net_weight");
JSONObject res = new JSONObject();
res.put("weight", "999.99");
res.put("weight", netWeight);
res.put("flag", "1");
res.put("message", "重量误差范围正常!");
PdmBdWorkorder workorder = workorderService.getById(workorder_id);
@@ -281,10 +295,10 @@ public class PdaJBServiceImpl implements PdaJBService {
}
res.put("org_weight", workorder.getPlan_weight());
res.put("stand_error", param.getValue());
if (workorder.getPlan_weight().subtract(BigDecimal.valueOf(999.99))
if (workorder.getPlan_weight().subtract(new BigDecimal(netWeight))
.abs().compareTo(new BigDecimal(param.getValue().trim())) > 0) {
res.put("flag", "2");
res.put("message", "重量误差过大,请注意!");
res.put("message", "重量误差过大,超过规定阈值,请注意!");
}
return PdaResponse.requestParamOk(res);
}

View File

@@ -1,5 +1,6 @@
package org.nl.wms.sch_manage.service.util;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import java.math.BigDecimal;
@@ -77,6 +78,7 @@ public class AcsTaskDto {
* 任务类型
*/
String task_type;
String truss_type;
/**
* 立库任务类型
@@ -125,7 +127,7 @@ public class AcsTaskDto {
* 扩展属性
*/
Map<String, String> params;
private JSONObject interaction_json;
private String task_group_id;

View File

@@ -87,7 +87,7 @@ public class JbBackAgvTask extends AbstractTask {
public AcsTaskDto sendAcsParam(String taskId) {
SchBaseTask taskDao = taskService.getById(taskId);
SchBaseTaskconfig taskconfig = taskconfigService.getTaskByConfigCode(taskDao.getConfig_code());
JSONObject object = JSONObject.parseObject(taskDao.getRequest_param());
// 组织下发给acs的数据
AcsTaskDto acsTaskDto = new AcsTaskDto();
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
@@ -101,6 +101,7 @@ public class JbBackAgvTask extends AbstractTask {
acsTaskDto.setTask_type(taskconfig.getTask_type());
acsTaskDto.setTask_group_id(taskDao.getTask_group_id());
acsTaskDto.setTask_group_seq(taskDao.getTask_group_seq());
acsTaskDto.setTruss_type(object.getString("truss_type"));
return acsTaskDto;
}

View File

@@ -89,6 +89,7 @@ public class JbDownAgvTask extends AbstractTask {
public AcsTaskDto sendAcsParam(String taskId) {
SchBaseTask taskDao = taskService.getById(taskId);
SchBaseTaskconfig taskconfig = taskconfigService.getTaskByConfigCode(taskDao.getConfig_code());
JSONObject object = JSONObject.parseObject(taskDao.getRequest_param());
// 组织下发给acs的数据
AcsTaskDto acsTaskDto = new AcsTaskDto();
@@ -103,6 +104,8 @@ public class JbDownAgvTask extends AbstractTask {
acsTaskDto.setPriority(taskDao.getPriority());
acsTaskDto.setAgv_system_type(taskconfig.getAcs_task_type());
acsTaskDto.setTask_type(taskconfig.getTask_type());
acsTaskDto.setTruss_type(object.getString("truss_type"));
acsTaskDto.setInteraction_json(new JSONObject().fluentPut("have_lid", object.getString("have_lid")));
return acsTaskDto;
}
@@ -149,7 +152,7 @@ public class JbDownAgvTask extends AbstractTask {
private void finishTask(SchBaseTask taskObj, TaskFinishedTypeEnum taskFinishedType) {
// 任务完成
taskObj.setRemark("该任务已完成,等待最后一条任务完成后全部完成");
taskObj.setRemark("该任务已完成,等待最后一条任务完成!");
if ("1".equals(taskObj.getTask_group_seq().toString())) {
// 开盖设置成有盖
SchBasePoint khgPoint = pointService.getById(taskObj.getPoint_code2());

View File

@@ -91,7 +91,7 @@ public class JbUpAgvTask extends AbstractTask {
public AcsTaskDto sendAcsParam(String taskId) {
SchBaseTask taskDao = taskService.getById(taskId);
SchBaseTaskconfig taskconfig = taskconfigService.getTaskByConfigCode(taskDao.getConfig_code());
JSONObject object = JSONObject.parseObject(taskDao.getRequest_param());
// 组织下发给acs的数据
AcsTaskDto acsTaskDto = new AcsTaskDto();
acsTaskDto.setExt_task_uuid(taskDao.getTask_id());
@@ -105,6 +105,7 @@ public class JbUpAgvTask extends AbstractTask {
acsTaskDto.setTask_type(taskconfig.getTask_type());
acsTaskDto.setTask_group_id(taskDao.getTask_group_id());
acsTaskDto.setTask_group_seq(taskDao.getTask_group_seq());
acsTaskDto.setTruss_type(object.getString("truss_type"));
return acsTaskDto;
}

View File

@@ -705,6 +705,8 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
task1.put("point_code2", cfgjPoint.getPoint_code());
task1.put("point_code3", cfgjPoint.getPoint_code());
task1.put("point_code4", emptyPoint.getPoint_code());
task1.put("truss_type", "3");
task1.put("have_lid", "1");
task1.put("vehicle_type", inStruct.getStoragevehicle_type());
task1.put("seq", 1);
// 空托盘
@@ -724,6 +726,8 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
task2.put("point_code2", fullPoint.getPoint_code());
task2.put("point_code3", emptyPoint.getPoint_code());
task2.put("point_code4", intoPoint.getPoint_code());
task2.put("truss_type", "3");
task1.put("have_lid", "0");
task2.put("seq", 2);
// 空托盘
task2.put("vehicle_code", inStruct.getStoragevehicle_code());
@@ -743,6 +747,8 @@ public class InBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv> i
task3.put("point_code2", cfgjPoint.getPoint_code());
task3.put("point_code3", cfgjPoint.getPoint_code());
task3.put("point_code4", structCode);
task3.put("truss_type", "3");
task1.put("have_lid", "2");
task3.put("seq", 3);
// 空托盘
task3.put("vehicle_code", inStruct.getStoragevehicle_code());