自动化立体仓库 - WMS系统
#
Administrator
3 天以前 1ee1574b1fce92407e45438b0141121d266efd3d
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -349,7 +349,7 @@
            //任务
            if (params.getMsgType().equals("task_complete")) {
                //称重
                if ((mast.getIoType()==1||mast.getIoType()==10)&&mast.getWrkSts() == 2 && Cools.isEmpty(mast.getStaNo())) {
                if ((mast.getIoType()==1||mast.getIoType()==10) && mast.getWrkSts() == 2 && Cools.isEmpty(mast.getStaNo())) {
                    Double weight = 0.0;
                    if (!Cools.isEmpty(params.getData())){
                        JSONObject jsonObject = JSONObject.parseObject(params.getData());
@@ -576,7 +576,7 @@
            //任务
            if (params.getMsgType().equals("task_complete")) {
                //称重
                if ((mast.getIoType()==1||mast.getIoType()==10)&&mast.getWrkSts() == 2 && Cools.isEmpty(mast.getStaNo())) {
                if ((mast.getIoType()==1||mast.getIoType()==10) && mast.getWrkSts() == 2  && Cools.isEmpty(mast.getStaNo())) {
                    Double weight = 0.0;
                    if (!Cools.isEmpty(params.getData())){
                        JSONObject jsonObject = JSONObject.parseObject(params.getData());
@@ -627,6 +627,9 @@
                            }
                        }
                    } else {  //入库/回库有料任务完成
                        if(mast.getIoType() !=2){
                        }
                        WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", mast.getWrkNo()));
                        if (Objects.isNull(wrkDetl)) {
                            throw new CoolException("数据错误,任务明细不存在!!");
@@ -681,9 +684,9 @@
                                throw new CoolException("子任务档明细不存在!!");
                            }
                            //库存减去称重长度
                            Double v = Math.round((wrkDetl.getStockQty() - realQty) * 10000) / 10000.0;
                            Double v = Math.round((detl.getStockQty() - realQty) * 10000) / 10000.0;
                            log.info("主任务明细回写计算: mainWrkNo={}, v=(stockQty-realQty)={}, stockQty={}, realQty={}",
                                    wrkNo, v, wrkDetl.getStockQty(), realQty);
                                    wrkNo, v, detl.getStockQty(), realQty);
                            //原出为数量与真实数量互换,保持一致性
                            if(v<= 0){
                                detl.setAnfme(matnr.getSafeQty());//设定为默认值
@@ -697,8 +700,40 @@
                            if (!wrkDetlService.update(detl, new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo).eq("matnr", detl.getMatnr()).eq("barcode", detl.getBarcode()))) {
                                throw new CoolException("原任务档明细修改失败!!");
                            }
                        } else {
                            throw new CoolException("任务号截取失败,请检查主任务档任档wrkCode字段");
                        } else if(!Cools.isEmpty(mast.getPacked())){
                            String wrkNo = mast.getPacked();
                            WrkMast orgWrk = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo));
                            if (Objects.isNull(orgWrk)) {
                                throw new CoolException("数据错误,回库主任务档不存在或已删除!!");
                            }
                            orgWrk.setOveMk("Y");
                            log.info("回库主任务更新: wrkNo={}, setOveMk=Y", wrkNo);
                            if (!wrkMastService.updateById(orgWrk)) {
                                throw new CoolException("任务档修改失败!!");
                            }
                            WrkDetl detl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo));
                            if (Objects.isNull(detl)) {
                                throw new CoolException("主任务档明细不存在!!");
                            }
                            //库存减去称重长度
                            Double v = Math.round((detl.getStockQty() - realQty) * 10000) / 10000.0;
                            log.info("回库主任务明细回写计算: mainWrkNo={}, v=(stockQty-realQty)={}, stockQty={}, realQty={}",
                                    wrkNo, v, detl.getStockQty(), realQty);
                            //原出为数量与真实数量互换,保持一致性
                            if(v<= 0){
                                detl.setAnfme(matnr.getSafeQty());//设定为默认值
                                log.info("回库主任务明细回写修正: mainWrkNo={}, v<=0, setAnfme(safeQty)={}", wrkNo, detl.getAnfme());
                            }else{
                                detl.setAnfme(v);
                                log.info("回库主任务明细回写修正: mainWrkNo={}, v>0, setAnfme={}", wrkNo, detl.getAnfme());
                            }
                            detl.setWeight(weight);
                            if (!wrkDetlService.update(detl, new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo).eq("matnr", detl.getMatnr()).eq("barcode", detl.getBarcode()))) {
                                throw new CoolException("原任务档明细修改失败!!");
                            }
                        }else{
                                throw new CoolException("任务号截取失败,请检查主任务档任档wrkCode字段");
                        }
                    }
                }