1
This commit is contained in:
parent
d8930d9559
commit
271c246bb3
|
|
@ -567,6 +567,9 @@ public class AppTaskController extends BaseController
|
||||||
if (appPmsOrderOutList.stream().map(AppPmsOrderOut::getGoodsId).distinct().count() != appPmsOrderOutList.size()) {
|
if (appPmsOrderOutList.stream().map(AppPmsOrderOut::getGoodsId).distinct().count() != appPmsOrderOutList.size()) {
|
||||||
return error("出库单明细不能有重复物料编码");
|
return error("出库单明细不能有重复物料编码");
|
||||||
}
|
}
|
||||||
|
if (appPmsOrderOutList.stream().map(AppPmsOrderOut::getListId).distinct().count() > 1) {
|
||||||
|
return error("手动出库紧支持单个出库单出库");
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
logger.info("请求出库单明细:{}", appPmsOrderOutList);
|
logger.info("请求出库单明细:{}", appPmsOrderOutList);
|
||||||
|
|
@ -590,6 +593,7 @@ public class AppTaskController extends BaseController
|
||||||
//根据物料ID查询库存,按照先进先出的原则,按上架时间倒叙查询
|
//根据物料ID查询库存,按照先进先出的原则,按上架时间倒叙查询
|
||||||
AppStock tMiStock = new AppStock();
|
AppStock tMiStock = new AppStock();
|
||||||
tMiStock.setGoodsId(appPmsOrderOut.getGoodsId());
|
tMiStock.setGoodsId(appPmsOrderOut.getGoodsId());
|
||||||
|
//确定在库中
|
||||||
|
|
||||||
List<AppStock> appStocks = appStockService.selectStockByGoodsId(tMiStock);
|
List<AppStock> appStocks = appStockService.selectStockByGoodsId(tMiStock);
|
||||||
|
|
||||||
|
|
@ -912,6 +916,7 @@ public class AppTaskController extends BaseController
|
||||||
appTask.setOrderId(orderId);
|
appTask.setOrderId(orderId);
|
||||||
//库存编号
|
//库存编号
|
||||||
appTask.setStockId(tMiStock1.getStockId());
|
appTask.setStockId(tMiStock1.getStockId());
|
||||||
|
appTask.setCreateTime(new Date());
|
||||||
appTaskService.insertAppTask(appTask);
|
appTaskService.insertAppTask(appTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1185,15 +1190,29 @@ public class AppTaskController extends BaseController
|
||||||
}
|
}
|
||||||
for(PickCompleteReq request : requests) {
|
for(PickCompleteReq request : requests) {
|
||||||
// 更新捡货任务数量
|
// 更新捡货任务数量
|
||||||
AppTask updatePickNum = new AppTask();
|
//根据taskId,查询该条任务
|
||||||
updatePickNum.setTaskId(request.getTaskId());
|
AppTask task = appTaskService.selectAppTaskByTaskId(request.getTaskId());
|
||||||
updatePickNum.setOpNum(request.getPickNum());
|
if(task.getOpNum().compareTo(request.getPickNum()) < 0){
|
||||||
updatePickNum.setTaskStatus(6);
|
throw new RuntimeException("拣选数量不能大于出库数量");
|
||||||
updatePickNum.setOpUser(request.getPicker());
|
}
|
||||||
int updateAppTask = appTaskService.updateAppTask(updatePickNum);
|
task.setOpNum(request.getPickNum());
|
||||||
if (updateAppTask == 0) {
|
task.setTaskStatus(6);
|
||||||
|
task.setOpUser(request.getPicker());
|
||||||
|
appTaskService.updateAppTask(task);
|
||||||
|
//查询出库单 根据orderId和goodsId
|
||||||
|
AppPmsOrderOut appPmsOrderOut = new AppPmsOrderOut();
|
||||||
|
appPmsOrderOut.setGoodsId(task.getGoodsId());
|
||||||
|
appPmsOrderOut.setOrderId(task.getOrderId());
|
||||||
|
appPmsOrderOut.setOrderStatus(1);
|
||||||
|
List<AppPmsOrderOut> appPmsOrderOuts = appPmsOrderOutService.selectAppPmsOrderOutList(appPmsOrderOut);
|
||||||
|
if(CollectionUtils.isEmpty(appPmsOrderOuts)){
|
||||||
return error("数据服务异常,请重试");
|
return error("数据服务异常,请重试");
|
||||||
}
|
}
|
||||||
|
AppPmsOrderOut appPmsOrderOut1 = appPmsOrderOuts.get(0);
|
||||||
|
appPmsOrderOut1.setTrNum(appPmsOrderOut1.getTrNum().add(request.getPickNum()));
|
||||||
|
appPmsOrderOut1.setShelvesNum(BigDecimal.ZERO);
|
||||||
|
appPmsOrderOut1.setOrderStatus(0);
|
||||||
|
appPmsOrderOutService.updateAppPmsOrderOut(appPmsOrderOut1);
|
||||||
}
|
}
|
||||||
return success("捡货成功");
|
return success("捡货成功");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public class PmsOutFeedBack {
|
public class PmsOutFeedBack {
|
||||||
|
|
||||||
private List<PmsOutFeedBackRecordList> recordList;
|
private List<PmsOutFeedBackRecord> recordList;
|
||||||
|
|
||||||
public List<PmsOutFeedBackRecordList> getRecordList() {
|
public List<PmsOutFeedBackRecord> getRecordList() {
|
||||||
return recordList;
|
return recordList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRecordList(List<PmsOutFeedBackRecordList> recordList) {
|
public void setRecordList(List<PmsOutFeedBackRecord> recordList) {
|
||||||
this.recordList = recordList;
|
this.recordList = recordList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
package com.ruoyi.quartz.domain.app;
|
package com.ruoyi.quartz.domain.app;
|
||||||
|
|
||||||
public class PmsOutFeedBackRecordList {
|
public class PmsOutFeedBackRecord {
|
||||||
|
|
||||||
|
|
||||||
private Integer amount;
|
private Integer amount;
|
||||||
|
|
@ -3,6 +3,7 @@ package com.ruoyi.quartz.task;
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.ruoyi.app.domain.*;
|
import com.ruoyi.app.domain.*;
|
||||||
import com.ruoyi.app.mapper.AppLocationMapper;
|
import com.ruoyi.app.mapper.AppLocationMapper;
|
||||||
|
import com.ruoyi.app.mapper.AppPmsOrderOutMapper;
|
||||||
import com.ruoyi.quartz.domain.app.*;
|
import com.ruoyi.quartz.domain.app.*;
|
||||||
import com.ruoyi.app.service.*;
|
import com.ruoyi.app.service.*;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
|
|
@ -13,7 +14,6 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.annotation.Scheduled;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
@ -51,6 +51,8 @@ public class TaskExecutor {
|
||||||
}};
|
}};
|
||||||
@Autowired
|
@Autowired
|
||||||
private AppLocationMapper appLocationMapper;
|
private AppLocationMapper appLocationMapper;
|
||||||
|
@Autowired
|
||||||
|
private AppPmsOrderOutMapper appPmsOrderOutMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解析wms任务
|
* 解析wms任务
|
||||||
|
|
@ -335,81 +337,76 @@ public class TaskExecutor {
|
||||||
if (appTasks == null || appTasks.isEmpty()) {
|
if (appTasks == null || appTasks.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
PmsOutFeedBack pmsOutFeedBack = new PmsOutFeedBack();
|
||||||
|
List<PmsOutFeedBackRecord> recordList = new ArrayList<>();
|
||||||
for (AppTask task : appTasks) {
|
for (AppTask task : appTasks) {
|
||||||
if(task.getOpNum().compareTo(task.getStockNum()) >= 0) {
|
|
||||||
// 整出
|
//调用接口,组装数据
|
||||||
AppStock appStock = new AppStock();
|
AppPmsOrderOut appPmsOrderOut = new AppPmsOrderOut();
|
||||||
appStock.setGoodsId(task.getGoodsId());
|
appPmsOrderOut.setOrderId(task.getOrderId());
|
||||||
appStock.setVehicleId(task.getVehicleId());
|
appPmsOrderOut.setGoodsId(task.getGoodsId());
|
||||||
List<AppStock> appStocks = appStockService.selectAppStockList(appStock);
|
List<AppPmsOrderOut> appPmsOrderOuts = appPmsOrderOutMapper.selectAppPmsOrderOutList(appPmsOrderOut);
|
||||||
if(appStocks == null) {
|
if (CollectionUtils.isEmpty(appPmsOrderOuts)) {
|
||||||
return;
|
continue;
|
||||||
}
|
|
||||||
for (AppStock stock : appStocks) {
|
|
||||||
int deleteAppStockByStockId = appStockService.deleteAppStockByStockId(stock.getStockId());
|
|
||||||
logger.info("删除库存:{}", JSON.toJSONString(stock));
|
|
||||||
if(deleteAppStockByStockId > 0) {
|
|
||||||
AppTask updateRemark = new AppTask();
|
|
||||||
updateRemark.setTaskId(task.getTaskId());
|
|
||||||
updateRemark.setRemark("出库完成");
|
|
||||||
appTaskService.updateAppTask(updateRemark); // 更新备注信息
|
|
||||||
AppTaskBak appTaskBak = new AppTaskBak();
|
|
||||||
BeanUtils.copyProperties(task, appTaskBak);
|
|
||||||
logger.info("出库任务数据归档成功。{}", JSON.toJSONString(appTaskBak));
|
|
||||||
appTaskBakService.insertAppTaskBak(appTaskBak);// 数据归档
|
|
||||||
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
|
|
||||||
}
|
|
||||||
// 调用 pms 接口
|
|
||||||
PmsOutFeedBack pmsOutFeedBack = new PmsOutFeedBack();
|
|
||||||
PmsOutFeedBackRecordList recordListItem = new PmsOutFeedBackRecordList();
|
|
||||||
recordListItem.setAmount(task.getOpNum().intValue());
|
|
||||||
recordListItem.setBusinessOrder(task.getOrderId());
|
|
||||||
recordListItem.setMaterialsNo(task.getGoodsId());
|
|
||||||
List<PmsOutFeedBackRecordList> recordList = new ArrayList<>();
|
|
||||||
recordList.add(recordListItem);
|
|
||||||
pmsOutFeedBack.setRecordList(recordList);
|
|
||||||
String url = sysConfigService.selectConfigByKey("pms.outComplete");
|
|
||||||
if (StringUtils.isEmpty(url)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsOutFeedBack)), PmsCommonRes.class);
|
|
||||||
logger.info("pms出库反馈请求信息:{},结果:{}", JSON.toJSONString(pmsOutFeedBack), JSON.toJSONString(pmsCommonRes));
|
|
||||||
}
|
|
||||||
AppStock appStockCheck = new AppStock();
|
|
||||||
appStockCheck.setLocationId(task.getOrigin());
|
|
||||||
List<AppStock> appStockCheckData = appStockService.selectAppStockList(appStockCheck);
|
|
||||||
logger.info("剩余库存条目{}",appStockCheckData.size());
|
|
||||||
if(appStockCheckData == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if(appStockCheckData.isEmpty()) {
|
|
||||||
// 这个位置没有库存了,直接释放货位
|
|
||||||
AppLocation location = new AppLocation();
|
|
||||||
location.setLocationId(task.getOrigin());
|
|
||||||
location.setLocationStatus(0);
|
|
||||||
appLocationMapper.updateLocationByLocationId(location);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 如果小于的话就属于捡货任务
|
|
||||||
// 删除库存内的绑定的库位号,释放库位
|
|
||||||
AppStock appStock = new AppStock();
|
|
||||||
appStock.setLocationId(task.getOrigin());
|
|
||||||
List<AppStock> appStocks = appStockService.selectAppStockList(appStock);
|
|
||||||
if (CollectionUtils.isEmpty(appStocks)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
int updateNewLocation = appStockService.updateNewLocation(task.getOrigin(), "");
|
|
||||||
logger.info("捡选出库清除库存绑定的货位,数据:{},清除结果:{}", JSON.toJSONString(task), updateNewLocation);
|
|
||||||
AppLocation location = new AppLocation();
|
|
||||||
location.setLocationId(task.getOrigin());
|
|
||||||
location.setLocationStatus(0);
|
|
||||||
appLocationMapper.updateLocationByLocationId(location);
|
|
||||||
}
|
}
|
||||||
return;
|
AppPmsOrderOut appPmsOrderOut1 = appPmsOrderOuts.get(0);
|
||||||
|
PmsOutFeedBackRecord recordListItem = new PmsOutFeedBackRecord();
|
||||||
|
recordListItem.setAmount(task.getOpNum().intValue());
|
||||||
|
recordListItem.setBusinessOrder(appPmsOrderOut1.getListId());
|
||||||
|
recordListItem.setMaterialsNo(task.getGoodsId());
|
||||||
|
recordList.add(recordListItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
pmsOutFeedBack.setRecordList(recordList);
|
||||||
|
String url = sysConfigService.selectConfigByKey("pms.outComplete");
|
||||||
|
if (StringUtils.isEmpty(url)) {
|
||||||
|
throw new RuntimeException("pms.outComplete配置为空");
|
||||||
|
}
|
||||||
|
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsOutFeedBack)), PmsCommonRes.class);
|
||||||
|
logger.info("pms出库反馈请求信息:{},结果:{}", JSON.toJSONString(pmsOutFeedBack), JSON.toJSONString(pmsCommonRes));
|
||||||
|
|
||||||
|
// 归档旧数据
|
||||||
|
for (AppTask task : appTasks) {
|
||||||
|
BigDecimal opNum = task.getOpNum();
|
||||||
|
AppTaskBak appTaskBak = new AppTaskBak();
|
||||||
|
BeanUtils.copyProperties(task, appTaskBak);
|
||||||
|
appTaskBakService.insertAppTaskBak(appTaskBak); // 将任务数据归档
|
||||||
|
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
|
||||||
|
|
||||||
|
if (opNum.compareTo(task.getStockNum()) >= 0) { // 需求数量大于库存数量
|
||||||
|
int deleteAppStockByStockId = appStockService.deleteAppStockByStockId(task.getStockId());
|
||||||
|
logger.info("出库捡选删除库存:{},删除结果:{}", task.getStockId(), deleteAppStockByStockId);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
// 更新库存剩余数量
|
||||||
|
AppStock update = new AppStock();
|
||||||
|
update.setStockId(task.getStockId());
|
||||||
|
update.setRemainNum(task.getStockNum().subtract(opNum));
|
||||||
|
update.setPackingNum(BigDecimal.ZERO);
|
||||||
|
appStockService.updateAppStock(update);
|
||||||
|
logger.info("出库捡选更新库存剩余数量:{},更新结果:{}", JSON.toJSONString(update), appStockService.updateAppStock(update));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//java8 stream流过滤出appTasks数组中的stockId对应的vehicleId 去重
|
||||||
|
List<String> locations = appTasks.stream().map(AppTask::getLocationId).distinct().collect(Collectors.toList());
|
||||||
|
List<String> vehicles = appTasks.stream().map(AppTask::getVehicleId).distinct().collect(Collectors.toList());
|
||||||
|
//更新库存中中这些vehicleId对应的stock_status为0,并且把locationId置空
|
||||||
|
for (String vehicleId : vehicles) {
|
||||||
|
AppStock appStock = new AppStock();
|
||||||
|
appStock.setVehicleId(vehicleId);
|
||||||
|
appStock.setStockStatus(0);
|
||||||
|
appStockService.updateSts(appStock);
|
||||||
|
}
|
||||||
|
for (String locationId : locations){
|
||||||
|
appStockService.updateNewLocation(locationId,"");
|
||||||
|
//更新库位表状态
|
||||||
|
updateLocation(locationId,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void completePickOutTask() {
|
|
||||||
|
@Transactional
|
||||||
|
public void completePickOutTask() {
|
||||||
AppTask appTask = new AppTask();
|
AppTask appTask = new AppTask();
|
||||||
appTask.setTaskStatus(6);
|
appTask.setTaskStatus(6);
|
||||||
appTask.setTaskType(2);
|
appTask.setTaskType(2);
|
||||||
|
|
@ -417,69 +414,86 @@ public class TaskExecutor {
|
||||||
if (appTasks == null || appTasks.isEmpty()) {
|
if (appTasks == null || appTasks.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PmsOutFeedBack pmsOutFeedBack = new PmsOutFeedBack();
|
||||||
|
List<PmsOutFeedBackRecord> recordList = new ArrayList<>();
|
||||||
for (AppTask task : appTasks) {
|
for (AppTask task : appTasks) {
|
||||||
// 更新库存
|
|
||||||
AppStock appStock = new AppStock();
|
//调用接口,组装数据
|
||||||
appStock.setGoodsId(task.getGoodsId());
|
AppPmsOrderOut appPmsOrderOut = new AppPmsOrderOut();
|
||||||
appStock.setVehicleId(task.getVehicleId());
|
appPmsOrderOut.setOrderId(task.getOrderId());
|
||||||
List<AppStock> appStocks = appStockService.selectAppStockList(appStock);
|
appPmsOrderOut.setGoodsId(task.getGoodsId());
|
||||||
if(appStocks == null) {
|
List<AppPmsOrderOut> appPmsOrderOuts = appPmsOrderOutMapper.selectAppPmsOrderOutList(appPmsOrderOut);
|
||||||
return;
|
if (CollectionUtils.isEmpty(appPmsOrderOuts)) {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
AppPmsOrderOut appPmsOrderOut1 = appPmsOrderOuts.get(0);
|
||||||
|
PmsOutFeedBackRecord recordListItem = new PmsOutFeedBackRecord();
|
||||||
|
recordListItem.setAmount(task.getOpNum().intValue());
|
||||||
|
recordListItem.setBusinessOrder(appPmsOrderOut1.getListId());
|
||||||
|
recordListItem.setMaterialsNo(task.getGoodsId());
|
||||||
|
recordList.add(recordListItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
//根据orderId查询出库单表,获取listid和物料id
|
||||||
|
//组装数组
|
||||||
|
|
||||||
|
// 调用 pms 接口
|
||||||
|
pmsOutFeedBack.setRecordList(recordList);
|
||||||
|
String url = sysConfigService.selectConfigByKey("pms.outComplete");
|
||||||
|
if (StringUtils.isEmpty(url)) {
|
||||||
|
throw new RuntimeException("pms.outComplete配置为空");
|
||||||
|
}
|
||||||
|
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsOutFeedBack)), PmsCommonRes.class);
|
||||||
|
logger.info("pms出库反馈请求信息:{},结果:{}", JSON.toJSONString(pmsOutFeedBack), JSON.toJSONString(pmsCommonRes));
|
||||||
|
|
||||||
|
|
||||||
|
// 归档旧数据
|
||||||
|
for (AppTask task : appTasks) {
|
||||||
BigDecimal opNum = task.getOpNum();
|
BigDecimal opNum = task.getOpNum();
|
||||||
for (AppStock stock : appStocks) {
|
AppTaskBak appTaskBak = new AppTaskBak();
|
||||||
if(opNum.compareTo(stock.getRemainNum()) >= 0) { // 需求数量大于库存数量
|
BeanUtils.copyProperties(task, appTaskBak);
|
||||||
int deleteAppStockByStockId = appStockService.deleteAppStockByStockId(stock.getStockId());
|
appTaskBakService.insertAppTaskBak(appTaskBak); // 将任务数据归档
|
||||||
logger.info("出库捡选删除库存:{},删除结果:{}", JSON.toJSONString(stock), deleteAppStockByStockId);
|
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
|
||||||
// 调用 pms 接口
|
|
||||||
PmsOutFeedBack pmsOutFeedBack = new PmsOutFeedBack();
|
if (opNum.compareTo(task.getStockNum()) >= 0) { // 需求数量大于库存数量
|
||||||
PmsOutFeedBackRecordList recordListItem = new PmsOutFeedBackRecordList();
|
int deleteAppStockByStockId = appStockService.deleteAppStockByStockId(task.getStockId());
|
||||||
recordListItem.setAmount(stock.getRemainNum().intValue());
|
logger.info("出库捡选删除库存:{},删除结果:{}", task.getStockId(), deleteAppStockByStockId);
|
||||||
recordListItem.setBusinessOrder(task.getOrderId());
|
|
||||||
recordListItem.setMaterialsNo(task.getGoodsId());
|
} else {
|
||||||
List<PmsOutFeedBackRecordList> recordList = new ArrayList<>();
|
// 更新库存剩余数量
|
||||||
recordList.add(recordListItem);
|
AppStock update = new AppStock();
|
||||||
pmsOutFeedBack.setRecordList(recordList);
|
update.setStockId(task.getStockId());
|
||||||
String url = sysConfigService.selectConfigByKey("pms.outComplete");
|
update.setRemainNum(task.getStockNum().subtract(opNum));
|
||||||
if (StringUtils.isEmpty(url)) {
|
update.setPackingNum(BigDecimal.ZERO);
|
||||||
continue;
|
appStockService.updateAppStock(update);
|
||||||
}
|
logger.info("出库捡选更新库存剩余数量:{},更新结果:{}", JSON.toJSONString(update), appStockService.updateAppStock(update));
|
||||||
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsOutFeedBack)), PmsCommonRes.class);
|
|
||||||
logger.info("pms出库反馈请求信息:{},结果:{}", JSON.toJSONString(pmsOutFeedBack), JSON.toJSONString(pmsCommonRes));
|
|
||||||
opNum = opNum.subtract(stock.getRemainNum());
|
|
||||||
} else {
|
|
||||||
// 更新库存剩余数量
|
|
||||||
AppStock update = new AppStock();
|
|
||||||
update.setStockId(stock.getStockId());
|
|
||||||
update.setRemainNum(stock.getRemainNum().subtract(opNum));
|
|
||||||
appStockService.updateAppStock(update);
|
|
||||||
logger.info("出库捡选更新库存剩余数量:{},更新结果:{}", JSON.toJSONString(update), appStockService.updateAppStock(update));
|
|
||||||
// 调用 pms 接口
|
|
||||||
PmsOutFeedBack pmsOutFeedBack = new PmsOutFeedBack();
|
|
||||||
PmsOutFeedBackRecordList recordListItem = new PmsOutFeedBackRecordList();
|
|
||||||
recordListItem.setAmount(stock.getRemainNum().intValue());
|
|
||||||
recordListItem.setBusinessOrder(task.getOrderId());
|
|
||||||
recordListItem.setMaterialsNo(task.getGoodsId());
|
|
||||||
List<PmsOutFeedBackRecordList> recordList = new ArrayList<>();
|
|
||||||
recordList.add(recordListItem);
|
|
||||||
pmsOutFeedBack.setRecordList(recordList);
|
|
||||||
String url = sysConfigService.selectConfigByKey("pms.outComplete");
|
|
||||||
if (StringUtils.isEmpty(url)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
PmsCommonRes pmsCommonRes = JSON.parseObject(HttpUtils.sendHttpPostWithoutToken(url, JSON.toJSONString(pmsOutFeedBack)), PmsCommonRes.class);
|
|
||||||
logger.info("pms出库反馈请求信息:{},结果:{}", JSON.toJSONString(pmsOutFeedBack), JSON.toJSONString(pmsCommonRes));
|
|
||||||
}
|
|
||||||
// 归档旧数据
|
|
||||||
AppTaskBak appTaskBak = new AppTaskBak();
|
|
||||||
BeanUtils.copyProperties(task, appTaskBak);
|
|
||||||
appTaskBakService.insertAppTaskBak(appTaskBak); // 将任务数据归档
|
|
||||||
appTaskService.deleteAppTaskByTaskId(task.getTaskId()); // 删除旧数据
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//java8 stream流过滤出appTasks数组中的stockId对应的vehicleId 去重
|
||||||
|
List<String> locations = appTasks.stream().map(AppTask::getLocationId).distinct().collect(Collectors.toList());
|
||||||
|
List<String> vehicles = appTasks.stream().map(AppTask::getVehicleId).distinct().collect(Collectors.toList());
|
||||||
|
//更新库存中中这些vehicleId对应的stock_status为0,并且把locationId置空
|
||||||
|
for (String vehicleId : vehicles) {
|
||||||
|
AppStock appStock = new AppStock();
|
||||||
|
appStock.setVehicleId(vehicleId);
|
||||||
|
appStock.setStockStatus(0);
|
||||||
|
appStockService.updateSts(appStock);
|
||||||
|
}
|
||||||
|
for (String locationId : locations){
|
||||||
|
appStockService.updateNewLocation(locationId,"");
|
||||||
|
//更新库位表状态
|
||||||
|
updateLocation(locationId,0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateLocation(String location,Integer status) {
|
||||||
|
AppLocation appLocation = new AppLocation();
|
||||||
|
appLocation.setLocationId(location);
|
||||||
|
appLocation.setLocationStatus(status);
|
||||||
|
appLocationMapper.updateLocationByLocationId(appLocation);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user