代码更新:
1.整理盒子功能修改
This commit is contained in:
parent
442bd2f9ee
commit
6fededdd30
|
|
@ -195,7 +195,7 @@ public class StockController {
|
||||||
.eq(Vehicle::getVehicleId, stockBefore.getVehicleId())
|
.eq(Vehicle::getVehicleId, stockBefore.getVehicleId())
|
||||||
.eq(Vehicle::getIsEmpty, 0));
|
.eq(Vehicle::getIsEmpty, 0));
|
||||||
}
|
}
|
||||||
stockUpdateRecordService.addStockUpdateRecord(stockBefore, null, StockUpdateReasonEnum.DELETE_CLIENT.getReason(), stockQuery.getUserName());
|
stockUpdateRecordService.addStockUpdateRecord(stockBefore, null, StockUpdateReasonEnum.DELETE_CLIENT.getReason(), stockQuery.getUserName(), stockBefore.getGoodsRelated().getRemainNum());
|
||||||
// 返回成功
|
// 返回成功
|
||||||
logger.info("数量为0,删除库存成功");
|
logger.info("数量为0,删除库存成功");
|
||||||
rsp.setCode(ResponseCode.OK.getCode());
|
rsp.setCode(ResponseCode.OK.getCode());
|
||||||
|
|
@ -209,6 +209,7 @@ public class StockController {
|
||||||
} else {
|
} else {
|
||||||
// 更新库存---只能更新一部分列
|
// 更新库存---只能更新一部分列
|
||||||
Stock updatingStock = BeanUtil.copyProperties(stockBefore, Stock.class);
|
Stock updatingStock = BeanUtil.copyProperties(stockBefore, Stock.class);
|
||||||
|
BigDecimal quantityBefore = stockBefore.getGoodsRelated().getRemainNum();
|
||||||
updatingStock.setStockStatus(stockQuery.getStockStatus());
|
updatingStock.setStockStatus(stockQuery.getStockStatus());
|
||||||
if (StringUtils.isNotEmpty(stockQuery.getLocationId()) && locationService.exists(new LambdaQueryWrapper<Location>().eq(Location::getLocationId, stockQuery.getLocationId()))) {
|
if (StringUtils.isNotEmpty(stockQuery.getLocationId()) && locationService.exists(new LambdaQueryWrapper<Location>().eq(Location::getLocationId, stockQuery.getLocationId()))) {
|
||||||
updatingStock.setLocationId(stockQuery.getLocationId());
|
updatingStock.setLocationId(stockQuery.getLocationId());
|
||||||
|
|
@ -223,7 +224,7 @@ public class StockController {
|
||||||
}
|
}
|
||||||
// 更新库存
|
// 更新库存
|
||||||
if (stockService.update(updatingStock, stockLambdaQueryWrapper)) {
|
if (stockService.update(updatingStock, stockLambdaQueryWrapper)) {
|
||||||
stockUpdateRecordService.addStockUpdateRecord(stockBefore, updatingStock, StockUpdateReasonEnum.UPDATE_CLIENT.getReason(), stockQuery.getUserName());
|
stockUpdateRecordService.addStockUpdateRecord(stockBefore, updatingStock, StockUpdateReasonEnum.UPDATE_CLIENT.getReason(), stockQuery.getUserName(), quantityBefore);
|
||||||
// 返回成功
|
// 返回成功
|
||||||
logger.info("更新库存信息成功");
|
logger.info("更新库存信息成功");
|
||||||
rsp.setCode(ResponseCode.OK.getCode());
|
rsp.setCode(ResponseCode.OK.getCode());
|
||||||
|
|
@ -272,7 +273,7 @@ public class StockController {
|
||||||
.set(Vehicle::getIsEmpty, 0)
|
.set(Vehicle::getIsEmpty, 0)
|
||||||
.eq(Vehicle::getVehicleId, stockPo.getVehicleId())
|
.eq(Vehicle::getVehicleId, stockPo.getVehicleId())
|
||||||
.eq(Vehicle::getIsEmpty, 1));
|
.eq(Vehicle::getIsEmpty, 1));
|
||||||
stockUpdateRecordService.addStockUpdateRecord(null, stockPo, StockUpdateReasonEnum.ADD_CLIENT.getReason(), stockQuery.getUserName());
|
stockUpdateRecordService.addStockUpdateRecord(null, stockPo, StockUpdateReasonEnum.ADD_CLIENT.getReason(), stockQuery.getUserName(), BigDecimal.ZERO);
|
||||||
// 返回成功
|
// 返回成功
|
||||||
logger.info("添加库存信息成功");
|
logger.info("添加库存信息成功");
|
||||||
rsp.setCode(ResponseCode.OK.getCode());
|
rsp.setCode(ResponseCode.OK.getCode());
|
||||||
|
|
|
||||||
|
|
@ -336,12 +336,13 @@ public class TaskController {
|
||||||
.last("limit 1"));
|
.last("limit 1"));
|
||||||
if (existStock != null) {
|
if (existStock != null) {
|
||||||
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
||||||
|
BigDecimal quantityBefore = originStock.getGoodsRelated().getRemainNum();
|
||||||
// 已有库存,直接更新数量
|
// 已有库存,直接更新数量
|
||||||
existStock.setLocationId(inTask.getDestination());
|
existStock.setLocationId(inTask.getDestination());
|
||||||
existStock.getGoodsRelated().setRemainNum(existStock.getGoodsRelated().getRemainNum().add(inTask.getGoodsRelated().getOpNum()));
|
existStock.getGoodsRelated().setRemainNum(existStock.getGoodsRelated().getRemainNum().add(inTask.getGoodsRelated().getOpNum()));
|
||||||
existStock.getGoodsRelated().setTotalNum(existStock.getGoodsRelated().getTotalNum().add(inTask.getGoodsRelated().getOpNum()));
|
existStock.getGoodsRelated().setTotalNum(existStock.getGoodsRelated().getTotalNum().add(inTask.getGoodsRelated().getOpNum()));
|
||||||
stockService.update(existStock, new LambdaUpdateWrapper<Stock>().eq(Stock::getStockId, existStock.getStockId()));
|
stockService.update(existStock, new LambdaUpdateWrapper<Stock>().eq(Stock::getStockId, existStock.getStockId()));
|
||||||
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.UPDATE_IN.getReason(), inTask.getUserName());
|
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.UPDATE_IN.getReason(), inTask.getUserName(), quantityBefore);
|
||||||
} else {
|
} else {
|
||||||
Stock newStock = new Stock();
|
Stock newStock = new Stock();
|
||||||
newStock.setStockId(generateId("ST_"));
|
newStock.setStockId(generateId("ST_"));
|
||||||
|
|
@ -359,7 +360,7 @@ public class TaskController {
|
||||||
detailInfo.setTotalNum(inTask.getGoodsRelated().getOpNum());
|
detailInfo.setTotalNum(inTask.getGoodsRelated().getOpNum());
|
||||||
newStock.setGoodsRelated(detailInfo);
|
newStock.setGoodsRelated(detailInfo);
|
||||||
stockService.save(newStock);
|
stockService.save(newStock);
|
||||||
stockUpdateRecordService.addStockUpdateRecord(null, newStock, StockUpdateReasonEnum.ADD_IN.getReason(), inTask.getUserName());
|
stockUpdateRecordService.addStockUpdateRecord(null, newStock, StockUpdateReasonEnum.ADD_IN.getReason(), inTask.getUserName(), BigDecimal.ZERO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -461,7 +462,7 @@ public class TaskController {
|
||||||
// 删除当前载具上所有库存
|
// 删除当前载具上所有库存
|
||||||
List<Stock> removeStocks = stockService.list(new LambdaQueryWrapper<Stock>().eq(Stock::getVehicleId, outTask.getVehicleId()));
|
List<Stock> removeStocks = stockService.list(new LambdaQueryWrapper<Stock>().eq(Stock::getVehicleId, outTask.getVehicleId()));
|
||||||
for (Stock stock : removeStocks) {
|
for (Stock stock : removeStocks) {
|
||||||
stockUpdateRecordService.addStockUpdateRecord(stock, null, StockUpdateReasonEnum.FULL_OUT.getReason(), outTask.getUserName());
|
stockUpdateRecordService.addStockUpdateRecord(stock, null, StockUpdateReasonEnum.FULL_OUT.getReason(), outTask.getUserName(), stock.getGoodsRelated().getRemainNum());
|
||||||
}
|
}
|
||||||
stockService.remove(new LambdaQueryWrapper<Stock>().eq(Stock::getVehicleId, outTask.getVehicleId()));
|
stockService.remove(new LambdaQueryWrapper<Stock>().eq(Stock::getVehicleId, outTask.getVehicleId()));
|
||||||
// 删除载具
|
// 删除载具
|
||||||
|
|
@ -1240,11 +1241,12 @@ public class TaskController {
|
||||||
.last("limit 1"));
|
.last("limit 1"));
|
||||||
if (existStock != null && existStock.getGoodsRelated() != null) {
|
if (existStock != null && existStock.getGoodsRelated() != null) {
|
||||||
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
||||||
|
BigDecimal quantityBefore = originStock.getGoodsRelated().getRemainNum();
|
||||||
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
||||||
goodsDetail.setRemainNum(goodsDetail.getRemainNum().subtract(BigDecimal.valueOf(eTaskFeedbackRequest.getConfirmNum())));
|
goodsDetail.setRemainNum(goodsDetail.getRemainNum().subtract(BigDecimal.valueOf(eTaskFeedbackRequest.getConfirmNum())));
|
||||||
existStock.setGoodsRelated(goodsDetail);
|
existStock.setGoodsRelated(goodsDetail);
|
||||||
stockService.updateById(existStock);
|
stockService.updateById(existStock);
|
||||||
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.KITTING_UPDATE.getReason(), workFlow.getWorkStation() + "-电子标签灯光反馈");
|
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.KITTING_UPDATE.getReason(), workFlow.getWorkStation() + "-电子标签灯光反馈", quantityBefore);
|
||||||
}
|
}
|
||||||
// 更新电子标签库位信息
|
// 更新电子标签库位信息
|
||||||
etagLocationService.update(new LambdaUpdateWrapper<ETagLocation>()
|
etagLocationService.update(new LambdaUpdateWrapper<ETagLocation>()
|
||||||
|
|
@ -1365,11 +1367,12 @@ public class TaskController {
|
||||||
.last("limit 1"));// 更新库存数量
|
.last("limit 1"));// 更新库存数量
|
||||||
if (existStock != null && existStock.getGoodsRelated() != null) {
|
if (existStock != null && existStock.getGoodsRelated() != null) {
|
||||||
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
||||||
|
BigDecimal quantityBefore = originStock.getGoodsRelated().getRemainNum();
|
||||||
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
||||||
goodsDetail.setRemainNum(workConfirmRequest.getRemainNumReal());
|
goodsDetail.setRemainNum(workConfirmRequest.getRemainNumReal());
|
||||||
existStock.setGoodsRelated(goodsDetail);
|
existStock.setGoodsRelated(goodsDetail);
|
||||||
stockService.updateById(existStock);
|
stockService.updateById(existStock);
|
||||||
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.CONFIRM_UPDATE.getReason(), workConfirmRequest.getUserName());
|
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.CONFIRM_UPDATE.getReason(), workConfirmRequest.getUserName(), quantityBefore);
|
||||||
}
|
}
|
||||||
OutsideVehicles currentGoodsVehicle = outsideVehiclesService.getOne(new LambdaQueryWrapper<OutsideVehicles>()
|
OutsideVehicles currentGoodsVehicle = outsideVehiclesService.getOne(new LambdaQueryWrapper<OutsideVehicles>()
|
||||||
.eq(OutsideVehicles::getVehicleId, pickTask.getVehicleId())
|
.eq(OutsideVehicles::getVehicleId, pickTask.getVehicleId())
|
||||||
|
|
@ -1971,40 +1974,49 @@ public class TaskController {
|
||||||
.likeRight(Task::getTaskId, "HK_"));
|
.likeRight(Task::getTaskId, "HK_"));
|
||||||
if (!hasBackTask) {
|
if (!hasBackTask) {
|
||||||
// 判断当前载具是否有入库任务
|
// 判断当前载具是否有入库任务
|
||||||
boolean hasInTask = taskService.exists(new LambdaQueryWrapper<Task>()
|
List<Task> inTasks = taskService.list(new LambdaQueryWrapper<Task>()
|
||||||
.eq(Task::getVehicleId, requestBackQuery.getVehicleId())
|
.eq(Task::getVehicleId, requestBackQuery.getVehicleId())
|
||||||
.eq(Task::getTaskType, TaskType.IN.getCode())
|
.eq(Task::getTaskType, TaskType.IN.getCode())
|
||||||
.likeRight(Task::getTaskId, "RK_"));
|
.likeRight(Task::getTaskId, "RK_"));
|
||||||
if (hasInTask) {
|
if (inTasks != null && !inTasks.isEmpty()) {
|
||||||
taskService.update(new LambdaUpdateWrapper<Task>()
|
if (StringUtils.isEmpty(inTasks.get(0).getDestination())) {
|
||||||
.set(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())
|
// 寻找库位
|
||||||
.eq(Task::getVehicleId, requestBackQuery.getVehicleId())
|
String nextLocationId = requestALocation(requestBackQuery.getVehicleId());
|
||||||
.eq(Task::getTaskType, TaskType.IN.getCode())
|
if (Objects.equals(nextLocationId, "")) {
|
||||||
.eq(Task::getTaskStatus, WmsTaskStatus.TEMP.getCode())
|
|
||||||
.likeRight(Task::getTaskId, "RK_"));
|
|
||||||
} else {
|
|
||||||
// 寻找库位
|
|
||||||
String nextLocationId = "";
|
|
||||||
for (int i = 0; i < locationService.count(new LambdaQueryWrapper<Location>().eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode())); i++) {
|
|
||||||
Map<String, String> resultMap = locationService.getOneLocation("", "");
|
|
||||||
if (resultMap.isEmpty() || !resultMap.containsKey("nextLocationId")) {
|
|
||||||
logger.error("暂无可用库位");
|
logger.error("暂无可用库位");
|
||||||
response.setCode(ResponseCode.ERROR.getCode());
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
response.setMessage("暂无可用库位!");
|
response.setMessage("暂无可用库位!");
|
||||||
return convertJsonString(response);
|
return convertJsonString(response);
|
||||||
} else {
|
|
||||||
Location nextLocation = locationService.getOne(new LambdaQueryWrapper<Location>().eq(Location::getLocationId, resultMap.get("nextLocationId")).last("limit 1"));
|
|
||||||
LambdaUpdateWrapper<Location> updateLocationWrapper = new LambdaUpdateWrapper<Location>()
|
|
||||||
.set(Location::getLocationStatus, LocationStatus.OCCUPY.getCode())
|
|
||||||
.set(Location::getVehicleId, requestBackQuery.getVehicleId())
|
|
||||||
.eq(Location::getLocationId, nextLocation.getLocationId())
|
|
||||||
.eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode());
|
|
||||||
if (locationService.update(updateLocationWrapper)) {
|
|
||||||
nextLocationId = resultMap.get("nextLocationId");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (!taskService.update(new LambdaUpdateWrapper<Task>()
|
||||||
|
.set(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())
|
||||||
|
.set(Task::getDestination, nextLocationId)
|
||||||
|
.eq(Task::getVehicleId, requestBackQuery.getVehicleId())
|
||||||
|
.eq(Task::getTaskType, TaskType.IN.getCode())
|
||||||
|
.eq(Task::getTaskStatus, WmsTaskStatus.TEMP.getCode())
|
||||||
|
.likeRight(Task::getTaskId, "RK_"))) {
|
||||||
|
// 回退库位锁定
|
||||||
|
locationService.update(new LambdaUpdateWrapper<Location>()
|
||||||
|
.set(Location::getLocationStatus, LocationStatus.EMPTY.getCode())
|
||||||
|
.set(Location::getVehicleId, "")
|
||||||
|
.eq(Location::getLocationId, nextLocationId)
|
||||||
|
.eq(Location::getLocationStatus, LocationStatus.OCCUPY.getCode()));
|
||||||
|
logger.error("更新入库任务失败,箱号:{}", requestBackQuery.getVehicleId());
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("更新入库任务失败。");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
taskService.update(new LambdaUpdateWrapper<Task>()
|
||||||
|
.set(Task::getTaskStatus, WmsTaskStatus.NEW.getCode())
|
||||||
|
.eq(Task::getVehicleId, requestBackQuery.getVehicleId())
|
||||||
|
.eq(Task::getTaskType, TaskType.IN.getCode())
|
||||||
|
.eq(Task::getTaskStatus, WmsTaskStatus.TEMP.getCode())
|
||||||
|
.likeRight(Task::getTaskId, "RK_"));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
// 寻找库位
|
||||||
|
String nextLocationId = requestALocation(requestBackQuery.getVehicleId());
|
||||||
if (Objects.equals(nextLocationId, "")) {
|
if (Objects.equals(nextLocationId, "")) {
|
||||||
logger.error("暂无可用库位");
|
logger.error("暂无可用库位");
|
||||||
response.setCode(ResponseCode.ERROR.getCode());
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
|
@ -2068,6 +2080,28 @@ public class TaskController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String requestALocation(String vehicleId) {
|
||||||
|
String nextLocationId = "";
|
||||||
|
for (int i = 0; i < locationService.count(new LambdaQueryWrapper<Location>().eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode())); i++) {
|
||||||
|
Map<String, String> resultMap = locationService.getOneLocation("", "");
|
||||||
|
if (resultMap.isEmpty() || !resultMap.containsKey("nextLocationId")) {
|
||||||
|
return "";
|
||||||
|
} else {
|
||||||
|
Location nextLocation = locationService.getOne(new LambdaQueryWrapper<Location>().eq(Location::getLocationId, resultMap.get("nextLocationId")).last("limit 1"));
|
||||||
|
LambdaUpdateWrapper<Location> updateLocationWrapper = new LambdaUpdateWrapper<Location>()
|
||||||
|
.set(Location::getLocationStatus, LocationStatus.OCCUPY.getCode())
|
||||||
|
.set(Location::getVehicleId, vehicleId)
|
||||||
|
.eq(Location::getLocationId, nextLocation.getLocationId())
|
||||||
|
.eq(Location::getLocationStatus, LocationStatus.EMPTY.getCode());
|
||||||
|
if (locationService.update(updateLocationWrapper)) {
|
||||||
|
nextLocationId = resultMap.get("nextLocationId");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nextLocationId;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求打印标签的数据
|
* 请求打印标签的数据
|
||||||
*
|
*
|
||||||
|
|
@ -2164,6 +2198,96 @@ public class TaskController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请求当前大盒子个数
|
||||||
|
*
|
||||||
|
* @param sortBoxRequest 请求信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/requestSumOfBox")
|
||||||
|
@ResponseBody
|
||||||
|
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||||
|
@MyLog(logTitle = "获取大盒子数量", logMethod = "requestSumOfBox")
|
||||||
|
public String requestSumOfBox(@RequestBody SortBoxRequest sortBoxRequest) {
|
||||||
|
logger.info("获取大盒子数量:{},ip地址:{}", convertJsonString(sortBoxRequest), HttpUtils.getIpAddr(servletRequest));
|
||||||
|
ResponseEntity response = new ResponseEntity();
|
||||||
|
try {
|
||||||
|
// 判断请求参数是否正确
|
||||||
|
if (sortBoxRequest == null || StringUtils.isEmpty(sortBoxRequest.getBigBoxNo())) {
|
||||||
|
logger.error("请求参数缺少大盒子号。");
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("请求参数缺少大盒子号。");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
// 获取站台号
|
||||||
|
String standId = "";
|
||||||
|
if (StringUtils.isNotEmpty(sortBoxRequest.getStandId())) {
|
||||||
|
// 站台号从请求参数中获取
|
||||||
|
standId = sortBoxRequest.getStandId();
|
||||||
|
} else {
|
||||||
|
// 站台号从ip获取
|
||||||
|
Stand standOfIp = standService.getOne(new LambdaQueryWrapper<Stand>()
|
||||||
|
.eq(Stand::getStandIp, HttpUtils.getIpAddr(servletRequest))
|
||||||
|
.eq(Stand::getStandType, 2)
|
||||||
|
.last("limit 1"));
|
||||||
|
if (standOfIp != null && StringUtils.isNotEmpty(standOfIp.getStandId())) {
|
||||||
|
standId = standOfIp.getStandId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(standId)) {
|
||||||
|
logger.error("请求参数缺少站台号。");
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("请求参数缺少站台号。");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
// 判断大盒子号是否正确
|
||||||
|
List<WorkStationConfig> stationConfigs = workStationConfigService.list(new LambdaQueryWrapper<WorkStationConfig>()
|
||||||
|
.eq(WorkStationConfig::getBigBox, sortBoxRequest.getBigBoxNo())
|
||||||
|
.eq(WorkStationConfig::getWorkStation, standId));
|
||||||
|
if (stationConfigs == null || stationConfigs.isEmpty()) {
|
||||||
|
logger.error("请输入正确的大盒子号。");
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("请输入正确的大盒子号。");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
// 当前要亮灯的大盒子
|
||||||
|
WorkStationConfig currentBigBoxConfig = stationConfigs.get(0);
|
||||||
|
// 当前配置的工单数/大盒子
|
||||||
|
int orderQuantity = currentBigBoxConfig.getOrderQuantity();
|
||||||
|
// 查询这个大盒子对应的小盒子
|
||||||
|
List<String> smallBoxListOfAll = stationConfigs.stream().map(WorkStationConfig::getSmallBox).distinct().toList();
|
||||||
|
// 找出本次工作中的标签位
|
||||||
|
List<ELocationConfigLast> eConfigLastList = eLocationConfigLastService.list(new LambdaQueryWrapper<ELocationConfigLast>()
|
||||||
|
.eq(ELocationConfigLast::getWorkStation, standId)
|
||||||
|
.in(ELocationConfigLast::getWorkCenter, smallBoxListOfAll));
|
||||||
|
if (eConfigLastList.isEmpty()) {
|
||||||
|
logger.error("当前大盒子暂时不需要亮灯。");
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("当前大盒子暂时不需要亮灯。");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
if (orderQuantity <= 0) {
|
||||||
|
sortBoxRequest.setSumOfOrders(0);
|
||||||
|
} else {
|
||||||
|
// 根据这些小盒子号找到对应的工单
|
||||||
|
List<String> orderIds = eConfigLastList.stream().map(ELocationConfigLast::getWorkOrder).distinct().toList();
|
||||||
|
sortBoxRequest.setSumOfOrders((orderIds.size() + orderQuantity - 1)/orderQuantity);
|
||||||
|
}
|
||||||
|
|
||||||
|
response.setCode(ResponseCode.OK.getCode());
|
||||||
|
response.setMessage("获取大盒子数量成功。");
|
||||||
|
response.setReturnData(sortBoxRequest);
|
||||||
|
return convertJsonString(response);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 回滚事务
|
||||||
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
|
logger.error("处理整理盒子请求异常,{}", convertJsonString(e));
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("处理整理盒子请求异常。");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 请求整理盒子
|
* 请求整理盒子
|
||||||
*
|
*
|
||||||
|
|
@ -2230,24 +2354,27 @@ public class TaskController {
|
||||||
WorkStationConfig currentBigBoxConfig = stationConfigs.get(0);
|
WorkStationConfig currentBigBoxConfig = stationConfigs.get(0);
|
||||||
// 当前配置的工单数/大盒子
|
// 当前配置的工单数/大盒子
|
||||||
int orderQuantity = currentBigBoxConfig.getOrderQuantity();
|
int orderQuantity = currentBigBoxConfig.getOrderQuantity();
|
||||||
if (orderQuantity <= 0) {
|
// 亮灯列表
|
||||||
logger.error("当前大盒子号不装大盒子。");
|
List<ETaskData> eTaskDataList = new ArrayList<>();
|
||||||
response.setCode(ResponseCode.ERROR.getCode());
|
|
||||||
response.setMessage("当前大盒子号不装大盒子。");
|
|
||||||
return convertJsonString(response);
|
|
||||||
}
|
|
||||||
// 查询这个大盒子对应的小盒子
|
// 查询这个大盒子对应的小盒子
|
||||||
List<String> smallBoxListOfAll = stationConfigs.stream().map(WorkStationConfig::getSmallBox).distinct().toList();
|
List<String> smallBoxListOfAll = stationConfigs.stream().map(WorkStationConfig::getSmallBox).distinct().toList();
|
||||||
// 找出本次工作中的标签位
|
// 找出本次工作中的标签位
|
||||||
List<ELocationConfigLast> eConfigLastList = eLocationConfigLastService.list(new LambdaQueryWrapper<ELocationConfigLast>()
|
List<ELocationConfigLast> eConfigLastList = eLocationConfigLastService.list(new LambdaQueryWrapper<ELocationConfigLast>()
|
||||||
.eq(ELocationConfigLast::getWorkStation, standId)
|
.eq(ELocationConfigLast::getWorkStation, standId)
|
||||||
.in(ELocationConfigLast::getWorkCenter, smallBoxListOfAll)
|
.in(ELocationConfigLast::getWorkCenter, smallBoxListOfAll));
|
||||||
.eq(ELocationConfigLast::getBoxStatus, 0));
|
if (eConfigLastList == null || eConfigLastList.isEmpty()) {
|
||||||
// 亮灯列表
|
logger.error("当前大盒子暂时不需要亮灯。");
|
||||||
List<ETaskData> eTaskDataList = new ArrayList<>();
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
// 生成亮灯数据
|
response.setMessage("当前大盒子暂时不需要亮灯。");
|
||||||
if (!eConfigLastList.isEmpty()) {
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
if (orderQuantity <= 0) {
|
||||||
|
// 生成亮灯数据
|
||||||
for (ELocationConfigLast eConfigLast : eConfigLastList) {
|
for (ELocationConfigLast eConfigLast : eConfigLastList) {
|
||||||
|
if (eConfigLast.getBoxStatus() != 0) {
|
||||||
|
// 不是未亮灯的状态
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// 当次拣选数量
|
// 当次拣选数量
|
||||||
ETaskData eTaskData = new ETaskData();
|
ETaskData eTaskData = new ETaskData();
|
||||||
eTaskData.setTaskId(generateId(eConfigLast.getOrderBoxNo() + "_"));// 用户查询对应的拣选任务
|
eTaskData.setTaskId(generateId(eConfigLast.getOrderBoxNo() + "_"));// 用户查询对应的拣选任务
|
||||||
|
|
@ -2264,6 +2391,40 @@ public class TaskController {
|
||||||
.set(ETagLocation::getConfirmNum, eTaskData.getNeedNum())
|
.set(ETagLocation::getConfirmNum, eTaskData.getNeedNum())
|
||||||
.eq(ETagLocation::getELocationId, eConfigLast.getELocationId()));
|
.eq(ETagLocation::getELocationId, eConfigLast.getELocationId()));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (sortBoxRequest.getOrderOfOrders() == null || sortBoxRequest.getOrderOfOrders() <= 0) {
|
||||||
|
logger.error("请填入正确的盒子序号。");
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("请填入正确的盒子序号。");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
// 查找到所有的工单
|
||||||
|
List<String> orderIds = eConfigLastList.stream().map(ELocationConfigLast::getWorkOrder).distinct().toList();
|
||||||
|
List<String> toBeLightedOrders = orderIds.stream().skip((long) (sortBoxRequest.getOrderOfOrders() - 1) * orderQuantity).limit(orderQuantity).toList();
|
||||||
|
// 生成亮灯数据
|
||||||
|
if (!toBeLightedOrders.isEmpty()) {
|
||||||
|
for (ELocationConfigLast eConfigLast : eConfigLastList) {
|
||||||
|
if (eConfigLast.getBoxStatus() != 0 || !toBeLightedOrders.contains(eConfigLast.getWorkOrder())) {
|
||||||
|
// 不是未亮灯的状态或者不是这次要亮灯的工单
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 当次拣选数量
|
||||||
|
ETaskData eTaskData = new ETaskData();
|
||||||
|
eTaskData.setTaskId(generateId(eConfigLast.getOrderBoxNo() + "_"));// 用户查询对应的拣选任务
|
||||||
|
eTaskData.setETaskId(generateId(eConfigLast.getOrderBoxNo() + "_"));
|
||||||
|
eTaskData.setGoodsId(eConfigLast.getOrderBoxNo());
|
||||||
|
eTaskData.setGoodsName("");
|
||||||
|
eTaskData.setNeedNum(1);
|
||||||
|
eTaskData.setLocation(eConfigLast.getELocationId());
|
||||||
|
eTaskDataList.add(eTaskData);
|
||||||
|
// 更新电子标签库位信息
|
||||||
|
etagLocationService.update(new LambdaUpdateWrapper<ETagLocation>()
|
||||||
|
.set(ETagLocation::getTaskId, eTaskData.getTaskId())
|
||||||
|
.set(ETagLocation::getNeedNum, eTaskData.getNeedNum())
|
||||||
|
.set(ETagLocation::getConfirmNum, eTaskData.getNeedNum())
|
||||||
|
.eq(ETagLocation::getELocationId, eConfigLast.getELocationId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!eTaskDataList.isEmpty()) {
|
if (!eTaskDataList.isEmpty()) {
|
||||||
// 发送亮灯
|
// 发送亮灯
|
||||||
|
|
@ -2287,7 +2448,7 @@ public class TaskController {
|
||||||
}
|
}
|
||||||
if (result == null || !Objects.equals(result.getCode(), ResponseCode.OK.getCode())) {
|
if (result == null || !Objects.equals(result.getCode(), ResponseCode.OK.getCode())) {
|
||||||
logger.error("发送电子标签亮灯任务失败:{}", convertJsonString(result));
|
logger.error("发送电子标签亮灯任务失败:{}", convertJsonString(result));
|
||||||
throw new Exception("发送电子标签亮灯任务失败");
|
throw new Exception("发送电子标签亮灯任务失败。");
|
||||||
} else {
|
} else {
|
||||||
// 更新亮灯数据
|
// 更新亮灯数据
|
||||||
etagLocationService.update(new LambdaUpdateWrapper<ETagLocation>()
|
etagLocationService.update(new LambdaUpdateWrapper<ETagLocation>()
|
||||||
|
|
@ -2297,23 +2458,14 @@ public class TaskController {
|
||||||
.in(ETagLocation::getELocationId, eTaskDataList.stream().map(ETaskData::getLocation).collect(Collectors.toList())));
|
.in(ETagLocation::getELocationId, eTaskDataList.stream().map(ETaskData::getLocation).collect(Collectors.toList())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 根据这些小盒子号找到对应的工单
|
|
||||||
List<String> orderIds = eConfigLastList.stream().map(ELocationConfigLast::getWorkOrder).distinct().toList();
|
|
||||||
// 查询DBS
|
|
||||||
List<KateDBS> dbsList = kateDBSService.list(new LambdaQueryWrapper<KateDBS>()
|
|
||||||
.in(KateDBS::getWorkOrder, orderIds)
|
|
||||||
.orderByAsc(KateDBS::getWorkSequence));
|
|
||||||
List<String> machineNoList = dbsList.stream().map(KateDBS::getMachineNo).distinct().toList();
|
|
||||||
// 查询到本次序列号个数
|
|
||||||
sortBoxRequest.setOrderOfOrders(machineNoList.size());
|
|
||||||
logger.info("处理整理盒子请求成功。");
|
logger.info("处理整理盒子请求成功。");
|
||||||
response.setCode(ResponseCode.OK.getCode());
|
response.setCode(ResponseCode.OK.getCode());
|
||||||
response.setMessage("请根据灯光拣选盒子。");
|
response.setMessage("请根据灯光拣选盒子。");
|
||||||
response.setReturnData(sortBoxRequest);
|
response.setReturnData(sortBoxRequest);
|
||||||
} else {
|
} else {
|
||||||
logger.info("没有可亮灯的数据。");
|
logger.info("没有可亮灯的数据或者灯光已经全部亮过。");
|
||||||
response.setCode(ResponseCode.ERROR.getCode());
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
response.setMessage("没有可亮灯的数据,请按按钮。");
|
response.setMessage("没有可亮灯的数据或者灯光已经全部亮过。");
|
||||||
}
|
}
|
||||||
return convertJsonString(response);
|
return convertJsonString(response);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
@ -2321,7 +2473,7 @@ public class TaskController {
|
||||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
logger.error("处理整理盒子请求异常,{}", convertJsonString(e));
|
logger.error("处理整理盒子请求异常,{}", convertJsonString(e));
|
||||||
response.setCode(ResponseCode.ERROR.getCode());
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
response.setMessage("处理整理盒子请求异常。");
|
response.setMessage("处理整理盒子请求异常:" + e.getMessage());
|
||||||
return convertJsonString(response);
|
return convertJsonString(response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2576,6 +2728,7 @@ public class TaskController {
|
||||||
// 更新库存数量
|
// 更新库存数量
|
||||||
if (existStock != null && existStock.getGoodsRelated() != null) {
|
if (existStock != null && existStock.getGoodsRelated() != null) {
|
||||||
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
||||||
|
BigDecimal quantityBefore = originStock.getGoodsRelated().getRemainNum();
|
||||||
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
||||||
// 设置剩余库存
|
// 设置剩余库存
|
||||||
if (pickNumQuery.getRemainNum() != null) {
|
if (pickNumQuery.getRemainNum() != null) {
|
||||||
|
|
@ -2593,7 +2746,7 @@ public class TaskController {
|
||||||
}
|
}
|
||||||
existStock.setGoodsRelated(goodsDetail);
|
existStock.setGoodsRelated(goodsDetail);
|
||||||
stockService.updateById(existStock);
|
stockService.updateById(existStock);
|
||||||
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.CLC_NO_PLAN_UPDATE.getReason(), pickNumQuery.getUserName());
|
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.CLC_NO_PLAN_UPDATE.getReason(), pickNumQuery.getUserName(), quantityBefore);
|
||||||
}
|
}
|
||||||
// 判断这个箱子是否还有拣选任务
|
// 判断这个箱子是否还有拣选任务
|
||||||
boolean hasPickTasks = pickTaskService.exists(new LambdaQueryWrapper<PickTask>()
|
boolean hasPickTasks = pickTaskService.exists(new LambdaQueryWrapper<PickTask>()
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,13 @@ public class SortBoxRequest extends PageQuery {
|
||||||
@JsonProperty("bigBoxNo")
|
@JsonProperty("bigBoxNo")
|
||||||
private String bigBoxNo;
|
private String bigBoxNo;
|
||||||
/**
|
/**
|
||||||
* 工单顺序
|
* 工单顺序/当前盒子顺序
|
||||||
*/
|
*/
|
||||||
@JsonProperty("orderOfOrders")
|
@JsonProperty("orderOfOrders")
|
||||||
private Integer orderOfOrders;
|
private Integer orderOfOrders;
|
||||||
|
/**
|
||||||
|
* 工单总数/需要盒子总数
|
||||||
|
*/
|
||||||
|
@JsonProperty("sumOfOrders")
|
||||||
|
private Integer sumOfOrders;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.wms.entity.table.Stock;
|
import com.wms.entity.table.Stock;
|
||||||
import com.wms.entity.table.StockUpdateRecord;
|
import com.wms.entity.table.StockUpdateRecord;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 库存更新记录接口
|
* 库存更新记录接口
|
||||||
*/
|
*/
|
||||||
|
|
@ -16,5 +18,5 @@ public interface IStockUpdateRecordService extends IService<StockUpdateRecord> {
|
||||||
* @param opUser 操作用户
|
* @param opUser 操作用户
|
||||||
* @return 添加结果
|
* @return 添加结果
|
||||||
*/
|
*/
|
||||||
boolean addStockUpdateRecord(Stock stockBefore, Stock stockAfter, String reason, String opUser);
|
boolean addStockUpdateRecord(Stock stockBefore, Stock stockAfter, String reason, String opUser, BigDecimal quantityBefore);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -335,7 +335,6 @@ public class WmsTaskServiceImplements implements IWmsTaskService {
|
||||||
usedOutsideVehiclesList.add(outsideVehicle);
|
usedOutsideVehiclesList.add(outsideVehicle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// 更新流转箱表
|
// 更新流转箱表
|
||||||
outsideVehiclesService.updateBatchById(usedOutsideVehiclesList);
|
outsideVehiclesService.updateBatchById(usedOutsideVehiclesList);
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import static com.wms.utils.WmsUtils.generateId;
|
||||||
public class StockUpdateRecordServiceImpl extends ServiceImpl<StockUpdateRecordMapper, StockUpdateRecord> implements IStockUpdateRecordService {
|
public class StockUpdateRecordServiceImpl extends ServiceImpl<StockUpdateRecordMapper, StockUpdateRecord> implements IStockUpdateRecordService {
|
||||||
private final StockUpdateRecordMapper stockUpdateRecordMapper;
|
private final StockUpdateRecordMapper stockUpdateRecordMapper;
|
||||||
@Override
|
@Override
|
||||||
public boolean addStockUpdateRecord(Stock stockBefore, Stock stockAfter, String reason, String opUser) {
|
public boolean addStockUpdateRecord(Stock stockBefore, Stock stockAfter, String reason, String opUser, BigDecimal quantityBefore) {
|
||||||
if (stockBefore == null && stockAfter == null) {
|
if (stockBefore == null && stockAfter == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
@ -35,7 +35,7 @@ public class StockUpdateRecordServiceImpl extends ServiceImpl<StockUpdateRecordM
|
||||||
stockUpdateRecord.setGoodsName(stockBefore.getGoodsRelated().getGoodsName());
|
stockUpdateRecord.setGoodsName(stockBefore.getGoodsRelated().getGoodsName());
|
||||||
stockUpdateRecord.setVehicleId(stockBefore.getVehicleId());
|
stockUpdateRecord.setVehicleId(stockBefore.getVehicleId());
|
||||||
stockUpdateRecord.setLocationBefore(stockBefore.getLocationId());
|
stockUpdateRecord.setLocationBefore(stockBefore.getLocationId());
|
||||||
stockUpdateRecord.setQuantityBefore(stockBefore.getGoodsRelated().getRemainNum());
|
stockUpdateRecord.setQuantityBefore(quantityBefore);
|
||||||
} else {
|
} else {
|
||||||
stockUpdateRecord.setStockId(stockAfter.getStockId());
|
stockUpdateRecord.setStockId(stockAfter.getStockId());
|
||||||
stockUpdateRecord.setGoodsId(stockAfter.getGoodsRelated().getGoodsId());
|
stockUpdateRecord.setGoodsId(stockAfter.getGoodsRelated().getGoodsId());
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,12 @@ public class UserServiceImplements extends ServiceImpl<UserMapper, User> impleme
|
||||||
@Override
|
@Override
|
||||||
public UserDto validateUser(User user, boolean withAuth) {
|
public UserDto validateUser(User user, boolean withAuth) {
|
||||||
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<User>()
|
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<User>()
|
||||||
.eq(User::getLoginAccount, user.getLoginAccount())
|
.eq(User::getLoginAccount, user.getLoginAccount());
|
||||||
.or().eq(withAuth, User::getLoginPassword, user.getLoginPassword())
|
if (withAuth) {
|
||||||
.or().eq(StringUtils.isEmpty(user.getLoginPassword()), User::getLoginPassword, null);
|
queryWrapper.or(userLambdaQueryWrapper ->
|
||||||
|
userLambdaQueryWrapper.eq(User::getLoginAccount, user.getLoginAccount())
|
||||||
|
.or().eq(StringUtils.isEmpty(user.getLoginPassword()), User::getLoginPassword, null));
|
||||||
|
}
|
||||||
return BeanUtil.copyProperties(userMapper.selectOne(queryWrapper), UserDto.class);
|
return BeanUtil.copyProperties(userMapper.selectOne(queryWrapper), UserDto.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user