src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/OrderDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/views/order/order.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -153,58 +153,35 @@ } // 关联组托 } else { for (CombParam.CombMat combMat : param.getCombMats()) { Integer sum = orderDetlService.sameOrderComb(param.getOrderNo(), combMat.getMatnr(),combMat.getBatch()); OrderDetl orderDetl = orderDetlService.selectItem(param.getOrderNo(), combMat.getMatnr(), combMat.getBatch()); if (orderDetl == null) { throw new CoolException("找不到组托的单据明细"); } Double anfme = orderDetl.getAnfme(); if ( anfme > (anfme - sum)) { 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()) { // 订单明细数量校验 OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); if(orderDetl == null){ throw new CoolException("该单据中不存在该物料明细:" + elem); for (CombParam.CombMat combMat : param.getCombMats()) { OrderDetl orderDetl = orderDetlService.selectItem(param.getOrderNo(), combMat.getMatnr(), combMat.getBatch()); if (orderDetl == null) { throw new CoolException("找不到组托的单据明细"); } if (elem.getAnfme() > orderDetl.getEnableQty()) { throw new CoolException(orderDetl.getMatnr() + "入库数量不合法"); //订单数-工作中的数量-组托数量 if ( orderDetl.getAnfme() - orderDetl.getWorkQty() - combMat.getAnfme()<0) { throw new CoolException("组托数量已超出订单需求量,请检查是否有其他的组托已完成"); } // 修改订单作业数量 if (!orderDetlService.increaseWorkQty(order.getId(), elem.getMatnr(), elem.getBatch(), elem.getAnfme())) { if (!orderDetlService.increaseWorkQty(order.getId(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme())) { throw new CoolException("修改单据作业数量失败"); } DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; one.setAnfme(one.getAnfme() + detlDto.getAnfme()); } else { } } for (DetlDto detlDto : detlDtos) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); Mat mat = matService.selectByMatnr(combMat.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); throw new CoolException(combMat.getMatnr() + "商品档案不存在"); } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setOrderNo(order.getOrderNo()); // 单据编号 waitPakin.setBatch(detlDto.getBatch()); // 序列码 waitPakin.setBatch(combMat.getBatch()); // 序列码 waitPakin.setZpallet(param.getBarcode()); // 托盘码 waitPakin.setIoStatus("N"); // 入出状态 waitPakin.setAnfme(detlDto.getAnfme()); // 数量 waitPakin.setAnfme(combMat.getAnfme()); // 数量 waitPakin.setStatus("Y"); // 状态 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); @@ -213,6 +190,14 @@ if (!waitPakinService.insert(waitPakin)) { throw new CoolException("保存入库通知档失败"); } // DetlDto detlDto = new DetlDto(combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme()); // if (DetlDto.has(detlDtos, detlDto)) { // DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); // assert one != null; // one.setAnfme(one.getAnfme() + detlDto.getAnfme()); // } else { // } } orderService.updateSettle(order.getId(), 2L, userId); } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -576,7 +576,7 @@ String jsonLocNo = (String) json.get("locNo"); Node node = nodeService.selectOne(new EntityWrapper<Node>() .eq("name", jsonLocNo)); //查订单 String jsonOrderNo = (String) json.get("orderNo"); Order order = orderService.selectOne(new EntityWrapper<Order>() .eq("order_no", jsonOrderNo)); @@ -584,15 +584,23 @@ return R.error("参数为空"); } //判断订单类型是否是入库 DocType docType=docTypeService.selectById(order.getDocType()); if(docType.getPakin()!=1 || docType.getStatus()!=1){ return R.error("该订单是出库订单,无法入库"); } JSONArray combMats = json.getJSONArray("combMats"); for (int i = 0; i < combMats.size(); i++) { OrderDetl jsonOrderDetl = combMats.getObject(i, OrderDetl.class); OrderDetl orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>() .eq("order_no", jsonOrderNo)); .eq("order_no", jsonOrderNo) .and() .eq("maktx",jsonOrderDetl.getMaktx())); if (Cools.isEmpty(orderDetl)) { return R.error("单据明细有误,请检查"); } if (orderDetl.getAnfme() - (jsonOrderDetl.getAnfme() + orderDetl.getQty()) < 0) { if (orderDetl.getAnfme() - (jsonOrderDetl.getAnfme() + orderDetl.getWorkQty()) < 0) { return R.error("入库数量大于可入数量"); } ManLocDetl checkManLocDetl = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>() @@ -604,23 +612,34 @@ manLocDetl.setLocNo(node.getName()); manLocDetl.setNodeId(node.getId()); manLocDetl.setMatnr(orderDetl.getMatnr()); manLocDetl.setMaktx(orderDetl.getMaktx()); manLocDetl.setAnfme(orderDetl.getAnfme()); manLocDetl.setMaktx(jsonOrderDetl.getMaktx()); manLocDetl.setAnfme(jsonOrderDetl.getAnfme()); manLocDetl.setModiTime(date); manLocDetl.setCreateTime(date); manLocDetlService.insert(manLocDetl); } else { checkManLocDetl.setAnfme(checkManLocDetl.getAnfme() + orderDetl.getAnfme()); checkManLocDetl.setAnfme(checkManLocDetl.getAnfme() + jsonOrderDetl.getAnfme()); checkManLocDetl.setModiTime(date); manLocDetlService.update(checkManLocDetl, new EntityWrapper<ManLocDetl>() .eq("loc_no", jsonLocNo) .eq("matnr", orderDetl.getMatnr())); } orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme()); orderDetl.setWorkQty(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme()); orderDetl.setUpdateTime(date); orderDetlService.updateById(orderDetl); //更新订单状态 //工作中的数量小于总订单数时,订单状态改为2,作业中 if(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme() < orderDetl.getAnfme()){ order.setSettle(2L); }else{ //工作中的数量等于总订单数时,订单状态改为4,完成 order.setSettle(4L); } if(!orderService.updateById(order)){ return R.error("更新订单状态失败"); } } orderService.checkComplete(order.getOrderNo()); @@ -639,6 +658,12 @@ String jsonOrderNo = (String) json.get("orderNo"); Order order = orderService.selectOne(new EntityWrapper<Order>() .eq("order_no", jsonOrderNo)); //判断订单类型是否是入库 DocType docType=docTypeService.selectById(order.getDocType()); if(docType.getPakout()!=1 || docType.getStatus()!=1){ return R.error("该订单是出库订单,无法入库"); } if (Cools.isEmpty(node, order)) { return R.error("参数为空"); } @@ -680,6 +705,18 @@ orderDetl.setUpdateTime(date); orderDetlService.updateById(orderDetl); //更新订单状态 //工作中的数量小于总订单数时,订单状态改为2,作业中 if(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme() < orderDetl.getAnfme()){ order.setSettle(2L); }else{ //工作中的数量等于总订单数时,订单状态改为4,完成 order.setSettle(4L); } if(!orderService.updateById(order)){ return R.error("更新订单状态失败"); } orderService.checkComplete(order.getOrderNo()); } return R.ok("下架完成"); src/main/resources/mapper/OrderDetlMapper.xml
@@ -133,7 +133,14 @@ and order_no like '%' + #{orderNo} + '%' </if> and matnr = #{matnr} and batch = #{batch} <choose> <when test="batch != null and batch!='' "> and batch = #{batch} </when> <otherwise> and (batch IS NULL OR batch = '') </otherwise> </choose> </select> <update id="increase"> src/main/webapp/views/order/order.html
@@ -252,7 +252,7 @@ </script> <!-- 模板引擎 --> <!-- 模板3 --> <script type="text/template" id="templatePreview3" class="template-qrcode"> <script type="text/template" id="templatePreview3" class="template-qrcode">/orderDetl/list/auth {{#each data}} <table class="contain" width="280" style="overflow: hidden;font-size: xx-small;table-layout: fixed;"> <thead></thead>