diff --git a/archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java b/archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java index 053704a..89f2caf 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java +++ b/archives/src/main/java/com/storeroom/modules/archives/controller/StorageController.java @@ -1,9 +1,12 @@ package com.storeroom.modules.archives.controller; +import com.storeroom.modules.archives.domain.ArchivesCase; import com.storeroom.modules.archives.service.ArchivesCaseService; import com.storeroom.modules.archives.service.ArchivesService; import com.storeroom.modules.archives.service.dto.CaseDTO; import com.storeroom.modules.archives.service.dto.CollectDTO; +import com.storeroom.modules.device.domain.OperatingState; +import com.storeroom.modules.device.service.OperatingStateService; import com.storeroom.utils.ApiResponse; import com.storeroom.utils.enums.ResponseStatus; import io.swagger.annotations.Api; @@ -23,6 +26,7 @@ public class StorageController { private final ArchivesCaseService caseService; private final ArchivesService archivesService; + private final OperatingStateService operatingStateService; @ApiOperation("可入库盒列表") @GetMapping("/readyInto") @@ -63,11 +67,37 @@ public class StorageController { ){ if(null == dtos || dtos.size()==0) return ApiResponse.error(ResponseStatus.DEVICE_IS_NULL); - String device = dtos.get(0).getDeviceId(); + String deviceId = dtos.get(0).getDeviceId(); //判断设备是否有回调 - boolean isCallback = false; - Integer result = caseService.collect(isCallback,dtos); - return ApiResponse.success(result); + OperatingState callback = operatingStateService.findByDeviceIdAndStateType(deviceId,2); + boolean isCallback = callback == null ? false : callback.getInBound(); + List cases = caseService.collect(isCallback,dtos); + //判断设备是否有联动 + OperatingState linkage = operatingStateService.findByDeviceIdAndStateType(deviceId,1); + if(null != linkage && linkage.getInBound()){ + + } + return ApiResponse.success(cases.size()); + } + + @ApiOperation("出库") + @PostMapping("/grant") + public ApiResponse grant( + @Validated @RequestBody List dtos + ){ + if(null == dtos || dtos.size()==0) + return ApiResponse.error(ResponseStatus.DEVICE_IS_NULL); + String deviceId = dtos.get(0).getDeviceId(); + //判断设备是否有回调 + OperatingState callback = operatingStateService.findByDeviceIdAndStateType(deviceId,2); + boolean isCallback = callback == null ? false : callback.getInBound(); + List cases = caseService.collect(isCallback,dtos); + //判断设备是否有联动 + OperatingState linkage = operatingStateService.findByDeviceIdAndStateType(deviceId,1); + if(null != linkage && linkage.getInBound()){ + + } + return ApiResponse.success(cases.size()); } } diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java index 663e1d1..745c254 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/ArchivesCaseService.java @@ -1,5 +1,6 @@ package com.storeroom.modules.archives.service; +import com.storeroom.modules.archives.domain.ArchivesCase; import com.storeroom.modules.archives.domain.ArchivesCaseCartoning; import com.storeroom.modules.archives.service.dto.ArchivesCaseCartoningDTO; import com.storeroom.modules.archives.service.dto.CaseDTO; @@ -41,5 +42,5 @@ public interface ArchivesCaseService { //根据档案初始化装盒信息 Object initCaseByArchives(String archivesId); //入库 - Integer collect(boolean isCallback,List dtos); + List collect(boolean isCallback, List dtos); } diff --git a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java index 3045e75..4252a90 100644 --- a/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java +++ b/archives/src/main/java/com/storeroom/modules/archives/service/impl/ArchivesCaseServiceImpl.java @@ -420,7 +420,7 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService { } @Override - public Integer collect(boolean isCallback, List dtos) { + public List collect(boolean isCallback, List dtos) { List cases = new ArrayList<>(); Set archices = new HashSet<>(); for (CollectDTO dto : dtos){ @@ -460,6 +460,6 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService { } caseRepository.saveAllAndFlush(cases); archivesSummaryRepository.saveAllAndFlush(archices); - return cases.size(); + return cases; } } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/repository/OperatingStateRepository.java b/storeroom/src/main/java/com/storeroom/modules/device/repository/OperatingStateRepository.java index 9905f9b..1d025db 100644 --- a/storeroom/src/main/java/com/storeroom/modules/device/repository/OperatingStateRepository.java +++ b/storeroom/src/main/java/com/storeroom/modules/device/repository/OperatingStateRepository.java @@ -5,4 +5,7 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; public interface OperatingStateRepository extends JpaRepository, JpaSpecificationExecutor { + + OperatingState findByDeviceIdAndStateType(String deviceId,Integer stateType); + } diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/OperatingStateService.java b/storeroom/src/main/java/com/storeroom/modules/device/service/OperatingStateService.java new file mode 100644 index 0000000..f71585a --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/OperatingStateService.java @@ -0,0 +1,13 @@ +package com.storeroom.modules.device.service; + + +import com.storeroom.modules.device.domain.OperatingState; +import com.storeroom.modules.device.service.dto.DeviceInfoDto; + +import java.util.List; + +public interface OperatingStateService { + //根据设备id和操作状态获取详细操作信息 + OperatingState findByDeviceIdAndStateType(String deviceId,Integer stateType); + +} diff --git a/storeroom/src/main/java/com/storeroom/modules/device/service/impl/OperatingStateImpl.java b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/OperatingStateImpl.java new file mode 100644 index 0000000..683f1d5 --- /dev/null +++ b/storeroom/src/main/java/com/storeroom/modules/device/service/impl/OperatingStateImpl.java @@ -0,0 +1,22 @@ +package com.storeroom.modules.device.service.impl; + + +import com.storeroom.modules.device.domain.OperatingState; +import com.storeroom.modules.device.repository.OperatingStateRepository; +import com.storeroom.modules.device.service.OperatingStateService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + + + +@Service +@RequiredArgsConstructor +public class OperatingStateImpl implements OperatingStateService { + + private final OperatingStateRepository operatingStateRepository; + + @Override + public OperatingState findByDeviceIdAndStateType(String deviceId, Integer stateType) { + return operatingStateRepository.findByDeviceIdAndStateType(deviceId,stateType); + } +}