fix:木箱出库时移库方法增加同巷道校验;opt:子卷下先空洞问题
This commit is contained in:
@@ -36,4 +36,5 @@ public interface BstIvtPackageinfoivtMapper extends BaseMapper<BstIvtPackageinfo
|
|||||||
List<SchBaseTask> getTaskList(Set<String> pointCodes1, Set<String> pointCodes2, Set<String> pointCodes3, Set<String> pointCodes4);
|
List<SchBaseTask> getTaskList(Set<String> pointCodes1, Set<String> pointCodes2, Set<String> pointCodes3, Set<String> pointCodes4);
|
||||||
|
|
||||||
List<BstIvtPackageinfoivt> selectNoTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus);
|
List<BstIvtPackageinfoivt> selectNoTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus);
|
||||||
|
List<BstIvtPackageinfoivt> selectNoTargetTaskPoint(@Param("pointStatus") String pointStatus, @Param("ivtStatus")String ivtStatus);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,5 +91,15 @@
|
|||||||
AND t.is_delete = '0')
|
AND t.is_delete = '0')
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectNoTargetTaskPoint" resultType="org.nl.b_lms.sch.point.dao.BstIvtPackageinfoivt">
|
||||||
|
select p.*
|
||||||
|
from bst_ivt_packageinfoivt p
|
||||||
|
where point_status = #{pointStatus}
|
||||||
|
AND is_used = '1'
|
||||||
|
AND ivt_status = #{ivtStatus}
|
||||||
|
AND 0 = (SELECT COUNT(*) FROM sch_base_task t WHERE t.task_status <![CDATA[ < ]]> '07'
|
||||||
|
and t.point_code2 = p.point_code AND t.is_delete = '0')
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -115,6 +115,7 @@ public interface IbstIvtPackageinfoivtService extends IService<BstIvtPackageinfo
|
|||||||
|
|
||||||
|
|
||||||
List<BstIvtPackageinfoivt> selectEmpPoints(String point_status,String ivt_status);
|
List<BstIvtPackageinfoivt> selectEmpPoints(String point_status,String ivt_status);
|
||||||
|
List<BstIvtPackageinfoivt> selectNoTargetTaskPoints(String point_status,String ivt_status);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1213,5 +1213,13 @@ public class BstIvtPackageinfoivtServiceImpl extends ServiceImpl<BstIvtPackagein
|
|||||||
}
|
}
|
||||||
return this.baseMapper.selectNoTaskPoint(point_status, ivt_status);
|
return this.baseMapper.selectNoTaskPoint(point_status, ivt_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BstIvtPackageinfoivt> selectNoTargetTaskPoints(String point_status, String ivt_status) {
|
||||||
|
if (StringUtils.isEmpty(point_status)||StringUtils.isEmpty(ivt_status)){
|
||||||
|
throw new BadRequestException("点位类型或状态不能为空");
|
||||||
|
}
|
||||||
|
return this.baseMapper.selectNoTargetTaskPoint(point_status, ivt_status);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -106,26 +106,6 @@ public class DjqToKzjhcwTask extends AbstractAcsTask {
|
|||||||
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2()));
|
packageinfoivtService.update(null, new UpdateWrapper<BstIvtPackageinfoivt>().set("update_time", now).set("ivt_status", PackageInfoIvtEnum.IVT_STATUS.code("空载具")).eq("point_code", schBaseTask.getPoint_code2()));
|
||||||
//3.更改任务状态为完成
|
//3.更改任务状态为完成
|
||||||
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
|
updateWrapper.set(SchBaseTask::getTask_status, TaskStatusEnum.FINISHED.getCode());
|
||||||
//4.更新并清除预分配位
|
|
||||||
exchangeTaskPoint(schBaseTask);
|
|
||||||
updateWrapper.set(SchBaseTask::getPoint_code4, "");
|
|
||||||
//5.判断是否存在任务组任务
|
|
||||||
packageinfoivtService.handleGroupTask(schBaseTask);
|
|
||||||
//6.待检区或管制区搬运空载具到空载具缓存位完毕,判断是否存在确定终点的空载具缓存位->输送线任务,存在就下发任务
|
|
||||||
// List<SchBaseTask> taskList = taskService.list(new LambdaQueryWrapper<SchBaseTask>()
|
|
||||||
// //确定终点未下发
|
|
||||||
// .eq(SchBaseTask::getTask_status, TaskStatusEnum.SURE_END.getCode())
|
|
||||||
// .eq(SchBaseTask::getPoint_code2, "NBJ1002")
|
|
||||||
// .eq(SchBaseTask::getTask_type, PackageInfoIvtEnum.TASK_TYPE.code("放空(空载具缓存位->输送线)")).eq(SchBaseTask::getIs_delete, IOSEnum.IS_NOTANDYES.code("否"))
|
|
||||||
// );
|
|
||||||
// if (ObjectUtils.isNotEmpty(taskList)) {
|
|
||||||
// SchBaseTask task = taskList.get(0);
|
|
||||||
// task.setPoint_code1(schBaseTask.getPoint_code2());
|
|
||||||
// task.setTask_status(TaskStatusEnum.START_AND_POINT.getCode());
|
|
||||||
// taskService.update(task);
|
|
||||||
// //任务下发
|
|
||||||
// ssxDjwTask.immediateNotifyAcs(task.getTask_id().toString());
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
// 取消
|
// 取消
|
||||||
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
if (status.equals(IOSEnum.IS_NOTANDYES.code("否"))) {
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ public class AutoSendVehicleToKzj extends Prun{
|
|||||||
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"));
|
task.put("task_type", PackageInfoIvtEnum.TASK_TYPE.code("补空(待检区->空载具缓存位)"));
|
||||||
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
task.put("vehicle_code2", PackageInfoIvtEnum.AGV_ACTION_TYPE.code("放货二次分配"));
|
||||||
task.put("point_code1", vehiclePoints.get(0).getPoint_code());
|
task.put("point_code1", vehiclePoints.get(0).getPoint_code());
|
||||||
task.put("point_code2", packageinfoivtService.getWaitPoint(vehiclePoints.get(0).getBlock(), vehiclePoints.get(0).getWait_point_type()));
|
task.put("point_code2", packageinfoivtService.getWaitPoint(empPoints.get(0).getBlock(), empPoints.get(0).getWait_point_type()));
|
||||||
//预占用点位
|
//预占用点位
|
||||||
task.put("point_code3", empPoints.get(0).getPoint_code());
|
task.put("point_code3", empPoints.get(0).getPoint_code());
|
||||||
djqToKzjhcwTask.createTask(task);
|
djqToKzjhcwTask.createTask(task);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.b_lms.sch.point.dao.SchBasePoint;
|
import org.nl.b_lms.sch.point.dao.SchBasePoint;
|
||||||
import org.nl.b_lms.sch.point.service.IschBasePointService;
|
import org.nl.b_lms.sch.point.service.IschBasePointService;
|
||||||
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
import org.nl.b_lms.sch.task.dao.SchBaseTask;
|
||||||
@@ -719,6 +720,11 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
jsonParam.put("row_num", row_num);
|
jsonParam.put("row_num", row_num);
|
||||||
JSONObject jsonAttr = queryStruct(jsonParam);
|
JSONObject jsonAttr = queryStruct(jsonParam);
|
||||||
|
|
||||||
|
// 如果是移库空并且仓位为空则报错
|
||||||
|
if (ObjectUtil.isNotEmpty(block_num) && ObjectUtil.isEmpty(jsonAttr)) {
|
||||||
|
throw new BadRequestException("转库任务巷道"+block_num+"仓位不足!");
|
||||||
|
}
|
||||||
|
|
||||||
// 为空则新找巷道
|
// 为空则新找巷道
|
||||||
if (ObjectUtil.isEmpty(jsonAttr)) {
|
if (ObjectUtil.isEmpty(jsonAttr)) {
|
||||||
|
|
||||||
@@ -758,6 +764,51 @@ public class InBoxManageServiceImpl implements InBoxManageService {
|
|||||||
return jsonAttr;
|
return jsonAttr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同巷道移库查看库位
|
||||||
|
* @param jsonParam
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public JSONObject getMoveStruct(JSONObject jsonParam) {
|
||||||
|
// 仓位表
|
||||||
|
WQLObject attrTab = WQLObject.getWQLObject("st_ivt_structattr");
|
||||||
|
/*
|
||||||
|
* 判断是否有仓位
|
||||||
|
* 判断条件:库区、仓库、是否启用、是否删除、未锁定、没有载具
|
||||||
|
*/
|
||||||
|
String block_num = jsonParam.getString("move_block_num");
|
||||||
|
if (StringUtils.isEmpty(block_num)){
|
||||||
|
throw new BadRequestException("同巷道分配库位巷道参数不能为空");
|
||||||
|
}
|
||||||
|
JSONArray structArray = attrTab.query("IFNULL(storagevehicle_code,'') = '' " +
|
||||||
|
"AND is_used = '" + IOSEnum.IS_NOTANDYES.code("是") + "' AND is_delete = '" + IOSEnum.IS_NOTANDYES.code("否") + "' " +
|
||||||
|
"AND storagevehicle_type = '" + jsonParam.getString("vehicle_type") + "'" +
|
||||||
|
"AND height = '" + jsonParam.getString("height") + "'" +
|
||||||
|
"AND lock_type = '" + IOSEnum.LOCK_TYPE.code("未锁定") + "' AND stor_id = '" + jsonParam.getString("stor_id") + "' " +
|
||||||
|
"AND sect_id = '" + jsonParam.getString("sect_id") + "' AND block_num = '" + block_num + "'").getResultJSONArray(0);
|
||||||
|
if (ObjectUtil.isEmpty(structArray)) {
|
||||||
|
notInRowList.clear();
|
||||||
|
notInBlockList.clear();
|
||||||
|
throw new BadRequestException("仓位不足!");
|
||||||
|
}
|
||||||
|
// 确定排:查看每排的木箱数量,找到数量最小的那排
|
||||||
|
jsonParam.put("block_num", block_num);
|
||||||
|
String row_num = getMinRow(jsonParam);
|
||||||
|
|
||||||
|
// 确定仓位: 找到仓位
|
||||||
|
jsonParam.put("row_num", row_num);
|
||||||
|
JSONObject jsonAttr = queryStruct(jsonParam);
|
||||||
|
|
||||||
|
// 为空则新找巷道
|
||||||
|
if (ObjectUtil.isEmpty(jsonAttr)) {
|
||||||
|
throw new BadRequestException("当前巷道"+block_num+"没有可用库位");
|
||||||
|
}
|
||||||
|
|
||||||
|
notInRowList.clear();
|
||||||
|
notInBlockList.clear();
|
||||||
|
return jsonAttr;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 确定巷道
|
* 确定巷道
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1870,7 +1870,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
List<BstIvtPackageinfoivt> empPoints = packageinfoivtService
|
List<BstIvtPackageinfoivt> empPoints = packageinfoivtService
|
||||||
.selectEmpPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
|
.selectNoTargetTaskPoints(PackageInfoIvtEnum.POINT_STATUS.code("空载具缓存位"), PackageInfoIvtEnum.IVT_STATUS.code("空载具"));
|
||||||
if (CollectionUtils.isEmpty(empPoints)){
|
if (CollectionUtils.isEmpty(empPoints)){
|
||||||
result.put("message", "空轴位无可用位置");
|
result.put("message", "空轴位无可用位置");
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ spring:
|
|||||||
freemarker:
|
freemarker:
|
||||||
check-template-location: false
|
check-template-location: false
|
||||||
profiles:
|
profiles:
|
||||||
active: dev
|
active: prod
|
||||||
jackson:
|
jackson:
|
||||||
time-zone: GMT+8
|
time-zone: GMT+8
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
ENV = 'development'
|
ENV = 'development'
|
||||||
|
|
||||||
# 接口地址
|
# 接口地址
|
||||||
VUE_APP_BASE_API = 'http://10.1.3.91:8013'
|
VUE_APP_BASE_API = 'http://127.0.0.1:8013'
|
||||||
VUE_APP_WS_API = 'ws://10.1.3.91:8013'
|
VUE_APP_WS_API = 'ws://127.0.0.1:8013'
|
||||||
|
|
||||||
# 是否启用 babel-plugin-dynamic-import-node插件
|
# 是否启用 babel-plugin-dynamic-import-node插件
|
||||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||||
|
|||||||
Reference in New Issue
Block a user