#
whycq
2023-07-05 cc3b8857e340360e08aedbe81de7d82df7c1b644
src/main/java/com/zy/common/web/WcsController.java
@@ -43,11 +43,22 @@
        JSONObject jsonObject1 = new JSONObject();
        JSONArray jsonArray = new JSONArray();
        for (InterData interData : list) {
            //查询对应入库通知档信息
            Wrapper wrapper = new EntityWrapper<WaitPakin>().eq("supplier", interData.getFBillNo()).eq("matnr", interData.getFnumber());
            WaitPakin waitPakin = waitPakinService.selectOne(wrapper);
            if ((interData.getIoType() == 1 && interData.getMatType() == 1) || (interData.getIoType() == 2 && interData.getMatType() == 2)) {
            //原材料入庫
            if ((interData.getIoType() == 1 && interData.getMatType() == 1)) {
                //查询对应入库通知档信息
                Wrapper wrapper = new EntityWrapper<WaitPakin>().eq("supplier", interData.getFBillNo()).eq("matnr", interData.getFnumber());
                WaitPakin waitPakin = waitPakinService.selectOne(wrapper);
                if(Cools.isEmpty(waitPakin)){
                    JSONObject object = new JSONObject();
                    object.put("FInterID", interData.getFInterID());
                    object.put("Fnumber", interData.getFnumber());
                    object.put("code", 500);
                    object.put("msg", "单据不存在或单据已被删除");
                    jsonArray.add(object);
                    continue;
                }
                if (Cools.isEmpty(waitPakin)) {
                    JSONObject object = new JSONObject();
                    object.put("FInterID", interData.getFInterID());
@@ -57,8 +68,73 @@
                    jsonArray.add(object);
                    continue;
                }
                //判断是否有出库动作   "N"没有  “Y”有
                if (waitPakin.getIoStatus().equals("N")) {
                //判断是否有入库动作   "N"没有  “Y”有
//                interData.getFQty().compareTo(waitPakin.getAnfme())
                Double userQty = waitPakin.getNqty() - waitPakin.getAnfme(); //通知入库量 - 等待入库量 = 已完成入库数量; 修改数量不能小于已完成数量
                if (waitPakin.getIoStatus().equals("N") && userQty <= interData.getFQty().doubleValue() ) {
                    //判断传入的数量是否为0来执行删除或者修改
                    if (interData.getFQty().compareTo(BigDecimal.ZERO) == 0) {
                        waitPakinService.delete(wrapper);
                        JSONObject object = new JSONObject();
                        object.put("Fnumber", interData.getFnumber());
                        object.put("FInterID", interData.getFInterID());
                        object.put("code", 200);
                        object.put("msg", "删除成功");
                        jsonArray.add(object);
                    } else {
//                        waitPakin.setAnfme(interData.getFQty().doubleValue());
                        waitPakin.setAnfme(interData.getFQty().doubleValue() - userQty);
                        waitPakinService.update(waitPakin, wrapper);
                        JSONObject object = new JSONObject();
                        object.put("Fnumber", interData.getFnumber());
                        object.put("FInterID", interData.getFInterID());
                        object.put("code", 200);
                        object.put("msg", "修改成功");
                        jsonArray.add(object);
                    }
                } else {
                    JSONObject object = new JSONObject();
                    object.put("FInterID", interData.getFInterID());
                    object.put("Fnumber", interData.getFnumber());
                    object.put("code", 500);
                    object.put("msg", "已入库数量大于待修改量,无法修改");
                    jsonArray.add(object);
                }
            }
            //成品入庫
            if (interData.getIoType() == 2 && interData.getMatType() == 2) {
                //查询对应入库通知档信息
                Wrapper wrapper = new EntityWrapper<WaitPakin>().eq("supplier", interData.getFBillNo()).eq("matnr", interData.getFnumber());
                WaitPakin waitPakin = waitPakinService.selectOne(wrapper);
                if(Cools.isEmpty(waitPakin)){
                    JSONObject object = new JSONObject();
                    object.put("FInterID", interData.getFInterID());
                    object.put("Fnumber", interData.getFnumber());
                    object.put("code", 500);
                    object.put("msg", "单据不存在或单据已被删除");
                    jsonArray.add(object);
                    continue;
                }
                if (Cools.isEmpty(waitPakin)) {
                    JSONObject object = new JSONObject();
                    object.put("FInterID", interData.getFInterID());
                    object.put("Fnumber", interData.getFnumber());
                    object.put("code", 500);
                    object.put("msg", "单据不存在或单据已被删除");
                    jsonArray.add(object);
                    continue;
                }
                WaitPakin one = waitPakinService.selectOne(new EntityWrapper<WaitPakin>()
                        .eq("supplier", interData.getFBillNo())
                        .eq("matnr", interData.getFnumber())
                        .isNotNull("zpallet"));
                //判断是否有入库动作   "N"没有  “Y”有
                if (waitPakin.getIoStatus().equals("N") && Cools.isEmpty(one)) {
                    //判断传入的数量是否为0来执行删除或者修改
                    if (interData.getFQty().compareTo(BigDecimal.ZERO) == 0) {
                        waitPakinService.delete(wrapper);
@@ -89,6 +165,7 @@
                }
            }
            //成品出庫
            if (interData.getIoType() == 3) {
                Wrapper wrapper1 = new EntityWrapper<OutStockBillEntry>().eq("FInterID", interData.getFInterID()).and().eq("Fnumber", interData.getFnumber());
                OutStockBillEntry outStockBillEntry = outStockService.selectOne(wrapper1);
@@ -114,6 +191,7 @@
                        jsonArray.add(object);
                    } else {
                        outStockBillEntry.setFAuxQty(interData.getFQty());
                        outStockBillEntry.setFQty(interData.getFQty());
                        outStockService.update(outStockBillEntry, wrapper1);
                        JSONObject object = new JSONObject();
                        object.put("Fnumber", interData.getFnumber());
@@ -144,6 +222,7 @@
        }
        jsonObject1.put("data", jsonArray);
        log.info("ERP取消任务--WMS返回结果===>>"+ jsonObject1.toJSONString());
        return jsonObject1;
    }