From 41012324d4afa371ac50d45e3e93e802cf8d6e28 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期二, 16 五月 2023 08:42:02 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OutController.java | 157 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 142 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index abfc36d..6d86cff 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -1,25 +1,23 @@ package com.zy.asrs.controller; -import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; -import com.zy.asrs.entity.BasDevp; -import com.zy.asrs.entity.LocDetl; -import com.zy.asrs.entity.OrderDetl; -import com.zy.asrs.entity.result.StoPreTab; +import com.zy.asrs.entity.*; import com.zy.asrs.service.*; -import com.zy.common.model.DetlDto; import com.zy.common.model.LocDto; import com.zy.common.model.TaskDto; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.*; +import java.util.stream.Collectors; /** * Created by vincent on 2022/3/26 @@ -42,6 +40,18 @@ private WorkService workService; @Autowired private BasDevpService basDevpService; + @Autowired + private ManPakOutService manPakOutService; + @Autowired + private ManLocDetlService manLocDetlService; + + + @PostMapping("/out/pakout/orderDetlIds/auth") + @ManagerAuth + public R pakoutOrderDetlIds(@RequestParam Long orderId) throws InterruptedException { + Thread.sleep(200); + return R.ok().add(orderDetlService.selectByOrderId(orderId).stream().map(OrderDetl::getId).distinct().collect(Collectors.toList())); + } @PostMapping("/out/pakout/preview/auth") @ManagerAuth @@ -51,17 +61,26 @@ } List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); List<LocDto> locDtos = new ArrayList<>(); + + Set<String> exist = new HashSet<>(); + for (OrderDetl orderDetl : orderDetls) { double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D); if (issued <= 0.0D) { continue; } - List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null); + List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist); for (LocDetl locDetl : locDetls) { if (issued > 0) { 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 locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(), +// locDetl.getAnfme(), issued < locDetl.getAnfme()? issued : locDetl.getAnfme()); +// //閫熻吘鍙湁鍏ㄦ澘锛屾墍浠ュ彧鑳�101鍏ㄦ澘鍑哄簱 +// List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), 101); locDto.setStaNos(staNos); + locDto.setManu(locDetl.getManu()); locDtos.add(locDto); + exist.add(locDetl.getLocNo()); // 鍓╀綑寰呭嚭鏁伴噺閫掑噺 issued = issued - locDetl.getAnfme(); } else { @@ -70,6 +89,7 @@ } if (issued > 0) { LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued); +// LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), 0.0,issued); locDto.setLack(Boolean.TRUE); locDtos.add(locDto); } @@ -80,20 +100,36 @@ @PostMapping("/out/pakout/auth") @ManagerAuth(memo = "璁㈠崟鍑哄簱") public synchronized R pakout(@RequestBody List<LocDto> locDtos) throws InterruptedException { - if (Cools.isEmpty(locDtos)) { - return R.parse(BaseRes.PARAM); + int[][] is=new int[locDtos.size()][2]; + for (int i=0;i<locDtos.size();i++){ + LocDto locDto=locDtos.get(locDtos.size()-1-i); + if (locDto.getLocNo()==null || locDto.getManu().equals("骞冲簱")){ + is[i][0]=1; + }else { + is[i][0]=0; + } + is[i][1]=locDtos.size()-1-i; } - boolean refuse = true; - for (LocDto locDto : locDtos) { - if (!locDto.isLack()) { - refuse = !refuse; + for (int[] i:is){ + if (i[0]==1){ + locDtos.remove(i[1]); } } - if (refuse) { + if (Cools.isEmpty(locDtos)) { + return R.error("绔嬪簱鍙傛暟涓虹┖锛岃鐢熸垚鎷h揣鍗曪紝骞冲簱鎷h揣鍑哄簱"); + } + boolean lack = true; + for (LocDto locDto : locDtos) { + if (!locDto.isLack()) { + lack = false; + break; + } + } + if (lack) { return R.error("搴撳瓨涓嶈冻"); } - Thread.sleep(500L); + Thread.sleep(1000L); List<TaskDto> taskDtos = new ArrayList<>(); // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔� @@ -116,4 +152,95 @@ return R.ok(); } + @PostMapping("/out/pakout2/auth") + @ManagerAuth(memo = "鐢熸垚鎷h揣鍗�") + public synchronized R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException { + int[][] is = new int[locDtos.size()][2]; + for (int i = 0; i < locDtos.size(); i++) { + LocDto locDto = locDtos.get(locDtos.size() - 1 - i); + if (locDto.getLocNo() == null || locDto.getManu().equals("绔嬪簱")) { + is[i][0] = 1; + } else { + is[i][0] = 0; + } + is[i][1] = locDtos.size() - 1 - i; + } + for (int[] i : is) { + if (i[0] == 1) { + locDtos.remove(i[1]); + } + } + if (Cools.isEmpty(locDtos)) { + return R.error("骞冲簱鍙傛暟涓虹┖锛屾病鏈夌敓鎴愭嫞璐у崟"); + } + boolean lack = true; + for (LocDto locDto : locDtos) { + if (!locDto.isLack()) { + lack = false; + break; + } + } + if (lack) { + return R.error("搴撳瓨涓嶈冻"); + } + for (LocDto locDto:locDtos){ + ManLocDetl manLocDetl = manLocDetlService.selectItem(locDto.getLocNo(), locDto.getMatnr(), locDto.getBatch()); + if (!(locDto.getAnfme()>manLocDetl.getAnfme())) { + manLocDetl.setStatus(0); + if (manLocDetlService.update(manLocDetl, new EntityWrapper<ManLocDetl>().eq("uuid", manLocDetl.getUuid()))) { + if (addPakOUT(locDto).equals(R.ok())) { + Order order = orderService.selectByNo(locDto.getOrderNo()); + if (Cools.isEmpty(order)){ + return R.error("鏌ヨ璁㈠崟澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()); + } + if (order.getSettle()==1){ + if (!orderService.updateSettle(order.getId(),2L,null)){ + return R.error("淇敼璁㈠崟鐘舵�佸け璐ワ紝璇疯仈绯荤鐞嗗憳"+locDto.getOrderNo()); + } + } + OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("order_no", locDto.getOrderNo()).eq("matnr", locDto.getMatnr())); + if (Cools.isEmpty(orderDetl)){ + return R.error("鏌ヨ璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()+locDto.getMatnr()); + } + orderDetl.setWorkQty(orderDetl.getWorkQty()+locDto.getAnfme()); + if (!orderDetlService.update(orderDetl,new EntityWrapper<OrderDetl>().eq("order_no", locDto.getOrderNo()).eq("matnr", locDto.getMatnr()))){ + return R.error("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()+locDto.getMatnr()); + } + } else { + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"+locDto.getOrderNo()+locDto.getMatnr()); + } + } + } + } + return R.ok(); + } + + private R addPakOUT(LocDto locDto){ + ManPakOut manPakOut=new ManPakOut(); + manPakOut.setWrkNo(locDto.getOrderNo()+"-"+System.currentTimeMillis()); + manPakOut.setWrkSts((long)1); + manPakOut.setAnfme(locDto.getAnfme()); + manPakOut.setLocNo(locDto.getLocNo()); + manPakOut.setMatnr(locDto.getMatnr()); + manPakOut.setMaktx(locDto.getMaktx()); + manPakOut.setDocNum(locDto.getOrderNo()); + manPakOut.setStatus(0); + manPakOut.setCreateTime(new Date()); + manPakOut.setBatch(locDto.getBatch()); + manPakOut.setUpdateTime(new Date()); + if (Cools.isEmpty(manPakOutService.selectOne(new EntityWrapper<ManPakOut>().eq("doc_num",locDto.getOrderNo())))){ + manPakOut.setName(locDto.getMaktx()); + } + try{ + if (!manPakOutService.insert(manPakOut)){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + }catch (Exception e){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + return R.ok(); + + } + + } -- Gitblit v1.9.1