增加手动指定出库触发移库逻辑
This commit is contained in:
@@ -77,6 +77,7 @@ public class ApiWcsService implements IApiWcsService {
|
|||||||
IRequestLogService requestLogService;
|
IRequestLogService requestLogService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 呼叫可用容器出库
|
* 呼叫可用容器出库
|
||||||
* @return
|
* @return
|
||||||
@@ -428,13 +429,14 @@ public class ApiWcsService implements IApiWcsService {
|
|||||||
|
|
||||||
String cargoSpaceId = params.get("cargoSpaceId");
|
String cargoSpaceId = params.get("cargoSpaceId");
|
||||||
|
|
||||||
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(cargoSpaceId);
|
//当前货位
|
||||||
if (ObjUtil.isNull(cargoSpace)){
|
BasCargoSpace cargoSpaceCurrent = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(cargoSpaceId);
|
||||||
|
if (ObjUtil.isNull(cargoSpaceCurrent)){
|
||||||
log.warn("【操作失败】找不到该货位,可能是货位异常或参数错误,请联系管理员,货位号:", cargoSpaceId);
|
log.warn("【操作失败】找不到该货位,可能是货位异常或参数错误,请联系管理员,货位号:", cargoSpaceId);
|
||||||
return AjaxResult.error("找不到该货位信息");
|
return AjaxResult.error("找不到该货位信息");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cargoSpace.getLocked().equals(CargoSpaceCode.CARGOSPACE_LOCKED_NORMAL)){
|
if (!cargoSpaceCurrent.getLocked().equals(CargoSpaceCode.CARGOSPACE_LOCKED_NORMAL)){
|
||||||
log.warn("【操作失败】当前货位已经锁定或禁用,不能执行<指定货位出库>该操作,货位号:", cargoSpaceId);
|
log.warn("【操作失败】当前货位已经锁定或禁用,不能执行<指定货位出库>该操作,货位号:", cargoSpaceId);
|
||||||
return AjaxResult.error("当前货位已经锁定或禁用,不能执行<指定货位出库>该操作");
|
return AjaxResult.error("当前货位已经锁定或禁用,不能执行<指定货位出库>该操作");
|
||||||
}
|
}
|
||||||
@@ -445,6 +447,88 @@ public class ApiWcsService implements IApiWcsService {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
// MydoJob job = mydoJobService.selectMydoJobBy(cargoSpace.getTrayCode());
|
// MydoJob job = mydoJobService.selectMydoJobBy(cargoSpace.getTrayCode());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//todo 移库判断
|
||||||
|
if(cargoSpaceCurrent.getIssDouble().equals(CargoSpaceCode.CARGOSPACE_ISDOUBLE_Y)){
|
||||||
|
//双伸货位出库判断单伸位置是否有货
|
||||||
|
BasCargoSpace cargoSpaceSingle = basCargoSpaceService.selectAnotherBasCargoSpaceBySameGroup(cargoSpaceCurrent);
|
||||||
|
|
||||||
|
//单伸位非空闲状态 - 触发移库任务
|
||||||
|
if (cargoSpaceSingle.getStatus().equals(CargoSpaceCode.CARGOSPACE_STATUS_OCCUPIED)){
|
||||||
|
String moveJobId = basJobIdService.getId(JobIdType.MYDOJOB_MOVE);
|
||||||
|
String moveTaskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKOUT);
|
||||||
|
BasCargoSpace targetCargo = basCargoSpaceService.selectBasCargoSpaceForStockin(
|
||||||
|
new BasCargoSpace().builder().theType(cargoSpaceCurrent.getTheType()).roadwayId(cargoSpaceCurrent.getRoadwayId()).build()
|
||||||
|
);
|
||||||
|
|
||||||
|
//生成并推送移库
|
||||||
|
MydoJob moveJob = new MydoJob().builder()
|
||||||
|
.jobId(moveJobId)
|
||||||
|
.taskNo(moveTaskNo)
|
||||||
|
.status(TaskStatusEnum.READY.getCode())
|
||||||
|
.inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE)
|
||||||
|
.executionPhase("0")
|
||||||
|
.trayCode(cargoSpaceSingle.getTrayCode())
|
||||||
|
.trayType(cargoSpaceSingle.getTheType())
|
||||||
|
.roadwayId(cargoSpaceSingle.getRoadwayId())
|
||||||
|
.cargoSpaceId(cargoSpaceSingle.getCargoSpaceId())
|
||||||
|
.targetCargoSpaceId(targetCargo.getCargoSpaceId())
|
||||||
|
.priority(0)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
log.info("【手动指定出库】出库双伸货位外侧有货,生成移库作业,作业号:{},移库货位:{},目标货位:{}", moveJobId, cargoSpaceSingle.getCargoSpaceId(), targetCargo.getCargoSpaceId());
|
||||||
|
|
||||||
|
//推送移库
|
||||||
|
AjaxResult ajaxResult;
|
||||||
|
|
||||||
|
/*-----------------推送wcs移库任务----------------- */
|
||||||
|
HashMap<String, Object> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("reqCode", UUID.randomUUID().toString());//请求码
|
||||||
|
paramMap.put("jobId", moveJob.getJobId());//容器编号
|
||||||
|
paramMap.put("trayCode", moveJob.getTrayCode().trim());//容器编号
|
||||||
|
paramMap.put("cargoSpaceId", moveJob.getCargoSpaceId());//货位
|
||||||
|
paramMap.put("targetCargoSpaceId", moveJob.getTargetCargoSpaceId());//目标货位
|
||||||
|
paramMap.put("inOrOut", moveJob.getInOrOut());//任务类型
|
||||||
|
paramMap.put("priority", 0);//任务优先级
|
||||||
|
|
||||||
|
ajaxResult = sendMoveMydoJob(paramMap);
|
||||||
|
log.info(
|
||||||
|
"【手动出库-移库】推送wcs移库作业,作业号:{},托盘条码:{},移库货位:{},目标货位:{}", moveJob.getJobId(), moveJob.getTrayCode(), moveJob.getCargoSpaceId(), moveJob.getTargetCargoSpaceId()
|
||||||
|
);
|
||||||
|
if (ajaxResult.isSuccess()){
|
||||||
|
//生成托盘主作业
|
||||||
|
mydoJobService.insertMydoJob(moveJob);
|
||||||
|
|
||||||
|
List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(moveJob.getTrayCode());
|
||||||
|
if (!stocks.isEmpty()){
|
||||||
|
for(BasStock stock : stocks){
|
||||||
|
//更新库存表货位【占用】状态
|
||||||
|
stock.setStockStatus(BasStockCode.STOCK_STATUS_OCCUPIED);
|
||||||
|
basStockService.updateBasStock(stock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//更新货位表【预占用】状态
|
||||||
|
basCargoSpaceService.updateBasCargoSpaceStatus(cargoSpaceSingle.getCargoSpaceId(),cargoSpaceSingle.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKOUT);
|
||||||
|
basCargoSpaceService.updateBasCargoSpaceStatus(targetCargo.getCargoSpaceId(),cargoSpaceSingle.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN);
|
||||||
|
|
||||||
|
log.info(
|
||||||
|
"【手动出库-移库】推送成功,货位和库存更为<占用>状态,作业号:{},托盘条码:{},移库货位:{},目标货位:{}", moveJob.getJobId(), moveJob.getTrayCode(), moveJob.getCargoSpaceId(), moveJob.getTargetCargoSpaceId()
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
return AjaxResult.error("【手动出库-移库】推送失败,请查看接口错误信息");
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if (cargoSpaceSingle.getStatus().equals(CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN) ||
|
||||||
|
cargoSpaceSingle.getStatus().equals(CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKOUT)){
|
||||||
|
return AjaxResult.error("【手动出库-移库】推送失败,操作中止,对应的单伸货位状态不符合移库条件");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
List<MydoJob> jobs = mydoJobService.selectMydoJobList(
|
List<MydoJob> jobs = mydoJobService.selectMydoJobList(
|
||||||
new MydoJob().builder().cargoSpaceId(cargoSpaceId).build()
|
new MydoJob().builder().cargoSpaceId(cargoSpaceId).build()
|
||||||
);
|
);
|
||||||
@@ -458,16 +542,16 @@ public class ApiWcsService implements IApiWcsService {
|
|||||||
.jobId(jobId)
|
.jobId(jobId)
|
||||||
.taskNo(taskNo)
|
.taskNo(taskNo)
|
||||||
.status(TaskStatusEnum.READY.getCode())
|
.status(TaskStatusEnum.READY.getCode())
|
||||||
.warehouseId(cargoSpace.getWarehouseId())
|
.warehouseId(cargoSpaceCurrent.getWarehouseId())
|
||||||
.warehouseName("立体库")
|
.warehouseName("立体库")
|
||||||
.executionPhase("0")
|
.executionPhase("0")
|
||||||
.inOrOut(taskType)
|
.inOrOut(taskType)
|
||||||
.trayCode(cargoSpace.getTrayCode())
|
.trayCode(cargoSpaceCurrent.getTrayCode())
|
||||||
// .exitId()
|
// .exitId()
|
||||||
.roadwayId(cargoSpace.getRoadwayId())
|
.roadwayId(cargoSpaceCurrent.getRoadwayId())
|
||||||
.cargoSpaceId(cargoSpaceId)
|
.cargoSpaceId(cargoSpaceId)
|
||||||
.cargoSpaceName(cargoSpace.getCargoSpaceName())
|
.cargoSpaceName(cargoSpaceCurrent.getCargoSpaceName())
|
||||||
.trayType(cargoSpace.getTheType())
|
.trayType(cargoSpaceCurrent.getTheType())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
mydoJobService.insertMydoJob(mydoJob);
|
mydoJobService.insertMydoJob(mydoJob);
|
||||||
|
|||||||
@@ -307,10 +307,6 @@ public class OutStockoutServiceImpl implements IOutStockoutService
|
|||||||
//生成主任务后子任务明细重新计数
|
//生成主任务后子任务明细重新计数
|
||||||
num = 1;
|
num = 1;
|
||||||
|
|
||||||
log.info(
|
|
||||||
"【出库分配-移库】推送成功,作业号:{},托盘条码:{},移库货位:{},目标货位:{}", moveJob.getJobId(), moveJob.getTrayCode(), moveJob.getCargoSpaceId(), moveJob.getTargetCargoSpaceId()
|
|
||||||
);
|
|
||||||
|
|
||||||
//更新库存表货位【占用】状态
|
//更新库存表货位【占用】状态
|
||||||
stock.setStockStatus(BasStockCode.STOCK_STATUS_OCCUPIED);
|
stock.setStockStatus(BasStockCode.STOCK_STATUS_OCCUPIED);
|
||||||
basStockService.updateBasStock(stock);
|
basStockService.updateBasStock(stock);
|
||||||
@@ -319,8 +315,16 @@ public class OutStockoutServiceImpl implements IOutStockoutService
|
|||||||
basCargoSpaceService.updateBasCargoSpaceStatus(cargoSingle.getCargoSpaceId(),cargoSingle.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKOUT);
|
basCargoSpaceService.updateBasCargoSpaceStatus(cargoSingle.getCargoSpaceId(),cargoSingle.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKOUT);
|
||||||
basCargoSpaceService.updateBasCargoSpaceStatus(targetCargo.getCargoSpaceId(),cargoSingle.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN);
|
basCargoSpaceService.updateBasCargoSpaceStatus(targetCargo.getCargoSpaceId(),cargoSingle.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN);
|
||||||
|
|
||||||
|
log.info(
|
||||||
|
"【出库分配-移库】推送成功,货位和库存更为<占用>状态,作业号:{},托盘条码:{},移库货位:{},目标货位:{}", moveJob.getJobId(), moveJob.getTrayCode(), moveJob.getCargoSpaceId(), moveJob.getTargetCargoSpaceId()
|
||||||
|
);
|
||||||
|
}else{
|
||||||
|
return AjaxResult.error("【出库分配-移库】推送失败,请查看接口错误信息");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}else if (cargoSingle.getStatus().equals(CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN) ||
|
||||||
|
cargoSingle.getStatus().equals(CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKOUT)){
|
||||||
|
return AjaxResult.error("【出库分配-移库】推送失败,操作中止,对应的单伸货位状态不符合移库条件");
|
||||||
}
|
}
|
||||||
|
|
||||||
}//执行完移库判断
|
}//执行完移库判断
|
||||||
|
|||||||
Reference in New Issue
Block a user