From ceed56137f8165ff9ac3ce473385572d4c9c80d2 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 07 十一月 2023 14:37:56 +0800 Subject: [PATCH] #平库上架 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 246 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 213 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index f4457b9..26928ec 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -9,10 +9,7 @@ import com.core.exception.CoolException; import com.sun.org.apache.xpath.internal.operations.Or; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.CombParam; -import com.zy.asrs.entity.param.MobileAdjustParam; -import com.zy.asrs.entity.param.OffSaleParam; -import com.zy.asrs.entity.param.OpenOrderPakinParam; +import com.zy.asrs.entity.param.*; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; @@ -31,10 +28,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -84,6 +79,15 @@ private ManLocDetlMapper manLocDetlMapper; @Autowired private WaitPakinLogService waitPakinLogService; + + @Autowired + private LocCheckService locCheckService; + + @Autowired + private OrderCheckService orderCheckService; + + @Autowired + private OriginRuleService originRuleService; @@ -170,24 +174,31 @@ // 鍏宠仈缁勬墭 } else { for (CombParam.CombMat combMat : param.getCombMats()) { - OrderDetl orderDetl = orderDetlService.selectItem(param.getOrderNo(), combMat.getMatnr(), combMat.getBatch()); + OrderDetl orderDetl = orderDetlService.selectItem(combMat.getOrderNo(), combMat.getMatnr(), combMat.getBatch()); if (orderDetl == null) { throw new CoolException("鎵句笉鍒扮粍鎵樼殑鍗曟嵁鏄庣粏"); } Double anfme = orderDetl.getAnfme(); Double workQty = orderDetl.getWorkQty(); - if ( anfme - (workQty+combMat.getAnfme()) < 0) { + BigDecimal a1 = new BigDecimal(orderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal b1 = new BigDecimal(orderDetl.getWorkQty()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal c1 = new BigDecimal(combMat.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP); + double e1 = b1.add(c1).doubleValue(); + BigDecimal f1 = new BigDecimal(e1).setScale(2,BigDecimal.ROUND_HALF_UP); + Double d1 = a1.subtract(f1).doubleValue(); + if ( d1 < 0.0) { throw new CoolException("缁勬墭鏁伴噺宸茶秴鍑鸿鍗曢渶姹傞噺锛岃妫�鏌ユ槸鍚︽湁鍏朵粬鐨勭粍鎵樺凡瀹屾垚"); } } - Order order = orderService.selectByNo(param.getOrderNo()); - if (order.getSettle() > 2) { - throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); - } + // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); for (CombParam.CombMat elem : param.getCombMats()) { + Order order = orderService.selectByNo(elem.getOrderNo()); + if (order.getSettle() > 2) { + throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); + } // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); if(orderDetl == null){ @@ -201,8 +212,7 @@ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); } - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getOwner(),elem.getWeight()); - detlDto.setPayment(orderDetl.getPayment()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),elem.getWeight()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; @@ -211,7 +221,10 @@ detlDtos.add(detlDto); } } + int i=0; for (DetlDto detlDto : detlDtos) { + Order order = orderService.selectByNo(param.getCombMats().get(i).getOrderNo()); + i++; String uuid = String.valueOf(System.currentTimeMillis()); Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { @@ -219,7 +232,7 @@ } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); - waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 + waitPakin.setOrderNo(order.getOrderNo()); // 鍗曟嵁缂栧彿 waitPakin.setBatch(detlDto.getBatch()); // 搴忓垪鐮� waitPakin.setZpallet(param.getBarcode()); // 鎵樼洏鐮� waitPakin.setIoStatus("N"); // 鍏ュ嚭鐘舵�� @@ -236,8 +249,9 @@ if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } + orderService.updateSettle(order.getId(), 2L, userId); } - orderService.updateSettle(order.getId(), 2L, userId); + } } @@ -521,8 +535,34 @@ public R manDetlIn(JSONObject json, User user) { Date date = new Date(); String jsonLocNo = (String) json.get("locNo"); + + LocMast locMast = locMastService.selectLocStatus(jsonLocNo); + if (locMast.getLocSts().equals("X")){ + return R.error("搴撲綅宸茶鍐荤粨"); + } + + List<ManLocDetl> locDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("loc_no", jsonLocNo)); Node node = nodeService.selectOne(new EntityWrapper<Node>() .eq("name", jsonLocNo)); + +// if (node.getParentName().equals("A") || node.getParentName().equals("B")){ +// if (node.getRow1() == 1 && locDetls.size() >=11){ +// return R.error("璇ュ簱浣嶆帓宸叉弧"); +// } +// if (node.getRow1() == 6 && locDetls.size() >=4){ +// return R.error("璇ュ簱浣嶆帓宸叉弧"); +// } +// if (node.getRow1() == 12 && locDetls.size() >=4){ +// return R.error("璇ュ簱浣嶆帓宸叉弧"); +// } +// +// } +// if (locDetls.size() >=12){ +// return R.error("璇ュ簱浣嶆帓宸叉弧"); +// } + + + JSONArray combMats = json.getJSONArray("combMats"); for (int i = 0; i < combMats.size(); i++) { OrderDetl jsonOrderDetl = combMats.getObject(i, OrderDetl.class); @@ -564,10 +604,12 @@ manLocDetl.setOwner(orderDetl.getOwner()); manLocDetl.setWeight(jsonOrderDetl.getWeight()); manLocDetl.setOrderNo(jsonOrderDetl.getOrderNo()); + manLocDetl.setStockFreeze(1); if(!manLocDetlService.insert(manLocDetl)){ return R.error("鎻掑叆骞冲簱鐗╂枡澶辫触锛�"); } - } else { + } + else { if (checkManLocDetl.getWeight() == null){ checkManLocDetl.setWeight(0.0); } @@ -618,6 +660,12 @@ public R manDetlOut(JSONObject json,User user) { Date date = new Date(); String jsonLocNo = (String) json.get("locNo"); + + LocMast locMast = locMastService.selectLocStatus(jsonLocNo); + if (locMast.getLocSts().equals("X")){ + return R.error("搴撲綅宸茶鍐荤粨"); + } + Node node = nodeService.selectOne(new EntityWrapper<Node>() .eq("name", jsonLocNo)); JSONArray combMats = json.getJSONArray("combMats"); @@ -652,10 +700,17 @@ // if (jsonOrderDetl.getAnfme() > manPakOut.getAnfme()) { //鍒ゆ柇宸ヤ綔鏁伴噺鏄惁澶т簬鎷h揣鍗曠殑鏁伴噺 // return R.error("鍑哄簱鏁伴噺澶т簬鎷h揣鍗曟�绘暟閲�"); // } - if (jsonOrderDetl.getAnfme() > (manPakOut.getAnfme()-manPakOut.getCount())) { //鍒ゆ柇宸ヤ綔鏁伴噺鏄惁澶т簬鎷h揣鍗曞墿浣欏彲鍑虹殑鏁伴噺 + BigDecimal a1 = new BigDecimal(manPakOut.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal b1 = new BigDecimal(manPakOut.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP); + Double c1 = a1.subtract(b1).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); + if (jsonOrderDetl.getAnfme() > c1) { //鍒ゆ柇宸ヤ綔鏁伴噺鏄惁澶т簬鎷h揣鍗曞墿浣欏彲鍑虹殑鏁伴噺 return R.error("鍑哄簱鏁伴噺澶т簬鎷h揣鍗曞墿浣欏彲鍑烘暟閲�"); } - if (orderDetl.getWorkQty() - orderDetl.getQty() <jsonOrderDetl.getAnfme() ){ + + BigDecimal e1 = new BigDecimal(orderDetl.getWorkQty()).setScale(2,BigDecimal.ROUND_HALF_UP); + BigDecimal f1 = new BigDecimal(orderDetl.getQty()).setScale(2,BigDecimal.ROUND_HALF_UP); + Double g1 = e1.subtract(f1).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); + if ( g1 <jsonOrderDetl.getAnfme() ){ return R.error("鍑哄簱鏁伴噺澶т簬鍗曟嵁鍓╀綑鍙嚭鏁伴噺"); } //鏌ヨ骞冲簱涓槸鍚︽湁涓�鏍风殑鐗╂枡鍙� @@ -672,8 +727,8 @@ if(jsonOrderDetl.getWeight() == null){ jsonOrderDetl.setWeight(0.0); } - Double finalQty = checkManLocDetl.getAnfme() - jsonOrderDetl.getAnfme(); - Double weight = checkManLocDetl.getWeight() - jsonOrderDetl.getWeight(); + Double finalQty = new BigDecimal(checkManLocDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP).subtract(new BigDecimal(jsonOrderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue() ; + Double weight = new BigDecimal(checkManLocDetl.getWeight()).setScale(2,BigDecimal.ROUND_HALF_UP).subtract(new BigDecimal(jsonOrderDetl.getWeight()).setScale(2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue() ; checkManLocDetl.setAnfme(finalQty); checkManLocDetl.setWeight(weight); if (weight < 0){ @@ -688,7 +743,7 @@ return R.error("淇敼骞冲簱鐗╂枡澶辫触锛�"); } } - orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme()); + orderDetl.setQty( new BigDecimal(orderDetl.getQty()).setScale(2,BigDecimal.ROUND_HALF_UP).add(new BigDecimal(jsonOrderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue() ); orderDetl.setUpdateTime(date); orderDetlService.updateById(orderDetl); //鏇存柊璁㈠崟鐘舵�� @@ -697,7 +752,7 @@ boolean log=true; for (OrderDetl orderDetl1: orderDetls) { //宸ヤ綔涓殑鏁伴噺灏忎簬鎬昏鍗曟暟鏃讹紝璁㈠崟鐘舵�佹敼涓�2锛屼綔涓氫腑 - if(orderDetl1.getQty() < orderDetl.getAnfme()){ + if(orderDetl1.getQty() < orderDetl1.getAnfme()){ log=false; } } @@ -710,11 +765,12 @@ if(manPakOut.getCount() == null){ manPakOut.setCount(0.0); } - manPakOut.setCount(manPakOut.getCount()+jsonOrderDetl.getAnfme().intValue()); + + manPakOut.setCount(new BigDecimal(manPakOut.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP).add(new BigDecimal(jsonOrderDetl.getAnfme()).setScale(2,BigDecimal.ROUND_HALF_UP)).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()); if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){ return R.error("鏇存柊鎷h揣鍗曞畬鎴愭暟鐩け璐�"); } - if (manPakOut.getAnfme().intValue() == manPakOut.getCount()){ + if (manPakOut.getAnfme().equals(manPakOut.getCount())){ manPakOut.setStatus(1); if (!manPakOutService.update(manPakOut,manPakOutEntityWrapper)){ return R.error("鏇存柊鎷h揣鍗曠姸鎬佸け璐�"); @@ -744,11 +800,23 @@ String jsonLocNo = (String) json.get("locNo"); //鑾峰彇搴撲綅鐮� String jsonBarNo = (String) json.get("barcode"); //鑾峰彇鎵樼洏鐮� + LocMast locMast = locMastService.selectLocStatus(jsonLocNo); + if (locMast.getLocSts().equals("X")){ + return R.error("搴撲綅宸茶鍐荤粨"); + } + List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", jsonBarNo)); //鑾峰彇瀵瑰簲缁勬墭淇℃伅 if (Cools.isEmpty(waitPakins)){ return R.error("鏈煡璇㈠埌缁勬墭"); - } else if (waitPakins.get(0).getIoStatus() == "Y") { + } else if (waitPakins.get(0).getIoStatus().equals("Y")) { return R.error("缁勬墭宸茬粡鐢熸垚宸ヤ綔妗�"); + } + + for (WaitPakin waitPakin: waitPakins) { + List<ManLocDetl> manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("zpallet", waitPakin.getZpallet())); + if (!Cools.isEmpty(manLocDetls) || manLocDetls.size()>0){ + return R.error("鎵�鍦ㄥ簱浣嶅凡瀛樺湪鏄庣粏"); + } } //鍒ゆ柇璁㈠崟鏄惁瀹屾垚 boolean log =true; @@ -781,8 +849,7 @@ manLocDetl.setUpdateBy(user.getId()); manLocDetl.setModiTime(date); manLocDetl.setOrderNo(waitPakin.getOrderNo()); - manLocDetl.setOwner(waitPakin.getOwner()); - manLocDetl.setPayment(waitPakin.getPayment()); + manLocDetl.setStockFreeze(1); if (!manLocDetlService.insert(manLocDetl)){ //鏁版嵁搴撴彃鍏ュ疄浣撶被淇℃伅 return R.error("鐗╂枡淇℃伅鍏ュ簱澶辫触"); @@ -796,7 +863,7 @@ waitPakinLog.setZpallet(waitPakin.getZpallet()); waitPakinLog.setAnfme(waitPakin.getAnfme()); waitPakinLog.setMatnr(waitPakin.getMatnr()); - waitPakinLog.setLocNo(waitPakin.getLocNo()); + waitPakinLog.setLocNo(jsonLocNo); waitPakinLog.setMaktx(waitPakin.getMaktx()); waitPakinLog.setOrderNo(waitPakin.getOrderNo()); waitPakinLog.setWeight(waitPakin.getWeight()); @@ -806,8 +873,6 @@ waitPakinLog.setModiTime(date); waitPakinLog.setAppeUser(user.getId()); waitPakinLog.setAppeTime(date); - waitPakinLog.setOwner(waitPakin.getOwner()); - waitPakinLog.setPayment(waitPakin.getPayment()); waitPakinLog.setUuid(waitPakin.getUuid()); if (!waitPakinLogService.insert(waitPakinLog)){ //鎻掑叆鍏ュ簱閫氱煡鍘嗗彶妗f暟鎹簱 @@ -834,4 +899,119 @@ } return R.ok("涓婃灦鎴愬姛"); } + + @Override + public R adjustNew(MobileAdjustNewParam combParam, Long userId) { + + + for (WrkDetl detl: combParam.getWrkDetls()){ + EntityWrapper<LocCheck> wrapper = new EntityWrapper<>(); + wrapper.eq("order_no", combParam.getOrderNo()) + .eq("matnr", detl.getMatnr()) + .eq("loc_no", detl.getLocNo()) + .eq("batch",detl.getBatch()); + LocCheck CheckDetl = locCheckService.selectOne(wrapper); + if (CheckDetl == null){ + Date now = new Date(); + LocCheck locCheck = new LocCheck(); + locCheck.setLocNo(detl.getLocNo()); + locCheck.setMaktx(detl.getMaktx()); + locCheck.setType(1); + locCheck.setMatnr(detl.getMatnr()); + locCheck.setAnfme(detl.getAnfme()); + locCheck.setRealAnfme(detl.getAnfme()); + locCheck.setDiffAnfme(detl.getAnfme()); + locCheck.setExamine(0); + locCheck.setOwner(detl.getOwner()); + locCheck.setPayment(detl.getPayment()); + locCheck.setCreateTime(now); + locCheck.setUpdateTime(now); + locCheck.setOrderNo(combParam.getOrderNo()); + locCheck.setBatch(detl.getBatch()); + + if (!locCheckService.insert(locCheck)){ + return R.error("鐩樼偣鏄庣粏鎻掑叆澶辫触"); + } + }else { + CheckDetl.setRealAnfme(detl.getAnfme()); + CheckDetl.setDiffAnfme(detl.getAnfme()- CheckDetl.getAnfme()); + if (!locCheckService.update(CheckDetl,wrapper)){ + return R.error("鏄庣粏鏇存柊澶辫触"); + } + + + + } + + + } + OrderCheck orderCheck = orderCheckService.selectOne(new EntityWrapper<OrderCheck>().eq("order_no", combParam.getOrderNo())); + orderCheck.setSettle(2L); + if (!orderCheckService.update(orderCheck,new EntityWrapper<OrderCheck>().eq("order_no", combParam.getOrderNo()))){ + return R.error("鏇存柊鐩樼偣鍗曠姸鎬佸け璐ワ紒"); + } + + + return R.ok("鐩樼偣鎴愬姛"); + } + + @Override + public R manDetlOrigin(JSONObject json, User user) { + String jsonLocNo = (String) json.get("locNo"); //鑾峰彇搴撲綅鐮� + + JSONArray combMats = json.getJSONArray("combMats"); + for (int i = 0; i < combMats.size(); i++) { + DetlOriginDTO jsonOriginDetl = combMats.getObject(i, DetlOriginDTO.class); + OriginRule originRule = originRuleService.selectOne(new EntityWrapper<OriginRule>() + .eq("origin_address", jsonOriginDetl.getOrigin())); + String code = "0"; + String weight = "0"; + String date = "0"; + try{ + if (originRule.getStartCode() != 0 && originRule.getEndCode() !=0){ + code = jsonOriginDetl.getMatnr().substring(originRule.getStartCode() - 1, originRule.getEndCode()); + } + if (originRule.getStartWeight() != 0 && originRule.getEndWeight() !=0){ + weight = jsonOriginDetl.getMatnr().substring(originRule.getStartWeight() - 1, originRule.getEndWeight()); + } + if (originRule.getStartDate() != 0 && originRule.getEndDate() !=0){ + date = jsonOriginDetl.getMatnr().substring(originRule.getStartDate() - 1, originRule.getEndDate()); + } + }catch (Exception e){ + return R.error("鏉$爜浣嶇疆鏈夎"); + } + Node node = nodeService.selectOne(new EntityWrapper<Node>().eq("name", jsonLocNo)); //鑾峰彇瀵瑰簲搴撲綅淇℃伅 + if (Cools.isEmpty(node)){ + return R.error("鏈煡璇㈠埌搴撲綅淇℃伅"); + } + Date now = new Date(); + ManLocDetl manLocDetl = new ManLocDetl(); //鍒濆鍖栧簱瀛樺疄浣撶被 + manLocDetl.setLocNo(node.getName()); + manLocDetl.setNodeId(node.getId()); +// manLocDetl.setZpallet(waitPakin.getZpallet()); + manLocDetl.setAnfme(jsonOriginDetl.getAnfme()); + manLocDetl.setMatnr(jsonOriginDetl.getMatnr()); + manLocDetl.setMaktx(code); + manLocDetl.setWeight(Double.valueOf( weight)); + manLocDetl.setUnit(date); + manLocDetl.setStatus(1); + manLocDetl.setCreateBy(user.getId()); + manLocDetl.setCreateTime(now); + manLocDetl.setUpdateBy(user.getId()); + manLocDetl.setModiTime(now); + // manLocDetl.setOrderNo(waitPakin.getOrderNo()); + manLocDetl.setStockFreeze(1); + + if (!manLocDetlService.insert(manLocDetl)){ //鏁版嵁搴撴彃鍏ュ疄浣撶被淇℃伅 + return R.error("鐗╂枡淇℃伅鍏ュ簱澶辫触"); + } + + + + + + + } + return R.ok(); + } } -- Gitblit v1.9.1