rev:去掉阻挡移库功能
This commit is contained in:
@@ -178,7 +178,7 @@ public class EmpVehicleOutTask extends AbstractTask {
|
||||
// 更新起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code4())
|
||||
.eq(Structattr::getStruct_code, taskObj.getPoint_code1())
|
||||
.set(Structattr::getStoragevehicle_code, null)
|
||||
.set(Structattr::getIs_emptyvehicle, IOSConstant.IS_DELETE_NO)
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||
|
||||
@@ -1170,7 +1170,7 @@ public class OutBillServiceImpl extends ServiceImpl<IOStorInvMapper, IOStorInv>
|
||||
*/
|
||||
// 调用校验方法
|
||||
String struct_code = ioStorInvDis.getStruct_code();
|
||||
iOutBillService.checkIsHinder(ioStorInvDis);
|
||||
// iOutBillService.checkIsHinder(ioStorInvDis);
|
||||
|
||||
//创建任务
|
||||
JSONObject task_form = new JSONObject();
|
||||
|
||||
@@ -325,10 +325,10 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl<StIvtCheckmstMapper, S
|
||||
);
|
||||
|
||||
// 判断是否阻挡
|
||||
JSONObject result = checkMove(dtlDao);
|
||||
// JSONObject result = checkMove(dtlDao);
|
||||
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", result.getString("out_point"));
|
||||
jsonTask.put("point_code1", dtlDao.getStruct_code());
|
||||
jsonTask.put("point_code2", IOSConstant.CZW_POINT);
|
||||
jsonTask.put("vehicle_code", dtlDao.getStoragevehicle_code());
|
||||
String task_id = checkMoveTask.create(jsonTask);
|
||||
@@ -338,13 +338,13 @@ public class StIvtCheckmstServiceImpl extends ServiceImpl<StIvtCheckmstMapper, S
|
||||
dtlDao.setStatus(IOSEnum.CHECK_DTL_STATUS.code("移库中"));
|
||||
|
||||
// 更新关联任务
|
||||
if (ObjectUtil.isNotEmpty(result.getString("task_id"))) {
|
||||
/*if (ObjectUtil.isNotEmpty(result.getString("task_id"))) {
|
||||
iSchBaseTaskService.update(
|
||||
new UpdateWrapper<SchBaseTask>().lambda()
|
||||
.set(SchBaseTask::getContact_task, task_id)
|
||||
.eq(SchBaseTask::getTask_id, result.getString("task_id"))
|
||||
);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
iStIvtCheckdtlService.updateBatchById(dtlDaoList);
|
||||
}
|
||||
|
||||
@@ -21,8 +21,6 @@ import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.util.AbstractTask;
|
||||
import org.nl.wms.sch_manage.service.util.TaskFactory;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.InsideDtlMoveTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.MoveOutMoveTask;
|
||||
import org.nl.wms.warehouse_management.enums.IOSConstant;
|
||||
import org.nl.wms.warehouse_management.enums.IOSEnum;
|
||||
import org.nl.wms.warehouse_management.service.IStIvtMoveinvService;
|
||||
@@ -82,18 +80,6 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
@Autowired
|
||||
private TaskFactory taskFactory;
|
||||
|
||||
/**
|
||||
* 移库阻挡移库任务类
|
||||
*/
|
||||
@Autowired
|
||||
private MoveOutMoveTask moveOutMoveTask;
|
||||
|
||||
/**
|
||||
* 库内移库任务类子任务
|
||||
*/
|
||||
@Autowired
|
||||
private InsideDtlMoveTask insideDtlMoveTask;
|
||||
|
||||
@Override
|
||||
public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) {
|
||||
return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()),
|
||||
@@ -312,28 +298,16 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
String task_id = "";
|
||||
AbstractTask task = taskFactory.getTask(IOSEnum.MOVE_CONFIG_CODE.code(mstDao.getBill_type()));
|
||||
for (StIvtMoveinvdtl dtlDao : dtlList) {
|
||||
if(mstDao.getBill_type().equals(IOSEnum.MOVE_BILL_TYPE.code("库内移库"))) {
|
||||
if (mstDao.getBill_type().equals(IOSEnum.MOVE_BILL_TYPE.code("库内移库"))) {
|
||||
// 库内移库任务下发
|
||||
task_id = checkMoveInside(dtlDao,task);
|
||||
task_id = checkMoveInside(dtlDao, task);
|
||||
} else {
|
||||
// 判断是否阻挡
|
||||
JSONObject result = checkMove(dtlDao);
|
||||
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", result.getString("out_point"));
|
||||
jsonTask.put("point_code1", dtlDao.getTurnout_struct_code());
|
||||
jsonTask.put("point_code2", dtlDao.getTurnin_struct_code());
|
||||
jsonTask.put("vehicle_code", dtlDao.getStoragevehicle_code());
|
||||
jsonTask.put("vehicle_code2", dtlDao.getStoragevehicle_code2());
|
||||
task_id = task.create(jsonTask);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(result.getString("task_id"))) {
|
||||
// 更新关联任务标识
|
||||
iSchBaseTaskService.update(
|
||||
new UpdateWrapper<SchBaseTask>().lambda()
|
||||
.set(SchBaseTask::getContact_task, task_id)
|
||||
.eq(SchBaseTask::getTask_id, result.getString("task_id"))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// 更新明细任务标识
|
||||
@@ -351,8 +325,9 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
|
||||
/**
|
||||
* 库内移库任务下发
|
||||
*
|
||||
* @param dtlDao 移库明细
|
||||
* @param task 任务类
|
||||
* @param task 任务类
|
||||
* @return task_id
|
||||
*/
|
||||
private String checkMoveInside(StIvtMoveinvdtl dtlDao, AbstractTask task) {
|
||||
@@ -362,181 +337,7 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
jsonTask.put("point_code2", dtlDao.getTurnin_struct_code());
|
||||
jsonTask.put("vehicle_code", dtlDao.getStoragevehicle_code());
|
||||
jsonTask.put("vehicle_code2", dtlDao.getStoragevehicle_code2());
|
||||
String task_id = task.create(jsonTask);
|
||||
|
||||
Structattr startAttr = iStructattrService.getByCode(dtlDao.getTurnout_struct_code());
|
||||
Structattr endAttr = iStructattrService.getByCode(dtlDao.getTurnin_struct_code());
|
||||
|
||||
// ---------- 判断是否是深浅货位互换 ----------
|
||||
if (startAttr.getBlock_num().equals(endAttr.getBlock_num())
|
||||
&& startAttr.getCol_num().equals(endAttr.getCol_num())
|
||||
&& startAttr.getLayer_num().equals(endAttr.getLayer_num())
|
||||
) {
|
||||
// 两个货位都必须有货
|
||||
if (ObjectUtil.isNotEmpty(startAttr.getStoragevehicle_code()) && ObjectUtil.isNotEmpty(endAttr.getStoragevehicle_code())) {
|
||||
// 子任务1
|
||||
createInsideDtlMoveTask(startAttr.getStruct_code(),endAttr.getStruct_code(),startAttr.getStoragevehicle_code(),task_id);
|
||||
// 子任务2
|
||||
createInsideDtlMoveTask(endAttr.getStruct_code(),startAttr.getStruct_code(),endAttr.getStoragevehicle_code(),task_id);
|
||||
return task_id;
|
||||
} else {
|
||||
throw new BadRequestException("当前仓位互换会造成仓位空洞,不允许互换!");
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- 判断起点是否阻挡 ----------
|
||||
// 判断起点深浅货位
|
||||
if (startAttr.getPlacement_type().equals(IOSEnum.PLACEMENT_TYPE.code("深货位"))) {
|
||||
// 查询对应浅货位
|
||||
Structattr shallowStartAttr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, startAttr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, startAttr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, startAttr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("浅货位"))
|
||||
);
|
||||
// 判断浅货位是否被锁定
|
||||
if (!shallowStartAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
throw new BadRequestException("当前起点仓位对应的浅货位【"+shallowStartAttr.getStruct_code()+"】被锁定,无法下发任务");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(shallowStartAttr.getStoragevehicle_code())) {
|
||||
// 有货:创建子任务
|
||||
createInsideDtlMoveTask(shallowStartAttr.getStruct_code(),shallowStartAttr.getStruct_code(),shallowStartAttr.getStoragevehicle_code(),task_id);
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- 判断终点是否阻挡 ----------
|
||||
if (endAttr.getPlacement_type().equals(IOSEnum.PLACEMENT_TYPE.code("深货位"))) {
|
||||
// 查询对应浅货位
|
||||
Structattr shallowStartAttr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, endAttr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, endAttr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, endAttr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("浅货位"))
|
||||
);
|
||||
|
||||
// 判断浅货位是否被锁定
|
||||
if (!shallowStartAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
throw new BadRequestException("当前终点仓位对应的浅货位【"+shallowStartAttr.getStruct_code()+"】被锁定,无法下发任务");
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(shallowStartAttr.getStoragevehicle_code())) {
|
||||
// 有货:创建子任务
|
||||
createInsideDtlMoveTask(shallowStartAttr.getStruct_code(),shallowStartAttr.getStruct_code(),shallowStartAttr.getStoragevehicle_code(),task_id);
|
||||
}
|
||||
} else {
|
||||
// 查询对应深货位
|
||||
Structattr attr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, endAttr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, endAttr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, endAttr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("深货位"))
|
||||
);
|
||||
|
||||
// 判断深货位是否被锁定
|
||||
if (!attr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
throw new BadRequestException("当前终点仓位对应的深货位【"+attr.getStruct_code()+"】被锁定,无法下发任务");
|
||||
}
|
||||
// 判断是否有货
|
||||
if (ObjectUtil.isEmpty(attr.getStoragevehicle_code())) {
|
||||
throw new BadRequestException("移库会造成仓位【"+attr.getStruct_code()+"】为空洞,无法下发任务");
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- 创建起点任务 ----------
|
||||
createInsideDtlMoveTask(startAttr.getStruct_code(),endAttr.getStruct_code(),startAttr.getStoragevehicle_code(),task_id);
|
||||
|
||||
// ---------- 创建终点任务 ----------
|
||||
if (ObjectUtil.isNotEmpty(endAttr.getStoragevehicle_code())) {
|
||||
// 终点不为空则需要创建终点到起点的任务
|
||||
createInsideDtlMoveTask(endAttr.getStruct_code(),startAttr.getStruct_code(),endAttr.getStoragevehicle_code(),task_id);
|
||||
}
|
||||
|
||||
return task_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否浅货位阻挡移库
|
||||
*
|
||||
* @param dtlDao 移出货位
|
||||
* @return JSONObject {
|
||||
* out_point: 移库单移出货位
|
||||
* task_id: 移库阻挡移库任务标识
|
||||
* }
|
||||
*/
|
||||
public JSONObject checkMove(StIvtMoveinvdtl dtlDao) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
// 查询移出货位
|
||||
Structattr outAttr = iStructattrService.getByCode(dtlDao.getTurnout_struct_code());
|
||||
// 判断移出货位是深货位还是浅货位
|
||||
if (outAttr.getPlacement_type().equals(IOSEnum.PLACEMENT_TYPE.code("浅货位"))) {
|
||||
result.put("out_point",outAttr.getStruct_code());
|
||||
return result;
|
||||
}
|
||||
|
||||
// 查询对应的浅货位
|
||||
Structattr shallowAttr = iStructattrService.getOne(
|
||||
new QueryWrapper<Structattr>().lambda()
|
||||
.eq(Structattr::getBlock_num, outAttr.getBlock_num())
|
||||
.eq(Structattr::getCol_num, outAttr.getCol_num())
|
||||
.eq(Structattr::getLayer_num, outAttr.getLayer_num())
|
||||
.eq(Structattr::getPlacement_type, IOSEnum.PLACEMENT_TYPE.code("浅货位"))
|
||||
);
|
||||
if (ObjectUtil.isEmpty(shallowAttr)) {
|
||||
throw new BadRequestException("仓位【" + outAttr.getStruct_code() + "】对应的浅货位不存在,请检查数据!");
|
||||
}
|
||||
|
||||
// 判断浅货位是否空位
|
||||
if (ObjectUtil.isEmpty(shallowAttr.getStoragevehicle_code())) {
|
||||
// 浅货位空位
|
||||
if (shallowAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
result.put("out_point",outAttr.getStruct_code());
|
||||
return result;
|
||||
} else {
|
||||
throw new BadRequestException("当前浅货位被锁定或有正在入库的任务,请稍后在试!【"+shallowAttr.getStruct_code()+"】");
|
||||
}
|
||||
}
|
||||
|
||||
// 浅货位有货
|
||||
if (shallowAttr.getLock_type().equals(IOSEnum.LOCK_TYPE.code("未锁定"))) {
|
||||
// 有货未锁定生成移库任务
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", shallowAttr.getStruct_code());
|
||||
jsonTask.put("point_code2", outAttr.getStruct_code());
|
||||
jsonTask.put("vehicle_code", shallowAttr.getStoragevehicle_code());
|
||||
jsonTask.put("vehicle_code2", outAttr.getStoragevehicle_code());
|
||||
|
||||
// 锁定起点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("移出锁"))
|
||||
.eq(Structattr::getStruct_code, jsonTask.getString("point_code1"))
|
||||
);
|
||||
// 锁定终点
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("移入锁"))
|
||||
.eq(Structattr::getStruct_code, jsonTask.getString("point_code2"))
|
||||
);
|
||||
|
||||
String task_id = moveOutMoveTask.create(jsonTask);
|
||||
result.put("out_point",outAttr.getStruct_code());
|
||||
result.put("task_id",task_id);
|
||||
} else {
|
||||
// 判断是否是当前移库单的移库
|
||||
if (shallowAttr.getStruct_code().equals(dtlDao.getTurnin_struct_code())) {
|
||||
result.put("out_point",outAttr.getStruct_code());
|
||||
} else {
|
||||
// 有货锁定
|
||||
throw new BadRequestException("当前浅货位被锁定或有正在出库的任务,请稍后在试!【"+shallowAttr.getStruct_code()+"】");
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
return task.create(jsonTask);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -566,14 +367,4 @@ public class StIvtMoveinvServiceImpl extends ServiceImpl<StIvtMoveinvMapper, StI
|
||||
mstDao.setUpdate_time(DateUtil.now());
|
||||
this.updateById(mstDao);
|
||||
}
|
||||
|
||||
private void createInsideDtlMoveTask(String point_code1, String point_code2, String vehicle_code, String contact_task) {
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", point_code1);
|
||||
jsonTask.put("point_code2", point_code2);
|
||||
jsonTask.put("vehicle_code", vehicle_code);
|
||||
jsonTask.put("contact_task", contact_task);
|
||||
insideDtlMoveTask.create(jsonTask);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package org.nl.wms.warehouse_management.service.impl;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
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.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -12,7 +11,6 @@ import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.sch_manage.service.ISchBaseTaskService;
|
||||
import org.nl.wms.sch_manage.service.dao.SchBaseTask;
|
||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBaseTaskMapper;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.EmpOutMoveTask;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.EmpVehicleOutTask;
|
||||
@@ -79,9 +77,12 @@ public class VehicleOutServiceImpl implements VehicleOutService {
|
||||
public void create(JSONObject whereJson) {
|
||||
// 根据库区找空载具
|
||||
List<Structattr> attrList = autoDivStruct(whereJson);
|
||||
if (ObjectUtil.isEmpty(attrList)) {
|
||||
throw new BadRequestException("暂时没有可用的空载具!");
|
||||
}
|
||||
|
||||
Structattr structattr = new Structattr();
|
||||
String point_code1 = "";
|
||||
Structattr structattr = attrList.get(0);
|
||||
/*String point_code1 = "";
|
||||
for (Structattr attrDao : attrList) {
|
||||
// 判断是深浅货位
|
||||
if (attrDao.getPlacement_type().equals(IOSEnum.PLACEMENT_TYPE.code("浅货位"))) {
|
||||
@@ -126,40 +127,36 @@ public class VehicleOutServiceImpl implements VehicleOutService {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (ObjectUtil.isEmpty(structattr)) {
|
||||
throw new BadRequestException("暂时没有可用的空载具!");
|
||||
}
|
||||
}*/
|
||||
|
||||
// 锁定仓位
|
||||
iStructattrService.update(
|
||||
new UpdateWrapper<Structattr>().lambda()
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("空托盘出库锁"))
|
||||
.eq(Structattr::getStruct_code, structattr.getStruct_code())
|
||||
.set(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("空托盘出库锁"))
|
||||
.eq(Structattr::getStruct_code, structattr.getStruct_code())
|
||||
);
|
||||
|
||||
// 创建任务
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
jsonTask.put("point_code1", point_code1);
|
||||
jsonTask.put("point_code1", structattr.getStruct_code());
|
||||
jsonTask.put("point_code2", IOSConstant.CZW_POINT);
|
||||
// 判断终点是否是称重位
|
||||
jsonTask.put("point_code3", whereJson.getString("point_code").equals(IOSConstant.CZW_POINT)
|
||||
? "" : whereJson.getString("point_code")
|
||||
);
|
||||
// 用于任务完成时更新原仓位
|
||||
jsonTask.put("point_code4", structattr.getStruct_code());
|
||||
jsonTask.put("vehicle_code", structattr.getStoragevehicle_code());
|
||||
// jsonTask.put("point_code4", structattr.getStruct_code());
|
||||
// jsonTask.put("vehicle_code", structattr.getStoragevehicle_code());
|
||||
String task_id = empVehicleOutTask.create(jsonTask);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(structattr.getTask_id())) {
|
||||
/* if (ObjectUtil.isNotEmpty(structattr.getTask_id())) {
|
||||
// 更新空载具出库任务类ext_group_data字段
|
||||
iSchBaseTaskService.update(
|
||||
new UpdateWrapper<SchBaseTask>().lambda()
|
||||
.set(SchBaseTask::getExt_group_data, task_id)
|
||||
.eq(SchBaseTask::getTask_id, structattr.getTask_id())
|
||||
);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user