自动化立体仓库 - WMS系统
#
zhou zhou
16 小时以前 2aa6001a302f86e521584ccc738d3b009e200cd2
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -13,6 +13,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -179,10 +180,31 @@
                        if (null != locDetl) {
                            if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) {
//                                exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                log.error("捡料更新库存失败,库位"+locMast.getLocNo()+",物料号"+wrkDetl.getMatnr());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("拣料入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                            }
                            List<LocDetl> locDetls1 = locDetlService.selectList(new EntityWrapper<LocDetl>()
                                    .eq("loc_no", wrkMast.getLocNo())
                                    .eq("matnr", wrkDetl.getMatnr())
                                    .eq(!Cools.isEmpty(wrkDetl.getBatch()), "batch", wrkDetl.getBatch())
                                    .in(Cools.isEmpty(wrkDetl.getBatch()), "batch", null, "", " ")
                            );
                            if (locDetls1.size() != 1) {
                                log.error("捡料更新库存后重查库存失败,未找到库存或查询到不为一个");
                            }else {
                                BigDecimal newAnf = new BigDecimal(locDetls1.get(0).getAnfme().toString());
                                BigDecimal subAnf = new BigDecimal((locDetl.getAnfme() - wrkDetl.getAnfme()));
                                if (newAnf.compareTo(subAnf) != 0) {
                                    log.error("捡料更新库存后,反查数量异常,库位"+locMast.getLocNo()+",物料号"+wrkDetl.getMatnr()+",重查数量"+newAnf+",应为数量"+subAnf);
                                }
                            }
                        } else {
                            if (Math.abs(wrkDetl.getAnfme())<=0){
                                continue;
                            }
                            LocDetl detl = new LocDetl();
//                            Mat mat = matService.selectByMatnr(wrkDetl.getMatnr());
@@ -397,13 +419,25 @@
                    }
                    for (WrkDetl w: wrkDetls101) {
                        //更改订单数量
//                        OrderDetl orderDetl=orderDetlService.selectItem(w.getOrderNo(),w.getMatnr(),w.getBatch());
//                        orderDetl.setQty(orderDetl.getQty()+w.getAnfme());
//                        if(!orderDetlService.updateById(orderDetl)){
//                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
//                            return FAIL.setMsg("全板出库 ===>> 修改订单数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
//                        }
                        if (!Cools.isEmpty(w.getOrderNo())) {
                            //更改订单数量
//                            OrderDetl orderDetl=orderDetlService.selectItem(w.getOrderNo(),w.getMatnr(),w.getBatch());
                            List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>()
                                    .eq("order_no", w.getOrderNo())
                                    .eq("matnr", w.getMatnr())
                                    .eq(!Cools.isEmpty(w.getBatch()),"batch", w.getBatch())
                            );
                            if (Cools.isEmpty(orderDetls) || orderDetls.size() != 1) {
                                log.error("全板出库更新订单信息,查找到订单明细为空或不为1:订单:"+w.getOrderNo()+",物料:"+w.getMatnr()+",批次:"+w.getBatch());
                                continue;
                            }
                            OrderDetl orderDetl =  orderDetls.get(0);
                            orderDetl.setQty(orderDetl.getQty()+w.getAnfme());
                            if(!orderDetlService.updateById(orderDetl)){
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("全板出库 ===>> 修改订单数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                            }
                        }
                    }
                    // 删除工作档源库位的库存明细