diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java index 42d3fd1a6..7eeee6835 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/TwoOutHeapTask.java @@ -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); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java index 8325a77ab..b22f801ff 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/first_floor_area/auto/AutoSendZxToDjw.java @@ -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() + .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(); diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java index 9884fd4f6..f60afaa40 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/LashManageServiceImpl.java @@ -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 diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java index adfe7f6c8..9ac694ab9 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/storage_manage/ios/service/iostorInv/util/impl/OutBoxManageServiceImpl.java @@ -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().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().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().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; } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 3f4ec08e3..06dc221c1 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -2252,7 +2252,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } @Override - @Transactional @SneakyThrows public JSONObject deviceApplyExceptional(JSONObject whereJson) { log.info("deviceApplyExceptional请求参数:---------------------------------------------" + whereJson.toString());