opt:优化自动移库和自动出库逻辑
This commit is contained in:
@@ -313,20 +313,25 @@ public class SchBaseTaskServiceImpl extends ServiceImpl<SchBaseTaskMapper, SchBa
|
|||||||
SchBasePoint nexSchBasePoint = nextList.get(0);
|
SchBasePoint nexSchBasePoint = nextList.get(0);
|
||||||
param.put("start_point", schBasePoint.getPoint_code());
|
param.put("start_point", schBasePoint.getPoint_code());
|
||||||
param.put("next_point", nexSchBasePoint.getPoint_code());
|
param.put("next_point", nexSchBasePoint.getPoint_code());
|
||||||
|
param.put("create_mode","1");
|
||||||
param.put("request_medthod_code", "POINTTask");
|
param.put("request_medthod_code", "POINTTask");
|
||||||
param.put("request_medthod_name", "点对点任务");
|
param.put("request_medthod_name", "点对点任务");
|
||||||
param.put("vehicle_code",schBasePoint.getVehicle_code());
|
param.put("vehicle_code",schBasePoint.getVehicle_code());
|
||||||
param.put("vehicle_code2",schBasePoint.getVehicle_code2());
|
param.put("vehicle_code2",schBasePoint.getVehicle_code2());
|
||||||
param.put("device_code", schBasePoint.getPoint_code());
|
param.put("device_code", schBasePoint.getPoint_code());
|
||||||
acsToWmsService.pdaApply(param);
|
|
||||||
//发起任务时先把点位占用,防止发起重复任务
|
|
||||||
schBasePoint.setIng_task_code("1");
|
|
||||||
pointService.update(schBasePoint);
|
|
||||||
nexSchBasePoint.setIng_task_code("1");
|
|
||||||
pointService.update(nexSchBasePoint);
|
|
||||||
|
|
||||||
nextList.remove(0);
|
|
||||||
|
|
||||||
|
BaseResponse baseResponse= acsToWmsService.pdaApply(param);
|
||||||
|
Integer resultCode = baseResponse.getCode();
|
||||||
|
if(resultCode.equals(200)){
|
||||||
|
//发起任务时先把点位占用,防止发起重复任务
|
||||||
|
schBasePoint.setIng_task_code("1");
|
||||||
|
pointService.update(schBasePoint);
|
||||||
|
nexSchBasePoint.setIng_task_code("1");
|
||||||
|
pointService.update(nexSchBasePoint);
|
||||||
|
nextList.remove(0);
|
||||||
|
}else{
|
||||||
|
log.info(baseResponse.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -190,6 +190,14 @@ public abstract class AbstractTask {
|
|||||||
Assert.isFalse(apply_sub_tray_lists.size()>0,
|
Assert.isFalse(apply_sub_tray_lists.size()>0,
|
||||||
"该任务申请子托盘["+sub_tray+"]已存在未完成的任务,无法申请任务!");
|
"该任务申请子托盘["+sub_tray+"]已存在未完成的任务,无法申请任务!");
|
||||||
}
|
}
|
||||||
|
//子托盘非空
|
||||||
|
String vehicle_code2 = param.getString("vehicle_code2");
|
||||||
|
if(ObjectUtil.isNotEmpty(vehicle_code2)) {
|
||||||
|
//判断该子托盘是否存在未完成任务
|
||||||
|
List<SchBaseTask> apply_vehicle_code2_lists = taskService.findUnFinishTasksBySub_tray("",vehicle_code2);
|
||||||
|
Assert.isFalse(apply_vehicle_code2_lists.size()>0,
|
||||||
|
"该任务申请子托盘["+vehicle_code2+"]已存在未完成的任务,无法申请任务!");
|
||||||
|
}
|
||||||
// 最大可创建任务数
|
// 最大可创建任务数
|
||||||
Integer tcmn = taskConfig.getTask_create_max_num();
|
Integer tcmn = taskConfig.getTask_create_max_num();
|
||||||
// 获取申请的任务
|
// 获取申请的任务
|
||||||
|
|||||||
@@ -13,7 +13,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.domain.query.PageQuery;
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.ext.service.AcsToWmsService;
|
import org.nl.wms.ext.service.AcsToWmsService;
|
||||||
|
import org.nl.wms.ext.service.dto.to.BaseResponse;
|
||||||
import org.nl.wms.pda.service.PdaService;
|
import org.nl.wms.pda.service.PdaService;
|
||||||
|
import org.nl.wms.pda.service.dao.vo.PdaResponseVo;
|
||||||
import org.nl.wms.pdm.service.dao.PointDetailAdd;
|
import org.nl.wms.pdm.service.dao.PointDetailAdd;
|
||||||
import org.nl.wms.sch.point.service.ISchBasePointService;
|
import org.nl.wms.sch.point.service.ISchBasePointService;
|
||||||
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
import org.nl.wms.sch.point.service.dao.SchBasePoint;
|
||||||
@@ -130,8 +132,23 @@ public class WorkorderServiceImpl extends ServiceImpl<WorkorderMapper, Workorder
|
|||||||
List<String> pointCodes = pointDetailAdd.getPointCodes();
|
List<String> pointCodes = pointDetailAdd.getPointCodes();
|
||||||
//下发状态
|
//下发状态
|
||||||
String status = pointDetailAdd.getStatus();
|
String status = pointDetailAdd.getStatus();
|
||||||
|
//查询是否有目的空点位
|
||||||
|
List<SchBasePoint> nextList = schBasePointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||||
|
.eq(SchBasePoint::getRegion_code, "YL")
|
||||||
|
.eq(SchBasePoint::getIs_used, true)
|
||||||
|
.eq(SchBasePoint::getVehicle_qty, 0)
|
||||||
|
.and(slam -> slam.isNull(SchBasePoint::getVehicle_code2)
|
||||||
|
.or()
|
||||||
|
.eq(SchBasePoint::getVehicle_code2, ""))
|
||||||
|
.and(slam -> slam.isNull(SchBasePoint::getIng_task_code)
|
||||||
|
.or()
|
||||||
|
.eq(SchBasePoint::getIng_task_code, "")));
|
||||||
if("1".equals(status)){
|
if("1".equals(status)){
|
||||||
for(String pointCode : pointCodes){
|
for(String pointCode : pointCodes){
|
||||||
|
if(nextList.size()==0){
|
||||||
|
log.info("原料库存区无可用点位,取消后续循环");
|
||||||
|
return;
|
||||||
|
}
|
||||||
//查询当前点位最新信息
|
//查询当前点位最新信息
|
||||||
SchBasePoint schBasePoint =schBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
SchBasePoint schBasePoint =schBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
||||||
.eq(SchBasePoint::getIs_used, true)
|
.eq(SchBasePoint::getIs_used, true)
|
||||||
@@ -143,23 +160,10 @@ public class WorkorderServiceImpl extends ServiceImpl<WorkorderMapper, Workorder
|
|||||||
.eq(SchBasePoint::getIng_task_code, "")
|
.eq(SchBasePoint::getIng_task_code, "")
|
||||||
));
|
));
|
||||||
if(ObjectUtil.isNull(schBasePoint)){
|
if(ObjectUtil.isNull(schBasePoint)){
|
||||||
|
log.info("移库点位异常:"+pointCode);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//查询是否有目的空点位
|
SchBasePoint nexSchBasePoint = nextList.get(0);
|
||||||
SchBasePoint nexSchBasePoint = schBasePointService.getOne(new LambdaQueryWrapper<SchBasePoint>()
|
|
||||||
.eq(SchBasePoint::getRegion_code, "YL")
|
|
||||||
.eq(SchBasePoint::getIs_used, true)
|
|
||||||
.eq(SchBasePoint::getVehicle_qty, 0)
|
|
||||||
.and(slam -> slam.isNull(SchBasePoint::getVehicle_code2)
|
|
||||||
.or()
|
|
||||||
.eq(SchBasePoint::getVehicle_code2, ""))
|
|
||||||
.and(slam -> slam.isNull(SchBasePoint::getIng_task_code)
|
|
||||||
.or()
|
|
||||||
.eq(SchBasePoint::getIng_task_code, "")));
|
|
||||||
if(ObjectUtil.isNull(nexSchBasePoint)){
|
|
||||||
log.info("原料库存区无可用点位,取消后续循环");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
JSONObject param = new JSONObject();
|
JSONObject param = new JSONObject();
|
||||||
param.put("start_point", schBasePoint.getPoint_code());
|
param.put("start_point", schBasePoint.getPoint_code());
|
||||||
param.put("next_point", nexSchBasePoint.getPoint_code());
|
param.put("next_point", nexSchBasePoint.getPoint_code());
|
||||||
@@ -169,12 +173,19 @@ public class WorkorderServiceImpl extends ServiceImpl<WorkorderMapper, Workorder
|
|||||||
param.put("vehicle_code",schBasePoint.getVehicle_code());
|
param.put("vehicle_code",schBasePoint.getVehicle_code());
|
||||||
param.put("vehicle_code2",schBasePoint.getVehicle_code2());
|
param.put("vehicle_code2",schBasePoint.getVehicle_code2());
|
||||||
param.put("device_code", schBasePoint.getPoint_code());
|
param.put("device_code", schBasePoint.getPoint_code());
|
||||||
acsToWmsService.pdaApply(param);
|
|
||||||
//发起任务时先把点位占用,防止发起重复任务
|
BaseResponse baseResponse= acsToWmsService.pdaApply(param);
|
||||||
schBasePoint.setIng_task_code("1");
|
Integer resultCode = baseResponse.getCode();
|
||||||
pointService.update(schBasePoint);
|
if(resultCode.equals(200)){
|
||||||
nexSchBasePoint.setIng_task_code("1");
|
//发起任务时先把点位占用,防止发起重复任务
|
||||||
pointService.update(nexSchBasePoint);
|
schBasePoint.setIng_task_code("1");
|
||||||
|
pointService.update(schBasePoint);
|
||||||
|
nexSchBasePoint.setIng_task_code("1");
|
||||||
|
pointService.update(nexSchBasePoint);
|
||||||
|
nextList.remove(0);
|
||||||
|
}else{
|
||||||
|
log.info(baseResponse.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -216,11 +227,20 @@ public class WorkorderServiceImpl extends ServiceImpl<WorkorderMapper, Workorder
|
|||||||
param.put("batch", DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"));
|
param.put("batch", DateUtil.format(DateUtil.date(), "yyyyMMddHHmmss"));
|
||||||
param.put("user_id","1");
|
param.put("user_id","1");
|
||||||
param.put("person_name", "管理员");
|
param.put("person_name", "管理员");
|
||||||
pdaService.yclck(param);
|
param.put("request_medthod_code", "YCLCKTask");
|
||||||
//更新对应载具工单状态为已生成任务,不可在工单页面取消
|
param.put("request_medthod_name", "原材料出库");
|
||||||
//pdm_bd_workorder_two任务生成时,status改为2
|
param.put("device_code",param.getString("start_point"));
|
||||||
this.update(vehicle_code2,"2");
|
BaseResponse baseResponse=acsToWmsService.pdaApply(param);
|
||||||
tcmn--;
|
Integer resultCode = baseResponse.getCode();
|
||||||
|
if(resultCode.equals(200)){
|
||||||
|
//更新对应载具工单状态为已生成任务,不可在工单页面取消
|
||||||
|
//pdm_bd_workorder_two任务生成时,status改为2
|
||||||
|
this.update(vehicle_code2,"2");
|
||||||
|
tcmn--;
|
||||||
|
}else{
|
||||||
|
log.info(baseResponse.toString());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user