自动化立体仓库 - WMS系统
skyouc
1 天以前 003f9d3b07b3a4f71a7e13baaf06561cc646d2b6
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -214,12 +214,21 @@
        if (params.getNotifyType().equals("task")) {
            //任务
            if (params.getMsgType().equals("task_complete")) {
                mast.setWrkSts(4L);
                if (!Objects.isNull(mast.getWrkCode())) {
                    if (mast.getOveMk().equals("N") && mast.getIoType() == 1) {
                        throw new CoolException("任务未上报重量,无法完结任务!!");
                    }
                }
                if (mast.getIoType() == 1) {
                    mast.setWrkSts(4L);
                } else if (mast.getIoType() == 101) {
                    mast.setWrkSts(14L);
                }
                if (!wrkMastService.updateById(mast)) {
                    throw new CoolException("任务状态修改失败!!");
                }
            } else if (params.getMsgType().equals("task_cancel")) {
                //todo 取消任务
            }
        } else if (params.getNotifyType().equals("weight")) {
            //称重
@@ -244,6 +253,7 @@
                        //余料长度
                        wrkDetl.setRealQty(val * matnr.getVolume());
                        mast.setIoType(1);
                        mast.setOveMk("Y");
                        mast.setIsSuplus(1);
                        if (!wrkMastService.updateById(mast)) {
                            throw new CoolException("主档状态修改失败");
@@ -262,6 +272,7 @@
                        throw new CoolException("物料基础信息不存在!!");
                    }
                    Double val = Math.round((params.getWeight() - matnr.getSafeQty()) * 10000) / 10000.0;
                    //称重后,计算出真实长度
                    Double realQty = val * matnr.getVolume();
//                    if (val.compareTo(0.0) > 0) {
//                        //余料长度
@@ -283,12 +294,19 @@
                        if (Objects.isNull(orgWrk)) {
                            throw new CoolException("数据错误,主任务档不存在或已删除!!");
                        }
                        orgWrk.setOveMk("Y");
                        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((wrkDetl.getStockQty() - realQty) * 10000) / 10000.0;
                        detl.setRealQty(v);
                        //原出为数量与真实数量互换,保持一致性
                        detl.setRealQty(detl.getAnfme());
                        detl.setAnfme(v);
                        detl.setWeight(params.getWeight());
                        if (!wrkDetlService.update(detl, new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo).eq("matnr", detl.getMatnr()).eq("barcode", detl.getBarcode()))) {
                            throw new CoolException("原任务档明细修改失败!!");