代码更新:
1.整理盒子功能修改
This commit is contained in:
parent
442bd2f9ee
commit
6fededdd30
|
|
@ -195,7 +195,7 @@ public class StockController {
|
|||
.eq(Vehicle::getVehicleId, stockBefore.getVehicleId())
|
||||
.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,删除库存成功");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
|
|
@ -209,6 +209,7 @@ public class StockController {
|
|||
} else {
|
||||
// 更新库存---只能更新一部分列
|
||||
Stock updatingStock = BeanUtil.copyProperties(stockBefore, Stock.class);
|
||||
BigDecimal quantityBefore = stockBefore.getGoodsRelated().getRemainNum();
|
||||
updatingStock.setStockStatus(stockQuery.getStockStatus());
|
||||
if (StringUtils.isNotEmpty(stockQuery.getLocationId()) && locationService.exists(new LambdaQueryWrapper<Location>().eq(Location::getLocationId, stockQuery.getLocationId()))) {
|
||||
updatingStock.setLocationId(stockQuery.getLocationId());
|
||||
|
|
@ -223,7 +224,7 @@ public class StockController {
|
|||
}
|
||||
// 更新库存
|
||||
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("更新库存信息成功");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
|
|
@ -272,7 +273,7 @@ public class StockController {
|
|||
.set(Vehicle::getIsEmpty, 0)
|
||||
.eq(Vehicle::getVehicleId, stockPo.getVehicleId())
|
||||
.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("添加库存信息成功");
|
||||
rsp.setCode(ResponseCode.OK.getCode());
|
||||
|
|
|
|||
|
|
@ -336,12 +336,13 @@ public class TaskController {
|
|||
.last("limit 1"));
|
||||
if (existStock != null) {
|
||||
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
||||
BigDecimal quantityBefore = originStock.getGoodsRelated().getRemainNum();
|
||||
// 已有库存,直接更新数量
|
||||
existStock.setLocationId(inTask.getDestination());
|
||||
existStock.getGoodsRelated().setRemainNum(existStock.getGoodsRelated().getRemainNum().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()));
|
||||
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.UPDATE_IN.getReason(), inTask.getUserName());
|
||||
stockUpdateRecordService.addStockUpdateRecord(originStock, existStock, StockUpdateReasonEnum.UPDATE_IN.getReason(), inTask.getUserName(), quantityBefore);
|
||||
} else {
|
||||
Stock newStock = new Stock();
|
||||
newStock.setStockId(generateId("ST_"));
|
||||
|
|
@ -359,7 +360,7 @@ public class TaskController {
|
|||
detailInfo.setTotalNum(inTask.getGoodsRelated().getOpNum());
|
||||
newStock.setGoodsRelated(detailInfo);
|
||||
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()));
|
||||
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()));
|
||||
// 删除载具
|
||||
|
|
@ -1240,11 +1241,12 @@ public class TaskController {
|
|||
.last("limit 1"));
|
||||
if (existStock != null && existStock.getGoodsRelated() != null) {
|
||||
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
||||
BigDecimal quantityBefore = originStock.getGoodsRelated().getRemainNum();
|
||||
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
||||
goodsDetail.setRemainNum(goodsDetail.getRemainNum().subtract(BigDecimal.valueOf(eTaskFeedbackRequest.getConfirmNum())));
|
||||
existStock.setGoodsRelated(goodsDetail);
|
||||
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>()
|
||||
|
|
@ -1365,11 +1367,12 @@ public class TaskController {
|
|||
.last("limit 1"));// 更新库存数量
|
||||
if (existStock != null && existStock.getGoodsRelated() != null) {
|
||||
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
||||
BigDecimal quantityBefore = originStock.getGoodsRelated().getRemainNum();
|
||||
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
||||
goodsDetail.setRemainNum(workConfirmRequest.getRemainNumReal());
|
||||
existStock.setGoodsRelated(goodsDetail);
|
||||
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>()
|
||||
.eq(OutsideVehicles::getVehicleId, pickTask.getVehicleId())
|
||||
|
|
@ -1971,40 +1974,49 @@ public class TaskController {
|
|||
.likeRight(Task::getTaskId, "HK_"));
|
||||
if (!hasBackTask) {
|
||||
// 判断当前载具是否有入库任务
|
||||
boolean hasInTask = taskService.exists(new LambdaQueryWrapper<Task>()
|
||||
List<Task> inTasks = taskService.list(new LambdaQueryWrapper<Task>()
|
||||
.eq(Task::getVehicleId, requestBackQuery.getVehicleId())
|
||||
.eq(Task::getTaskType, TaskType.IN.getCode())
|
||||
.likeRight(Task::getTaskId, "RK_"));
|
||||
if (hasInTask) {
|
||||
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 = "";
|
||||
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")) {
|
||||
if (inTasks != null && !inTasks.isEmpty()) {
|
||||
if (StringUtils.isEmpty(inTasks.get(0).getDestination())) {
|
||||
// 寻找库位
|
||||
String nextLocationId = requestALocation(requestBackQuery.getVehicleId());
|
||||
if (Objects.equals(nextLocationId, "")) {
|
||||
logger.error("暂无可用库位");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("暂无可用库位!");
|
||||
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, "")) {
|
||||
logger.error("暂无可用库位");
|
||||
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);
|
||||
// 当前配置的工单数/大盒子
|
||||
int orderQuantity = currentBigBoxConfig.getOrderQuantity();
|
||||
if (orderQuantity <= 0) {
|
||||
logger.error("当前大盒子号不装大盒子。");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("当前大盒子号不装大盒子。");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
// 亮灯列表
|
||||
List<ETaskData> eTaskDataList = new ArrayList<>();
|
||||
// 查询这个大盒子对应的小盒子
|
||||
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)
|
||||
.eq(ELocationConfigLast::getBoxStatus, 0));
|
||||
// 亮灯列表
|
||||
List<ETaskData> eTaskDataList = new ArrayList<>();
|
||||
// 生成亮灯数据
|
||||
if (!eConfigLastList.isEmpty()) {
|
||||
.in(ELocationConfigLast::getWorkCenter, smallBoxListOfAll));
|
||||
if (eConfigLastList == null || eConfigLastList.isEmpty()) {
|
||||
logger.error("当前大盒子暂时不需要亮灯。");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("当前大盒子暂时不需要亮灯。");
|
||||
return convertJsonString(response);
|
||||
}
|
||||
if (orderQuantity <= 0) {
|
||||
// 生成亮灯数据
|
||||
for (ELocationConfigLast eConfigLast : eConfigLastList) {
|
||||
if (eConfigLast.getBoxStatus() != 0) {
|
||||
// 不是未亮灯的状态
|
||||
continue;
|
||||
}
|
||||
// 当次拣选数量
|
||||
ETaskData eTaskData = new ETaskData();
|
||||
eTaskData.setTaskId(generateId(eConfigLast.getOrderBoxNo() + "_"));// 用户查询对应的拣选任务
|
||||
|
|
@ -2264,6 +2391,40 @@ public class TaskController {
|
|||
.set(ETagLocation::getConfirmNum, eTaskData.getNeedNum())
|
||||
.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()) {
|
||||
// 发送亮灯
|
||||
|
|
@ -2287,7 +2448,7 @@ public class TaskController {
|
|||
}
|
||||
if (result == null || !Objects.equals(result.getCode(), ResponseCode.OK.getCode())) {
|
||||
logger.error("发送电子标签亮灯任务失败:{}", convertJsonString(result));
|
||||
throw new Exception("发送电子标签亮灯任务失败");
|
||||
throw new Exception("发送电子标签亮灯任务失败。");
|
||||
} else {
|
||||
// 更新亮灯数据
|
||||
etagLocationService.update(new LambdaUpdateWrapper<ETagLocation>()
|
||||
|
|
@ -2297,23 +2458,14 @@ public class TaskController {
|
|||
.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("处理整理盒子请求成功。");
|
||||
response.setCode(ResponseCode.OK.getCode());
|
||||
response.setMessage("请根据灯光拣选盒子。");
|
||||
response.setReturnData(sortBoxRequest);
|
||||
} else {
|
||||
logger.info("没有可亮灯的数据。");
|
||||
logger.info("没有可亮灯的数据或者灯光已经全部亮过。");
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("没有可亮灯的数据,请按按钮。");
|
||||
response.setMessage("没有可亮灯的数据或者灯光已经全部亮过。");
|
||||
}
|
||||
return convertJsonString(response);
|
||||
} catch (Exception e) {
|
||||
|
|
@ -2321,7 +2473,7 @@ public class TaskController {
|
|||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.error("处理整理盒子请求异常,{}", convertJsonString(e));
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("处理整理盒子请求异常。");
|
||||
response.setMessage("处理整理盒子请求异常:" + e.getMessage());
|
||||
return convertJsonString(response);
|
||||
}
|
||||
}
|
||||
|
|
@ -2576,6 +2728,7 @@ public class TaskController {
|
|||
// 更新库存数量
|
||||
if (existStock != null && existStock.getGoodsRelated() != null) {
|
||||
Stock originStock = BeanUtil.copyProperties(existStock, Stock.class);
|
||||
BigDecimal quantityBefore = originStock.getGoodsRelated().getRemainNum();
|
||||
StockDetailInfo goodsDetail = existStock.getGoodsRelated();
|
||||
// 设置剩余库存
|
||||
if (pickNumQuery.getRemainNum() != null) {
|
||||
|
|
@ -2593,7 +2746,7 @@ public class TaskController {
|
|||
}
|
||||
existStock.setGoodsRelated(goodsDetail);
|
||||
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>()
|
||||
|
|
|
|||
|
|
@ -18,8 +18,13 @@ public class SortBoxRequest extends PageQuery {
|
|||
@JsonProperty("bigBoxNo")
|
||||
private String bigBoxNo;
|
||||
/**
|
||||
* 工单顺序
|
||||
* 工单顺序/当前盒子顺序
|
||||
*/
|
||||
@JsonProperty("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.StockUpdateRecord;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 库存更新记录接口
|
||||
*/
|
||||
|
|
@ -16,5 +18,5 @@ public interface IStockUpdateRecordService extends IService<StockUpdateRecord> {
|
|||
* @param opUser 操作用户
|
||||
* @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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// 更新流转箱表
|
||||
outsideVehiclesService.updateBatchById(usedOutsideVehiclesList);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ import static com.wms.utils.WmsUtils.generateId;
|
|||
public class StockUpdateRecordServiceImpl extends ServiceImpl<StockUpdateRecordMapper, StockUpdateRecord> implements IStockUpdateRecordService {
|
||||
private final StockUpdateRecordMapper stockUpdateRecordMapper;
|
||||
@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) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@ public class StockUpdateRecordServiceImpl extends ServiceImpl<StockUpdateRecordM
|
|||
stockUpdateRecord.setGoodsName(stockBefore.getGoodsRelated().getGoodsName());
|
||||
stockUpdateRecord.setVehicleId(stockBefore.getVehicleId());
|
||||
stockUpdateRecord.setLocationBefore(stockBefore.getLocationId());
|
||||
stockUpdateRecord.setQuantityBefore(stockBefore.getGoodsRelated().getRemainNum());
|
||||
stockUpdateRecord.setQuantityBefore(quantityBefore);
|
||||
} else {
|
||||
stockUpdateRecord.setStockId(stockAfter.getStockId());
|
||||
stockUpdateRecord.setGoodsId(stockAfter.getGoodsRelated().getGoodsId());
|
||||
|
|
|
|||
|
|
@ -20,9 +20,12 @@ public class UserServiceImplements extends ServiceImpl<UserMapper, User> impleme
|
|||
@Override
|
||||
public UserDto validateUser(User user, boolean withAuth) {
|
||||
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<User>()
|
||||
.eq(User::getLoginAccount, user.getLoginAccount())
|
||||
.or().eq(withAuth, User::getLoginPassword, user.getLoginPassword())
|
||||
.or().eq(StringUtils.isEmpty(user.getLoginPassword()), User::getLoginPassword, null);
|
||||
.eq(User::getLoginAccount, user.getLoginAccount());
|
||||
if (withAuth) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user