From 248f0106cb099a5d6c21b9b7bd648cd0b61a3db0 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 28 六月 2023 10:13:09 +0800 Subject: [PATCH] #订单出库批量出库优化 --- src/main/java/com/zy/asrs/controller/PakoutController.java | 219 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 215 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/PakoutController.java b/src/main/java/com/zy/asrs/controller/PakoutController.java index 17a8425..9be81bd 100644 --- a/src/main/java/com/zy/asrs/controller/PakoutController.java +++ b/src/main/java/com/zy/asrs/controller/PakoutController.java @@ -6,7 +6,14 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; +import com.zy.asrs.entity.ManLocDetl; +import com.zy.asrs.entity.Order; +import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.Pakout; +import com.zy.asrs.entity.param.OrderDomainParam; +import com.zy.asrs.service.ManLocDetlService; +import com.zy.asrs.service.OrderDetlService; +import com.zy.asrs.service.OrderService; import com.zy.asrs.service.PakoutService; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; @@ -23,6 +30,12 @@ @Autowired private PakoutService pakoutService; + @Autowired + private OrderService orderService; + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private ManLocDetlService manLocDetlService; @RequestMapping(value = "/pakout/{id}/auth") @ManagerAuth @@ -59,12 +72,210 @@ @RequestMapping(value = "/pakout/add/auth") @ManagerAuth - public R add(Pakout pakout) { - pakoutService.insert(pakout); - return R.ok(); + public R add(@RequestBody OrderDomainParam param) { + if (Cools.isEmpty(param)){ + return R.error("鏁版嵁寮傚父"); + } + if (!Cools.isEmpty(param.getOrderNo())){ + Order order = orderService.selectOne(new EntityWrapper<Order>() + .eq("order_no", param.getOrderNo()) + ); + if (Cools.isEmpty(order)){ + return R.error("鍗曟嵁涓嶅瓨鍦�"); + } + List<OrderDetl> orderDetls =orderDetlService.selectList(new EntityWrapper<OrderDetl>() + .eq("order_no", param.getOrderNo()) + ); + if (Cools.isEmpty(orderDetls)){ + return R.error("鍗曟嵁鏄庣粏涓虹┖"); + } + for (OrderDetl orderDetl : orderDetls){ + List<ManLocDetl> manLocDetls=null; + try{ + if (Cools.isEmpty(orderDetl.getBatch())){ + manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>() + .eq("matnr",orderDetl.getMatnr()) + ); + }else { + manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>() + .eq("matnr",orderDetl.getMatnr()) + .eq("batch",orderDetl.getBatch()) + ); + } + }catch (Exception e){ + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + + if (!Cools.isEmpty(manLocDetls)){ + for (ManLocDetl manLocDetl:manLocDetls){ + Double statusAnfme = 0.0; + if (Cools.isEmpty(manLocDetl.getStatus())){ + manLocDetl.setStatus(1); + } + try{ + if (manLocDetl.getStatus$().equals("绂佺敤")){ + if (Cools.isEmpty(manLocDetl.getBatch())){ + List<Pakout> manPakOuts = pakoutService.selectList(new EntityWrapper<Pakout>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()) + .eq("status",0) + ); + if (!Cools.isEmpty(manPakOuts)){ + for (Pakout manPakOut:manPakOuts){ + statusAnfme=statusAnfme+manPakOut.getAnfme(); + } + } + }else { + List<Pakout> manPakOuts = pakoutService.selectList(new EntityWrapper<Pakout>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()) + .eq("batch",manLocDetl.getBatch()) + .eq("status",0) + ); + if (!Cools.isEmpty(manPakOuts)){ + for (Pakout manPakOut:manPakOuts){ + statusAnfme=statusAnfme+manPakOut.getAnfme(); + } + } + } + } + }catch (Exception e){ + return R.error("鏌ヨ搴撳瓨绂佺敤鏁伴噺澶辫触"); + } + Wrapper<ManLocDetl> wrapper = new EntityWrapper<ManLocDetl>() + .eq("loc_no", manLocDetl.getLocNo()) + .eq("matnr", manLocDetl.getMatnr()); + if (orderDetl.getAnfme() > manLocDetl.getAnfme()-statusAnfme){ + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + manLocDetl.setStatus(0); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else if (orderDetl.getAnfme()-manLocDetl.getAnfme()-statusAnfme==0){ + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + manLocDetl.setStatus(0); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else if (orderDetl.getAnfme()<manLocDetl.getAnfme()-statusAnfme){ + Double a=manLocDetl.getAnfme(); + manLocDetl.setAnfme(orderDetl.getAnfme()); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + orderDetl.setAnfme(orderDetl.getAnfme()-manLocDetl.getAnfme()); + manLocDetl.setStatus(0); + manLocDetl.setAnfme(a); + try{ + if (Cools.isEmpty(manLocDetl.getBatch())){ + manLocDetlService.update(manLocDetl,wrapper.eq("modi_time",manLocDetl.getModiTime())); + }else { + manLocDetlService.update(manLocDetl,wrapper.eq("batch",manLocDetl.getBatch())); + } + }catch (Exception e){ + return R.error("鏇存柊搴撳瓨澶辫触"); + } + + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + }else { + return R.error("绯荤粺鍑洪敊,璇疯仈绯荤鐞嗗憳"); + } + if (orderDetl.getAnfme()==0){ + break; + } + } + if (orderDetl.getAnfme()!=0){ + ManLocDetl manLocDetl=new ManLocDetl(); + manLocDetl.setAnfme(0.0); + manLocDetl.setMatnr(orderDetl.getMatnr()); + manLocDetl.setMaktx(orderDetl.getMaktx()); + manLocDetl.setMemo(orderDetl.getMemo()+"搴撳瓨涓嶈冻"); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + continue; + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + } + }else { + ManLocDetl manLocDetl=new ManLocDetl(); + manLocDetl.setAnfme(0.0); + manLocDetl.setMatnr(orderDetl.getMatnr()); + manLocDetl.setMaktx(orderDetl.getMaktx()); + manLocDetl.setMemo(orderDetl.getMemo()+"鏃犲簱瀛�"); + if (addPakOUT(manLocDetl,param.getOrderNo()).equals(R.ok())){ + continue; + }else { + return R.error("娣诲姞鎷h揣鍗曞け璐�"); + } + } + + + } + orderService.updateSettle(order.getId(),(long)2,null); + }else { + return R.error("鍗曟嵁缂栧彿寮傚父"); + } + return R.ok("鎷h揣鍗曟坊鍔犳垚鍔�"); } - @RequestMapping(value = "/pakout/update/auth") + private R addPakOUT(ManLocDetl manLocDetl,String OrderNo){ + Pakout manPakOut=new Pakout(); + manPakOut.setWrkNo(OrderNo+"-"+System.currentTimeMillis()); + manPakOut.setWrkSts((long)1); + manPakOut.setAnfme(manLocDetl.getAnfme()); + manPakOut.setLocNo(manLocDetl.getLocNo()); + manPakOut.setNodeId(manLocDetl.getNodeId()); + manPakOut.setMatnr(manLocDetl.getMatnr()); + manPakOut.setMaktx(manLocDetl.getMaktx()); + manPakOut.setSpecs(manLocDetl.getSpecs()); + manPakOut.setUnit(manLocDetl.getUnit()); + manPakOut.setBarcode(manLocDetl.getBarcode()); + manPakOut.setDocNum(OrderNo); + manPakOut.setStatus(0); + manPakOut.setCreateTime(new Date()); + if (!Cools.isEmpty(manLocDetl.getBatch())){ + manPakOut.setBatch(manLocDetl.getBatch()); + manPakOut.setUpdateTime(new Date()); + }else { + manPakOut.setUpdateTime(manLocDetl.getModiTime());//鐢ㄤ簬璇嗗埆璐х墿 + } + + manPakOut.setMemo(manLocDetl.getMemo()); + if (Cools.isEmpty(pakoutService.selectOne(new EntityWrapper<Pakout>().eq("doc_num",OrderNo)))){ + manPakOut.setName(manLocDetl.getMaktx()); + } + try{ + if (!pakoutService.insert(manPakOut)){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + }catch (Exception e){ + return R.error("娣诲姞鎷h揣鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + return R.ok(); + + } + + @RequestMapping(value = "/pakout/update/auth") @ManagerAuth public R update(Pakout pakout){ if (Cools.isEmpty(pakout) || null==pakout.getMatnr()){ -- Gitblit v1.9.1