From 8e0335c10755399ba4eda92512939995d844e7bd Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 18 七月 2024 08:59:37 +0800 Subject: [PATCH] 组托桁架相关接口开发 --- src/main/java/com/zy/asrs/controller/OutController.java | 222 +++++++++++++++++++++++++++++------------------------- 1 files changed, 119 insertions(+), 103 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index 15419f1..eed2f39 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -1,14 +1,11 @@ package com.zy.asrs.controller; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.ManagerAuth; import com.core.common.*; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.*; -import com.zy.asrs.service.impl.WorkServiceImpl; -import com.zy.asrs.utils.OutboundAllocationUtil; -import com.zy.common.model.DetlDto; import com.zy.common.model.LocDto; import com.zy.common.model.TaskDto; import com.zy.common.web.BaseController; @@ -65,46 +62,65 @@ } List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); List<LocDto> locDtos = new ArrayList<>(); - for (OrderDetl orderDetl : orderDetls) { - if (orderDetl.getAnfme()-orderDetl.getWorkQty()-orderDetl.getQty()==0.0){ - continue; - } - LocDto locDto = new LocDto(orderDetl.getManu(), orderDetl.getMatnr(), orderDetl.getMaktx(),orderDetl.getModel(),orderDetl.getSpecs(), - orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getBarcode(), orderDetl.getOrderNo(),orderDetl.getAnfme()); - locDto.setOrderDetlId(orderDetl.getId()); - locDto.setTkType(orderDetl.getTkType()); - locDtos.add(locDto); - } - - - - -// Set<String> exist = new HashSet<>(); // for (OrderDetl orderDetl : orderDetls) { -// double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); -// if (issued <= 0.0D) { continue; } +// if (orderDetl.getAnfme()-orderDetl.getWorkQty()-orderDetl.getQty()==0.0){ +// continue; +// } +// LocDto locDto = new LocDto(orderDetl.getManu(), orderDetl.getMatnr(), orderDetl.getMaktx(),orderDetl.getModel(),orderDetl.getSpecs(), +// orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getBarcode(), orderDetl.getOrderNo(),orderDetl.getAnfme()); +// locDto.setOrderDetlId(orderDetl.getId()); +// locDto.setTkType(orderDetl.getTkType()); +// locDtos.add(locDto); +// } + + + + + Set<String> exist = new HashSet<>(); + + for (OrderDetl orderDetl : orderDetls) { + double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); + if (issued <= 0.0D) { continue; } // List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist); -// for (LocDetl locDetl : locDetls) { -// if (issued > 0) { + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("batch",orderDetl.getBatch()).eq("model",orderDetl.getModel())); + for (LocDetl locDetl : locDetls) { + if (issued > 0) { + LocDto locDto = new LocDto(orderDetl.getManu(), orderDetl.getMatnr(), orderDetl.getMaktx(),orderDetl.getModel(),orderDetl.getSpecs(), + orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getBarcode(), orderDetl.getOrderNo(),orderDetl.getAnfme()); // LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), // issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued); // List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103); -// locDto.setStaNos(staNos); -// locDtos.add(locDto); -// exist.add(locDetl.getLocNo()); -// // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 -// issued = issued - locDetl.getAnfme(); -// } else { -// break; -// } -// } -// if (issued > 0) { -// LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); -// locDto.setLack(Boolean.TRUE); -// locDtos.add(locDto); -// } -// } + List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103); + + locDto.setLocNo(locDetl.getLocNo()); +// wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸 +// wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸 + locDto.setBatch(locDetl.getBatch()); // 绠卞彿 + locDto.setModel(locDetl.getModel()); // 鍗峰彿 + locDto.setBrand(""); // 鏈ㄧ绫诲瀷 + locDto.setOrigin(locDetl.getOrigin()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃� + locDto.setWeight(locDetl.getWeight()); // 鍑�閲� + locDto.setVolume(locDetl.getVolume()); // 姣涢噸 + locDto.setPrice(locDetl.getPrice()); + locDto.setSpecs(locDetl.getSpecs()); + locDto.setZpallet(locDetl.getZpallet()); + locDto.setStaNos(staNos); + locDto.setOrderDetlId(orderDetl.getId()); + locDtos.add(locDto); + exist.add(locDetl.getLocNo()); + // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 + issued = issued - locDetl.getAnfme(); + } else { + break; + } + } + if (issued > 0) { + LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); + locDto.setLack(Boolean.TRUE); + locDtos.add(locDto); + } + } return R.ok().add(locDtos); } @@ -134,75 +150,75 @@ @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "璁㈠崟鍑哄簱") public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException { - StockOutParam param = new StockOutParam(); - ArrayList<StockOutParam.LocDetl> locDetls = new ArrayList<>(); - for (LocDto locDto:locDtos){ - StockOutParam.LocDetl locDetl = new StockOutParam.LocDetl(); - locDetl.setBrand(locDto.getBrand()); - locDetl.setLocNo(locDto.getLocNo()); - locDetl.setAnfme(locDto.getAnfme()); - locDetl.setMatnr(locDto.getMatnr()); - locDetl.setBatch(locDto.getBatch()); - locDetl.setModel(locDto.getModel()); - locDetl.setSpecs(locDto.getSpecs()); - locDetl.setZpallet(locDto.getZpallet()); - - param.setOrderNo(locDto.getOrderNo()); - - locDetls.add(locDetl); - } - param.setLocDetls(locDetls); - - List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param); - for (StockOutParam stockOutParam : stockOutParams){ - workService.startupFullTakeStore(stockOutParam, getUserId()); - } - - for (LocDto locDto:locDtos){ - OrderDetl orderDetl = orderDetlService.selectById(locDto.getOrderDetlId()); - orderDetl.setWorkQty(locDto.getAnfme()); - orderDetlService.updateById(orderDetl); - } - - Order order = orderService.selectByNo(param.getOrderNo()); - order.setSettle(2L); - orderService.updateById(order); - - -// if (Cools.isEmpty(locDtos)) { -// return R.parse(BaseRes.PARAM); +// StockOutParam param = new StockOutParam(); +// ArrayList<StockOutParam.LocDetl> locDetls = new ArrayList<>(); +// for (LocDto locDto:locDtos){ +// StockOutParam.LocDetl locDetl = new StockOutParam.LocDetl(); +// locDetl.setBrand(locDto.getBrand()); +// locDetl.setLocNo(locDto.getLocNo()); +// locDetl.setAnfme(locDto.getAnfme()); +// locDetl.setMatnr(locDto.getMatnr()); +// locDetl.setBatch(locDto.getBatch()); +// locDetl.setModel(locDto.getModel()); +// locDetl.setSpecs(locDto.getSpecs()); +// locDetl.setZpallet(locDto.getZpallet()); +// +// param.setOrderNo(locDto.getOrderNo()); +// +// locDetls.add(locDetl); // } -// boolean lack = true; -// for (LocDto locDto : locDtos) { -// if (!locDto.isLack()) { -// lack = false; -// break; -// } -// } -// if (lack) { -// return R.error("搴撳瓨涓嶈冻"); +// param.setLocDetls(locDetls); +// +// List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param); +// for (StockOutParam stockOutParam : stockOutParams){ +// workService.startupFullTakeStore(stockOutParam, getUserId()); // } // -// Thread.sleep(1000L); +// for (LocDto locDto:locDtos){ +// OrderDetl orderDetl = orderDetlService.selectById(locDto.getOrderDetlId()); +// orderDetl.setWorkQty(locDto.getAnfme()); +// orderDetlService.updateById(orderDetl); +// } // -// List<TaskDto> taskDtos = new ArrayList<>(); -// // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔� -// for (LocDto locDto : locDtos) { -// if (locDto.isLack()) { continue; } -// TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto); -// if (TaskDto.has(taskDtos, taskDto)) { -// TaskDto dto = TaskDto.find(taskDtos, taskDto); -// assert dto != null; -// dto.getLocDtos().addAll(taskDto.getLocDtos()); -// } else { -// taskDtos.add(taskDto); -// } -// } -// // ----------------------------------------------------------------------------------------------- -// for (TaskDto taskDto : taskDtos) { -// BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo()); -// workService.stockOut(staNo, taskDto, getUserId()); -// } +// Order order = orderService.selectByNo(param.getOrderNo()); +// order.setSettle(2L); +// orderService.updateById(order); + + + if (Cools.isEmpty(locDtos)) { + return R.parse(BaseRes.PARAM); + } + boolean lack = true; + for (LocDto locDto : locDtos) { + if (!locDto.isLack()) { + lack = false; + break; + } + } + if (lack) { + return R.error("搴撳瓨涓嶈冻"); + } + + Thread.sleep(1000L); + + List<TaskDto> taskDtos = new ArrayList<>(); + // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔� + for (LocDto locDto : locDtos) { + if (locDto.isLack()) { continue; } + TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto); + if (TaskDto.has(taskDtos, taskDto)) { + TaskDto dto = TaskDto.find(taskDtos, taskDto); + assert dto != null; + dto.getLocDtos().addAll(taskDto.getLocDtos()); + } else { + taskDtos.add(taskDto); + } + } + // ----------------------------------------------------------------------------------------------- + for (TaskDto taskDto : taskDtos) { + BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo()); + workService.stockOut(staNo, taskDto, getUserId()); + } return R.ok(); } -- Gitblit v1.9.1