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

This commit is contained in:
2025-03-22 15:45:20 +08:00
5 changed files with 47 additions and 40 deletions

View File

@@ -9,6 +9,7 @@ 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.util.impl.LashManageServiceImpl;
import org.nl.common.utils.RedissonUtils;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.core.bean.WQLObject;
@@ -235,7 +236,7 @@ public class TwoOutHeapTask extends AbstractAcsTask {
LashManageServiceImpl bean1 = SpringContextHolder.getBean(LashManageServiceImpl.class);
bean1.createLashTask(jsonParam);
// 再次下发:找相同任务组的下发
sendTaskAcs(jsonTask.getString("task_group_id"));
sendTaskAcs(jsonTask.getString("task_group_id"),false);
}
}
}
@@ -299,7 +300,7 @@ public class TwoOutHeapTask extends AbstractAcsTask {
this.updateTaskStatus(taskObj, IOSEnum.IS_NOTANDYES.code(""));
}
public void sendTaskAcs(String groupTaskId) {
public void sendTaskAcs(String groupTaskId,boolean retry) {
/*
* 下发给ACS时需要特殊处理
*/
@@ -310,7 +311,7 @@ public class TwoOutHeapTask extends AbstractAcsTask {
.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and task_group_id = '" + groupTaskId + "'" + " and is_delete ='0' ORDER BY create_time")
.getResultJSONArray(0).toJavaList(JSONObject.class);
if (ObjectUtil.isEmpty(taskArrAll)) {
if (ObjectUtil.isEmpty(taskArrAll) && retry) {
taskArrAll = wo_Task
.query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0' ORDER BY create_time")
.getResultJSONArray(0).toJavaList(JSONObject.class);

View File

@@ -3,6 +3,7 @@ package org.nl.b_lms.sch.tasks.first_floor_area.auto;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import lombok.RequiredArgsConstructor;
@@ -95,6 +96,14 @@ public class AutoSendZxToDjw extends Prun{
if (ObjectUtils.isEmpty(zxwPackageinfoivtList)) {
return;
}
int count = taskService.count(new QueryWrapper<SchBaseTask>()
.eq("task_type", PackageInfoIvtEnum.TASK_TYPE.code("装箱区->装箱对接位"))
.eq("is_delete", "0")
.lt("task_status", TaskStatusEnum.FINISHED.getCode()));
if (count>0){
return;
}
for (BstIvtPackageinfoivt bstIvtPackageinfoivt : zxwPackageinfoivtList) {
//装箱位上的木箱号
String boxNo = bstIvtPackageinfoivt.getContainer_name();

View File

@@ -316,7 +316,7 @@ public class LashManageServiceImpl implements LashManageService {
TwoOutHeapTask bean = SpringContextHolder.getBean(TwoOutHeapTask.class);
bean.createTask(jsonTaskParam);
bean.sendTaskAcs(whereJson.getString("task_group_id"));
bean.sendTaskAcs(whereJson.getString("task_group_id"),true);
}
@Override

View File

@@ -23,6 +23,7 @@ import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.pda.mps.eum.RegionTypeEnum;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -195,52 +196,49 @@ public class OutBoxManageServiceImpl implements OutBoxManageService {
}
@Override
@Transactional
public JSONObject taskExceptional(JSONObject jsonObject) {
// 仓位表
JSONObject jsonAttrNow = null;
WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr");
// 查询任务
SchBaseTask taskDao = ischBaseTaskService.getOne(
new QueryWrapper<SchBaseTask>().lambda()
.eq(SchBaseTask::getTask_code, jsonObject.getString("task_code"))
);
// 标记原货位为满入异常锁
JSONObject jsonAttr = attrTab.query("struct_code = '" + taskDao.getPoint_code1() + "'").uniqueResult(0);
jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常锁"));
jsonAttr.put("lock_type", IOSEnum.LOCK_TYPE.code("未锁定"));
jsonAttr.put("storagevehicle_code",null);
jsonAttr.put("remark", "空出设置为空"+taskDao.getTask_id());
attrTab.update(jsonAttr);
if (taskDao.getPoint_code2().contains("ZXQ")){
throw new BadRequestException("当前木箱出库至ZXQ,木箱空出异常");
if ("010706".equals(taskDao.getTask_type())){
BstIvtBoxinfo boxDao = bstIvtBoxinfoMapper.selectOne(
new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, taskDao.getVehicle_code())
);
JSONObject jsonParam = new JSONObject();
jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期"));
jsonParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId());
jsonParam.put("material_code", boxDao.getMaterial_code());
jsonParam.put("move_block_num", jsonAttr.getString("block_num"));
jsonParam.put("num", boxDao.getNum());
jsonAttrNow = getStruct(jsonParam);
if (ObjectUtil.isEmpty(jsonAttrNow)) {
throw new BadRequestException("空出重新分配:库存不足!");
}
// 锁定新终点
jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("空托盘出库锁"));
attrTab.update(jsonAttrNow);
// 更新任务起点
taskDao.setPoint_code1(jsonAttrNow.getString("struct_code"));
taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code"));
ischBaseTaskService.updateById(taskDao);
}else {
taskDao.setRemark("空出,手动处理任务");
ischBaseTaskService.updateById(taskDao);
throw new BadRequestException("空出异常:手动维护业务及任务");
}
// 重新分配货位
BstIvtBoxinfo boxDao = bstIvtBoxinfoMapper.selectOne(
new QueryWrapper<BstIvtBoxinfo>().lambda()
.eq(BstIvtBoxinfo::getBox_no, taskDao.getVehicle_code())
);
JSONObject jsonParam = new JSONObject();
jsonParam.put("stor_id", IOSEnum.STOR_ID.code("二期"));
jsonParam.put("sect_id", RegionTypeEnum.TWO_BZC01.getId());
jsonParam.put("material_code", boxDao.getMaterial_code());
jsonParam.put("move_block_num", jsonAttr.getString("block_num"));
jsonParam.put("num", boxDao.getNum());
// 调用找货位方法
JSONObject jsonAttrNow = getStruct(jsonParam);
if (ObjectUtil.isEmpty(jsonAttrNow)) {
throw new BadRequestException("库存不足!");
}
// 锁定新终点
jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("木箱出库锁"));
attrTab.update(jsonAttrNow);
// 更新任务起点
taskDao.setPoint_code1(jsonAttrNow.getString("struct_code"));
taskDao.setVehicle_code(jsonAttrNow.getString("storagevehicle_code"));
ischBaseTaskService.updateById(taskDao);
return jsonAttrNow;
}

View File

@@ -2252,7 +2252,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
}
@Override
@Transactional
@SneakyThrows
public JSONObject deviceApplyExceptional(JSONObject whereJson) {
log.info("deviceApplyExceptional请求参数---------------------------------------------" + whereJson.toString());