现场调试更改
This commit is contained in:
@@ -10,10 +10,9 @@ import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.log.domain.RequestLog;
|
||||
import com.ruoyi.log.service.IRequestLogService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/wmsService/wcs")
|
||||
@@ -37,6 +36,19 @@ public class WcsServiceController extends BaseController {
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 手动指定货位出库
|
||||
*/
|
||||
@PostMapping("/stockoutByManual")
|
||||
public AjaxResult stockoutByManual(@RequestBody Map<String, String> params) {
|
||||
AjaxResult ajaxResult = apiWcsService.stockoutByManual(params);
|
||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(params), "创建入库任务请求", ajaxResult);
|
||||
requestLogService.insertRequestLog(requestLog);
|
||||
return ajaxResult;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 请求补码作业
|
||||
*/
|
||||
|
||||
@@ -15,7 +15,7 @@ public interface IApiWcsService {
|
||||
* 呼叫可用容器出库
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult callContainerOut(String cargoAreaId, Integer type);
|
||||
public AjaxResult callContainerOut(Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 响应wcs请求-下发入库任务
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.ruoyi.bas.stock.service.IBasStockInfoService;
|
||||
import com.ruoyi.bas.stock.service.IBasStockService;
|
||||
import com.ruoyi.common.*;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.text.Convert;
|
||||
import com.ruoyi.common.utils.MessageUtils;
|
||||
import com.ruoyi.in.bind.domain.InTrayMsg;
|
||||
import com.ruoyi.in.bind.service.IInTrayMsgService;
|
||||
@@ -38,6 +39,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
@@ -85,26 +87,29 @@ public class ApiWcsService implements IApiWcsService {
|
||||
* @return
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult callContainerOut(String cargoAreaId, Integer type){
|
||||
public AjaxResult callContainerOut(Map<String, Object> params){
|
||||
|
||||
String cargoAreaId = (String) params.get("cargoAreaId");
|
||||
int type = Convert.toInt(params.get("palletType"), 0);
|
||||
|
||||
//获取立库区域和托盘类型
|
||||
List<BasCargoSpace> basCargoSpaces = basCargoSpaceService.selectAllBasCargoSpaceForStockout(
|
||||
List<BasCargoSpace> basCargoSpaceEmptyTray = basCargoSpaceService.selectBasCargoSpaceListForEmptyTray(
|
||||
new BasCargoSpace().builder().cargoAreaId(cargoAreaId).theType(type).build()
|
||||
);
|
||||
// List<BasCargoSpace> basCargoSpaceContainer = basCargoSpaceService.selectBasCargoSpaceListForContainer(
|
||||
// new BasCargoSpace().builder().cargoAreaId(cargoAreaId).theType(type).build()
|
||||
// );
|
||||
|
||||
List<BasStock> stocks = basStockService.selectBasStockList(
|
||||
new BasStock().builder().productId("KTP0001").stockStatus("1").build()
|
||||
);
|
||||
|
||||
if (stocks.isEmpty()) {
|
||||
if (basCargoSpaceEmptyTray.isEmpty()) {
|
||||
log.info("【呼叫容器】空容器呼叫失败,无可用的空容器库存");
|
||||
|
||||
//todo 此处可查存放库存较少的托盘出库
|
||||
}else{
|
||||
BasStock stock = stocks.get(0);
|
||||
//要执行容器出库的货位
|
||||
BasCargoSpace cargoSpaceCurrent = basCargoSpaceEmptyTray.get(0);
|
||||
|
||||
//检查出库货位是否触发移库作业 - 双伸货位出库查询单伸是否有货
|
||||
BasCargoSpace cargoSpaceCurrent = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(stock.getCargoSpaceId());//要出库的货位
|
||||
|
||||
if (cargoSpaceCurrent.getIssDouble().equals(CargoSpaceCode.CARGOSPACE_ISDOUBLE_Y)){//是否处于双伸位
|
||||
BasCargoSpace cargoSpaceInSide = basCargoSpaceService.selectAnotherBasCargoSpaceBySameGroup(cargoSpaceCurrent);//获取【要出库货位】对应的【单伸货位】
|
||||
//如果外侧有货,先执行移库
|
||||
@@ -159,9 +164,14 @@ public class ApiWcsService implements IApiWcsService {
|
||||
"【空托出库-移库】推送成功,作业号:{},托盘条码:{},移库货位:{},目标货位:{}", moveJob.getJobId(), moveJob.getTrayCode(), moveJob.getCargoSpaceId(), moveJob.getTargetCargoSpaceId()
|
||||
);
|
||||
|
||||
//更新库存表货位【占用】状态
|
||||
stock.setStockStatus(BasStockCode.STOCK_STATUS_OCCUPIED);
|
||||
basStockService.updateBasStock(stock);
|
||||
List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(cargoSpaceCurrent.getTrayCode());
|
||||
if (!stocks.isEmpty()){
|
||||
for (BasStock stock : stocks) {
|
||||
//更新库存表货位【占用】状态
|
||||
stock.setStockStatus(BasStockCode.STOCK_STATUS_OCCUPIED);
|
||||
basStockService.updateBasStock(stock);
|
||||
}
|
||||
}
|
||||
|
||||
//更新货位表【预占用】状态
|
||||
basCargoSpaceService.updateBasCargoSpaceStatus(cargoSpaceInSide.getCargoSpaceId(),cargoSpaceInSide.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKOUT);
|
||||
@@ -174,34 +184,40 @@ public class ApiWcsService implements IApiWcsService {
|
||||
|
||||
}
|
||||
|
||||
if (basCargoSpaces.stream().anyMatch(s -> s.getCargoSpaceId().equals(stock.getCargoSpaceId()))) {
|
||||
//生成空托出库作业
|
||||
if (mydoJobService.selectMydoJobByTrayCode(stock.getTrayCode()) == null) {
|
||||
//库存号 - 用于获取托盘号
|
||||
BasStockInfo stockInfo = basStockInfoService.selectBasStockInfoByStockId(stock.getStockId());
|
||||
//作业号
|
||||
String jobId = basJobIdService.getId(JobIdType.MYDOJOB_STOCKOUT_EMPTY_PALLET);
|
||||
String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKOUT_EMPTY_PALLET);
|
||||
//判断托盘【未满】或【空】区分任务类型
|
||||
int taskType = TaskType.TASKTYPE_STOCKOUT_EMPTY_TRAY;
|
||||
MydoJob mydoJob = new MydoJob().builder()
|
||||
.jobId(jobId)
|
||||
.taskNo(taskNo)
|
||||
.inOrOut(taskType)
|
||||
.trayCode(stockInfo.getTrayCode())
|
||||
.status(TaskStatusEnum.READY.getCode())
|
||||
.cargoSpaceId(stock.getCargoSpaceId())
|
||||
.trayType(type)
|
||||
.executionPhase("0")
|
||||
.warehouseId("01")
|
||||
.build();
|
||||
mydoJobService.insertMydoJob(mydoJob);
|
||||
//生成容器出库作业
|
||||
MydoJob job = mydoJobService.selectMydoJobByTrayCode(cargoSpaceCurrent.getTrayCode());
|
||||
if (ObjUtil.isNull(job)) {
|
||||
|
||||
//库存号 - 用于判断容器是【空托】或者【带货托盘】
|
||||
BasStockInfo stockInfo = basStockInfoService.selectBasStockInfoByTrayCode(cargoSpaceCurrent.getTrayCode());
|
||||
|
||||
//判断托盘【未满】或【空】区分任务类型
|
||||
String jobId = basJobIdService.getId(JobIdType.MYDOJOB_STOCKOUT_EMPTY_PALLET);
|
||||
String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKOUT_EMPTY_PALLET);
|
||||
int taskType = TaskType.TASKTYPE_STOCKOUT_EMPTY_TRAY;
|
||||
if (stockInfo.getEmptyStatus() > 0){
|
||||
taskType = TaskType.TASKTYPE_STOCKOUT_CONTAINER;
|
||||
}
|
||||
|
||||
MydoJob mydoJob = new MydoJob().builder()
|
||||
.jobId(jobId)
|
||||
.taskNo(taskNo)
|
||||
.inOrOut(taskType)
|
||||
.trayCode(cargoSpaceCurrent.getTrayCode())
|
||||
.status(TaskStatusEnum.READY.getCode())
|
||||
.cargoSpaceId(cargoSpaceCurrent.getCargoSpaceId())
|
||||
.trayType(type)
|
||||
.executionPhase("0")
|
||||
.warehouseId("01")
|
||||
.build();
|
||||
mydoJobService.insertMydoJob(mydoJob);
|
||||
}
|
||||
return AjaxResult.success();
|
||||
|
||||
|
||||
}
|
||||
|
||||
return AjaxResult.success();
|
||||
return AjaxResult.error();
|
||||
}
|
||||
|
||||
|
||||
@@ -245,27 +261,16 @@ public class ApiWcsService implements IApiWcsService {
|
||||
return AjaxResult.error("未找到该托盘的绑定信息,请确认是否有绑定操作");
|
||||
}
|
||||
|
||||
//--------------------------- 入库货位分配 ---------------------------
|
||||
//区分高矮货,只能在堆垛机上获取货物高度,高货位可放全部高度的托盘
|
||||
BasCargoSpace cargoParam;
|
||||
if (wcsStockinReiceive.getHeight() == 1){
|
||||
//低货位380H - 不限制高度
|
||||
cargoParam = new BasCargoSpace().builder().theType(type).cargoAreaId(wcsStockinReiceive.getCargoAreaId()).build();
|
||||
}else{
|
||||
//高货位510H - 只能放指定层高的货位
|
||||
cargoParam = new BasCargoSpace().builder().theType(type).cargoAreaId(wcsStockinReiceive.getCargoAreaId()).theHeight(wcsStockinReiceive.getHeight()).build();
|
||||
}
|
||||
BasCargoSpace cargoStockin = basCargoSpaceService.selectBasCargoSpaceForStockin(cargoParam);
|
||||
if (cargoParam == null) {
|
||||
log.warn("【货位分配】该类型托盘立库中无可用货位");
|
||||
return AjaxResult.error("【货位分配失败】该类型托盘立库中无可用货位");
|
||||
}
|
||||
|
||||
//检查当前条码是否已经生成作业
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTrayCode(wcsStockinReiceive.getTrayCode());
|
||||
|
||||
String jobId;
|
||||
String taskNo;
|
||||
int taskType;
|
||||
String instockinId;
|
||||
String instockinDetailId;
|
||||
BasCargoSpace basCargoSpace;
|
||||
|
||||
//>>>判断入库类型
|
||||
if (trayMsgs.stream().anyMatch(s -> s.getProductId().equals(ProductType.EMPTY_TRAY))){
|
||||
@@ -288,11 +293,25 @@ public class ApiWcsService implements IApiWcsService {
|
||||
|
||||
}
|
||||
|
||||
//检查当前条码是否已经生成作业
|
||||
MydoJob mydoJob = mydoJobService.selectMydoJobByTrayCode(wcsStockinReiceive.getTrayCode());
|
||||
|
||||
if (ObjUtil.isEmpty(mydoJob)) {
|
||||
|
||||
//--------------------------- 入库货位分配 ---------------------------
|
||||
//区分高矮货,只能在堆垛机上获取货物高度,高货位可放全部高度的托盘
|
||||
BasCargoSpace cargoParam;
|
||||
if (wcsStockinReiceive.getHeight() == 1){
|
||||
//低货位380H - 不限制高度
|
||||
cargoParam = new BasCargoSpace().builder().theType(type).cargoAreaId(wcsStockinReiceive.getCargoAreaId()).build();
|
||||
}else{
|
||||
//高货位510H - 只能放指定层高的货位
|
||||
cargoParam = new BasCargoSpace().builder().theType(type).cargoAreaId(wcsStockinReiceive.getCargoAreaId()).theHeight(wcsStockinReiceive.getHeight()).build();
|
||||
}
|
||||
BasCargoSpace cargoStockin = basCargoSpaceService.selectBasCargoSpaceForStockin(cargoParam);
|
||||
basCargoSpace = cargoStockin;
|
||||
if (cargoParam == null) {
|
||||
log.warn("【货位分配】该类型托盘立库中无可用货位");
|
||||
return AjaxResult.error("【货位分配失败】该类型托盘立库中无可用货位");
|
||||
}
|
||||
|
||||
//>>>生成wms的入库主作业
|
||||
MydoJob mydoJobNew = new MydoJob().builder()
|
||||
.jobId(jobId)
|
||||
@@ -314,6 +333,7 @@ public class ApiWcsService implements IApiWcsService {
|
||||
log.info("【wms生成入库】<空托入库>作业,作业号:{},任务号:{},托盘号:{},分配货位:{}",mydoJobNew.getJobId() ,mydoJobNew.getTaskNo() ,mydoJobNew.getTrayCode(), cargoStockin.getCargoSpaceId());
|
||||
}else{
|
||||
log.info("【提示】<常规入库>wms已存在该条码作业,托盘号:{}",mydoJob.getTrayCode());
|
||||
basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
}
|
||||
|
||||
//>>>根据绑定物料信息条数循环生成子作业,单条绑定信息对应一条子任务
|
||||
@@ -347,7 +367,6 @@ public class ApiWcsService implements IApiWcsService {
|
||||
.build();
|
||||
mydoJobDetailService.insertMydoJobDetail(detail);
|
||||
}
|
||||
|
||||
}else {
|
||||
instockinId = trayMsg.getStockinId();
|
||||
instockinDetailId = trayMsg.getStockinDetailId() + sum;
|
||||
@@ -368,7 +387,7 @@ public class ApiWcsService implements IApiWcsService {
|
||||
.stockinId(instockinId)
|
||||
.stockinDetailId(instockinDetailId)
|
||||
.status(0)
|
||||
.trayType(cargoStockin.getTheType())
|
||||
.trayType(type)
|
||||
.build();
|
||||
mydoJobDetailService.insertMydoJobDetail(detail);
|
||||
}
|
||||
@@ -378,8 +397,8 @@ public class ApiWcsService implements IApiWcsService {
|
||||
}
|
||||
|
||||
//货位状态更新为【入库预占用】
|
||||
cargoStockin.setStatus(CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN);
|
||||
basCargoSpaceService.updateBasCargoSpace(cargoStockin);
|
||||
basCargoSpace.setStatus(CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN);
|
||||
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||
|
||||
//返回wcs的响应信息
|
||||
WcsStockinResponse response = new WcsStockinResponse()
|
||||
@@ -389,10 +408,10 @@ public class ApiWcsService implements IApiWcsService {
|
||||
.taskNo(taskNo)
|
||||
.taskType(taskType)
|
||||
.trayCode(wcsStockinReiceive.getTrayCode())
|
||||
.cargoSpaceId(cargoStockin.getCargoSpaceId())
|
||||
.cargoSpaceId(basCargoSpace.getCargoSpaceId())
|
||||
.build();
|
||||
|
||||
log.info("【wms请求响应】<常规入库>响应信息,作业号:{},任务号:{},分配货位:{}",jobId ,taskNo, cargoStockin.getCargoSpaceId());
|
||||
log.info("【wms请求响应】<常规入库>响应信息,作业号:{},任务号:{},分配货位:{}",jobId ,taskNo, basCargoSpace.getCargoSpaceId());
|
||||
|
||||
return AjaxResult.success(response);
|
||||
|
||||
@@ -401,28 +420,31 @@ public class ApiWcsService implements IApiWcsService {
|
||||
|
||||
/**
|
||||
* 指定货位出库
|
||||
* @param cargoSpaceId
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult stockoutByManual(String cargoSpaceId){
|
||||
public AjaxResult stockoutByManual(Map<String, String> params){
|
||||
|
||||
String cargoSpaceId = params.get("cargoSpaceId");
|
||||
|
||||
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(cargoSpaceId);
|
||||
if (ObjUtil.isNull(cargoSpace)){
|
||||
log.warn("【操作失败】找不到该货位,可能是货位信息错误,请联系管理员,货位号:", cargoSpaceId);
|
||||
log.warn("【操作失败】找不到该货位,可能是货位异常或参数错误,请联系管理员,货位号:", cargoSpaceId);
|
||||
return AjaxResult.error("找不到该货位信息");
|
||||
}
|
||||
|
||||
if (!cargoSpace.getStatus().equals(CargoSpaceCode.CARGOSPACE_STATUS_OCCUPIED)){
|
||||
log.warn("【操作失败】该货位已被其它任务预占用,请等待任务执行完成后重试,货位号:", cargoSpaceId);
|
||||
return AjaxResult.error("该货位已被其它任务预占用,请等待任务执行完成后重试");
|
||||
}
|
||||
// if (!cargoSpace.getStatus().equals(CargoSpaceCode.CARGOSPACE_STATUS_OCCUPIED)){
|
||||
// log.warn("【操作失败】该货位已被其它任务预占用,请等待任务执行完成后重试,货位号:", cargoSpaceId);
|
||||
// return AjaxResult.error("该货位已被其它任务预占用,请等待任务执行完成后重试");
|
||||
// }
|
||||
|
||||
MydoJob job = mydoJobService.selectMydoJobByTrayCode(cargoSpace.getTrayCode());
|
||||
if (ObjUtil.isNull(job)){
|
||||
|
||||
String jobId = basJobIdService.getId(JobIdType.MYDOJOB_STOCKIN_EMPTY_PALLET);
|
||||
String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKIN_EMPTY_PALLET);
|
||||
int taskType = TaskType.TASKTYPE_STOCKIN_EMPTY_TRAY;
|
||||
String jobId = basJobIdService.getId(JobIdType.MYDOJOB_STOCKOUT_MANUAL);
|
||||
String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKOUT);
|
||||
int taskType = TaskType.TASKTYPE_STOCKOUT_MANUAL;
|
||||
|
||||
MydoJob mydoJob = new MydoJob().builder()
|
||||
.jobId(jobId)
|
||||
@@ -441,7 +463,7 @@ public class ApiWcsService implements IApiWcsService {
|
||||
.build();
|
||||
|
||||
mydoJobService.insertMydoJob(mydoJob);
|
||||
log.info("【wms生成出库】<指定货位出库>作业,作业号:{},任务号:{},托盘号:{},分配货位:{}",mydoJob.getJobId() ,mydoJob.getTaskNo() ,mydoJob.getTrayCode(), cargoSpaceId);
|
||||
log.info("【wms生成出库】<指定货位出库>作业,作业号:{},任务号:{},托盘号:{},出库货位:{}",mydoJob.getJobId() ,mydoJob.getTaskNo() ,mydoJob.getTrayCode(), cargoSpaceId);
|
||||
|
||||
List<BasStock> stocks = basStockService.selectBasStockList(
|
||||
new BasStock().builder().cargoSpaceId(cargoSpaceId).build()
|
||||
|
||||
@@ -29,6 +29,22 @@ public interface BasCargoSpaceMapper
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceList(BasCargoSpace basCargoSpace);
|
||||
|
||||
/**
|
||||
* 查询货位信息列表 - 空托盘
|
||||
*
|
||||
* @param basCargoSpace 货位信息
|
||||
* @return 货位信息集合
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListForEmptyTray(BasCargoSpace basCargoSpace);
|
||||
|
||||
/**
|
||||
* 查询货位信息列表 - 带货容器
|
||||
*
|
||||
* @param basCargoSpace 货位信息
|
||||
* @return 货位信息集合
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListForContainer(BasCargoSpace basCargoSpace);
|
||||
|
||||
/**
|
||||
* 新增货位信息
|
||||
*
|
||||
@@ -66,6 +82,7 @@ public interface BasCargoSpaceMapper
|
||||
* @return
|
||||
*/
|
||||
List<BasCargoSpaceStatus> selectBasCargoSpaceListByGroupByStatus(BasCargoSpace basCargoSpace);
|
||||
|
||||
/**
|
||||
* 查询排列表
|
||||
* @param basCargoSpace
|
||||
|
||||
@@ -29,6 +29,24 @@ public interface IBasCargoSpaceService
|
||||
public List<BasCargoSpace> selectBasCargoSpaceList(BasCargoSpace basCargoSpace);
|
||||
|
||||
|
||||
/**
|
||||
* 查询货位信息列表 - 空托盘
|
||||
*
|
||||
* @param basCargoSpace 货位信息
|
||||
* @return 货位信息集合
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListForEmptyTray(BasCargoSpace basCargoSpace);
|
||||
|
||||
|
||||
/**
|
||||
* 查询货位信息列表 - 非空载货托盘
|
||||
*
|
||||
* @param basCargoSpace 货位信息
|
||||
* @return 货位信息集合
|
||||
*/
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListForContainer(BasCargoSpace basCargoSpace);
|
||||
|
||||
|
||||
/**
|
||||
* 新增货位信息
|
||||
*
|
||||
|
||||
@@ -46,6 +46,30 @@ public class BasCargoSpaceServiceImpl implements IBasCargoSpaceService
|
||||
return basCargoSpaceMapper.selectBasCargoSpaceList(basCargoSpace);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询货位信息列表 - 空托盘
|
||||
*
|
||||
* @param basCargoSpace 货位信息
|
||||
* @return 货位信息
|
||||
*/
|
||||
@Override
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListForEmptyTray(BasCargoSpace basCargoSpace)
|
||||
{
|
||||
return basCargoSpaceMapper.selectBasCargoSpaceListForEmptyTray(basCargoSpace);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询货位信息列表 - 非空载货托盘
|
||||
*
|
||||
* @param basCargoSpace 货位信息
|
||||
* @return 货位信息
|
||||
*/
|
||||
@Override
|
||||
public List<BasCargoSpace> selectBasCargoSpaceListForContainer(BasCargoSpace basCargoSpace)
|
||||
{
|
||||
return basCargoSpaceMapper.selectBasCargoSpaceListForContainer(basCargoSpace);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增货位信息
|
||||
*
|
||||
|
||||
@@ -29,6 +29,15 @@ public interface BasStockMapper
|
||||
public List<BasStock> selectBasStockList(BasStock basStock);
|
||||
|
||||
|
||||
/**
|
||||
* 查询库存信息列表
|
||||
*
|
||||
* @param basStock 库存信息
|
||||
* @return 库存信息集合
|
||||
*/
|
||||
public List<BasStock> selectBasStockListForEmptyTray(BasStock basStock);
|
||||
|
||||
|
||||
/**
|
||||
* 查询指定物料的所有库存信息
|
||||
* @param productId
|
||||
|
||||
@@ -56,6 +56,14 @@ public interface IBasStockService
|
||||
*/
|
||||
public List<BasStock> selectBasStockList(BasStock basStock);
|
||||
|
||||
/**
|
||||
* 查询空托盘库存信息列表
|
||||
*
|
||||
* @param basStock 库存信息
|
||||
* @return 库存信息集合
|
||||
*/
|
||||
public List<BasStock> selectBasStockListForEmptyTray(BasStock basStock);
|
||||
|
||||
|
||||
/**
|
||||
* 新增库存信息
|
||||
|
||||
@@ -91,6 +91,17 @@ public class BasStockServiceImpl implements IBasStockService
|
||||
return basStockMapper.selectBasStockList(basStock);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询空托盘库存信息列表
|
||||
*
|
||||
* @param basStock 库存信息
|
||||
* @return 库存信息集合
|
||||
*/
|
||||
@Override
|
||||
public List<BasStock> selectBasStockListForEmptyTray(BasStock basStock){
|
||||
return basStockMapper.selectBasStockListForEmptyTray(basStock);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增库存信息
|
||||
*
|
||||
|
||||
@@ -38,6 +38,11 @@ public class JobIdType {
|
||||
*/
|
||||
public static final String MYDOJOB_STOCKOUT = "CK";
|
||||
|
||||
/**
|
||||
* 指定货位出库任务
|
||||
*/
|
||||
public static final String MYDOJOB_STOCKOUT_MANUAL = "ZC";
|
||||
|
||||
/**
|
||||
* 移库任务
|
||||
*/
|
||||
|
||||
@@ -465,7 +465,8 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
//>>>>>>>>>>>>>>>>>>>>>>>常规(整托)出库\拣选出库\指定出库<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
//>>>>>>>>>>>>>>>>>>>>>>>常规(整托)出库\拣选出库\指定出库<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
//>>>>>>>>>>>>>>>>>>>>>>>常规(整托)出库\拣选出库\指定出库<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
if (type == TaskType.TASKTYPE_STOCKOUT || type == TaskType.TASKTYPE_STOCKOUT_PICKING || type == TaskType.TASKTYPE_STOCKOUT_MANUAL){
|
||||
if (type == TaskType.TASKTYPE_STOCKOUT ||
|
||||
type == TaskType.TASKTYPE_STOCKOUT_PICKING){
|
||||
|
||||
//子任务
|
||||
List<MydoJobDetail> details = mydoJobDetailService.selectMydoJobDetailByJobId(jobId);
|
||||
@@ -494,7 +495,6 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail);
|
||||
|
||||
log.info("【账务处理】移除库存信息,更新单据出库分配数量,作业号:{},库存编号:{},辊号:{}", jobId, detail.getStockinDetailId(), detail.getRollerNumber());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -507,12 +507,6 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
//--------------------处理任务表和子任务表--------------------
|
||||
//1.更新任务主表状态并移除作业
|
||||
mydoJob.setStatus(TaskStatusEnum.AUTO_FINISHED.getCode());
|
||||
// mydoJobMapper.updateMydoJob(mydoJob);
|
||||
// deleteMydoJobByJobId(jobId);
|
||||
//
|
||||
// //2.并移除所有子作业
|
||||
// mydoJobDetailService.insertMydoJobDetailsForJobFinish(jobId);
|
||||
// mydoJobDetailService.deleteMydoJobDetailsByJobId(jobId);
|
||||
|
||||
log.info("【账务处理】出库完成,等待确认,作业号:{},托盘号:{}", jobId, mydoJob.getTrayCode());
|
||||
|
||||
@@ -520,6 +514,7 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
|
||||
}
|
||||
|
||||
|
||||
//>>>>>>>>>>>>>>>>>>>>> 移库任务 <<<<<<<<<<<<<<<<<<<<<<<<
|
||||
//>>>>>>>>>>>>>>>>>>>>> 移库任务 <<<<<<<<<<<<<<<<<<<<<<<<
|
||||
//>>>>>>>>>>>>>>>>>>>>> 移库任务 <<<<<<<<<<<<<<<<<<<<<<<<
|
||||
@@ -561,6 +556,37 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
|
||||
//>>>>>>>>>>>>>>>>>>>>> 手动指定货位出库 <<<<<<<<<<<<<<<<<<<<<<<<
|
||||
//>>>>>>>>>>>>>>>>>>>>> 手动指定货位出库 <<<<<<<<<<<<<<<<<<<<<<<<
|
||||
//>>>>>>>>>>>>>>>>>>>>> 手动指定货位出库 <<<<<<<<<<<<<<<<<<<<<<<<
|
||||
if (type == TaskType.TASKTYPE_STOCKOUT_MANUAL){
|
||||
//--------------------处理库存信息--------------------
|
||||
//移除指定辊号的库存明细
|
||||
basStockService.deleteBasStockByTrayCode(mydoJob.getTrayCode());
|
||||
basStockInfoService.deleteBasStockInfoByTrayCode(mydoJob.getTrayCode());
|
||||
|
||||
//--------------------更新货位状态--------------------
|
||||
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
basCargoSpaceService.updateBasCargoSpaceStatus(cargoSpace.getCargoSpaceId(), "", CargoSpaceCode.CARGOSPACE_STATUS_AVAILABLE);
|
||||
log.info("【账务处理-手动出库】更新货位状态,作业号:{},货位编号:{},托盘号:{}", jobId, cargoSpace.getCargoSpaceId(), mydoJob.getTrayCode());
|
||||
|
||||
//--------------------处理任务表和子任务表--------------------
|
||||
//1.更新任务主表状态并移除作业
|
||||
mydoJob.setStatus(TaskStatusEnum.AUTO_FINISHED.getCode());
|
||||
mydoJobMapper.updateMydoJob(mydoJob);
|
||||
deleteMydoJobByJobId(jobId);
|
||||
|
||||
//2.并移除所有子作业
|
||||
mydoJobDetailService.insertMydoJobDetailsForJobFinish(jobId);
|
||||
mydoJobDetailService.deleteMydoJobDetailsByJobId(jobId);
|
||||
|
||||
log.info("【账务处理-手动出库】任务完成,作业号:{},托盘号:{}", jobId, mydoJob.getTrayCode());
|
||||
|
||||
return AjaxResult.success();
|
||||
|
||||
}
|
||||
|
||||
return AjaxResult.error();
|
||||
}
|
||||
|
||||
@@ -581,13 +607,6 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
log.warn("【任务完成】查不到该作业,请检查作业状态,作业号:" + jobId);
|
||||
return AjaxResult.error("查不到该作业,请检查作业状态");
|
||||
}
|
||||
//子任务
|
||||
// List<MydoJobDetail> details = mydoJobDetailService.selectMydoJobDetailByJobId(jobId);
|
||||
// if (details.isEmpty()){
|
||||
// log.warn("【任务完成】查不到该作业对应的子单明细,请检查子单状态,任务号:" + jobId);
|
||||
// return AjaxResult.error("查不到该作业对应的子单明细,请检查子单状态");
|
||||
// }
|
||||
|
||||
|
||||
//--------------------处理库存信息--------------------
|
||||
//>>>>>>>>>>>>>>>>>>>>>>> 空托入库 <<<<<<<<<<<<<<<<<<<<<<<<
|
||||
@@ -640,7 +659,6 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
);
|
||||
log.info("【账务处理-空托盘】新增库存明细,作业号:{},库存编号:{},托盘号:{}", jobId, stockId, mydoJob.getTrayCode());
|
||||
|
||||
|
||||
//--------------------更新货位状态--------------------
|
||||
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
basCargoSpaceService.updateBasCargoSpaceStatus(cargoSpace.getCargoSpaceId(), mydoJob.getTrayCode(), CargoSpaceCode.CARGOSPACE_STATUS_OCCUPIED);
|
||||
@@ -659,7 +677,80 @@ public class MydoJobServiceImpl implements IMydoJobService
|
||||
|
||||
//3.移除当前托盘的绑定信息
|
||||
inTrayMsgService.deleteInTrayMsgByTrayCode(mydoJob.getTrayCode());
|
||||
log.info("【账务处理-空托盘】移除任务数据,生成历史记录,作业号:{},托盘号:{}", jobId, mydoJob.getTrayCode());
|
||||
log.info("【账务处理-载货容器出库】移除任务数据,生成历史记录,作业号:{},托盘号:{}", jobId, mydoJob.getTrayCode());
|
||||
|
||||
return AjaxResult.success();
|
||||
|
||||
}
|
||||
|
||||
//>>>>>>>>>>>>>>>>>>>>>>>带货托盘出库<<<<<<<<<<<<<<<<<<<<<<<<
|
||||
if (type == TaskType.TASKTYPE_STOCKOUT_CONTAINER){
|
||||
|
||||
//>>>>>>>>>>>>>>>>>>>>>>> 生成回流 <<<<<<<<<<<<<<<<<<<<<<<<
|
||||
//获取托盘剩余库存
|
||||
String trayCode = mydoJob.getTrayCode();
|
||||
List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(trayCode);
|
||||
int trayType = getTrayTypeByTrayCode(trayCode);
|
||||
//空托盘回流
|
||||
if (stocks.isEmpty()){
|
||||
inTrayMsgService.insertInTrayMsg(
|
||||
new InTrayMsg().builder()
|
||||
.trayCode(trayCode)
|
||||
.quantity(BigDecimal.ONE)
|
||||
.productId(ProductType.EMPTY_TRAY)
|
||||
.warehouseId("01")
|
||||
.rollerNumber(ProductType.EMPTY_TRAY)
|
||||
.trayType(trayType)
|
||||
.status(1)
|
||||
.createTime(DateUtil.date())
|
||||
.build()
|
||||
);
|
||||
|
||||
log.info("【非空容器绑定回流】<非空容器入库>生成绑定信息成功,托盘号:{}", trayCode);
|
||||
|
||||
}else{
|
||||
for (BasStock stock : stocks){
|
||||
inTrayMsgService.insertInTrayMsg(
|
||||
new InTrayMsg().builder()
|
||||
.trayCode(trayCode)
|
||||
.quantity(stock.getQuantity())
|
||||
.warehouseId("01")
|
||||
.rollerNumber(stock.getRollerNumber())
|
||||
.trayType(trayType)
|
||||
.status(2)
|
||||
.createTime(DateUtil.date())
|
||||
.build()
|
||||
);
|
||||
|
||||
basStockService.deleteBasStockByRollerNumber(stock.getRollerNumber());
|
||||
log.info("【非空容器绑定回流】<非空容器入库>移除当前版辊库存明细,生成绑定信息成功,托盘号:{},辊号:{}", trayCode, stock.getRollerNumber());
|
||||
}
|
||||
basStockInfoService.deleteBasStockInfoByTrayCode(trayCode);
|
||||
log.info("【非空容器绑定回流】<非空容器入库>移除主表库存信息,托盘号:{}}", trayCode);
|
||||
|
||||
}
|
||||
|
||||
//--------------------处理库存信息--------------------
|
||||
//移除指定辊号的库存明细
|
||||
basStockService.deleteBasStockByTrayCode(mydoJob.getTrayCode());
|
||||
basStockInfoService.deleteBasStockInfoByTrayCode(mydoJob.getTrayCode());
|
||||
|
||||
//--------------------更新货位状态--------------------
|
||||
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||
basCargoSpaceService.updateBasCargoSpaceStatus(cargoSpace.getCargoSpaceId(), "", CargoSpaceCode.CARGOSPACE_STATUS_AVAILABLE);
|
||||
log.info("【账务处理-载货容器出库】更新货位状态,作业号:{},货位编号:{},托盘号:{}", jobId, cargoSpace.getCargoSpaceId(), mydoJob.getTrayCode());
|
||||
|
||||
//--------------------处理任务表和子任务表--------------------
|
||||
//1.更新任务主表状态并移除作业
|
||||
mydoJob.setStatus(TaskStatusEnum.AUTO_FINISHED.getCode());
|
||||
mydoJobMapper.updateMydoJob(mydoJob);
|
||||
deleteMydoJobByJobId(jobId);
|
||||
|
||||
//2.并移除所有子作业
|
||||
mydoJobDetailService.insertMydoJobDetailsForJobFinish(jobId);
|
||||
mydoJobDetailService.deleteMydoJobDetailsByJobId(jobId);
|
||||
|
||||
log.info("【账务处理-载货容器出库】任务完成,作业号:{},托盘号:{}", jobId, mydoJob.getTrayCode());
|
||||
|
||||
return AjaxResult.success();
|
||||
|
||||
|
||||
@@ -316,13 +316,13 @@ public class PdaController extends BaseController {
|
||||
|
||||
/**
|
||||
* 呼叫空托出库
|
||||
* @param palletType 托盘类型
|
||||
* @param params 货位区域,托盘类型
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/callStockOutForContainer")
|
||||
@PreAuthorize("@ss.hasPermi('out:bound:task:info')")
|
||||
public AjaxResult callStockOutForEmptyPallet(String cargoAreaId, Integer palletType) {
|
||||
return pdaService.callContainerStockOut(cargoAreaId, palletType);
|
||||
public AjaxResult callStockOutForEmptyPallet(@RequestBody Map<String, Object> params) {
|
||||
return pdaService.callContainerStockOut(params);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -130,10 +130,10 @@ public interface IPdaService {
|
||||
|
||||
/**
|
||||
* 呼叫空托盘出库
|
||||
* @param palletType 托盘类型
|
||||
* @param params 托盘类型
|
||||
* @return
|
||||
*/
|
||||
AjaxResult callContainerStockOut(String cargoAreaId, Integer palletType);
|
||||
AjaxResult callContainerStockOut(Map<String, Object> params);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -489,10 +489,9 @@ public class PdaServiceImpl implements IPdaService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public AjaxResult callContainerStockOut(String cargoAreaId, Integer palletType){
|
||||
return apiWcsService.callContainerOut(cargoAreaId, palletType);
|
||||
public AjaxResult callContainerStockOut(Map<String, Object> params){
|
||||
return apiWcsService.callContainerOut(params);
|
||||
}
|
||||
|
||||
|
||||
@@ -638,8 +637,6 @@ public class PdaServiceImpl implements IPdaService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//移除剩余库存 - 生成回流任务和任务明细绑定信息
|
||||
|
||||
return AjaxResult.success("确认成功");
|
||||
|
||||
@@ -55,6 +55,7 @@ public class MydoJobHandler {
|
||||
@Autowired
|
||||
IInTrayMsgService intrayMsgService;
|
||||
|
||||
|
||||
private static final int TIMEINTERVAL_DEFAULT = 1000;
|
||||
private static final int TIMEINTERVAL_2000 = 2000;
|
||||
private static final int TIMEINTERVAL_5000 = 5000;
|
||||
@@ -104,6 +105,9 @@ public class MydoJobHandler {
|
||||
basStockInfoService.updateBasStockInfo(stockInfo);
|
||||
}
|
||||
|
||||
mydoJobService.insertMydoJobFinish(mydoJob.getJobId());
|
||||
mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId());
|
||||
|
||||
log.info(
|
||||
"【账务处理-移库】任务作废,更新库存和货位信息,作业号:{},托盘号:{},源位置:{},目标位置:{}", mydoJob.getJobId(), mydoJob.getTrayCode(), mydoJob.getCargoSpaceId(), mydoJob.getTargetCargoSpaceId()
|
||||
);
|
||||
@@ -120,12 +124,19 @@ public class MydoJobHandler {
|
||||
for (MydoJobDetail mydoJobDetail : details){
|
||||
//还原子单数量
|
||||
InStockinDetail inStockinDetail = inStockinDetailService.selectInStockinDetailByRollerNumber(mydoJobDetail.getRollerNumber());
|
||||
inStockinDetail.setScanNum(BigDecimal.ZERO);
|
||||
inStockinDetail.setAssignNum(BigDecimal.ZERO);
|
||||
inStockinDetail.setStatus(0);
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
if (ObjUtil.isNotNull(inStockinDetail)){
|
||||
inStockinDetail.setScanNum(BigDecimal.ZERO);
|
||||
inStockinDetail.setAssignNum(BigDecimal.ZERO);
|
||||
inStockinDetail.setStatus(0);
|
||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||
}
|
||||
}
|
||||
|
||||
mydoJobService.insertMydoJobFinish(mydoJob.getJobId());
|
||||
mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId());
|
||||
|
||||
// apiWcsService.cancelWcsMydojob()
|
||||
|
||||
log.info("【账务处理-入库】任务作废,更新货位信息,作业号:{}", mydoJob.getJobId());
|
||||
return;
|
||||
}
|
||||
@@ -143,12 +154,17 @@ public class MydoJobHandler {
|
||||
for (MydoJobDetail mydoJobDetail : details){
|
||||
//还原子单数量
|
||||
OutStockoutDetail outStockoutDetail = outStockoutDetailService.selectOutStockoutDetailByRollerNumber(mydoJobDetail.getRollerNumber());
|
||||
outStockoutDetail.setAllotNum(BigDecimal.ZERO);
|
||||
outStockoutDetail.setAssignNum(BigDecimal.ZERO);
|
||||
outStockoutDetail.setStatus(0);
|
||||
outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail);
|
||||
if(ObjUtil.isNotNull(outStockoutDetail)){
|
||||
outStockoutDetail.setAllotNum(BigDecimal.ZERO);
|
||||
outStockoutDetail.setAssignNum(BigDecimal.ZERO);
|
||||
outStockoutDetail.setStatus(0);
|
||||
outStockoutDetailService.updateOutStockoutDetail(outStockoutDetail);
|
||||
}
|
||||
}
|
||||
|
||||
mydoJobService.insertMydoJobFinish(mydoJob.getJobId());
|
||||
mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId());
|
||||
|
||||
log.info("【账务处理-出库】任务作废,更新货位和库存信息,作业号:{}", mydoJob.getJobId());
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,55 @@ public class RequestWcsHandler {
|
||||
AjaxResult ajaxResult = apiWcsService.sendEmptyTrayOutMydoJob(paramMap);
|
||||
|
||||
if (ajaxResult.isSuccess()){
|
||||
log.info("【推送出库】<容器>出库,wms作业号:{},货位:{},托盘号:{}", mydoJob.getJobId(), mydoJob.getCargoSpaceId(), mydoJob.getTrayCode());
|
||||
log.info("【推送出库】<空容器>出库,wms作业号:{},货位:{},托盘号:{}", mydoJob.getJobId(), mydoJob.getCargoSpaceId(), mydoJob.getTrayCode());
|
||||
mydoJob.setStatus(TaskStatusEnum.RUNNING.getCode());
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
|
||||
//更新库存状态【占用中】
|
||||
List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(mydoJob.getTrayCode());
|
||||
for (BasStock stock : stocks) {
|
||||
stock.setStockStatus(BasStockCode.STOCK_STATUS_OCCUPIED);
|
||||
basStockService.updateBasStock(stock);
|
||||
}
|
||||
|
||||
//更新货位状态【出库预占用】
|
||||
basCargoSpaceService.updateBasCargoSpaceStatus(mydoJob.getCargoSpaceId(), mydoJob.getTrayCode(), CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKOUT);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 推送wcs带货容器出库作业
|
||||
*/
|
||||
@Scheduled(fixedRate = TIMEINTERVAL_2000)
|
||||
public void sendWcsContainerTask(){
|
||||
List<MydoJob> mydoJobs = mydoJobService.selectOutMydoJobList(
|
||||
new MydoJob().builder()
|
||||
.inOrOut(TaskType.TASKTYPE_STOCKOUT_CONTAINER)
|
||||
.status(TaskStatusEnum.READY.getCode())
|
||||
.build()
|
||||
);
|
||||
|
||||
if (mydoJobs.isEmpty()) return;
|
||||
|
||||
for (MydoJob mydoJob : mydoJobs) {
|
||||
|
||||
//初始化参数
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("reqCode", UUID.randomUUID().toString());//请求码
|
||||
paramMap.put("trayCode", mydoJob.getTrayCode());//容器编号
|
||||
paramMap.put("taskNo", mydoJob.getTaskNo());//容器编号
|
||||
paramMap.put("jobId", mydoJob.getJobId());
|
||||
paramMap.put("inOrOut", mydoJob.getInOrOut());
|
||||
paramMap.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
||||
|
||||
AjaxResult ajaxResult = apiWcsService.sendEmptyTrayOutMydoJob(paramMap);
|
||||
|
||||
if (ajaxResult.isSuccess()){
|
||||
log.info("【推送出库】<带货容器>出库,wms作业号:{},货位:{},托盘号:{}", mydoJob.getJobId(), mydoJob.getCargoSpaceId(), mydoJob.getTrayCode());
|
||||
mydoJob.setStatus(TaskStatusEnum.RUNNING.getCode());
|
||||
mydoJobService.updateMydoJob(mydoJob);
|
||||
|
||||
@@ -121,9 +169,11 @@ public class RequestWcsHandler {
|
||||
|
||||
//更新库存状态【占用中】
|
||||
List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(mydoJob.getTrayCode());
|
||||
for (BasStock stock : stocks) {
|
||||
stock.setStockStatus(BasStockCode.STOCK_STATUS_OCCUPIED);
|
||||
basStockService.updateBasStock(stock);
|
||||
if (!stocks.isEmpty()){
|
||||
for (BasStock stock : stocks) {
|
||||
stock.setStockStatus(BasStockCode.STOCK_STATUS_OCCUPIED);
|
||||
basStockService.updateBasStock(stock);
|
||||
}
|
||||
}
|
||||
|
||||
//更新货位状态【出库预占用】
|
||||
|
||||
@@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<include refid="selectBasCargoSpaceVo"/>
|
||||
<where>
|
||||
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
|
||||
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id = #{cargoSpaceId}</if>
|
||||
<if test="roadwayId != null and roadwayId != ''"> and roadway_id = #{roadwayId}</if>
|
||||
<if test="cargoAreaId != null and cargoAreaId != ''"> and cargo_area_id = #{cargoAreaId}</if>
|
||||
<if test="theType != null and theType != ''"> and the_type = #{theType}</if>
|
||||
@@ -64,6 +65,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</where>
|
||||
order by cargo_space_id asc
|
||||
</select>
|
||||
|
||||
<select id="selectBasCargoSpaceListForEmptyTray" parameterType="BasCargoSpace" resultMap="BasCargoSpaceResult">
|
||||
select bcs.cargo_space_id, bcs.warehouse_id, bcs.roadway_id, bcs.cargo_area_id, bcs.the_type, bcs.the_type_name,
|
||||
bcs.cargo_space_name, bcs.the_platoon, bcs.the_column, bcs.the_floor, bcs.status, bcs.locked, bcs.tray_code,
|
||||
bcs.iss_double, bcs.group_coding_no, bcs.group_coding, bcs.cargo_space_logo, bcs.this_cargo_area,
|
||||
bcs.dept_id, bcs.dept_name, bcs.the_weight, bcs.the_height,
|
||||
bs.product_id, bs.stock_status
|
||||
from bas_cargo_space bcs
|
||||
inner join bas_stock_detail bs on bs.cargo_space_id = bcs.cargo_space_id and bs.product_id = 'KTP0001' and bs.stock_status = '1'
|
||||
where
|
||||
bcs.cargo_area_id = #{cargoAreaId}
|
||||
and bcs.the_type = #{theType}
|
||||
and bcs.status = '2'
|
||||
and bcs.locked = 'N'
|
||||
order by bcs.iss_double asc, bcs.cargo_space_id asc
|
||||
</select>
|
||||
|
||||
<select id="selectBasCargoSpaceListForContainer" parameterType="BasCargoSpace" resultMap="BasCargoSpaceResult">
|
||||
select bcs.cargo_space_id, bcs.warehouse_id, bcs.roadway_id, bcs.cargo_area_id, bcs.the_type, bcs.the_type_name,
|
||||
bcs.cargo_space_name, bcs.the_platoon, bcs.the_column, bcs.the_floor, bcs.status, bcs.locked, bcs.tray_code,
|
||||
bcs.iss_double, bcs.group_coding_no, bcs.group_coding, bcs.cargo_space_logo, bcs.this_cargo_area,
|
||||
bcs.dept_id, bcs.dept_name, bcs.the_weight, bcs.the_height,
|
||||
bs.empty_status
|
||||
from bas_cargo_space bcs
|
||||
inner join bas_stock bs on bs.cargo_space_id = bcs.cargo_space_id
|
||||
where
|
||||
bcs.cargo_area_id = #{cargoAreaId}
|
||||
and bcs.the_type = #{theType}
|
||||
and bcs.status = '2'
|
||||
and bcs.locked = 'N'
|
||||
order by bcs.iss_double asc, bcs.cargo_space_id asc, bs.empty_status asc
|
||||
</select>
|
||||
|
||||
<select id="selectBasCargoSpaceByCargoSpaceId" parameterType="String" resultMap="BasCargoSpaceResult">
|
||||
<include refid="selectBasCargoSpaceVo"/>
|
||||
@@ -106,6 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<include refid="selectBasCargoSpaceVoTop1"/>
|
||||
<where>
|
||||
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
|
||||
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id = #{cargoSpaceId}</if>
|
||||
<if test="cargoAreaId != null and cargoAreaId != ''"> and cargo_area_id = #{cargoAreaId}</if>
|
||||
<if test="theTypeName != null and theTypeName != ''"> and the_type_name like concat('%', #{theTypeName}, '%')</if>
|
||||
<if test="cargoSpaceName != null and cargoSpaceName != ''"> and cargo_space_name like concat('%', #{cargoSpaceName}, '%')</if>
|
||||
@@ -134,6 +168,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<include refid="selectBasCargoSpaceVo"/>
|
||||
<where>
|
||||
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
|
||||
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id = #{cargoSpaceId}</if>
|
||||
<if test="cargoAreaId != null and cargoAreaId != ''"> and cargo_area_id = #{cargoAreaId}</if>
|
||||
<if test="theTypeName != null and theTypeName != ''"> and the_type_name like concat('%', #{theTypeName}, '%')</if>
|
||||
<if test="cargoSpaceName != null and cargoSpaceName != ''"> and cargo_space_name like concat('%', #{cargoSpaceName}, '%')</if>
|
||||
@@ -162,6 +197,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<include refid="selectBasCargoSpaceVoTop1"/>
|
||||
<where>
|
||||
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
|
||||
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id = #{cargoSpaceId}</if>
|
||||
<if test="cargoAreaId != null and cargoAreaId != ''"> and cargo_area_id = #{cargoAreaId}</if>
|
||||
<if test="theTypeName != null and theTypeName != ''"> and the_type_name like concat('%', #{theTypeName}, '%')</if>
|
||||
<if test="cargoSpaceName != null and cargoSpaceName != ''"> and cargo_space_name like concat('%', #{cargoSpaceName}, '%')</if>
|
||||
@@ -190,6 +226,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<include refid="selectBasCargoSpaceVo"/>
|
||||
<where>
|
||||
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
|
||||
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and cargo_space_id = #{cargoSpaceId}</if>
|
||||
<if test="cargoAreaId != null and cargoAreaId != ''"> and cargo_area_id = #{cargoAreaId}</if>
|
||||
<if test="theTypeName != null and theTypeName != ''"> and the_type_name like concat('%', #{theTypeName}, '%')</if>
|
||||
<if test="cargoSpaceName != null and cargoSpaceName != ''"> and cargo_space_name like concat('%', #{cargoSpaceName}, '%')</if>
|
||||
|
||||
@@ -74,6 +74,40 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="supplierName != null and supplierName != ''"> and bs.supplier_name like concat('%', #{supplierName}, '%')</if>
|
||||
${params.warehouseScope}
|
||||
</select>
|
||||
|
||||
<select id="selectBasStockListForEmptyTray" parameterType="BasStock" resultMap="BasStockResult">
|
||||
select bs.stock_id, bs.stock_detail_id, bs.cargo_space_id, bs.stock_status, bs.product_status,
|
||||
bs.lot_no, bs.in_date, bs.back_date, bs.product_id, bs.product_name,bs.roller_number,
|
||||
bs.quantity, bs.job_id, bs.job_detail_id, bs.tray_code, bs.out_quantity,
|
||||
bs.stockin_detail_id, bs.stockin_id, bs.in_type, bs.warehouse_id, bs.warehouse_name,
|
||||
bs.user_id, bs.user_name, bs.dept_id, bs.dept_name, bs.supplier_id, bs.supplier_name, bcs.iss_double, bcs.cargo_area_id, bcs.the_type
|
||||
from bas_stock_detail bs
|
||||
left join bas_cargo_space bcs on bs.cargo_space_id = bcs.cargo_space_id
|
||||
where
|
||||
bcs.status = '2' and
|
||||
bs.product_id = 'KTP0001' and
|
||||
bs.stock_status = '1'
|
||||
<if test="cargoSpaceId != null and cargoSpaceId != ''"> and bs.cargo_space_id = #{cargoSpaceId}</if>
|
||||
<if test="productStatus != null and productStatus != ''"> and bs.product_status = #{productStatus}</if>
|
||||
<if test="lotNo != null and lotNo != ''"> and bs.lot_no = #{lotNo}</if>
|
||||
<if test="params.beginInDate != null and params.beginInDate != '' and params.endInDate != null and params.endInDate != ''"> and bs.in_date between #{params.beginInDate} and #{params.endInDate}</if>
|
||||
<if test="params.beginBackDate != null and params.beginBackDate != '' and params.endBackDate != null and params.endBackDate != ''"> and bs.back_date between #{params.beginBackDate} and #{params.endBackDate}</if>
|
||||
<if test="productName != null and productName != ''"> and bs.product_name like concat('%', #{productName}, '%')</if>
|
||||
<if test="rollerNumber != null and rollerNumber != ''"> and bs.roller_number like concat('%', #{rollerNumber}, '%')</if>
|
||||
<if test="quantity != null "> and bs.quantity = #{quantity}</if>
|
||||
<if test="jobId != null and jobId != ''"> and bs.job_id = #{jobId}</if>
|
||||
<if test="jobDetailId != null and jobDetailId != ''"> and bs.job_detail_id = #{jobDetailId}</if>
|
||||
<if test="trayCode != null and trayCode != ''"> and bs.tray_code = #{trayCode}</if>
|
||||
<if test="outQuantity != null "> and bs.out_quantity = #{outQuantity}</if>
|
||||
<if test="stockinDetailId != null and stockinDetailId != ''"> and bs.stockin_detail_id = #{stockinDetailId}</if>
|
||||
<if test="stockinId != null and stockinId != ''"> and bs.stockin_id = #{stockinId}</if>
|
||||
<if test="inType != null and inType != ''"> and bs.in_type = #{inType}</if>
|
||||
<if test="warehouseName != null and warehouseName != ''"> and bs.warehouse_name like concat('%', #{warehouseName}, '%')</if>
|
||||
<if test="userName != null and userName != ''"> and bs.user_name like concat('%', #{userName}, '%')</if>
|
||||
<if test="deptName != null and deptName != ''"> and bs.dept_name like concat('%', #{deptName}, '%')</if>
|
||||
<if test="supplierName != null and supplierName != ''"> and bs.supplier_name like concat('%', #{supplierName}, '%')</if>
|
||||
ORDER BY bcs.iss_double asc, bcs.cargo_space_id asc
|
||||
</select>
|
||||
|
||||
<select id="selectBasStockByStockId" parameterType="String" resultMap="BasStockResult">
|
||||
<include refid="selectBasStockVo"/>
|
||||
|
||||
Reference in New Issue
Block a user