From 07dad0e9ef89346439cfcfb5978b0f1cb8f1b512 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期二, 27 五月 2025 12:31:30 +0800 Subject: [PATCH] 新增PDA并板操作 --- src/main/java/com/zy/asrs/controller/MobileController.java | 253 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 213 insertions(+), 40 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index ab3cbd5..c3ea41f 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -2,28 +2,26 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; -import com.baomidou.mybatisplus.mapper.Wrapper; 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.GDYKConfirmGoodsParam; -import com.zy.asrs.entity.param.MobileAdjustParam; -import com.zy.asrs.entity.param.OffSaleParam; +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.web.BaseController; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; +import java.math.BigDecimal; import java.util.*; -import java.util.List; /** * 绉诲姩绔帴鍙f帶鍒跺櫒 @@ -58,6 +56,8 @@ @Autowired private WrkDetlLogService wrkDetlLogService; + + private static Logger logger = LogManager.getLogger(MobileController.class); // 鍟嗗搧涓婃灦 @RequestMapping("/mat/onSale/auth") @@ -150,6 +150,16 @@ @RequestMapping("/comb/auth") @ManagerAuth(memo = "缁勬墭") public R comb(@RequestBody CombParam combParam) { + logger.info("缁勬墭鍙傛暟锛歿}",combParam); + if (Cools.isEmpty(combParam.getOrderNo())) { + combParam.setOrderNo(combParam.getBillNo()); + } + List<CombParam.CombMat> combMats = combParam.getCombMats(); + combMats.forEach(elem -> { + if (Cools.isEmpty(elem.getBatch())) { + elem.setBatch(elem.getItemBatch()); + } + }); mobileService.comb(combParam, getUserId()); return R.ok("缁勬墭鎴愬姛"); } @@ -167,12 +177,12 @@ return R.ok("缁勬墭鎴愬姛"); } - @RequestMapping("/pack/comb/auth") - @ManagerAuth(memo = "涓嬬嚎缁勬墭") - public R packComb(@RequestBody CombParam combParam) { - mobileService.packComb(combParam, getUserId()); - return R.ok("缁勬墭鎴愬姛"); - } +// @RequestMapping("/pack/comb/auth") +// @ManagerAuth(memo = "涓嬬嚎缁勬墭") +// public R packComb(@RequestBody CombParam combParam) { +// mobileService.packComb(combParam, getUserId()); +// return R.ok("缁勬墭鎴愬姛"); +// } // 鍑哄簱 --------------------------------------------------------------------------------------------------- @@ -180,22 +190,20 @@ @RequestMapping("/pakout/query/auth") @ManagerAuth @Deprecated - public R pakoutQuery(@RequestParam(required = false) String barcode, - @RequestParam(required = false) Integer staNo, - @RequestParam(required = false) String matnr) { - if (Cools.isEmpty(barcode) && Cools.isEmpty(matnr)) { + public R pakoutQuery(@RequestParam String barcode) { + if (Cools.isEmpty(barcode)) { return R.ok(); } if (!Cools.isEmpty(barcode)) { List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("zpallet", barcode)); return R.ok().add(wrkDetls); } - if (!Cools.isEmpty(matnr)) { - if (!Cools.isEmpty(staNo)) { - List<WrkDetl> wrkDetls = wrkDetlService.selectPakoutQuery(staNo, matnr); - return R.ok().add(wrkDetls); - } - } +// if (!Cools.isEmpty(matnr)) { +// if (!Cools.isEmpty(staNo)) { +// List<WrkDetl> wrkDetls = wrkDetlService.selectPakoutQuery(staNo, matnr); +// return R.ok().add(wrkDetls); +// } +// } return R.ok(); } @@ -418,12 +426,17 @@ @RequestMapping("/bill/query1/auth") @ManagerAuth(memo = "鏍规嵁閫氱煡鍗曟煡璇㈡槑缁�") public R billQuery1(@RequestParam String billNo, @RequestParam String size) { - System.out.println("-------------------------"); - System.out.println(billNo); - System.out.println(size); - List<OrderDetl> waitMatins = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", billNo).like("model", size).last("and anfme > work_qty")); -// List<WaitMatin> waitMatins = waitMatinService.selectList(new EntityWrapper<WaitMatin>().eq("bill_no", billNo).last("and qty > in_qty")); - + Order temp1 = orderService.selectOne(new EntityWrapper<Order>().eq("temp1", billNo)); + if (temp1 == null) { + temp1 = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", billNo)); + if (temp1 == null) { + throw new CoolException("璇ヨ鍗曚笉瀛樺湪"); + } + } + List<OrderDetl> waitMatins = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", temp1.getOrderNo()).last("and anfme > work_qty")); + if (waitMatins == null || waitMatins.isEmpty()) { + throw new CoolException("璇ヨ鍗曢」涓嶅瓨鍦�"); + } //濡傛灉閫氱煡鍗曞崟鍙蜂负绌猴紝鍒欐煡璇㈣皟鎷ㄥ崟鍙� // if (Cools.isEmpty(waitMatins) || waitMatins.size() <= 0) { // waitMatins = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("temp1", billNo).like("size", size).last("and anfme > work_qty")); @@ -433,30 +446,190 @@ if (!Cools.isEmpty(waitMatins)) { for (OrderDetl waitMatin : waitMatins) { CombBillQueryVo vo = new CombBillQueryVo(); - vo.setMatNo(waitMatin.getMatnr()); + vo.setDetlId(waitMatin.getId()); + vo.setMatnr(waitMatin.getMatnr()); vo.setMatName(waitMatin.getMaktx()); - vo.setQty(waitMatin.getQty()); + vo.setQty(waitMatin.getAnfme() - waitMatin.getWorkQty()); vo.setCount(waitMatin.getAnfme() - waitMatin.getWorkQty()); vo.setBillNo(waitMatin.getOrderNo()); vo.setSeqNo(waitMatin.getINo()); vo.setUnit(waitMatin.getUnit()); vo.setSpecs(waitMatin.getSpecs()); - vo.setSize(waitMatin.getSpecs()); + vo.setSize(waitMatin.getModel()); vo.setColor(waitMatin.getColor()); vo.setItemBatch(waitMatin.getBatch()); + vo.setLuHao(waitMatin.getLuHao()); + vo.setOutOrderNo(waitMatin.getOutOrderNo()); + vo.setSPgNO(waitMatin.getSPgNO()); + vo.setProType(waitMatin.getProType()); + vo.setPacking(waitMatin.getPacking()); //vo.setOveFlag(waitMatin.getOveFlag()); vos.add(vo); - System.out.println(waitMatin.getAnfme()); - System.out.println(waitMatin.getWorkQty()); - System.out.println(vo); -// 10.0 -// 0.0 -// CombBillQueryVo(billNo=ZJFLC2407280005, seqNo=1, matNo=41011659, matName=寮圭哀鐩�, specs=null, size=null, color=null, count=10.0, qty=0.0, unit=Pcs, type=null, itemBatch=, oveFlag=null) -// 10.0 -// 0.0 -// CombBillQueryVo(billNo=ZJFLC2407280005, seqNo=2, matNo=4103020554, matName=鏀灦, specs=null, size=null, color=null, count=10.0, qty=0.0, unit=Pcs, type=null, itemBatch=, oveFlag=null) } } return R.ok().add(vos); } + + //------------------------------------------------------------------------------------------------------------------------------------------------骞舵澘鍔熻兘鏂板--------------------------------------------------------------------------------------------- + + /** + * 鏂板鎷f枡閫斾腑骞舵澘鍔熻兘 + */ + @RequestMapping("/barcode/list/pick") + @ManagerAuth(memo = "鎷f枡鍏ュ簱閫斾腑骞舵澘") + @Transactional + public R orderOutListOrderPick(@RequestBody String barcode) { + ArrayList<WrkMast> wrkMastArrayList = new ArrayList<>(); + if (Cools.isEmpty(barcode) || barcode.isEmpty()) { + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() + .eq("wrk_sts", 14L) + .eq("io_type", 103)); + wrkMastArrayList.addAll(wrkMasts); + } else { + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() + .like("barcode", barcode) + .eq("wrk_sts", 14L) + .eq("io_type", 103)); + wrkMastArrayList.addAll(wrkMasts); + } + + return R.ok().add(wrkMastArrayList); + } + @RequestMapping("/pick/mat/list") + @ManagerAuth(memo = "鑾峰彇骞舵澘鐗╂枡") + public R pickMats(@RequestParam(required = false) String matnr, @RequestParam(required = false) String orderNo) { + List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1)); + 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()); + } + + //鎼滅储鏄庣粏 + EntityWrapper<OrderDetl> wrapper1 = new EntityWrapper<>(); + wrapper1.eq("status", 1); + wrapper1.in("order_id", orderIds); + wrapper1.orderBy("create_time", false); + if (!Cools.isEmpty(matnr)) { + wrapper1.like("matnr", matnr); + } + if (!Cools.isEmpty(orderNo)) { + wrapper1.like("order_no", orderNo); + } + 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.setMaktx(orderDetl.getMaktx()); + matParam.setBatch(orderDetl.getBatch()); + matParam.setOrderNo(orderDetl.getOrderNo()); + matParam.setOrderId(orderDetl.getOrderId()); + matParam.setCount(count); + matParam.setUseCount(count); + ////"outOrderNo", "luHao", "packing", "sPgNO", "proType","color"}; + matParam.setOutOrderNo(orderDetl.getOutOrderNo()); + matParam.setLuHao(orderDetl.getLuHao()); + matParam.setPacking(orderDetl.getPacking()); + matParam.setProType(orderDetl.getProType()); + matParam.setSPgNO(orderDetl.getSPgNO()); + matParam.setColor(orderDetl.getColor()); + maps.add(matParam); + } + return R.ok().add(maps); + } + + @RequestMapping(value = "/order/list/orderNo") + public R orderListorderNo(@RequestParam String orderNo) { + //鏁伴噺淇敼鎴愪负瀹屾垚鏁伴噺 + List<OrderDetl> orderDetl1 = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("orderNo", orderNo)); + List<OrderDetl> orderDetls= new ArrayList<OrderDetl>(); + for (OrderDetl o: orderDetl1) { + BigDecimal c1 = new BigDecimal(o.getEnableQty()).setScale(2,BigDecimal.ROUND_HALF_UP); + o.setAnfme(c1.doubleValue()); + if (o.getAnfme().equals(0.0)){ + continue; + } + orderDetls.add(o); + } + return R.ok(orderDetls); + } + + @RequestMapping(value = "/order/list/all") + @ManagerAuth + public R orderList() { + return R.ok(orderService.selectAllorderNo()); + } + + @RequestMapping(value = "/orderDetl/forOrderNo/mergePakin/v1") + @ManagerAuth + public R forOrderNoMergePakinV1(@RequestParam String orderNo) { + List<DocType> docTypes = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1)); + ArrayList<Long> docTypeIds = new ArrayList<>(); + for (DocType docType : docTypes) { + docTypeIds.add(docType.getDocId()); + } + + if (docTypeIds.isEmpty()) { + return R.error("鍗曟嵁绫诲瀷涓嶅瓨鍦�"); + } + + List<Order> orders = orderService.selectList(new EntityWrapper<Order>().in("doc_type", docTypeIds).in("settle", 0, 1, 2)); + if (orders.isEmpty()) { + return R.error("鏈煡璇㈠埌璁㈠崟"); + } + + ArrayList<Long> orderIds = new ArrayList<>(); + for (Order order : orders) { + orderIds.add(order.getId()); + } + + List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>() + .in("order_id", orderIds) + .like("order_no", orderNo) + ); + if (Cools.isEmpty(orderDetlList)){ + return R.error("鏈煡璇㈠埌姝よ鍗曟鐗╂枡鏁版嵁"); + } + + ArrayList<OrderDetl> orderDetls = new ArrayList<>(); + for(OrderDetl orderDetl:orderDetlList){ + double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); + if (count <= 0D) { + continue; + } + orderDetl.setAnfme(count); + orderDetls.add(orderDetl); + } + return R.ok(orderDetls); + } + + /** + * 鎷f枡閫斾腑骞舵澘 + * + * @param param + * @return + */ + @RequestMapping("/pda/WarehouseOutPickMerge/v1") + @ManagerAuth + public R WarehouseOutPickMergeV1(@RequestBody WarehouseOutPickMergeParam param) { + return mobileService.WarehouseOutPickMergeV1(param,getUserId()); + } + } -- Gitblit v1.9.1