diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/controller/PmDemandController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/controller/PmDemandController.java index c18dffb..1c128d3 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/controller/PmDemandController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/controller/PmDemandController.java @@ -94,4 +94,12 @@ public class PmDemandController { pmDemandService.issueReturnBill(ids); return ResponseData.build(); } + + @PostMapping("/autoAllcation") + @Log("自动分配需求单") + @Transactional(rollbackFor = Exception.class) + public ResponseEntity autoAllcation(@RequestBody Set ids) { + pmDemandService.autoAllcation(ids); + return ResponseData.build(); + } } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/IPmDemandService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/IPmDemandService.java index 989a061..557f01f 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/IPmDemandService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/IPmDemandService.java @@ -54,4 +54,5 @@ public interface IPmDemandService extends IService { */ void pushDemand(List pmDemandDto); void issueReturnBill(Set ids); + void autoAllcation(Set ids); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java index 81c4d8e..bd57d05 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java @@ -55,6 +55,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -216,6 +217,12 @@ public class PmDemandServiceImpl extends ServiceImpl i demandDto.setHouseName(dto.getStorName()); resultList.add(demandDto); } + }else { + DemandInventryDto demandDto = new DemandInventryDto(); + demandDto.setSkuCode(skuCode); + demandDto.setQty(BigDecimal.ZERO); + demandDto.setHouseCode("6.011"); + demandDto.setHouseName("'五期装配原材料平库'"); } ResponseEntity> responseEntity = wmsToZDWmdService.queryInventory(skuCode); List zdInventorys = responseEntity.getBody(); @@ -234,6 +241,14 @@ public class PmDemandServiceImpl extends ServiceImpl i demandDto.setHouseName("五期原材料立库6.002"); resultList.add(demandDto); } + }else { + DemandInventryDto demandDto = new DemandInventryDto(); + demandDto.setSkuCode(skuCode); + demandDto.setSkuName(null); + demandDto.setQty(BigDecimal.ZERO); + demandDto.setHouseCode("6.002"); + demandDto.setHouseName("五期原材料立库6.002"); + resultList.add(demandDto); } return resultList; } @@ -420,4 +435,31 @@ public class PmDemandServiceImpl extends ServiceImpl i .set(PmDemand::getStatus,DemandStatus.FINISH.getValue()) .in(PmDemand::getId,ids)); } + + @Override + public void autoAllcation(Set ids) { + final List pmDemands = this.listByIds(ids); + final List needAllcation = new ArrayList<>(); + for (PmDemand pmDemand : pmDemands) { + if (pmDemand.getStatus().equals(DemandStatus.CREATE.getValue())){ + throw new BadRequestException("当前单子不是生成状态无法勾选"); + } + final List demandInventryDtos = this.queryInventory(pmDemand.getSku_code()); + final Map inventryDtoMap = demandInventryDtos.stream().collect(Collectors.toMap(DemandInventryDto::getHouseCode, Function.identity())); + final DemandInventryDto demandInventryDto = inventryDtoMap.get("6.002"); + final DemandInventryDto pInventryDto = inventryDtoMap.get("6.011"); + if (demandInventryDto !=null && demandInventryDto.getQty()!=null && demandInventryDto.getQty().compareTo(pmDemand.getQty())>=0){ + pmDemand.setInventory_dis("6.002"); + pmDemand.setStatus(DemandStatus.DIS.getValue()); + needAllcation.add(pmDemand); + }else if (pInventryDto !=null && pInventryDto.getQty()!=null && pInventryDto.getQty().compareTo(pmDemand.getQty())>=0){ + pmDemand.setInventory_dis("6.011"); + pmDemand.setStatus(DemandStatus.DIS.getValue()); + }else { + pmDemand.setInventory_dis("库存不足请手动分配"); + } + needAllcation.add(pmDemand); + } + this.updateBatchById(needAllcation); + } } diff --git a/nladmin-ui/src/views/wms/pm_manage/demand/demand.js b/nladmin-ui/src/views/wms/pm_manage/demand/demand.js index a02f247..1282cdb 100644 --- a/nladmin-ui/src/views/wms/pm_manage/demand/demand.js +++ b/nladmin-ui/src/views/wms/pm_manage/demand/demand.js @@ -60,4 +60,11 @@ export function issueReturnBill(data) { data }) } +export function batchAllcation(data) { + return request({ + url: '/api/pmDemand/autoAllcation', + method: 'post', + data + }) +} export default { add, edit, del, queryInventory, batchAllocate, allocate, push, issueReturnBill } diff --git a/nladmin-ui/src/views/wms/pm_manage/demand/index.vue b/nladmin-ui/src/views/wms/pm_manage/demand/index.vue index 8d383bd..7f36bcf 100644 --- a/nladmin-ui/src/views/wms/pm_manage/demand/index.vue +++ b/nladmin-ui/src/views/wms/pm_manage/demand/index.vue @@ -5,7 +5,7 @@ - + @@ -24,6 +24,7 @@ 强制回传EAS 下推出库 批量分配 + 自动分配 @@ -32,7 +33,7 @@ - + @@ -86,7 +87,7 @@ - + @@ -121,7 +122,7 @@