盘点账务处理优化

This commit is contained in:
FT577-Server
2026-10-29 11:36:03 +08:00
parent d93171007e
commit e9a19f84e8
2 changed files with 55 additions and 21 deletions

View File

@@ -428,6 +428,7 @@ public class MydoJobServiceImpl implements IMydoJobService
stock.setStockStatus(BasStockCode.STOCK_STATUS_AVAILABLE); stock.setStockStatus(BasStockCode.STOCK_STATUS_AVAILABLE);
stock.setJobId(detail.getJobId()); stock.setJobId(detail.getJobId());
stock.setJobDetailId(detail.getJobDetailId()); stock.setJobDetailId(detail.getJobDetailId());
stock.setBackDate(DateUtil.date());
basStockService.updateBasStock(stock); basStockService.updateBasStock(stock);
} }
@@ -537,6 +538,7 @@ public class MydoJobServiceImpl implements IMydoJobService
List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(mydoJob.getTrayCode()); List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(mydoJob.getTrayCode());
for (BasStock stock : stocks){ for (BasStock stock : stocks){
stock.setCargoSpaceId(mydoJob.getCargoSpaceId()); stock.setCargoSpaceId(mydoJob.getCargoSpaceId());
stock.setBackDate(DateUtil.date());
basStockService.updateBasStock(stock); basStockService.updateBasStock(stock);
} }
@@ -578,24 +580,10 @@ public class MydoJobServiceImpl implements IMydoJobService
// return AjaxResult.error("查不到该作业对应的子单明细,请检查子单状态"); // return AjaxResult.error("查不到该作业对应的子单明细,请检查子单状态");
// } // }
//--------------------处理库存信息--------------------
// basStockService.deleteBasStockByTrayCode(mydoJob.getTrayCode());
// basStockInfoService.deleteBasStockInfoByTrayCode(mydoJob.getTrayCode());
basStockService.deleteBasStockByCargoSpaceId(mydoJob.getCargoSpaceId()); basStockService.deleteBasStockByCargoSpaceId(mydoJob.getCargoSpaceId());
basStockInfoService.deleteBasStockInfoByCargoSpaceId(mydoJob.getCargoSpaceId()); basStockInfoService.deleteBasStockInfoByCargoSpaceId(mydoJob.getCargoSpaceId());
log.info("【账务处理-手动出库】移除托盘和版辊库存,作业号:{},货位编号:{},托盘号:{}", jobId, mydoJob.getCargoSpaceId(), 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());
// }
//
// }
//--------------------更新货位状态-------------------- //--------------------更新货位状态--------------------
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId()); BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
@@ -635,6 +623,46 @@ public class MydoJobServiceImpl implements IMydoJobService
} }
//>>>>>>>>>>>>>>>>>>>>> 盘点回流入库 <<<<<<<<<<<<<<<<<<<<<<<<
//>>>>>>>>>>>>>>>>>>>>> 盘点回流入库 <<<<<<<<<<<<<<<<<<<<<<<<
//>>>>>>>>>>>>>>>>>>>>> 盘点回流入库 <<<<<<<<<<<<<<<<<<<<<<<<
if (type == TaskType.TASKTYPE_INVENTORY_BACK){
List<BasStock> stocks = basStockService.selectBasStockListByTrayCode(mydoJob.getTrayCode());
if (!stocks.isEmpty()){
int num = 1;
for (BasStock stock : stocks){
stock.setStockStatus(BasStockCode.STOCK_STATUS_AVAILABLE);
stock.setJobId(mydoJob.getJobId());
stock.setJobDetailId(mydoJob.getJobId() + num++);
stock.setBackDate(DateUtil.date());
basStockService.updateBasStock(stock);
log.info("【账务处理-盘点回流】更新版辊库存状态<正常>,辊号:{},作业号:{},货位:{},托盘号:{}", stock.getProductId(), jobId, mydoJob.getCargoSpaceId(), mydoJob.getTrayCode());
}
}
//--------------------更新货位状态--------------------
BasCargoSpace cargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
basCargoSpaceService.updateBasCargoSpaceStatus(cargoSpace.getCargoSpaceId(), mydoJob.getTrayCode(), CargoSpaceCode.CARGOSPACE_STATUS_OCCUPIED);
log.info("【账务处理-盘点回流】更新货位状态<占用>,作业号:{},货位编号:{},托盘号:{}", jobId, cargoSpace.getCargoSpaceId(), mydoJob.getTrayCode());
//--------------------处理任务表和子任务表--------------------
//1.更新任务主表状态并移除作业
mydoJob.setStatus(TaskStatusEnum.AUTO_FINISHED.getCode());
mydoJob.setFinishTime(DateUtil.now());
updateMydoJob(mydoJob);
deleteMydoJobByJobId(jobId);
//2.并移除所有子作业
// mydoJobDetailService.insertMydoJobDetailsForJobFinish(jobId);
// mydoJobDetailService.deleteMydoJobDetailsByJobId(jobId);
log.info("【账务处理-盘点回流】入库完成,等待确认,作业号:{},托盘号:{}", jobId, mydoJob.getTrayCode());
return AjaxResult.success();
}
return AjaxResult.error(); return AjaxResult.error();
} }

View File

@@ -1,5 +1,6 @@
package com.ruoyi.pda.service.impl; package com.ruoyi.pda.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@@ -46,6 +47,7 @@ import com.ruoyi.pda.service.IPdaService;
import io.swagger.v3.oas.annotations.parameters.RequestBody; import io.swagger.v3.oas.annotations.parameters.RequestBody;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
@@ -1157,12 +1159,16 @@ public class PdaServiceImpl implements IPdaService {
String jobId = basJobIdService.getId(JobIdType.JOB_MANUAL_LIST_INVENTORY_STOCKIN); String jobId = basJobIdService.getId(JobIdType.JOB_MANUAL_LIST_INVENTORY_STOCKIN);
String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKIN_INVENTORY); String taskNo = basTaskNoService.getTaskNo(TaskIdType.TASK_STOCKIN_INVENTORY);
mydoJob.setJobId(jobId); //移除盘点出库作业
mydoJob.setTaskNo(taskNo); mydoJobService.deleteMydoJobByJobId(mydoJob.getJobId());
mydoJob.setStatus(TaskStatusEnum.READY.getCode());
mydoJob.setExecutionPhase("0"); MydoJob mydojobBack = BeanUtil.copyProperties(mydoJob, MydoJob.class);
mydoJob.setInOrOut(TaskType.TASKTYPE_INVENTORY_BACK); mydojobBack.setJobId(jobId);
mydoJobService.updateMydoJob(mydoJob); mydojobBack.setTaskNo(taskNo);
mydojobBack.setStatus(TaskStatusEnum.READY.getCode());
mydojobBack.setExecutionPhase("0");
mydojobBack.setInOrOut(TaskType.TASKTYPE_INVENTORY_BACK);
mydoJobService.insertMydoJob(mydojobBack);
log.warn("【盘点出库确认】确认完成,生成盘点回库任务,等待执行中,作业号:{},托盘号:{}", jobId, trayCode); log.warn("【盘点出库确认】确认完成,生成盘点回库任务,等待执行中,作业号:{},托盘号:{}", jobId, trayCode);
basCargoSpaceService.updateBasCargoSpaceStatus(mydoJob.getCargoSpaceId(), mydoJob.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN); basCargoSpaceService.updateBasCargoSpaceStatus(mydoJob.getCargoSpaceId(), mydoJob.getTrayCode(),CargoSpaceCode.CARGOSPACE_STATUS_PRE_STOCKIN);