盘点入库任务逻辑修改
This commit is contained in:
@@ -43,7 +43,7 @@ public class ToWmsApiController {
|
|||||||
* 请求补码作业
|
* 请求补码作业
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/requestByNoTrayCode")
|
@RequestMapping("/requestByNoTrayCode")
|
||||||
public AjaxResult startSignal(@RequestBody RequestEnter requestEnter) {
|
public AjaxResult requestByNoTrayCode(@RequestBody RequestEnter requestEnter) {
|
||||||
AjaxResult ajaxResult = toWmsService.selectMydoJobByEntranceId(requestEnter);
|
AjaxResult ajaxResult = toWmsService.selectMydoJobByEntranceId(requestEnter);
|
||||||
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "请求补码作业",ajaxResult);
|
RequestLog requestLog = requestLogService.getRequestLog(JSONUtil.toJsonStr(requestEnter), "请求补码作业",ajaxResult);
|
||||||
requestLogService.insertRequestLog(requestLog);
|
requestLogService.insertRequestLog(requestLog);
|
||||||
|
|||||||
@@ -38,5 +38,4 @@ public interface IToWmsService {
|
|||||||
* 取货无货,重新分配物料
|
* 取货无货,重新分配物料
|
||||||
*/
|
*/
|
||||||
AjaxResult reMaterial(ReMaterialParam reMaterialParam);
|
AjaxResult reMaterial(ReMaterialParam reMaterialParam);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,16 +89,14 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) {
|
public AjaxResult requestEnterByTrayCode(RequestEnter requestEnter) {
|
||||||
|
|
||||||
|
HashMap<String, String> result = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
if (StrUtil.isEmpty(requestEnter.getTrayCode())) {
|
if (StrUtil.isEmpty(requestEnter.getTrayCode())) {
|
||||||
return AjaxResult.error("托盘条码不能为空");
|
return AjaxResult.error("托盘条码不能为空");
|
||||||
}
|
}
|
||||||
log.info("扫码内容{}", requestEnter.getTrayCode());
|
log.info("扫码内容{}", requestEnter.getTrayCode());
|
||||||
//生成调拨单
|
|
||||||
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
|
|
||||||
if (!"200".equals(saveTransferBill.get("code"))) {
|
|
||||||
return AjaxResult.error("生成调拨单失败");
|
|
||||||
}
|
|
||||||
log.info("生成调拨单{}", saveTransferBill);
|
|
||||||
|
|
||||||
//解析扫码内容
|
//解析扫码内容
|
||||||
String trayCode = requestEnter.getTrayCode();
|
String trayCode = requestEnter.getTrayCode();
|
||||||
@@ -154,6 +152,12 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
String inStockId = null;
|
String inStockId = null;
|
||||||
String inStockDetailId = null;
|
String inStockDetailId = null;
|
||||||
if ("1".equals(requestEnter.getFloor())) {
|
if ("1".equals(requestEnter.getFloor())) {
|
||||||
|
//需要区分是回流任务还是入库任务
|
||||||
|
MydoJob hlMydoJobParam = new MydoJob();
|
||||||
|
hlMydoJobParam.setEntranceId(requestEnter.getEntranceId());
|
||||||
|
hlMydoJobParam.setInOut("5");
|
||||||
|
MydoJob hlMydoJob = mydoJobService.selectMydoJobByEntranceId(hlMydoJobParam);
|
||||||
|
if (ObjUtil.isNull(hlMydoJob)){
|
||||||
//一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量
|
//一楼入库 其它入库 和 退料入库 存在单据,需要修改单据数量
|
||||||
InStockin inStockinParam = new InStockin();
|
InStockin inStockinParam = new InStockin();
|
||||||
inStockinParam.setErpBill(erpBill);
|
inStockinParam.setErpBill(erpBill);
|
||||||
@@ -179,11 +183,42 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
inStockDetailId = inStockinDetail.getStockinDetailId();
|
inStockDetailId = inStockinDetail.getStockinDetailId();
|
||||||
inStockinDetail.setScanNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getScanNum()).add(Convert.toBigDecimal(1))));
|
inStockinDetail.setScanNum(Convert.toStr(Convert.toBigDecimal(inStockinDetail.getScanNum()).add(Convert.toBigDecimal(1))));
|
||||||
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
inStockinDetailService.updateInStockinDetail(inStockinDetail);
|
||||||
|
}else {
|
||||||
|
inOrOutType = "5";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
inOrOutType = "1";
|
inOrOutType = "1";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ("5".equals(inOrOutType)){
|
||||||
|
MydoJob hlMydoJobParam = new MydoJob();
|
||||||
|
hlMydoJobParam.setEntranceId(requestEnter.getEntranceId());
|
||||||
|
hlMydoJobParam.setInOut("5");
|
||||||
|
MydoJob hlMydoJob = mydoJobService.selectMydoJobByEntranceId(hlMydoJobParam);
|
||||||
|
|
||||||
|
//根据巷道查找货位
|
||||||
|
BasCargoSpace basCargoSpaceParam = new BasCargoSpace();
|
||||||
|
basCargoSpaceParam.setWarehouseId(hlMydoJob.getWarehouseId());
|
||||||
|
basCargoSpaceParam.setRoadwayId(hlMydoJob.getRoadwayId());
|
||||||
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectEmptyCargoSpaceByWarehouseId(basCargoSpaceParam);
|
||||||
|
if (ObjUtil.isNull(basCargoSpace)) {
|
||||||
|
return new AjaxResult(5, "没有货位");
|
||||||
|
}
|
||||||
|
hlMydoJob.setCargoSpaceId(basCargoSpace.getCargoSpaceId());
|
||||||
|
mydoJobService.updateMydoJob(hlMydoJob);
|
||||||
|
//type=1是手持机调用
|
||||||
|
if(!"1".equals(requestEnter.getType())){
|
||||||
|
hlMydoJob.setStatus("3");
|
||||||
|
mydoJobService.updateMydoJob(hlMydoJob);
|
||||||
|
}
|
||||||
|
//修改作业状态为正执行
|
||||||
|
result.put("jobId", hlMydoJob.getJobId());
|
||||||
|
result.put("taskNo", hlMydoJob.getTaskNo());
|
||||||
|
result.put("cargoSpaceId", hlMydoJob.getCargoSpaceId());
|
||||||
|
result.put("roadwayId", hlMydoJob.getRoadwayId());
|
||||||
|
result.put("entranceId", hlMydoJob.getEntranceId());
|
||||||
|
result.put("inOrOut", hlMydoJob.getInOrOut());
|
||||||
|
}else {
|
||||||
//生成作业
|
//生成作业
|
||||||
MydoJob mydoJob = new MydoJob();
|
MydoJob mydoJob = new MydoJob();
|
||||||
mydoJob.setStatus("1");
|
mydoJob.setStatus("1");
|
||||||
@@ -250,6 +285,12 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ("1".equals(mydoJob.getInOrOut())) {
|
if ("1".equals(mydoJob.getInOrOut())) {
|
||||||
|
//生成调拨单
|
||||||
|
Map<String, String> saveTransferBill = toErpService.saveTransferBill();
|
||||||
|
if (!"200".equals(saveTransferBill.get("code"))) {
|
||||||
|
return AjaxResult.error("生成调拨单失败");
|
||||||
|
}
|
||||||
|
log.info("生成调拨单{}", saveTransferBill);
|
||||||
//存入调拨单数据 已生成
|
//存入调拨单数据 已生成
|
||||||
TransferBillCallback transferBillCallback = new TransferBillCallback();
|
TransferBillCallback transferBillCallback = new TransferBillCallback();
|
||||||
transferBillCallback.setJobId(mydoJob.getJobId());
|
transferBillCallback.setJobId(mydoJob.getJobId());
|
||||||
@@ -259,13 +300,13 @@ public class ToWmsServiceImpl implements IToWmsService {
|
|||||||
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
transferBillCallbackService.insertTransferBillCallback(transferBillCallback);
|
||||||
}
|
}
|
||||||
//修改作业状态为正执行
|
//修改作业状态为正执行
|
||||||
HashMap<String, String> result = new HashMap<>();
|
|
||||||
result.put("jobId", mydoJob.getJobId());
|
result.put("jobId", mydoJob.getJobId());
|
||||||
result.put("taskNo", mydoJob.getTaskNo());
|
result.put("taskNo", mydoJob.getTaskNo());
|
||||||
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
result.put("cargoSpaceId", mydoJob.getCargoSpaceId());
|
||||||
result.put("roadwayId", mydoJob.getRoadwayId());
|
result.put("roadwayId", mydoJob.getRoadwayId());
|
||||||
result.put("entranceId", mydoJob.getEntranceId());
|
result.put("entranceId", mydoJob.getEntranceId());
|
||||||
result.put("inOrOut", mydoJob.getInOrOut());
|
result.put("inOrOut", mydoJob.getInOrOut());
|
||||||
|
}
|
||||||
return AjaxResult.success(result);
|
return AjaxResult.success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -83,6 +83,8 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
|||||||
private BasStockMapper basStockMapper;
|
private BasStockMapper basStockMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PdaMapper pdaMapper;
|
private PdaMapper pdaMapper;
|
||||||
|
@Autowired
|
||||||
|
private ICheckDifferenceRecordService checkDifferenceRecordService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -244,7 +246,63 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
|||||||
if (mydoJob == null) {
|
if (mydoJob == null) {
|
||||||
return AjaxResult.warn("任务不存在");
|
return AjaxResult.warn("任务不存在");
|
||||||
}
|
}
|
||||||
//入库任务
|
if ("5".equals(mydoJob.getInOrOut())){
|
||||||
|
|
||||||
|
//盘点入库
|
||||||
|
//入库作业
|
||||||
|
MydoJobDetail param = new MydoJobDetail();
|
||||||
|
param.setJobId(jobId);
|
||||||
|
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||||
|
BasCargoSpace basCargoSpace = basCargoSpaceService.selectBasCargoSpaceByCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||||
|
if (CollUtil.isNotEmpty(mydoJobDetails)) {
|
||||||
|
List<BasStock> list = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
|
//查询盘点信息中的异常信息
|
||||||
|
CheckDifferenceRecord checkDifferenceRecordParam = new CheckDifferenceRecord();
|
||||||
|
checkDifferenceRecordParam.setTrayCode(mydoJob.getTrayCode());
|
||||||
|
checkDifferenceRecordParam.setWarehouseId(mydoJob.getWarehouseId());
|
||||||
|
List<CheckDifferenceRecord> checkDifferenceRecords = checkDifferenceRecordService.selectCheckDifferenceRecordList(checkDifferenceRecordParam);
|
||||||
|
for (MydoJobDetail mydoJobDetail : mydoJobDetails) {
|
||||||
|
//如果存在盘点异常信息 根据托盘条码和物料id 筛选异常信息
|
||||||
|
Optional<CheckDifferenceRecord> first = checkDifferenceRecords.stream().filter(x -> x.getTrayCode().equals(mydoJob.getTrayCode()) && x.getProductId().equals(mydoJobDetail.getProductId())).findFirst();
|
||||||
|
if (first.isPresent()) {
|
||||||
|
//生成盘点待审批库存
|
||||||
|
BasStock stockByInStockinDetail = getStockByInStockinDetail(mydoJobDetail, mydoJob, "2");
|
||||||
|
list.add(stockByInStockinDetail);
|
||||||
|
//修改异常记录中的库存id
|
||||||
|
CheckDifferenceRecord checkDifferenceRecord = first.get();
|
||||||
|
checkDifferenceRecord.setStockId(stockByInStockinDetail.getStockId());
|
||||||
|
checkDifferenceRecordService.updateCheckDifferenceRecord(checkDifferenceRecord);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//正常库存
|
||||||
|
list.add(getStockByInStockinDetail(mydoJobDetail, mydoJob, "1"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//修改货位状态
|
||||||
|
basCargoSpace.setStatus("2");
|
||||||
|
basCargoSpace.setTrayCode(mydoJob.getTrayCode());
|
||||||
|
basCargoSpace.setCargoSpaceId(mydoJob.getCargoSpaceId());
|
||||||
|
basCargoSpaceService.updateBasCargoSpace(basCargoSpace);
|
||||||
|
|
||||||
|
//插入库存信息
|
||||||
|
basStockService.insertBasStockList(list);
|
||||||
|
|
||||||
|
//结束任务
|
||||||
|
mydoJob.setStatus("4");
|
||||||
|
mydoJob.setFinishTime(DateUtil.formatDateTime(DateUtil.date()));
|
||||||
|
updateMydoJob(mydoJob);
|
||||||
|
// 插入任务历史表 删除任务
|
||||||
|
insertHistory(mydoJob.getJobId());
|
||||||
|
return AjaxResult.success();
|
||||||
|
} else {
|
||||||
|
return AjaxResult.warn("不存在子作业");
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
//正常入库任务
|
||||||
MydoJobDetail param = new MydoJobDetail();
|
MydoJobDetail param = new MydoJobDetail();
|
||||||
param.setJobId(jobId);
|
param.setJobId(jobId);
|
||||||
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
List<MydoJobDetail> mydoJobDetails = mydoJobDetailService.selectMydoJobDetailList(param);
|
||||||
@@ -297,6 +355,7 @@ public class MydoJobServiceImpl implements IMydoJobService {
|
|||||||
return AjaxResult.warn("不存在子作业");
|
return AjaxResult.warn("不存在子作业");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail, MydoJob mydoJob, String productStatus) {
|
private BasStock getStockByInStockinDetail(MydoJobDetail mydoJobDetail, MydoJob mydoJob, String productStatus) {
|
||||||
BasStock stock = new BasStock();
|
BasStock stock = new BasStock();
|
||||||
|
|||||||
@@ -236,8 +236,8 @@ export default {
|
|||||||
// 所有出口数据(按仓库ID分组)
|
// 所有出口数据(按仓库ID分组)
|
||||||
allExitOptions: {
|
allExitOptions: {
|
||||||
'01': [
|
'01': [
|
||||||
{ exitId: "L2009", exitName: 'L2009' },
|
{ exitId: "L2013", exitName: 'L2013' },
|
||||||
{ exitId: 'L2010', exitName: 'L2010' },
|
{ exitId: 'L2012', exitName: 'L2012' },
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
// 当前审核的单据
|
// 当前审核的单据
|
||||||
|
|||||||
Reference in New Issue
Block a user