zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MobileService.java
@@ -19,4 +19,5 @@ R WarehouseIn(String locNo, String barcode,Long hostId); R WarehouseOut(CombParam combParam, Long hostId); R WarehouseOutV1(CombParam combParam, Long hostId); } zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -392,4 +392,83 @@ return R.ok(); } @Override @Transactional public R WarehouseOutV1(CombParam combParam, Long hostId) { //判断库位状态 LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,0L)); if (Cools.isEmpty(locMast)){ return R.error("该库位不存在"); } if (!locMast.getLocSts().equals("P")){ return R.error("该库位状态为:"+locMast.getLocSts()+",不满足并板途中拣选条件!!!"); } //查询库存数据 for (CombParam.CombMat combMat :combParam.getCombMats()){ List<LocDetl> locDetlList = locDetlService.list(new LambdaQueryWrapper<LocDetl>() .eq(LocDetl::getLocNo, combParam.getLocno()) .eq(LocDetl::getHostId, hostId) // .eq(LocDetl::getZpallet, combMat.getZpallet()) .eq(LocDetl::getMatnr, combMat.getMatnr()) // .eq(LocDetl::getBatch, combMat.getBatch()) ); if (locDetlList.isEmpty()){ return R.error("未查询到库存数据"); } if (locDetlList.size()>1){ return R.error("库存数据大于1条,为保证数据准确性,请用正常流程出库!!!"); } LocDetl locDetl = locDetlList.get(0); if (combMat.getAnfme() > locDetl.getAnfme()){ return R.error("拣选数量错误,超出库存数量"); } if (!Cools.isEmpty(combParam.getOrderNo())){ Order order = orderService.selectByNo(combParam.getOrderNo(), hostId); if (Cools.isEmpty(order)){ continue; } if (order.getSettle() == 1){ orderService.updateSettle(order.getId(), 2L, 9527L, hostId); } OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), combMat.getMatnr(), combMat.getBatch(),hostId); if (Cools.isEmpty(orderDetl)){ continue; } if (orderDetl.getAnfme() < (orderDetl.getWorkQty()+combMat.getAnfme())){ throw new CoolException("拣选数量出错,订单剩余出库数量小于已出库数量与将拣选数量之和!!!"); } // 修改订单明细作业数量 if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) { throw new CoolException("修改单据明细工作数量失败"); } // 修改订单明细完成数量 if (!orderDetlService.increase(order.getId(), hostId, combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) { throw new CoolException("修改单据明细完成数量失败"); } // 修改订单状态 作业中 ===>> 已完成 orderService.checkComplete(combParam.getOrderNo(), hostId); } try { //处理库存信息 if (combMat.getAnfme().equals(locDetl.getAnfme())){ //库存相等删除数据 locDetlService.removeById(locDetl); int count = locDetlService.count(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo,combParam.getLocno()).eq(LocDetl::getHostId, hostId)); if (count == 0){ LocMast locMast1 = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId, hostId)); locMast1.setLocSts("O"); locMastService.updateById(locMast1); } } else { BigDecimal subtract = BigDecimal.valueOf(locDetl.getAnfme()).subtract(BigDecimal.valueOf(combMat.getAnfme())); locDetl.setAnfme(subtract.doubleValue()); locDetlService.updateById(locDetl); } }catch (Exception e){ throw new CoolException("更新库存数据出错"+e.getMessage()); } } return R.ok(); } } zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
@@ -46,6 +46,19 @@ return R.ok(detls); } @RequestMapping(value = "/locDetl/forlocNo/auth/v1") @ManagerAuth public R forlocNoV1(@RequestParam String locNo) { LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>() .eq(LocDetl::getLocNo, locNo) .eq(LocDetl::getHostId, getHostId()); List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper); if (Cools.isEmpty(detls)){ return R.error("未查询到库存数据"); } return R.ok(detls); } @RequestMapping(value = "/locDetl/forlocNo/auth") @ManagerAuth public R forlocNo(@RequestParam String orderNo,@RequestParam String locNo,@RequestParam String batch,@RequestParam String matnr) { zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
@@ -76,6 +76,12 @@ return mobileService.WarehouseOut(combParam,getHostId()); } @RequestMapping("/pda/WarehouseOut/v1") @ManagerAuth public R WarehouseOutV1(@RequestBody CombParam combParam){ return mobileService.WarehouseOutV1(combParam,getHostId()); } @RequestMapping("/menu/pda/auth") @ManagerAuth public R menuPda(){ @@ -544,4 +550,30 @@ return R.ok(); } @RequestMapping("/barcode/list/all") @ManagerAuth(memo = "并板入库途中拣料出库获取任务信息") @Transactional public R orderOutListOrder(@RequestBody String barcode) { ArrayList<WrkMast> wrkMastArrayList = new ArrayList<>(); if (Cools.isEmpty(barcode) || barcode.isEmpty()){ List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199) .eq(WrkMast::getIoType, 104)); wrkMastArrayList.addAll(wrkMasts); } else { WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>() .eq(WrkMast::getBarcode, barcode) .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199) .eq(WrkMast::getIoType, 104) ); if (!Cools.isEmpty(wrkMast)){ wrkMastArrayList.add(wrkMast); } } return R.ok().add(wrkMastArrayList); } } zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderDetlController.java
@@ -36,6 +36,8 @@ private WrkDetlService wrkDetlService; @Autowired private WorkService workService; @Autowired private LocDetlService locDetlService; @RequestMapping(value = "/orderDetl/forOrderNo/auth") @ManagerAuth @@ -72,6 +74,38 @@ return R.ok(orderDetlService.page(new Page<>(curr, limit), wrapper)); } @RequestMapping(value = "/orderDetl/forOrderNo/auth/v1") @ManagerAuth public R forOrderNoV1(@RequestParam String orderNo,@RequestParam String locNo,@RequestParam String batch,@RequestParam String matnr) { LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>() .eq(LocDetl::getLocNo, locNo) .eq(LocDetl::getHostId, getHostId()) .eq(LocDetl::getMatnr, matnr); List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper); if (Cools.isEmpty(detls)){ return R.error("未查询到库存数据"); } if (detls.size()>1){ return R.error("库存数据大于1条,为保证数据准确性,请用正常流程出库!!!"); } List<OrderDetl> orderDetlList = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>() .eq(OrderDetl::getMatnr, matnr) .eq(OrderDetl::getHostId, getHostId()) .like(OrderDetl::getOrderNo, orderNo) ); if (Cools.isEmpty(orderDetlList)){ return R.error("未查询到此订单此物料数据"); } if (orderDetlList.size()>1){ return R.error("此订单此物料数据数据大于1条,为保证数据准确性,请用正常流程出库!!!"); } for(OrderDetl orderDetl:orderDetlList){ double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); orderDetl.setAnfme(count); } return R.ok(orderDetlList); } @RequestMapping(value = "/orderDetl/add/auth") @ManagerAuth zy-asrs-wms/src/main/webapp/views/wrkMast/wrkMast.html
@@ -123,6 +123,9 @@ {{#if (d.ioType === 107) { }} <a class="layui-btn layui-btn-warm layui-btn-xs btn-pick" lay-event="pick">盘</a> {{# } }} {{#if (d.ioType === 104) { }} <a class="layui-btn layui-btn-warm layui-btn-xs btn-pick" lay-event="pick">并</a> {{# } }} </script> <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>