运行调整

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

View File

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

View File

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

View File

@@ -43,7 +43,7 @@ public class WcsServiceController extends BaseController {
@PostMapping("/stockoutByManual") @PostMapping("/stockoutByManual")
public AjaxResult stockoutByManual(@RequestBody Map<String, String> params) { public AjaxResult stockoutByManual(@RequestBody Map<String, String> params) {
AjaxResult ajaxResult = apiWcsService.stockoutByManual(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); requestLogService.insertRequestLog(requestLog);
return ajaxResult; return ajaxResult;
} }

View File

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

View File

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

View File

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

View File

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

View File

@@ -625,6 +625,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService
.stockQuantity(stock.getQuantity()) .stockQuantity(stock.getQuantity())
.outQuantity(BigDecimal.ZERO) .outQuantity(BigDecimal.ZERO)
.trayType(cargoCurrent.getTheType()) .trayType(cargoCurrent.getTheType())
.trayCode(mydoJob.getTrayCode())
.status(0) .status(0)
.inDate(stock.getInDate()) .inDate(stock.getInDate())
.rollerNumber(stock.getRollerNumber()) .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(); return AjaxResult.success();
} }

View File

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

View File

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

View File

@@ -93,7 +93,7 @@ public class RequestWcsHandler {
/** /**
* 推送wcs带货容器出库作业 * 推送wcs带货容器出库作业
*/ */
@Scheduled(fixedRate = TIMEINTERVAL_2000) // @Scheduled(fixedRate = TIMEINTERVAL_2000)
public void sendWcsContainerTask(){ public void sendWcsContainerTask(){
List<MydoJob> mydoJobs = mydoJobService.selectOutMydoJobList( List<MydoJob> mydoJobs = mydoJobService.selectOutMydoJobList(
new MydoJob().builder() new MydoJob().builder()
@@ -154,6 +154,14 @@ public class RequestWcsHandler {
if (mydoJobs.isEmpty()) return; 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) { for (MydoJob mydoJob : mydoJobs) {
//初始化参数 //初始化参数
@@ -204,6 +212,14 @@ public class RequestWcsHandler {
if (mydoJobs.isEmpty()) return; 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) { for (MydoJob mydoJob : mydoJobs) {
//初始化参数 //初始化参数
@@ -254,6 +270,14 @@ public class RequestWcsHandler {
if (mydoJobs.isEmpty()) return; 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){ for (MydoJob mydoJob : mydoJobs){
//初始化参数 //初始化参数
HashMap<String, Object> paramMap = new HashMap<>(); HashMap<String, Object> paramMap = new HashMap<>();
@@ -347,12 +371,12 @@ public class RequestWcsHandler {
/** /**
* 推送wcs移库任务 * 推送wcs移库任务
*/ */
@Scheduled(fixedRate = TIMEINTERVAL_2000) // @Scheduled(fixedRate = TIMEINTERVAL_2000)
public void sendWcsMoveTask(){ public void sendWcsMoveTask(){
List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList( List<MydoJob> mydoJobs = mydoJobService.selectMydoJobList(
new MydoJob().builder() new MydoJob().builder()
.status(TaskStatusEnum.READY.getCode()) .status(TaskStatusEnum.READY.getCode())
.inOrOut(TaskType.TASKTYPE_PICK_BACK) .inOrOut(TaskType.TASKTYPE_PICK_STOCK_MOVE)
.build() .build()
); );
@@ -372,7 +396,7 @@ public class RequestWcsHandler {
AjaxResult ajaxResult = apiWcsService.sendBackMydoJob(paramMap); AjaxResult ajaxResult = apiWcsService.sendBackMydoJob(paramMap);
if (ajaxResult.isSuccess()){ 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()); mydoJob.setStatus(TaskStatusEnum.RUNNING.getCode());
mydoJobService.updateMydoJob(mydoJob); 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="stockinId" column="stockin_id" />
<result property="stockinDetailId" column="stockin_detail_id" /> <result property="stockinDetailId" column="stockin_detail_id" />
<result property="productId" column="product_id" /> <result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="quantity" column="quantity" /> <result property="quantity" column="quantity" />
<result property="warehouseId" column="warehouse_id" /> <result property="warehouseId" column="warehouse_id" />
<result property="userId" column="user_id" /> <result property="userId" column="user_id" />
@@ -25,7 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap> </resultMap>
<sql id="selectInTrayMsgVo"> <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> </sql>
<select id="selectInTrayMsgList" parameterType="InTrayMsg" resultMap="InTrayMsgResult"> <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="stockinId != null and stockinId != ''"> and stockin_id = #{stockinId}</if>
<if test="stockinDetailId != null and stockinDetailId != ''"> and stockin_detail_id = #{stockinDetailId}</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="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="quantity != null "> and quantity = #{quantity}</if>
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if> <if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
<if test="userId != null "> and user_id = #{userId}</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="stockinId != null">stockin_id,</if>
<if test="stockinDetailId != null">stockin_detail_id,</if> <if test="stockinDetailId != null">stockin_detail_id,</if>
<if test="productId != null">product_id,</if> <if test="productId != null">product_id,</if>
<if test="productName != null">product_name,</if>
<if test="quantity != null">quantity,</if> <if test="quantity != null">quantity,</if>
<if test="warehouseId != null">warehouse_id,</if> <if test="warehouseId != null">warehouse_id,</if>
<if test="userId != null">user_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="stockinId != null">#{stockinId},</if>
<if test="stockinDetailId != null">#{stockinDetailId},</if> <if test="stockinDetailId != null">#{stockinDetailId},</if>
<if test="productId != null">#{productId},</if> <if test="productId != null">#{productId},</if>
<if test="productName != null">#{productName},</if>
<if test="quantity != null">#{quantity},</if> <if test="quantity != null">#{quantity},</if>
<if test="warehouseId != null">#{warehouseId},</if> <if test="warehouseId != null">#{warehouseId},</if>
<if test="userId != null">#{userId},</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="stockinId != null">stockin_id = #{stockinId},</if>
<if test="stockinDetailId != null">stockin_detail_id = #{stockinDetailId},</if> <if test="stockinDetailId != null">stockin_detail_id = #{stockinDetailId},</if>
<if test="productId != null">product_id = #{productId},</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="quantity != null">quantity = #{quantity},</if>
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if> <if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
<if test="userId != null">user_id = #{userId},</if> <if test="userId != null">user_id = #{userId},</if>