Merge remote-tracking branch 'origin/b_lms' into b_lms

This commit is contained in:
2024-06-14 14:58:23 +08:00
11 changed files with 325 additions and 52 deletions

View File

@@ -57,6 +57,8 @@ public class TwoLashTask extends AbstractAcsTask {
/*
* 下发给ACS时需要特殊处理
*/
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("sch_base_task");
JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
// 查询木箱信息
@@ -107,6 +109,11 @@ public class TwoLashTask extends AbstractAcsTask {
.interaction_json(interaction_json)
.build();
resultList.add(dto);
// 更新任务为下发
JSONObject paramMap = new JSONObject();
paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode());
wo_Task.update(paramMap, "task_id ='" + json.getString("task_id") + "'");
}
return resultList;
}

View File

@@ -0,0 +1,178 @@
package org.nl.b_lms.sch.tasks;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.impl.StIvtIostorinvOutServiceImpl;
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.impl.LashManageServiceImpl;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.sch.AcsTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 堆垛机点位至行架点位任务(出库)
* Created by Lxy on 2021/12/22.
*/
@Service
public class TwoOutHeapTask extends AbstractAcsTask {
private final String THIS_CLASS = TwoOutHeapTask.class.getName();
@Override
public List<AcsTaskDto> addTask() {
/*
* 下发给ACS时需要特殊处理
*/
//任务表
WQLObject wo_Task = WQLObject.getWQLObject("sch_base_task");
JSONArray taskArr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
for (int i = 0; i < taskArr.size(); i++) {
JSONObject json = taskArr.getJSONObject(i);
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length() - 1);
AcsTaskDto dto = AcsTaskDto.builder()
.ext_task_id(json.getString("task_id"))
.task_code(json.getString("task_code"))
.task_type(json.getString("acs_task_type"))
.start_device_code(json.getString("point_code1"))
.next_device_code(json.getString("point_code2"))
.vehicle_code(json.getString("vehicle_code"))
.interaction_json(json.getJSONObject("request_param"))
.priority(json.getString("priority"))
.class_type(json.getString("task_type"))
.dtl_type(String.valueOf(dtl_type))
.remark(json.getString("remark"))
.build();
resultList.add(dto);
// 更新任务为下发
JSONObject paramMap = new JSONObject();
paramMap.put("task_status", TaskStatusEnum.ISSUE.getCode());
wo_Task.update(paramMap, "task_id ='" + json.getString("task_id") + "'");
}
return resultList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTaskStatus(JSONObject taskObj, String status) {
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
String task_id = taskObj.getString("task_id");
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "' and task_status < '07'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonTask)) {
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {
// 任务为执行之后就不允许取消
if (jsonTask.getIntValue("task_status") > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消");
}
// 更新删除字段
jsonTask.put("is_delete", "1");
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
}
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
// 更新任务状态为执行中
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
// 更新任务完成
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
// 下发桁架任务:捆扎
JSONObject jsonParam = new JSONObject();
jsonParam.put("device_code",jsonTask.getString("point_code2"));
jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code"));
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
bean1.createLashTask(jsonParam);
}
}
}
@Override
public void findStartPoint() {
}
@Override
public void findNextPoint() {
}
@Override
public String createTask(JSONObject form) {
String currentUserId = SecurityUtils.getCurrentUserId();
String currentUsername = SecurityUtils.getCurrentUsername();
JSONObject json = new JSONObject();
json.put("task_id", IdUtil.getSnowflake(1, 1).nextId());
json.put("task_code", IdUtil.getSnowflake(1, 1).nextId());
json.put("task_type", form.getString("task_type"));
json.put("vehicle_code", form.getString("vehicle_code"));
json.put("vehicle_code2", form.getString("vehicle_code2"));
json.put("vehicle_type", form.getString("vehicle_type"));
json.put("task_name", form.getString("task_name"));
json.put("point_code1", form.getString("point_code1"));
json.put("point_code2", form.getString("point_code2"));
json.put("material_id", form.getString("material_id"));
json.put("task_group_id", form.getString("task_group_id"));
json.put("is_auto_issue", form.getString("is_auto_issue"));
json.put("table_fk", form.getString("table_fk"));
json.put("request_param", form.getString("request_param"));
json.put("sort_seq", form.getIntValue("sort_seq"));
json.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
json.put("handle_class", THIS_CLASS);
json.put("create_id", currentUserId);
json.put("create_name", currentUsername);
json.put("create_time", DateUtil.now());
json.put("acs_task_type", "7");
WQLObject.getWQLObject("SCH_BASE_Task").insert(json);
return json.getString("task_id");
}
@Override
@Transactional(rollbackFor = Exception.class)
public void forceFinish(String task_id) {
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode());
}
@Override
public void cancel(String task_id) {
JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0);
this.updateTaskStatus(taskObj, IOSEnum.IS_NOTANDYES.code(""));
}
}

View File

@@ -25,6 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -49,18 +50,44 @@ public class TwoOutTask extends AbstractAcsTask {
map.put("flag", "1");
map.put("handle_class", THIS_CLASS);
// 未下发的出库任务
List<JSONObject> arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' order by sort_seq")
.getResultJSONArray(0).toJavaList(JSONObject.class);
// 根据任务组分组
// 未下发的任务根据任务组进行分组
Map<String, List<JSONObject>> groupMap = arr.stream()
.collect(Collectors.groupingBy(row -> row.getString("task_group_id")));
// 需要下发的集合
List<JSONObject> taskArr = new ArrayList<>();
// 用于判断下发几个任务组
int flag = 2;
// 判断当前正在执行或者下发的任务有几种规格:根据任务组进行判断,同一任务组代表同一木箱规格
List<JSONObject> likeAllArr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status IN ('05','06') and is_delete = '0' " )
.getResultJSONArray(0).toJavaList(JSONObject.class);
Map<String, List<JSONObject>> likeArr = likeAllArr.stream()
.collect(Collectors.groupingBy(row -> row.getString("task_group_id")));
// 判断长度
if (likeArr.size() >= 2) {
return null;
}
if (likeArr.size() == 1) {
flag = 1;
}
// 组织需要下发的任务
for(String task_group_id : groupMap.keySet()) {
taskArr = groupMap.get(task_group_id);
continue;
taskArr.addAll(groupMap.get(task_group_id));
flag -= 1;
if (flag == 0) {
break;
}
}
ArrayList<AcsTaskDto> resultList = new ArrayList<>();
@@ -104,7 +131,7 @@ public class TwoOutTask extends AbstractAcsTask {
if (ObjectUtil.isNotEmpty(jsonTask)) {
if (status.equals(IOSEnum.IS_NOTANDYES.code(""))) {
// 任务为执行之后就不允许取消
if (jsonTask.getIntValue("task_status") > Integer.valueOf(TaskStatusEnum.ISSUE.getCode())) {
if (jsonTask.getIntValue("task_status") > Integer.parseInt(TaskStatusEnum.ISSUE.getCode())) {
throw new BadRequestException("任务:" + jsonTask.getString("task_code") + "已执行,不可取消");
}
@@ -139,13 +166,14 @@ public class TwoOutTask extends AbstractAcsTask {
JSONArray resultJSONArray = taskTab.query("task_group_id = '" + jsonTask.getString("task_group_id") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'")
.getResultJSONArray(0);
// 下发桁架任务:捆扎
// 下发堆垛机至行架任务2个行架位
JSONObject jsonParam = new JSONObject();
jsonParam.put("device_code",jsonTask.getString("point_code2"));
jsonParam.put("vehicle_code",jsonTask.getString("vehicle_code"));
jsonParam.put("vehicle_type",jsonTask.getString("vehicle_type"));
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
bean1.createLashTask(jsonParam);
bean1.createHeapTask(jsonParam);
if (ObjectUtil.isEmpty(resultJSONArray)) {
this.immediateNotifyAcs(null);
@@ -177,6 +205,7 @@ public class TwoOutTask extends AbstractAcsTask {
json.put("task_type", form.getString("task_type"));
json.put("vehicle_code", form.getString("vehicle_code"));
json.put("vehicle_code2", form.getString("vehicle_code2"));
json.put("vehicle_type", form.getString("vehicle_type"));
json.put("task_name", form.getString("task_name"));
json.put("point_code1", form.getString("point_code1"));
json.put("point_code2", form.getString("point_code2"));

View File

@@ -36,9 +36,9 @@ import java.util.stream.Collectors;
/**
* @Author: lyd
* @Date: 2024/2/1
* @see TrussCallAirShaftTask#createTask(JSONObject)
* @Description: 自动任务 呼叫套轴 根据分切计划来呼叫套轴任务 桁架任务
* <p>注:内包间只是区分气胀轴大小(即代数),不需要区分锂电/标箔</p>
* @see TrussCallAirShaftTask#createTask(JSONObject)
*/
@Slf4j
@Component
@@ -78,7 +78,7 @@ public class AutoCallAirShaftTask {
public void run() {
// 1、获取空的插拔轴位(无任务)
List<BstIvtShafttubeivt> emptyPoints = bstIvtShafttubeivtService.getAllShaftPointsByConditions("2",
"0","0");
"0", "0");
emptyPoints.forEach(empty -> {
// 标箔1锂电2 改大小4代5代
String specification = empty.getQzz_generation();
@@ -205,8 +205,9 @@ public class AutoCallAirShaftTask {
/**
* 呼叫AGV更换纸管
*
* @param needPlans 所需要套轴的分切计划
* @param location 位置
* @param location 位置
*/
public void toCallAgvMovePaperTube(List<PdmBiSlittingproductionplan> needPlans, String location, BstIvtShafttubeivt empty) {
// 最多两根
@@ -248,7 +249,7 @@ public class AutoCallAirShaftTask {
// 筛选3个位置中数量最少的搬走
BstIvtStockingivt needMovePoint = stockingivtService.getCanMovePointOne(location, "1");
// 空位就直接创建搬过来的任务
if ("0".equals(needMovePoint.getIvt_status())) {
if (ObjectUtil.isEmpty(needMovePoint) || "0".equals(needMovePoint.getIvt_status())) {
// 直接搬过来即可
JSONObject param = new JSONObject();
param.put("point_code1", needPoint.getPoint_code());
@@ -274,13 +275,14 @@ public class AutoCallAirShaftTask {
/**
* 获取对应的气胀轴库1
* @param qzzSize 气涨轴尺寸
*
* @param qzzSize 气涨轴尺寸
* @param location 位置:上半部分还是下半部分
* @param empty 套拔轴点位
* @param empty 套拔轴点位
*/
private void toAcsOutShaft(String qzzSize, String location, BstIvtShafttubeivt empty) {
// 需要区分上下
List<BstIvtShafttubeivt> shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize, empty.getPoint_code(), location);
List<BstIvtShafttubeivt> shafttubeivts = bstIvtShafttubeivtService.getByQzzSize(qzzSize, empty.getPoint_code(), location);
if (shafttubeivts.size() == 0) {
throw new BadRequestException("气胀轴库找不到[" + qzzSize + "]规格的气涨轴");
}
@@ -299,10 +301,11 @@ public class AutoCallAirShaftTask {
/**
* todo: 预留
* 创建气涨轴缓存的桁架任务
* @param qzzSize 气涨轴尺寸
*
* @param qzzSize 气涨轴尺寸
* @param specification 标箔、锂电(1,2)
* @param location 位置:上半部分还是下半部分
* @param empty 套拔轴点位
* @param location 位置:上半部分还是下半部分
* @param empty 套拔轴点位
*/
@Deprecated
private void toCreatShaftCacheTask(String qzzSize, String specification, String location, BstIvtShafttubeivt empty) {
@@ -324,9 +327,10 @@ public class AutoCallAirShaftTask {
/**
* 保存信息到点位上
* @param empty 套拔轴机位置
*
* @param empty 套拔轴机位置
* @param needPlans 需要的分切计划
* @param qzzSize 气涨轴尺寸
* @param qzzSize 气涨轴尺寸
*/
private void saveCutPlanMessage(BstIvtShafttubeivt empty, List<PdmBiSlittingproductionplan> needPlans, String qzzSize) {
empty.setHave_qzz(SlitterConstant.SLITTER_YES);
@@ -368,7 +372,8 @@ public class AutoCallAirShaftTask {
/**
* 不需要套轴,就只做拔轴
* update: 不需要(区分标箔、锂电)
* @param empty 空的插拔轴点位
*
* @param empty 空的插拔轴点位
* @param specification 代数4、5
*/
private void makePullShaft(BstIvtShafttubeivt empty, String specification) {

View File

@@ -768,9 +768,9 @@ public class SlitterServiceImpl implements SlitterService {
.filter(ObjectUtil::isNotEmpty).collect(Collectors.toList());
LambdaUpdateWrapper<PdmBiSlittingproductionplan> upPlanLam = new LambdaUpdateWrapper<>();
upPlanLam.set(PdmBiSlittingproductionplan::getIs_paper_ok, "1")
.eq(PdmBiSlittingproductionplan::getUpdate_optid, SecurityUtils.getCurrentUserId())
.eq(PdmBiSlittingproductionplan::getUpdate_optname, SecurityUtils.getCurrentUsername())
.eq(PdmBiSlittingproductionplan::getUpdate_time, DateUtil.now())
.set(PdmBiSlittingproductionplan::getUpdate_optid, SecurityUtils.getCurrentUserId())
.set(PdmBiSlittingproductionplan::getUpdate_optname, SecurityUtils.getCurrentUsername())
.set(PdmBiSlittingproductionplan::getUpdate_time, DateUtil.now())
.in(PdmBiSlittingproductionplan::getContainer_name, containers);
slittingproductionplanService.update(upPlanLam);
//3、清空当前穿拔轴点位的库存信息

View File

@@ -96,8 +96,12 @@ public enum IOSEnum {
// 区域
PRODUCT_AREA(MapOf.of("BLK", "BLK")),
// 出库点位
OUT_POINT(MapOf.of("出库口1", "CK2026","出库口2", "CK2027")),
// 出库堆垛机点位
OUT_POINT(MapOf.of("1","CK2036", "2","CK2038", "3","CK2040", "4","CK2042" ,"5","CK2044",
"6","CK2046", "7","7", "8","8", "9","9", "10","10")),
// 行架点位
OUT_HANGER(MapOf.of("行架位1", "CK2026","行架位2", "CK2027")),
//acs申请任务
ACSTOLMS_TYPE(MapOf.of("成品入库任务", "1","空盘入库","2","空盘出库","3","异常处理位","4","木箱入库","5","退货入库","6","贴标","1","捆扎","2")),

View File

@@ -1221,32 +1221,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
String start_device_code = "";
// 是否自动下发
String is_auto_issue = IOSEnum.IS_SEND.code("");
// 终点
String end_device_code = "";
// 是否自动分配终点
boolean is_auto_div_point = false;
// 取绝对值
int abs = Math.abs(taskMangeList.size() / 2);
if (ObjectUtil.isNotEmpty(point_code)) {
end_device_code = point_code;
} else {
is_auto_div_point = true;
}
for (int i = 0; i < taskMangeList.size(); i++) {
// 确定终点
if (is_auto_div_point) {
if (abs > i) {
end_device_code = IOSEnum.OUT_POINT.code("出库口1");
} else {
end_device_code = IOSEnum.OUT_POINT.code("出库口2");
}
}
JSONObject json = taskMangeList.get(i);
// 确定起点
start_device_code = json.getString("struct_code");
// 确定终点: 根据仓位所在排确定终点
String end_device_code = IsEndCode(json);
// 过滤此仓位的分配明细
List<StIvtIostorinvdis> disDaoList = disLikeList.stream()
.filter(row -> row.getString("struct_code").equals(json.getString("struct_code")))
@@ -1292,6 +1276,7 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
jsonTaskParam.put("point_code1", start_device_code);
jsonTaskParam.put("point_code2", end_device_code);
jsonTaskParam.put("vehicle_code", json.getString("storagevehicle_code"));
jsonTaskParam.put("vehicle_type", json.getString("storagevehicle_type"));
if (ObjectUtil.isNotEmpty(jsonExt)) {
jsonTaskParam.put("vehicle_code2", jsonExt.getString("storagevehicle_code"));
}
@@ -1313,12 +1298,16 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
} else {
jsonTaskParam.put("sort_seq", Integer.parseInt(IOSEnum.ZDEPTH_STRUCT.code("")));
}
jsonTaskParam.put("request_param", jsonTaskParam);
TwoOutTask twoOutTask = new TwoOutTask();
String task_id = twoOutTask.createTask(jsonTaskParam);
// 更新分配明细
JSONObject jsonPoint = schBasePointService.query("point_code = '" + end_device_code + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonPoint)) {
throw new BadRequestException("出库点位不存在:"+end_device_code);
}
disDaoList.forEach(row -> {
row.setWork_status(IOSEnum.WORK_STATUS.code("生成"));
@@ -1329,6 +1318,15 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
}
}
/**
* 确定终点:根据仓位所在排确定终点
* @param structDao仓位对象
* @return 终点
*/
private String IsEndCode(JSONObject structDao) {
return IOSEnum.OUT_POINT.code(structDao.getString("row_num"));
}
/**
* 更新异常货位
* @param disDaoList所有分配明细集合

View File

@@ -11,6 +11,7 @@ import org.nl.b_lms.sch.point.dao.SchBasePoint;
import org.nl.b_lms.sch.point.dao.mapper.SchBasePointMapper;
import org.nl.b_lms.sch.point.service.IschBasePointService;
import org.nl.b_lms.sch.tasks.TwoLashTask;
import org.nl.b_lms.sch.tasks.TwoOutHeapTask;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxlashboundService;
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
@@ -20,13 +21,14 @@ import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.LashManage
import org.nl.common.utils.IdUtil;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -189,6 +191,42 @@ public class LashManageServiceImpl implements LashManageService {
twoLashTask.immediateNotifyAcs(null);
}
@Override
public void createHeapTask(JSONObject whereJson) {
// 比较两行架点位的任务个数
List<JSONObject> executeArr = WQLObject.getWQLObject("SCH_BASE_Task")
.query("handle_class = '" + TwoOutHeapTask.class.getName() + "' and task_status IN ('05','06') and is_delete = '0' " )
.getResultJSONArray(0).toJavaList(JSONObject.class);
// 根据终点点位进行分组
Map<String, List<JSONObject>> groupPointMap = executeArr.stream()
.collect(Collectors.groupingBy(row -> row.getString("point_code2")));
// 终点
String next_device_code = IOSEnum.OUT_HANGER.code("行架位1");
List<JSONObject> heapOne = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位1"))).orElse(new ArrayList<>());
List<JSONObject> heapTwo = Optional.ofNullable(groupPointMap.get(IOSEnum.OUT_HANGER.code("行架位2"))).orElse(new ArrayList<>());
if (heapOne.size() > heapTwo.size()) {
next_device_code = IOSEnum.OUT_HANGER.code("行架位2");
}
// 创建任务并下发
JSONObject jsonTaskParam = new JSONObject();
jsonTaskParam.put("task_type", "010720");
jsonTaskParam.put("vehicle_type", whereJson.getString("vehicle_type"));
jsonTaskParam.put("point_code1", whereJson.getString("device_code"));
jsonTaskParam.put("point_code2", next_device_code);
jsonTaskParam.put("vehicle_code", whereJson.getString("vehicle_code"));
jsonTaskParam.put("request_param", whereJson);
TwoOutHeapTask bean = SpringContextHolder.getBean(TwoOutHeapTask.class);
bean.createTask(jsonTaskParam);
bean.immediateNotifyAcs(null);
}
@Override
public JSONObject applyTab(JSONObject whereJson) {
// 载具扩展属性表

View File

@@ -13,7 +13,7 @@ import com.alibaba.fastjson.JSONObject;
public interface LashManageService {
/**
* 创建桁架任务
* 创建 桁架-捆扎位任务
* @param whereJson {
* device_code起点
* vehicle_code 箱号
@@ -22,6 +22,17 @@ public interface LashManageService {
*/
void createLashTask(JSONObject whereJson);
/**
* 创建 堆垛机点位-桁架任务
* @param whereJson {
* device_code起点
* vehicle_code 箱号
* vehicle_type: 载具类型
*
* }
*/
void createHeapTask(JSONObject whereJson);
/**
* 申请是否贴标
* @param whereJson {