代码更新:

1.整理盒子功能修改
This commit is contained in:
梁州 2024-10-04 17:05:05 +08:00
parent 442bd2f9ee
commit 6fededdd30
7 changed files with 230 additions and 67 deletions

View File

@ -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());

View File

@ -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) {
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);
}
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 = "";
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("暂无可用库位");
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;
}
}
}
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<>();
.in(ELocationConfigLast::getWorkCenter, smallBoxListOfAll));
if (eConfigLastList == null || eConfigLastList.isEmpty()) {
logger.error("当前大盒子暂时不需要亮灯。");
response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("当前大盒子暂时不需要亮灯。");
return convertJsonString(response);
}
if (orderQuantity <= 0) {
// 生成亮灯数据
if (!eConfigLastList.isEmpty()) {
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>()

View File

@ -18,8 +18,13 @@ public class SortBoxRequest extends PageQuery {
@JsonProperty("bigBoxNo")
private String bigBoxNo;
/**
* 工单顺序
* 工单顺序/当前盒子顺序
*/
@JsonProperty("orderOfOrders")
private Integer orderOfOrders;
/**
* 工单总数/需要盒子总数
*/
@JsonProperty("sumOfOrders")
private Integer sumOfOrders;
}

View File

@ -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);
}

View File

@ -335,7 +335,6 @@ public class WmsTaskServiceImplements implements IWmsTaskService {
usedOutsideVehiclesList.add(outsideVehicle);
}
}
}
// 更新流转箱表
outsideVehiclesService.updateBatchById(usedOutsideVehiclesList);

View File

@ -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());

View File

@ -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);
}
}