From d3cb0e841e6585aa84a45f18bb30965db8d1a6aa Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期三, 08 一月 2025 15:48:40 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/MobileController.java | 361 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 354 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index 43b1323..9e27f88 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -1,23 +1,26 @@ package com.zy.asrs.controller; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.core.annotations.ManagerAuth; +import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; 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.*; import com.zy.asrs.entity.result.MobileAdjustResult; +import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; import com.zy.common.model.WrkDto; +import com.zy.common.model.enums.WorkNoType; +import com.zy.common.service.CommonService; import com.zy.common.web.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.*; @@ -38,6 +41,8 @@ @Autowired private OrderService orderService; @Autowired + private OrderDetlService orderDetlService; + @Autowired private DocTypeService docTypeService; @Autowired private WrkMastService wrkMastService; @@ -47,6 +52,33 @@ private BasDevpService basDevpService; @Autowired private PackService packService; + @Autowired + private ManLocDetlMapper manLocDetlMapper; + @Autowired + private StaDescService staDescService; + @Autowired + private CommonService commonService; + @Autowired + private MatService matService; + @Autowired + private BomMatService bomMatService; + + // 鍟嗗搧涓婃灦 + @RequestMapping("/mat/onSale/auth") + @ManagerAuth + public R matOnSale(@RequestBody CombParam combParam){ + mobileService.onSale(combParam); + return R.ok("涓婃灦鎴愬姛"); + } + // 鍟嗗搧涓嬫灦 + @RequestMapping("/mat/offSale/auth") + //@ManagerAuth + public R matOffSale(@RequestBody OffSaleParam offSaleParam){ + mobileService.offSale(offSaleParam); + return R.ok("涓嬫灦鎴愬姛"); + } + + // 缁勬墭 ---------------------------------------------------------------------------------------------------- @@ -75,11 +107,104 @@ return R.ok().add(orderDetls); } + @RequestMapping("/check/mergeStore/barcode") + @ManagerAuth + public R mergeStoreBarcode(@RequestParam String barcode){ + WrkMast wrkMast = wrkMastService.selectByBarcode(barcode); + if (Cools.isEmpty(wrkMast)) { + throw new CoolException("褰撳墠鎵樼洏鐮�" + barcode + "娌℃湁浠诲姟锛岃妫�鏌ワ紒"); + } + if (wrkMast.getIoType() != 104) { + throw new CoolException("褰撳墠鎵樼洏鐮�" + barcode + "闈炲苟鏉垮嚭搴�"); + } + if (wrkMast.getWrkSts() != 14L) { + throw new CoolException("褰撳墠鎵樼洏鐮�" + barcode + "鍑哄簱鏈畬鎴�"); + } + WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); + return R.ok().add(wrkDetl.getBomCode()); + } + @RequestMapping("/comb/auth") @ManagerAuth(memo = "缁勬墭") public R comb(@RequestBody CombParam combParam){ mobileService.comb(combParam, getUserId()); return R.ok("缁勬墭鎴愬姛"); + } + + @RequestMapping("/comb/auth2") + @ManagerAuth(memo = "缁勬墭") + public R comb2(@RequestBody CombParam combParam){ + mobileService.comb2(combParam, getUserId()); + return R.ok("缁勬墭鎴愬姛"); + } + + @RequestMapping("/comb/auth3") + @ManagerAuth(memo = "缁勬墭") + public R comb3(@RequestBody CombParam combParam){ + mobileService.comb3(combParam, getUserId()); + return R.ok("缁勬墭鎴愬姛"); + } + + @RequestMapping("/check/fullplt/auth") + @ManagerAuth(memo = "妫�娴嬬墿鏂欐槸鍚︽湁鏈弧鎵樻墭鐩�") + public R checkFullplt(@RequestBody CombParam.CombMat combMat){ + List<LocMast> locMasts = mobileService.checkFullplt(combMat, getUserId()); + return R.ok().add(locMasts); + } + + + @RequestMapping("/merge/comb/auth") + @ManagerAuth(memo = "骞舵澘") + public R mergeComb(@RequestBody CombParam combParam){ + mobileService.mergeComb(combParam, getUserId()); + return R.ok("缁勬墭鎴愬姛"); + } + + @RequestMapping("/merge/out/auth") + @ManagerAuth(memo = "pda骞舵澘鍑哄簱") + public R mergeOut(@RequestParam String locNo,@RequestParam String staNo){ + mobileService.mergeOut(locNo,staNo, getUserId()); + return R.ok("鍑哄簱鎴愬姛"); + } + + @RequestMapping("/merge/comb2/auth") + @ManagerAuth(memo = "骞舵澘") + public R mergeComb2(@RequestBody CombParam combParam){ + mobileService.mergeComb2(combParam, getUserId()); + return R.ok("骞舵澘鎴愬姛"); + } + + @RequestMapping("/comb/checkBom") + @ManagerAuth(memo = "鏍¢獙Bom") + public R checkBom(@RequestBody CheckBom checkBom){ + BomMat bomMat = new BomMat(); + // 娌℃湁杈撳叆bom鍙锋甯哥粍鎵� + if (Cools.isEmpty(checkBom.getBomCode())) { + return R.ok(); + } + + if (Cools.isEmpty(checkBom.getMatnr())) { + return R.ok().add(bomMat); + } else { + // 妫�鏌ユ槸鍚﹀湪bom娓呭崟鍐� + bomMat = bomMatService.selectOne(new EntityWrapper<BomMat>().eq("bom_num", checkBom.getBomCode()).eq("element_num", checkBom.getMatnr())); + if (Cools.isEmpty(bomMat)) { + throw new CoolException("褰撳墠鐗╂枡" + checkBom.getMatnr() + "涓嶅湪Bom娓呭崟鍐�"); + } else { + // 妫�鏌ュ簱瀛樹腑鏄惁鏈夊綋鍓峛om鐨勭墿鏂� + Double bomQyt = locDetlService.getBomQyt(checkBom.getBomCode(), checkBom.getMatnr()); + if (!Cools.isEmpty(bomQyt)) { + bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQyt); + } + Double bomQty = wrkDetlService.getBomQty(checkBom.getBomCode(), checkBom.getMatnr()); + if (!Cools.isEmpty(bomQty)) { + bomMat.setZpalletAnfme(bomMat.getZpalletAnfme() - bomQty); + } + // 妫�鏌ュ伐浣滄。涓槸鍚︽湁褰撳墠bom鐨勭墿鏂� + + } + } + return R.ok().add(bomMat); } @RequestMapping("/pack/get/auth") @@ -98,7 +223,7 @@ @RequestMapping("/pack/comb/auth") @ManagerAuth(memo = "涓嬬嚎缁勬墭") public R packComb(@RequestBody CombParam combParam){ - mobileService.packComb(combParam, getUserId()); +// mobileService.packComb(combParam, getUserId()); return R.ok("缁勬墭鎴愬姛"); } @@ -146,6 +271,16 @@ return R.ok().add(Cools.add("wrkNo", wrkMast.getWrkNo()).add("ioType", wrkMast.getIoType()).add("list", wrkDetls)); } return R.ok(); + } + + // 鏍规嵁搴撲綅鐮佸拰鍟嗗搧鐮佹悳绱㈠晢鍝� + @RequestMapping("/mat/find/auth") + public R find(@RequestParam(required = false) String locNo + , @RequestParam(required = false) String matnr){ + //List<ManLocDetl> manLocDetls = manLocDetlMapper.selectItem0(locNo, matnr); + ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(locNo, matnr); + return R.ok(manLocDetl); + //return R.ok(manLocDetlMapper.selectItem0(locNo, matnr)); } /** @@ -294,5 +429,217 @@ return R.ok("鐩樼偣鎴愬姛"); } + @PostMapping("/order/out/pakout/auth") + @ManagerAuth(memo = "璁㈠崟鍑哄簱") + public synchronized R pakoutByOrder(@RequestBody JSONObject param) { + if(!param.containsKey("staNo") || !param.containsKey("orderNo")){ + return R.parse(BaseRes.PARAM); + } + mobileService.pakoutByOrder(param,getUserId()); + return R.ok("鍑哄簱鎴愬姛"); + } + + //骞冲簱pda涓婃灦 + @RequestMapping("/manDetl/in") + public R manDetlAdd(@RequestBody JSONObject json){ + if (json == null){ + return R.error("浼犲叆鏁版嵁涓虹┖"); + } + return mobileService.manDetlIn(json); + } + + //骞冲簱pda涓嬫灦 + @RequestMapping("/manDetl/out") + public R manDetlDelete(@RequestBody JSONObject json){ + if (json == null){ + return R.error("浼犲叆鏁版嵁涓虹┖"); + } + return mobileService.manDetlOut(json); + } + + @RequestMapping("/loc/f/list") + @ManagerAuth(memo = "鑾峰彇鍦ㄥ簱搴撲綅") + public R locNoF(@RequestParam(required = false) String locNo){ + Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", "F"); + if (!Cools.isEmpty(locNo)) { + wrapper.like("loc_no", locNo); + } + List<LocMast> list = locMastService.selectList(wrapper); + return R.ok().add(list); + } + + @RequestMapping("/pick/sta/list") + @ManagerAuth(memo = "鑾峰彇骞舵澘绔�") + public R pickSta(){ + List<StaDesc> list = staDescService.selectList(new EntityWrapper<StaDesc>().eq("type_no",104)); + return R.ok().add(list); + } + + @RequestMapping("/pick/mat/list") + @ManagerAuth(memo = "鑾峰彇骞舵澘鐗╂枡") + public R pickMats(@RequestParam(required = false) String matnr){ + List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().like("doc_name", "鍏ュ簱")); + ArrayList<Long> typeList = new ArrayList<>(); + for (DocType docType : docTypes) { + typeList.add(docType.getDocId()); + } + + EntityWrapper<Order> wrapper = new EntityWrapper<>(); + wrapper.eq("status", 1); + wrapper.in("doc_type", typeList); + List<Order> orders = orderService.selectList(wrapper); + + ArrayList<Long> orderIds = new ArrayList<>(); + for (Order order : orders) { + orderIds.add(order.getId()); + } + + //鎼滅储鏄庣粏 + Wrapper<OrderDetl> wrapper1 = new EntityWrapper<OrderDetl>(); + wrapper1.eq("status", 1); + wrapper1.in("order_id", orderIds); + if (!Cools.isEmpty(matnr)) { + wrapper1.like("matnr", matnr); + } + + List<OrderDetl> list = orderDetlService.selectList(wrapper1); + + ArrayList<PickMatParam> maps = new ArrayList<>(); + for (OrderDetl orderDetl : list) { + //鍓╀綑鍙敤鏁伴噺 + double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); + if (count <= 0) { + continue; + } + + PickMatParam matParam = new PickMatParam(); + matParam.setMatnr(orderDetl.getMatnr()); + matParam.setBatch(orderDetl.getBatch()); + matParam.setOrderNo(orderDetl.getOrderNo()); + matParam.setOrderId(orderDetl.getOrderId()); + matParam.setCount(count); + matParam.setUseCount(0D); + maps.add(matParam); + } + return R.ok().add(maps); + } + + @RequestMapping("/pick/in") + @ManagerAuth(memo = "骞舵澘鍏ュ簱") + @Transactional + public R pickConfirm(@RequestBody PickConfirmParam param){ + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocNo())); + if (!locMast.getLocSts().equals("F")) { + return R.error("搴撲綅鐘舵�佷笉鏄湪搴�"); + } + + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("type_no", 104) + .eq("stn_no", param.getStaNo())); + if (staDesc == null) { + return R.error("绔欑偣涓嶅瓨鍦�"); + } + + //妫�楠屼紶鍙傛槸鍚﹀拰璁㈠崟鏄庣粏鍖归厤 + for (PickMatParam matParam : param.getList()) { + Wrapper<OrderDetl> wrapper = new EntityWrapper<OrderDetl>() + .eq("order_no", matParam.getOrderNo()) + .eq("status", 1) + .eq("matnr", matParam.getMatnr()); + if (!Cools.isEmpty(matParam.getBatch())) { + wrapper.eq("batch", matParam.getBatch()); + } + OrderDetl orderDetl = orderDetlService.selectOne(wrapper); + if (orderDetl == null) { + return R.error("鐗╂枡鏁版嵁涓嶅瓨鍦�"); + } + + //鍓╀綑鍙敤鏁伴噺 + double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); + if (matParam.getCount() != count) { + return R.error("鐗╂枡鏁版嵁宸茶繃鏈�"); + } + + if (matParam.getUseCount() > count) { + return R.error("鍙敤鏁伴噺涓嶈冻"); + } + } + + Date now = new Date(); + // 鐢熸垚宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(104)); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱 + wrkMast.setIoType(104); // 鍏ュ嚭搴撶姸鎬� + wrkMast.setIoPri(13D); // 浼樺厛绾э細13 + wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 + wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� + wrkMast.setSourceLocNo(param.getLocNo()); // 婧愬簱浣� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("Y"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setBarcode(locMast.getBarcode()); + wrkMast.setAppeUser(getUserId()); // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiUser(getUserId()); + wrkMast.setModiTime(now); + wrkMast.setCrnNo(staDesc.getCrnNo()); + if (!wrkMastService.insert(wrkMast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + param.getLocNo()); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + for (PickMatParam matParam : param.getList()) { + EntityWrapper<Mat> wrapper = new EntityWrapper<>(); + wrapper.eq("status", 1); + wrapper.eq("matnr", matParam.getMatnr()); + Mat mat = matService.selectOne(wrapper); + if (mat == null) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鐗╂枡淇℃伅涓嶅瓨鍦細" + matParam.getMatnr()); + } + + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(mat); + wrkDetl.setOrderNo(matParam.getOrderNo()); + wrkDetl.setWrkNo(workNo); + wrkDetl.setZpallet(wrkMast.getBarcode()); + wrkDetl.setIoTime(now); + wrkDetl.setAnfme(matParam.getUseCount()); // 鏁伴噺 + wrkDetl.setAppeTime(now); + wrkDetl.setAppeUser(getUserId()); + wrkDetl.setModiTime(now); + wrkDetl.setModiUser(getUserId()); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + + //鏇存柊璁㈠崟宸ヤ綔鏁伴噺 + orderDetlService.increaseWorkQtyByOrderNo(matParam.getOrderNo(), matParam.getMatnr(), matParam.getBatch(), matParam.getUseCount()); + } + // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓� + locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocNo())); + if (locMast.getLocSts().equals("F")) { + locMast.setLocSts("P"); + locMast.setModiUser(getUserId()); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + param.getLocNo()); + } + } else { + throw new CoolException(param.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); + } + + return R.ok(); + } + + @RequestMapping("/adjustNew/v2/auth") + @ManagerAuth(memo = "琛ヨ揣") + public synchronized R adjustNewV2(@RequestBody MobileAdjustParam combParam){ + mobileService.adjustNew(combParam, Boolean.TRUE, getUserId()); + return R.ok("琛ヨ揣鎴愬姛"); + } } -- Gitblit v1.9.1