rev:出库浅货位阻挡没库存问题
This commit is contained in:
@@ -127,6 +127,11 @@ public enum IOSEnum {
|
||||
"子卷下线行架任务", "16","退货入库行架任务", "14","RGV输送任务", "15",
|
||||
"木箱堆叠行架任务", "17"
|
||||
)),
|
||||
|
||||
// acs反馈异常出库
|
||||
ACS_EXCEPTIONAL_TYPE(MapOf.of("入库满入", "1","浅货位有货(入库)", "4",
|
||||
"出库空出", "2","浅货位有货(出库)", "3"
|
||||
)),
|
||||
;
|
||||
|
||||
private Map<String, String> code;
|
||||
|
||||
@@ -138,4 +138,11 @@ public interface IStIvtIostorinvOutService extends IService<StIvtIostorinv> {
|
||||
* @param whereJson: 任务对象
|
||||
*/
|
||||
void finishTask(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 出库浅货位有货阻挡异常处理
|
||||
* @param whereJson /
|
||||
* @return String 任务标识
|
||||
*/
|
||||
String taskExceptionalOut(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.nl.b_lms.pdm_manage.enums.SUBEnum;
|
||||
import org.nl.b_lms.sch.tasks.TwoExcepionalMoveTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutExceptionalTask;
|
||||
import org.nl.b_lms.sch.tasks.TwoOutTask;
|
||||
import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
|
||||
@@ -1051,6 +1052,45 @@ public class StIvtIostorinvOutServiceImpl extends ServiceImpl<StIvtIostorinvOutM
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public String taskExceptionalOut(JSONObject jsonObject) {
|
||||
// 任务表
|
||||
WQLObject taskService = WQLObject.getWQLObject("sch_base_task");
|
||||
// 仓位表
|
||||
WQLObject attrTab = WQLObject.getWQLObject("ST_IVT_StructAttr");
|
||||
|
||||
JSONObject jsonTask = taskService.query("task_code = '" + jsonObject.getString("task_code") + "'").uniqueResult(0);
|
||||
|
||||
// 找出对应的浅货位
|
||||
JSONObject jsonAttrOrder = attrTab.query("struct_code = '" + jsonTask.getString("point_code1") + "'").uniqueResult(0);
|
||||
|
||||
JSONObject jsonAttrNow = attrTab.query("row_num = '" + jsonAttrOrder.getString("row_num") + "' AND layer_num = '" + jsonAttrOrder.getString("layer_num") + "' AND col_num = '" + jsonAttrOrder.getString("col_num") + "' and zdepth = '" + IOSEnum.ZDEPTH_STRUCT.code("浅") + "' and stor_id = '" + jsonAttrOrder.getString("stor_id") + "' and is_delete = '0' and is_used = '1'")
|
||||
.uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isEmpty(jsonAttrNow)) {
|
||||
throw new BadRequestException("对应浅货位不存在或未启用!" + jsonTask.getString("point_code1"));
|
||||
}
|
||||
|
||||
// 锁住仓位
|
||||
jsonAttrNow.put("lock_type", IOSEnum.LOCK_TYPE.code("货位异常出库锁"));
|
||||
attrTab.update(jsonAttrNow);
|
||||
|
||||
// 生成任务
|
||||
JSONObject taskParam = new JSONObject();
|
||||
taskParam.put("start_device_code", jsonAttrNow.getString("struct_code"));
|
||||
taskParam.put("next_device_code", IOSEnum.OUT_POINT.code(jsonAttrNow.getString("row_num")));
|
||||
taskParam.put("task_type", "010712");
|
||||
taskParam.put("car_no", "此货位LMS系统未有库存,请待出至【CK2001】点位后确认实物并重新手工入回库!");
|
||||
taskParam.put("vehicle_code",IOSEnum.IS_NOTANDYES.code("否"));
|
||||
|
||||
TwoExcepionalMoveTask taskBean = new TwoExcepionalMoveTask();
|
||||
String task_id = taskBean.createTask(taskParam);
|
||||
taskBean.immediateNotifyAcs(null);
|
||||
|
||||
return task_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建调拨入库单
|
||||
* @param disDaoList:出库分配明细集合
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.nl.b_lms.storage_manage.database.service.IBstIvtBoxinfoService;
|
||||
import org.nl.b_lms.storage_manage.database.service.dao.BstIvtBoxinfo;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.IOSEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.enums.TASKEnum;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.IStIvtIostorinvOutService;
|
||||
import org.nl.b_lms.storage_manage.ios.service.iostorInv.util.service.*;
|
||||
import org.nl.common.enums.NoticeTypeEnum;
|
||||
import org.nl.common.enums.PackageInfoIvtEnum;
|
||||
@@ -162,6 +163,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
@Autowired
|
||||
private ProductOutTwoService productOutTwoService;
|
||||
|
||||
@Autowired
|
||||
private IStIvtIostorinvOutService iStIvtIostorinvOutService;
|
||||
|
||||
|
||||
/**
|
||||
* task_id:任务标识
|
||||
@@ -2260,40 +2264,40 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
// 判断任务类型
|
||||
if (taskDao.getTask_type().equals(TASKEnum.BOX_TYPE.code("木箱入库"))) {
|
||||
// 木箱入库:满入、浅货位有货-放货时
|
||||
if (type.equals("1") || type.equals("4")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("入库满入")) || type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("浅货位有货(入库)"))) {
|
||||
point_code = inBoxManageService.taskExceptional(whereJson);
|
||||
}
|
||||
} else if (taskDao.getTask_type().equals(TASKEnum.BOX_TYPE.code("木箱出库"))) {
|
||||
// 木箱出库:空出、浅货位有货-取货时
|
||||
if (type.equals("2")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("出库空出"))) {
|
||||
point_code = outBoxManageService.taskExceptional(whereJson);
|
||||
}
|
||||
if (type.equals("3")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("浅货位有货(出库)"))) {
|
||||
String task_id = outBoxManageService.taskExceptionalOut(whereJson);
|
||||
result.put("task_id", task_id);
|
||||
}
|
||||
} else if (taskDao.getTask_type().equals(TASKEnum.VEHICLE_TYPE.code("托盘入库"))) {
|
||||
// 托盘入库:满入、浅货位有货-放货时
|
||||
if (type.equals("1") || type.equals("4")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("入库满入")) || type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("浅货位有货(入库)"))) {
|
||||
point_code = inVehicleManageService.taskExceptional(whereJson);
|
||||
}
|
||||
} else if (taskDao.getTask_type().equals(TASKEnum.VEHICLE_TYPE.code("托盘出库"))) {
|
||||
// 托盘出库:空出、浅货位有货-取货时
|
||||
if (type.equals("2")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("出库空出"))) {
|
||||
point_code = outVehicleManageService.taskExceptional(whereJson);
|
||||
}
|
||||
if (type.equals("3")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("浅货位有货(出库)"))) {
|
||||
String task_id = outVehicleManageService.taskExceptionalOut(whereJson);
|
||||
result.put("task_id", task_id);
|
||||
}
|
||||
} else if (taskDao.getTask_type().equals(TASKEnum.PROUD_TYPE.code("成品入库"))) {
|
||||
// 成品入库:满入、浅货位有货-放货时
|
||||
if (type.equals("1") || type.equals("4")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("入库满入")) || type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("浅货位有货(入库)"))) {
|
||||
point_code = inBussManageService.taskExceptional(whereJson);
|
||||
}
|
||||
} else if (taskDao.getTask_type().equals(TASKEnum.PROUD_TYPE.code("成品出库"))) {
|
||||
// 成品出库:空出
|
||||
if (type.equals("2")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("出库空出"))) {
|
||||
taskDao.setRemark("【空出】请检查货位库存!");
|
||||
taskDao.setCar_no("【空出】请检查货位库存!");
|
||||
taskService.updateById(taskDao);
|
||||
@@ -2304,11 +2308,16 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
log.info("deviceApplyExceptional返回参数:---------------------------------------------" + result.toString());
|
||||
return result;
|
||||
}
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("浅货位有货(出库)"))) {
|
||||
// 浅货位阻挡-取货时
|
||||
String task_id = iStIvtIostorinvOutService.taskExceptionalOut(whereJson);
|
||||
result.put("task_id", task_id);
|
||||
}
|
||||
} else if (taskDao.getTask_type().equals(TASKEnum.PROUD_TYPE.code("立库转库"))) {
|
||||
// 立库转库:满入、浅货位有货-放货时
|
||||
if (type.equals("1") || type.equals("4")) {
|
||||
if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("入库满入")) || type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("浅货位有货(入库)"))) {
|
||||
point_code = outBussManageService.taskExceptional(whereJson);
|
||||
} else if (type.equals("2")) {
|
||||
} else if (type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("出库空出"))) {
|
||||
// 立库转库空出
|
||||
taskDao.setRemark("【空出】请检查货位库存!");
|
||||
taskDao.setCar_no("【空出】请检查货位库存!");
|
||||
@@ -2322,7 +2331,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
}
|
||||
}
|
||||
|
||||
if (!type.equals("3") && ObjectUtil.isEmpty(point_code)) {
|
||||
if (!type.equals(IOSEnum.ACS_EXCEPTIONAL_TYPE.code("浅货位有货(出库)")) && ObjectUtil.isEmpty(point_code)) {
|
||||
throw new BadRequestException("立库异常任务处理失败,仓位为空!");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user