rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
@@ -326,15 +326,23 @@ TaskItem item = taskItemService.getById(taskItem.getId()); //判断是否允许超收,不允许超收添加拒收判断 if (!Objects.isNull(config)) { LocItemWorking serviceOne = locItemWorkingService.getOne(new LambdaQueryWrapper<LocItemWorking>().eq(LocItemWorking::getFieldsIndex, item.getFieldsIndex())); TaskItem serviceOne = taskItemService.getOne(new LambdaQueryWrapper<TaskItem>() .eq(TaskItem::getTaskId, task.getId()) .eq(TaskItem::getFieldsIndex, item.getFieldsIndex())); if (Objects.isNull(serviceOne)) { throw new CoolException("缓存数据丢失!!"); } LocItemWorking workItem = locItemWorkingService.getOne(new LambdaQueryWrapper<LocItemWorking>() .eq(LocItemWorking::getTaskId, task.getId()) .eq(LocItemWorking::getFieldsIndex, item.getFieldsIndex())); if (Objects.isNull(workItem)) { throw new CoolException("缓存数据丢失!!"); } Double v1 = Math.round((workItem.getAnfme() - serviceOne.getQty()) * 1000000) / 1000000.0; //不管是否允许超收,都需判断是否超出库存范围 if (taskItem.getAnfme().compareTo(serviceOne.getAnfme()) > 0) { if (taskItem.getAnfme().compareTo(v1) > 0) { throw new CoolException("拣货数量超出当前票号库存数量!!"); } if (!Boolean.parseBoolean(config.getVal())) { Double v = Math.round((item.getQty() + taskItem.getAnfme()) * 1000000) / 1000000.0; if (item.getAnfme().compareTo(v) < 0.0) { @@ -441,12 +449,14 @@ throw new CoolException("任务明细修改失败"); } LocItemWorking oldOne = locItemWorkingService.getOne(new LambdaQueryWrapper<LocItemWorking>() .eq(LocItemWorking::getTaskId, byId.getTaskId()) .eq(LocItemWorking::getMatnrCode, byId.getMatnrCode()) .eq(LocItemWorking::getFieldsIndex, byId.getFieldsIndex())); if (Objects.isNull(oldOne)) { throw new CoolException("明细不存在或已出库!!"); } LocItemWorking one = locItemWorkingService.getOne(new LambdaQueryWrapper<LocItemWorking>() .eq(LocItemWorking::getTaskId, byId.getTaskId()) .eq(LocItemWorking::getMatnrCode, byId.getMatnrCode()) .eq(LocItemWorking::getFieldsIndex, uuid)); if (Objects.isNull(one)) { rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -1017,17 +1017,18 @@ .setBarcode(task.getBarcode()) .setTaskStatus(TaskStsType.GENERATE_IN.id); TaskInParam param = new TaskInParam(); param.setSourceStaNo(task.getTargSite()) .setIoType(type) .setLocType1(Integer.parseInt(loc.getType())); // TaskInParam param = new TaskInParam(); // param.setSourceStaNo(task.getTargSite()) // .setIoType(type) // .setLocType1(Integer.parseInt(loc.getType())); //获取新库位 InTaskMsgDto locInfo = wcsService.getLocNo(param); // InTaskMsgDto locInfo = wcsService.getLocNo(param); if (Objects.isNull(locInfo)) { throw new CoolException("获取库位失败!!"); } task.setTargLoc(locInfo.getLocNo()) // if (Objects.isNull(locInfo)) { // throw new CoolException("获取库位失败!!"); // } //希日上报物有情况,不需要获取新库位 task.setTargLoc(task.getOrgLoc()) .setOrgSite(task.getTargSite()); if (!this.updateById(task)) { @@ -1096,7 +1097,6 @@ List<LocItemWorking> workings = new ArrayList<>(); List<TaskItem> items = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId())); items.forEach(taskItem -> { if (taskItem.getAnfme() > 0) { LocItemWorking itemWorking = new LocItemWorking(); BeanUtils.copyProperties(taskItem, itemWorking); itemWorking.setTaskId(task.getId()) @@ -1104,18 +1104,18 @@ .setLocId(loc1.getId()) .setLocCode(loc1.getCode()); workings.add(itemWorking); } }); if (!workings.isEmpty()) { if (!locItemWorkingService.saveBatch(workings)) { throw new CoolException("临时库存更新失败!!"); } loc1.setUseStatus(LocStsType.LOC_STS_TYPE_S.type); if (!locService.updateById(loc1)) { throw new CoolException("库位预约入库失败!!"); } loc1.setUseStatus(LocStsType.LOC_STS_TYPE_S.type); locService.updateById(loc1); // if (!locService.updateById(loc1)) { // throw new CoolException("库位预约入库失败!!"); // } return task; } @@ -1127,7 +1127,7 @@ */ @Synchronized @Transactional(rollbackFor = Exception.class) public void complateOutStock(Task task, Long loginUserId) throws Exception { public void complateOutStock(Task task, Long loginUserId) { if (Objects.isNull(task)) { throw new CoolException("参数不能为空!!"); } @@ -1224,7 +1224,17 @@ throw new CoolException(e.getMessage()); } } if (task.getTaskType().equals(TaskType.TASK_TYPE_PICK_AGAIN_OUT.type)) { /**修改为库位状态为S.预约入库,保留原有库位*/ if (!locService.update(new LambdaUpdateWrapper<Loc>() .set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_S.type) .set(Loc::getBarcode, null) .set(Loc::getUpdateBy, loginUserId) .set(Loc::getUpdateTime, new Date()) .eq(Loc::getId, loc.getId()))) { throw new CoolException("库位状态修改失败!!"); } } else { /**修改为库位状态为O.空库*/ if (!locService.update(new LambdaUpdateWrapper<Loc>() .set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type) @@ -1234,6 +1244,7 @@ .eq(Loc::getId, loc.getId()))) { throw new CoolException("库位状态修改失败!!"); } } if (!this.update(new LambdaUpdateWrapper<Task>() .eq(Task::getId, task.getId()) rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
@@ -16,7 +16,6 @@ import org.apache.commons.lang3.StringUtils; import javax.swing.*; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -129,7 +128,12 @@ LambdaQueryWrapper<LocItem> locItemQueryWrapper = new LambdaQueryWrapper<>(); locItemQueryWrapper.eq(LocItem::getMatnrCode, matnrCode); locItemQueryWrapper.eq(StringUtils.isNotEmpty(splrBatch), LocItem::getBatch, splrBatch); //如果批次不为空,按批次先后出库 if (StringUtils.isNotBlank(splrBatch)) { locItemQueryWrapper.orderByAsc(LocItem::getBatch); } else { locItemQueryWrapper.orderByAsc(LocItem::getCreateTime); } String applySql = String.format( "EXISTS (SELECT 1 FROM man_loc ml " + "WHERE ml.use_status = '%s'" + @@ -231,7 +235,6 @@ orderOutItemDto.setSitesNo(basStation.getStationName()); } } list.add(orderOutItemDto);