运行调整

This commit is contained in:
FT577-Server
2026-10-08 08:57:15 +08:00
parent c89e1cec7a
commit fc86389d66
14 changed files with 175 additions and 120 deletions

View File

@@ -318,11 +318,13 @@
this.items.push({
stockinDetailId: this.currentMaterial.stockinDetailId,
productId: this.currentMaterial.rollerNumber,
// productName: this.currentMaterial.productName,
productName: this.currentMaterial.productName,
rollerNumber: this.currentMaterial.rollerNumber,
length: this.currentMaterial.length,
perimeter: this.currentMaterial.perimeter,
// colorSequence: this.currentMaterial.colorSequence,
color: this.currentMaterial.color,
spec: this.currentMaterial.spec,
// color: this.currentMaterial.color,
// spec: this.currentMaterial.spec,
quantity: Number(this.currentQty)
})
// 清空当前扫码区,继续扫下一个
@@ -355,10 +357,13 @@
return {
stockinDetailId: i.stockinDetailId,
productId: i.rollerNumber,
productName: i.productName,
rollerNumber: i.rollerNumber,
colorSequence: i.colorSequence,
color: i.color,
spec: i.spec,
length: i.length,
perimeter: i.perimeter,
// colorSequence: i.colorSequence,
// color: i.color,
// spec: i.spec,
quantity: i.quantity
}
})

View File

@@ -28,7 +28,7 @@
<uni-icons type="right" size="18" color="#ccc"></uni-icons>
</view>
<view class="menu-card" @click="navigateTo('/pages/warehouse/outbound/trayConfirmManual')">
<!-- <view class="menu-card" @click="navigateTo('/pages/warehouse/outbound/trayConfirmManual')">
<view class="card-left">
<view class="card-icon red">
<uni-icons type="checkmarkempty" size="24" color="#fff"></uni-icons>
@@ -39,7 +39,7 @@
</view>
</view>
<uni-icons type="right" size="18" color="#ccc"></uni-icons>
</view>
</view> -->
<view class="menu-card" @click="navigateTo('/pages/warehouse/outbound/container')">
<view class="card-left">

View File

@@ -57,6 +57,7 @@
<!-- 操作按钮 -->
<view class="btn-section" >
<button class="btn btn-blue" v-if="outboundList" @click="handleBarcode">查询</button>
<button class="btn btn-orange" v-if="outboundList" @click="stockoutComplete">托盘确认出库</button>
<button class="btn btn-green" v-if="outboundList" @click="stockoutCompleteAll">一键确认出库</button>
<button class="btn btn-default" @click="resetForm">重置</button>
@@ -437,6 +438,11 @@
margin-bottom: 20rpx;
}
.btn-blue {
background: #1da6fa;
color: #fff;
}
.btn-orange {
background: #fa8c16;
color: #fff;

View File

@@ -43,7 +43,7 @@ public class WcsServiceController extends BaseController {
@PostMapping("/stockoutByManual")
public AjaxResult stockoutByManual(@RequestBody Map<String, String> params) {
AjaxResult ajaxResult = apiWcsService.stockoutByManual(params);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(params), "创建入库任务请求", ajaxResult);
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(params), "手动指定货位出库", ajaxResult);
requestLogService.insertRequestLog(requestLog);
return ajaxResult;
}

View File

@@ -252,7 +252,7 @@ public class ApiErpService implements IApiErpService {
// outStockoutService.autoAssignOutStockout(stockoutId);
outStockoutService.autoAssignOutStockoutByErpBill(docNo);
log.info("【ERP推送出库】出库单据已经执行自动分配, 单据号:{}", docNo);
log.info("【ERP推送出库】出库单据执行自动分配, 单据号:{}", docNo);
return AjaxResult.success("操作成功,erp下发出库单据号:" + docNo);

View File

@@ -89,14 +89,14 @@ public class ApiWcsService implements IApiWcsService {
//获取立库区域和托盘类型
List<BasCargoSpace> basCargoSpaceEmptyTray = basCargoSpaceService.selectBasCargoSpaceListForEmptyTray(
new BasCargoSpace().builder().cargoAreaId(cargoAreaId).theType(type).build()
new BasCargoSpace().builder().cargoAreaId(cargoAreaId).theType(type).status(CargoSpaceCode.CARGOSPACE_STATUS_OCCUPIED).build()
);
// List<BasCargoSpace> basCargoSpaceContainer = basCargoSpaceService.selectBasCargoSpaceListForContainer(
// new BasCargoSpace().builder().cargoAreaId(cargoAreaId).theType(type).build()
// );
if (basCargoSpaceEmptyTray.isEmpty()) {
log.info("【呼叫容器】空容器呼叫失败,无可用的空容器库存");
log.info("【呼叫容器】空容器呼叫失败,无可用的空容器库存,呼叫区域:{},呼叫托盘类型:{}", cargoAreaId, type);
//todo 此处可查存放库存较少的托盘出库
}else{
@@ -190,9 +190,9 @@ public class ApiWcsService implements IApiWcsService {
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;
}
// if (stockInfo.getEmptyStatus() > 0){
// taskType = TaskType.TASKTYPE_STOCKOUT_CONTAINER;
// }
MydoJob mydoJob = new MydoJob().builder()
.jobId(jobId)
@@ -206,9 +206,11 @@ public class ApiWcsService implements IApiWcsService {
.warehouseId("01")
.build();
mydoJobService.insertMydoJob(mydoJob);
}
return AjaxResult.success();
log.info("【呼叫空托】生成空托盘出库作业,作业号:{},托盘号:{},出库货位:{}", jobId, cargoSpaceCurrent.getTrayCode(), cargoSpaceCurrent.getCargoSpaceId());
return AjaxResult.success();
}
}
@@ -251,7 +253,7 @@ public class ApiWcsService implements IApiWcsService {
List<InTrayMsg> trayMsgs = inTrayMsgService.selectInTrayMsgList(
new InTrayMsg().builder().trayCode(wcsStockinReiceive.getTrayCode()).build()
);
if (trayMsgs.size() == 0){
if (trayMsgs.isEmpty()){
log.warn("【入库请求】未找到该托盘的绑定信息,请确认是否有绑定操作,托盘条码:{}", wcsStockinReiceive.getTrayCode());
return AjaxResult.error("未找到该托盘的绑定信息,请确认是否有绑定操作");
}
@@ -442,8 +444,11 @@ public class ApiWcsService implements IApiWcsService {
// return AjaxResult.error("该货位已被其它任务预占用,请等待任务执行完成后重试");
// }
MydoJob job = mydoJobService.selectMydoJobByTrayCode(cargoSpace.getTrayCode());
if (ObjUtil.isNull(job)){
// MydoJob job = mydoJobService.selectMydoJobBy(cargoSpace.getTrayCode());
List<MydoJob> jobs = mydoJobService.selectMydoJobList(
new MydoJob().builder().cargoSpaceId(cargoSpaceId).build()
);
if (jobs.isEmpty()){
String jobId = basJobIdService.getId(JobIdType.MYDOJOB_STOCKOUT_MANUAL);
String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKOUT);
@@ -500,6 +505,8 @@ public class ApiWcsService implements IApiWcsService {
return AjaxResult.success();
}
}else{
log.info("【wms指定出库】<指定货位出库>操作失败,已经存在当前货位的出库任务,出库货位:{}", cargoSpaceId);
}
return AjaxResult.error();
@@ -884,7 +891,7 @@ public class ApiWcsService implements IApiWcsService {
*/
@Override
public AjaxResult cancelWcsMydoJob(Map<String, Object> param){
RequestLog requestLog = requestLogService.getRequestLog(WcsUrl.PUSH_OUT_MYDO_JOB, JSONUtil.toJsonStr(param), "wcs手动作废作业");
RequestLog requestLog = requestLogService.getRequestLog(WcsUrl.CANCEL_WCS_MYDOJOB, JSONUtil.toJsonStr(param), "wcs手动作废作业");
requestLog.setResponseBody(JSONUtil.toJsonStr(AjaxResult.success()));
requestLog.setResponseStatus("0");
requestLog.setIsSuccessful("1");

View File

@@ -95,20 +95,20 @@ public class BasStockInfoServiceImpl implements IBasStockInfoService
{
BasStockInfo oldBasStockInfo = basStockInfoMapper.selectBasStockInfoByStockId(basStockInfo.getStockId());
int i = basStockInfoMapper.updateBasStockInfo(basStockInfo);
if (i>0 && oldBasStockInfo != null){
LoginUser loginUser = SecurityUtils.getLoginUser();
SysDept sysDept = sysDeptMapper.selectDeptById(loginUser.getDeptId());
BasStockOperRecord basStockOperRecord = new BasStockOperRecord();
basStockOperRecord.setStockId(basStockInfo.getStockId());
basStockOperRecord.setCargoSpaceId(basStockInfo.getCargoSpaceId());
basStockOperRecord.setUserId(loginUser.getUserId());
basStockOperRecord.setUserName(loginUser.getUsername());
basStockOperRecord.setDeptId(loginUser.getDeptId());
basStockOperRecord.setDeptName(sysDept.getDeptName());
basStockOperRecord.setCreateTime(DateUtils.getNowDate());
//basStockOperRecord.setCargoSpaceName(oldBasStock.getCargoSpaceName());
basStockOperRecordMapper.insertBasStockOperRecord(basStockOperRecord);
}
// if (i>0 && oldBasStockInfo != null){
// LoginUser loginUser = SecurityUtils.getLoginUser();
// SysDept sysDept = sysDeptMapper.selectDeptById(loginUser.getDeptId());
// BasStockOperRecord basStockOperRecord = new BasStockOperRecord();
// basStockOperRecord.setStockId(basStockInfo.getStockId());
// basStockOperRecord.setCargoSpaceId(basStockInfo.getCargoSpaceId());
// basStockOperRecord.setUserId(loginUser.getUserId());
// basStockOperRecord.setUserName(loginUser.getUsername());
// basStockOperRecord.setDeptId(loginUser.getDeptId());
// basStockOperRecord.setDeptName(sysDept.getDeptName());
// basStockOperRecord.setCreateTime(DateUtils.getNowDate());
// //basStockOperRecord.setCargoSpaceName(oldBasStock.getCargoSpaceName());
// basStockOperRecordMapper.insertBasStockOperRecord(basStockOperRecord);
// }
return i;
}

View File

@@ -352,10 +352,10 @@ public class MydoJobServiceImpl implements IMydoJobService
List<InTrayMsg> inTrayMsgs = inTrayMsgService.selectInTrayMsgList(
new InTrayMsg().builder().trayCode(mydoJob.getTrayCode()).build()
);
if (inTrayMsgs.isEmpty()){
log.warn("【任务完成】查不到该作业对应的托盘绑定信息,请检查绑定状态,任务号:" + jobId);
return AjaxResult.error("查不到该作业对应的托盘绑定信息,请检查绑定状态");
}
// if (inTrayMsgs.isEmpty()){
// log.warn("【任务完成】查不到该作业对应的托盘绑定信息,请检查绑定状态,任务号:" + jobId);
// return AjaxResult.error("查不到该作业对应的托盘绑定信息,请检查绑定状态");
// }
//子任务
List<MydoJobDetail> details = mydoJobDetailService.selectMydoJobDetailByJobId(jobId);
@@ -431,7 +431,7 @@ public class MydoJobServiceImpl implements IMydoJobService
}
inTrayMsgService.deleteInTrayMsgByRollerNumber(inTrayMsg.getRollerNumber());
log.info("【账务处理】新增库存明细,移除库存辊号入库绑定信息,作业号:{},库存编号:{},辊号:{}", jobId, stockId, detail.getRollerNumber());
log.info("【账务处理】新增库存明细,移除版辊入库绑定信息,作业号:{},库存编号:{},辊号:{}", jobId, stockId, detail.getRollerNumber());
//更新实际数量 = 当前入库数量
InStockinDetail inStockinDetail = instockinDetailService.selectInStockinDetailByRollerNumber(detail.getRollerNumber());
@@ -573,17 +573,20 @@ public class MydoJobServiceImpl implements IMydoJobService
}
//--------------------处理库存信息--------------------
basStockService.deleteBasStockByTrayCode(mydoJob.getTrayCode());
basStockInfoService.deleteBasStockInfoByTrayCode(mydoJob.getTrayCode());
log.info("【账务处理-手动出库】移除托盘和版辊库存,作业号:{},货位编号:{},托盘号:{}", jobId, mydoJob.getCargoSpaceId(), mydoJob.getTrayCode());
//移除指定辊号的库存信息
for (MydoJobDetail detail : details){
//移除指定辊号的库存明细
basStockService.deleteBasStockByRollerNumber(detail.getRollerNumber());
//如果条码没有库存明细,则移除主表信息
if (basStockService.selectBasStockListByTrayCode(mydoJob.getTrayCode()).size() == 0){
basStockInfoService.deleteBasStockInfoByTrayCode(mydoJob.getTrayCode());
}
}
// for (MydoJobDetail detail : details){
//
// //移除指定辊号的库存明细
// basStockService.deleteBasStockByRollerNumber(detail.getRollerNumber());
// //如果条码没有库存明细,则移除主表信息
// if (basStockService.selectBasStockListByTrayCode(mydoJob.getTrayCode()).size() == 0){
// basStockInfoService.deleteBasStockInfoByTrayCode(mydoJob.getTrayCode());
// }
//
// }
//--------------------更新货位状态--------------------
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
@@ -710,7 +713,7 @@ public class MydoJobServiceImpl implements IMydoJobService
//3.移除当前托盘的绑定信息
inTrayMsgService.deleteInTrayMsgByTrayCode(mydoJob.getTrayCode());
log.info("【账务处理-空托盘出库】移除任务数据,生成历史记录,作业号:{},托盘号:{}", jobId, mydoJob.getTrayCode());
log.info("【账务处理-空托盘】移除任务数据,生成历史记录,作业号:{},托盘号:{}", jobId, mydoJob.getTrayCode());
return AjaxResult.success();

View File

@@ -625,6 +625,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService
.stockQuantity(stock.getQuantity())
.outQuantity(BigDecimal.ZERO)
.trayType(cargoCurrent.getTheType())
.trayCode(mydoJob.getTrayCode())
.status(0)
.inDate(stock.getInDate())
.rollerNumber(stock.getRollerNumber())
@@ -644,7 +645,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService
}
log.info("【出库单据分配】分配成功,单据号:{}", details.get(0).getStockoutId());
log.info("【出库单据分配】已尝试执行分配操作,单据号:{}", details.get(0).getStockoutId());
return AjaxResult.success();
}

View File

@@ -469,7 +469,8 @@ public class PdaController extends BaseController {
@PostMapping("/stockoutTrayCodeCompleteManual")
@PreAuthorize("@ss.hasPermi('out:bound:task:info')")
public AjaxResult stockoutTrayCodeCompleteManual(String trayCode) {
return pdaService.stockoutTrayCodeCompleteManual(trayCode);
// return pdaService.stockoutTrayCodeCompleteManual(trayCode);
return AjaxResult.error("手动出库目前不支持确认操作");
}

View File

@@ -177,10 +177,12 @@ public class PdaStockoutController extends BaseController {
@PostMapping("/stockoutTrayCodeCompleteManual")
@PreAuthorize("@ss.hasPermi('out:bound:task:info')")
public AjaxResult stockoutTrayCodeCompleteManual(String trayCode) {
return pdaService.stockoutTrayCodeCompleteManual(trayCode);
// return pdaService.stockoutTrayCodeCompleteManual(trayCode);
return AjaxResult.error("手动出库目前不支持确认操作");
}
/**
* 【手动指定出库】出库确认 - 托盘号查询 - 仅查询托盘上出库单中包含的版辊信息
* @param trayCode 托盘号

View File

@@ -130,7 +130,7 @@ public class PdaServiceImpl implements IPdaService {
}
/**
* 入库绑盘(一托多料)
* 入库绑盘(一托多料) - 已弃用
*/
@Override
public String bindTray(BindTrayRequest request) {
@@ -151,7 +151,7 @@ public class PdaServiceImpl implements IPdaService {
/**
* 绑定托盘信息(单托盘)
* 绑定托盘信息(单托盘) - 已弃用
* @param bindTrayMsg 绑盘请求体,包含托盘号和物料明细列表
* @return
*/
@@ -317,7 +317,7 @@ public class PdaServiceImpl implements IPdaService {
new InTrayMsg().builder()
.trayCode(trayCode)
.productId(item.getProductId())
.productName(item.getProductName())
.productName(detail.getProductName())
.quantity(item.getQuantity())
.rollerNumber(item.getRollerNumber())
.stockinId(detail.getStockinId())
@@ -337,7 +337,7 @@ public class PdaServiceImpl implements IPdaService {
detail.setScanNum(BigDecimal.valueOf(1));
inStockinDetailService.updateInStockinDetail(detail);
log.info("【绑定信息】<常规入库>操作成功,生成绑定信息,更新子单已扫码数量,辊号:{},托盘号:{}",item.getRollerNumber(), bindTrayMsg.getTrayCode());
log.info("【绑定信息】<常规入库>操作成功,生成绑定信息,更新子单已扫码数量,辊号:{},托盘号:{},物料名称:{}",item.getRollerNumber(), bindTrayMsg.getTrayCode(), item.getProductName());
}
@@ -532,6 +532,7 @@ public class PdaServiceImpl implements IPdaService {
new InTrayMsg().builder()
.trayCode(request.getTrayCode())
.productId(ProductType.EMPTY_TRAY)
.productName("空托盘")
.rollerNumber(ProductType.EMPTY_TRAY)
.quantity(BigDecimal.valueOf(1))
.warehouseId("01")
@@ -840,63 +841,63 @@ public class PdaServiceImpl implements IPdaService {
//>>>>>>>>>>>>>>>>>>>>>>> 生成回流 <<<<<<<<<<<<<<<<<<<<<<<<
//>>>>>>>>>>>>>>>>>>>>>>> 生成回流 <<<<<<<<<<<<<<<<<<<<<<<<
//获取托盘剩余库存
List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(trayCode);
int trayType = mydoJobService.getTrayTypeByTrayCode(trayCode);
//检查当前条码是否已经生成作业
MydoJob mydoJob = mydoJobService.selectMydoJobByTrayCode(trayCode);
if (ObjUtil.isEmpty(mydoJob)) {
String jobId = basJobIdService.getId(JobIdType.MYDOJOB_PICK_RETURN);
String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKIN_BACK);
int taskType = TaskType.TASKTYPE_PICK_BACK;
//--------------------------- 入库货位分配 ---------------------------
//区分高矮货,只能在堆垛机上获取货物高度,高货位可放全部高度的托盘
BasCargoSpace cargoParam;
String cargoAreaId = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()).getCargoAreaId();
if (trayType == 1){
//1500*1200 低货位380H - 不限制高度
cargoParam = new BasCargoSpace().builder().theType(trayType).cargoAreaId(cargoAreaId).build();
}else if (trayType == 2){
//1500*1200 高货位510H - 只能放指定层高的货位
cargoParam = new BasCargoSpace().builder().theType(trayType).cargoAreaId(cargoAreaId).theHeight(510).build();
}else{
//1500*1350 通用货位510H - 货区3任意层数
cargoParam = new BasCargoSpace().builder().theType(trayType).cargoAreaId(cargoAreaId).build();
}
if (cargoParam == null) {
log.warn("【货位分配】该类型托盘立库中无可用货位");
return AjaxResult.error("【货位分配失败】该类型托盘立库中无可用货位");
}
BasCargoSpace cargoStockin = basCargoSpaceService.selectBasCargoSpaceForStockin(cargoParam);
//>>>生成wms的入库主作业
MydoJob mydoJobBack = new MydoJob().builder()
.jobId(jobId)
.taskNo(taskNo)
.status(TaskStatusEnum.READY.getCode())
.warehouseId(cargoStockin.getWarehouseId())
.warehouseName("立体库")
.executionPhase("0")
.inOrOut(taskType)
.trayCode(trayCode)
// .entranceId(wcsStockinReiceive.getEntranceId())
.roadwayId(cargoStockin.getRoadwayId())
.cargoSpaceId(cargoStockin.getCargoSpaceId())
.cargoSpaceName(cargoStockin.getCargoSpaceName())
.trayType(trayType)
.build();
mydoJobService.insertMydoJob(mydoJobBack);
log.info("【wms手动出库回流】<回流入库>作业,作业号:{},任务号:{},托盘号:{},分配货位:{}",mydoJobBack.getJobId() ,mydoJobBack.getTaskNo() ,mydoJobBack.getTrayCode(), cargoStockin.getCargoSpaceId());
return AjaxResult.success("确认成功");
}else{
log.info("【提示】<回流入库>wms已存在该条码作业,请确认该条码的任务状态后重试,托盘号:{}",mydoJob.getTrayCode());
}
// List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(trayCode);
// int trayType = mydoJobService.getTrayTypeByTrayCode(trayCode);
// //检查当前条码是否已经生成作业
// MydoJob mydoJob = mydoJobService.selectMydoJobByTrayCode(trayCode);
//
// if (ObjUtil.isEmpty(mydoJob)) {
//
// String jobId = basJobIdService.getId(JobIdType.MYDOJOB_PICK_RETURN);
// String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKIN_BACK);
// int taskType = TaskType.TASKTYPE_PICK_BACK;
//
// //--------------------------- 入库货位分配 ---------------------------
// //区分高矮货,只能在堆垛机上获取货物高度,高货位可放全部高度的托盘
// BasCargoSpace cargoParam;
// String cargoAreaId = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(job.getCargoSpaceId()).getCargoAreaId();
// if (trayType == 1){
// //1500*1200 低货位380H - 不限制高度
// cargoParam = new BasCargoSpace().builder().theType(trayType).cargoAreaId(cargoAreaId).build();
// }else if (trayType == 2){
// //1500*1200 高货位510H - 只能放指定层高的货位
// cargoParam = new BasCargoSpace().builder().theType(trayType).cargoAreaId(cargoAreaId).theHeight(510).build();
// }else{
// //1500*1350 通用货位510H - 货区3任意层数
// cargoParam = new BasCargoSpace().builder().theType(trayType).cargoAreaId(cargoAreaId).build();
// }
//
// if (cargoParam == null) {
// log.warn("【货位分配】该类型托盘立库中无可用货位");
// return AjaxResult.error("【货位分配失败】该类型托盘立库中无可用货位");
// }
//
// BasCargoSpace cargoStockin = basCargoSpaceService.selectBasCargoSpaceForStockin(cargoParam);
//
// //>>>生成wms的入库主作业
// MydoJob mydoJobBack = new MydoJob().builder()
// .jobId(jobId)
// .taskNo(taskNo)
// .status(TaskStatusEnum.READY.getCode())
// .warehouseId(cargoStockin.getWarehouseId())
// .warehouseName("立体库")
// .executionPhase("0")
// .inOrOut(taskType)
// .trayCode(trayCode)
//// .entranceId(wcsStockinReiceive.getEntranceId())
// .roadwayId(cargoStockin.getRoadwayId())
// .cargoSpaceId(cargoStockin.getCargoSpaceId())
// .cargoSpaceName(cargoStockin.getCargoSpaceName())
// .trayType(trayType)
// .build();
//
// mydoJobService.insertMydoJob(mydoJobBack);
// log.info("【wms手动出库回流】<回流入库>作业,作业号:{},任务号:{},托盘号:{},分配货位:{}",mydoJobBack.getJobId() ,mydoJobBack.getTaskNo() ,mydoJobBack.getTrayCode(), cargoStockin.getCargoSpaceId());
//
// return AjaxResult.success("确认成功");
// }else{
// log.info("【提示】<回流入库>wms已存在该条码作业,请确认该条码的任务状态后重试,托盘号:{}",mydoJob.getTrayCode());
// }
return AjaxResult.success("确认失败");

View File

@@ -93,7 +93,7 @@ public class RequestWcsHandler {
/**
* 推送wcs带货容器出库作业
*/
@Scheduled(fixedRate = TIMEINTERVAL_2000)
// @Scheduled(fixedRate = TIMEINTERVAL_2000)
public void sendWcsContainerTask(){
List<MydoJob> mydoJobs = mydoJobService.selectOutMydoJobList(
new MydoJob().builder()
@@ -154,6 +154,14 @@ public class RequestWcsHandler {
if (mydoJobs.isEmpty()) return;
List<MydoJob> moveJobs = mydoJobService.selectMydoJobList(
new MydoJob().builder()
.inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE)
.build()
);
if (!moveJobs.isEmpty()) return;
for (MydoJob mydoJob : mydoJobs) {
//初始化参数
@@ -204,6 +212,14 @@ public class RequestWcsHandler {
if (mydoJobs.isEmpty()) return;
List<MydoJob> moveJobs = mydoJobService.selectMydoJobList(
new MydoJob().builder()
.inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE)
.build()
);
if (!moveJobs.isEmpty()) return;
for (MydoJob mydoJob : mydoJobs) {
//初始化参数
@@ -254,6 +270,14 @@ public class RequestWcsHandler {
if (mydoJobs.isEmpty()) return;
List<MydoJob> moveJobs = mydoJobService.selectMydoJobList(
new MydoJob().builder()
.inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE)
.build()
);
if (!moveJobs.isEmpty()) return;
for (MydoJob mydoJob : mydoJobs){
//初始化参数
HashMap<String, Object> paramMap = new HashMap<>();
@@ -347,12 +371,12 @@ public class RequestWcsHandler {
/**
* 推送wcs移库任务
*/
@Scheduled(fixedRate = TIMEINTERVAL_2000)
// @Scheduled(fixedRate = TIMEINTERVAL_2000)
public void sendWcsMoveTask(){
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(
new MydoJob().builder()
.status(TaskStatusEnum.READY.getCode())
.inOrOut(TaskType.TASKTYPE_PICK_BACK)
.inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE)
.build()
);
@@ -372,7 +396,7 @@ public class RequestWcsHandler {
AjaxResult ajaxResult = apiWcsService.sendBackMydoJob(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);

View File

@@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="stockinId" column="stockin_id" />
<result property="stockinDetailId" column="stockin_detail_id" />
<result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="quantity" column="quantity" />
<result property="warehouseId" column="warehouse_id" />
<result property="userId" column="user_id" />
@@ -25,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectInTrayMsgVo">
select id, tray_code, stockin_detail_id, product_id, quantity, warehouse_id, user_id, dept_id, create_time, tray_type, roller_number, color_sequence, color, length, perimeter, status from in_tray_msg
select id, tray_code, stockin_detail_id, product_id, product_name, quantity, warehouse_id, user_id, dept_id, create_time, tray_type, roller_number, color_sequence, color, length, perimeter, status from in_tray_msg
</sql>
<select id="selectInTrayMsgList" parameterType="InTrayMsg" resultMap="InTrayMsgResult">
@@ -35,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="stockinId != null and stockinId != ''"> and stockin_id = #{stockinId}</if>
<if test="stockinDetailId != null and stockinDetailId != ''"> and stockin_detail_id = #{stockinDetailId}</if>
<if test="productId != null and productId != ''"> and product_id = #{productId}</if>
<if test="productName != null and productName != ''"> and product_name = #{productName}</if>
<if test="quantity != null "> and quantity = #{quantity}</if>
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
<if test="userId != null "> and user_id = #{userId}</if>
@@ -72,6 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="stockinId != null">stockin_id,</if>
<if test="stockinDetailId != null">stockin_detail_id,</if>
<if test="productId != null">product_id,</if>
<if test="productName != null">product_name,</if>
<if test="quantity != null">quantity,</if>
<if test="warehouseId != null">warehouse_id,</if>
<if test="userId != null">user_id,</if>
@@ -90,6 +93,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="stockinId != null">#{stockinId},</if>
<if test="stockinDetailId != null">#{stockinDetailId},</if>
<if test="productId != null">#{productId},</if>
<if test="productName != null">#{productName},</if>
<if test="quantity != null">#{quantity},</if>
<if test="warehouseId != null">#{warehouseId},</if>
<if test="userId != null">#{userId},</if>
@@ -112,6 +116,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="stockinId != null">stockin_id = #{stockinId},</if>
<if test="stockinDetailId != null">stockin_detail_id = #{stockinDetailId},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="productName != null">product_name = #{productName},</if>
<if test="quantity != null">quantity = #{quantity},</if>
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
<if test="userId != null">user_id = #{userId},</if>