From ee516213153df61431fa40e3d723de743b945796 Mon Sep 17 00:00:00 2001 From: 廖井涛 <2265517004@qq.com> Date: 星期四, 06 二月 2025 16:26:50 +0800 Subject: [PATCH] 增加配置发货默认出库 --- north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java | 263 +++++++++++++++++++++++++++------------------------ 1 files changed, 139 insertions(+), 124 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java index 3f3b677..74f0ab7 100644 --- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java +++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java @@ -207,67 +207,8 @@ //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class); if (!orderDetaillist.isEmpty()){ - for (OrderDetail orderDetail : orderDetaillist) { - //鑾峰彇鍗曞彿 - String oddNumber= orderNumberSetting("鍑哄簱"); - OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber()); - //娣诲姞鍑哄叆搴撹褰� - finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber); - Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber()); - - - Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId()); - Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId()); - - Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId()); - Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0); - if(deliverydetailsum==null){ - deliverydetailsum=0; - } - - DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId()); - /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" + - orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" + - deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/ - //鍒ゆ柇鍙戣揣鍗曠殑搴撳瓨鏄惁瀛樺湪 - if (finishedGoodsInventorycount > 0) { - //鍒ゆ柇鍙戣揣鍗曟槸鍚﹀凡鍑哄簱 - if(deliveryDetail==null){ - if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){ - //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲� - finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); - //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬� - finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0); - //淇敼鍙戣揣琛ㄧ姸鎬� - finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1); - //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲� - finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); - //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� - finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1); - //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣 - if (orderNumberdsum == orderDetail.getWarehouseNum()) { - //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) { - //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� - finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2); - } - if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) { - //淇敼鍙戣揣琛ㄧ姸鎬� - finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2); - } - }else{ - TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); - return "false3"; - } - }else{ - TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); - return "false1"; - } - - - }else{ - TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); - return "false2"; - } + if(!Objects.equals(deliveryDetailLogic(orderDetaillist, savePoint, userName), "true")){ + return deliveryDetailLogic(orderDetaillist, savePoint, userName); } } @@ -691,69 +632,8 @@ //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class); if (!finishedOperateLogslist.isEmpty()){ - for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) { - Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId()); - Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId()); - Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(finishedOperateLog.getOperationOrderNumber()); - Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(finishedOperateLog.getOperationOrderNumber(),1); - - if(Objects.equals(finishedOperateLog.getOperateType(), "鍏ュ簱")){ - Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId()); - if(delivery==null){ - //淇敼璁板綍琛� - finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�"); - //淇敼搴撳瓨琛ㄥ叆搴撴暟閲� - finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog); - if(finishedOperateLog.getProcessId()!=null){ - //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺 - finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog); - } - - //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲� - finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity()); - //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱 - if (Objects.equals(ordersum, ordernumbersum)) { - //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� - finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1); - } - if (ordernumbersum-finishedOperateLog.getQuantity()==0) { - //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� - finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0); - } - log.setFunction("cancelFinishedGoodsInventoryStorage鍏ュ簱"); - }else{ - return "false1"; - } - - - - }else if(Objects.equals(finishedOperateLog.getOperateType(), "鍑哄簱")){ - //淇敼璁板綍琛� - finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�"); - //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲� - finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity()); - //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬� - finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1); - //淇敼鍙戣揣琛ㄧ姸鎬� - finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1); - //淇敼璁㈠崟鏄庣粏琛ㄥ簱鍐呮暟閲� - finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity())); - //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� - finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1); - //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣 - if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum){ - //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� - finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0); - - } - if (deliverysum==finishedOperateLog.getQuantity()+deliverydetailsum) { - //淇敼鍙戣揣琛ㄧ姸鎬� - finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0); - } - log.setFunction("cancelFinishedGoodsInventoryStorage鍑哄簱"); - - } - + if(!Objects.equals(cancelDeliveryDetailLogic(finishedOperateLogslist, savePoint, object.get("userName").toString(), log), "true")){ + return cancelDeliveryDetailLogic(finishedOperateLogslist,savePoint,object.get("userName").toString(),log); } } logService.saveLog(log); @@ -907,4 +787,139 @@ map.put("data", list); return map; } + + + public String deliveryDetailLogic(List<OrderDetail> list,Object savePoint,String userName) { + for (OrderDetail orderDetail : list) { + //鑾峰彇鍗曞彿 + String oddNumber= orderNumberSetting("鍑哄簱"); + OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber()); + //娣诲姞鍑哄叆搴撹褰� + finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber); + Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber()); + + + Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId()); + Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId()); + + Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId()); + Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0); + if(deliverydetailsum==null){ + deliverydetailsum=0; + } + + DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId()); + /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" + + orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" + + deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/ + //鍒ゆ柇鍙戣揣鍗曠殑搴撳瓨鏄惁瀛樺湪 + if (finishedGoodsInventorycount > 0) { + //鍒ゆ柇鍙戣揣鍗曟槸鍚﹀凡鍑哄簱 + if(deliveryDetail==null){ + if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){ + //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲� + finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); + //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬� + finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0); + //淇敼鍙戣揣琛ㄧ姸鎬� + finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1); + //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲� + finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity()); + //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� + finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1); + //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣 + if (orderNumberdsum == orderDetail.getWarehouseNum()) { + //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) { + //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� + finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2); + } + if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) { + //淇敼鍙戣揣琛ㄧ姸鎬� + finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2); + } + }else{ + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + return "false3"; + } + }else{ + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + return "false1"; + } + + + }else{ + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + return "false2"; + } + } + return "true"; + } + + public String cancelDeliveryDetailLogic(List<FinishedOperateLog> finishedOperateLogslist,Object savePoint,String userName,Log log) { + for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) { + Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId()); + Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId()); + Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(finishedOperateLog.getOperationOrderNumber()); + Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(finishedOperateLog.getOperationOrderNumber(),1); + + if(Objects.equals(finishedOperateLog.getOperateType(), "鍏ュ簱")){ + Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId()); + if(delivery==null){ + //淇敼璁板綍琛� + finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�"); + //淇敼搴撳瓨琛ㄥ叆搴撴暟閲� + finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog); + if(finishedOperateLog.getProcessId()!=null){ + //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺 + finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog); + } + + //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲� + finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity()); + //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱 + if (Objects.equals(ordersum, ordernumbersum)) { + //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� + finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1); + } + if (ordernumbersum-finishedOperateLog.getQuantity()==0) { + //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬� + finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0); + } + log.setFunction("cancelFinishedGoodsInventoryStorage鍏ュ簱"); + }else{ + return "false1"; + } + + + + }else if(Objects.equals(finishedOperateLog.getOperateType(), "鍑哄簱")){ + //淇敼璁板綍琛� + finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�"); + //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲� + finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity()); + //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬� + finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1); + //淇敼鍙戣揣琛ㄧ姸鎬� + finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1); + //淇敼璁㈠崟鏄庣粏琛ㄥ簱鍐呮暟閲� + finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity())); + //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� + finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1); + //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣 + if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum){ + //淇敼璁㈠崟琛ㄥ彂璐х姸鎬� + finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0); + + } + if (deliverysum==finishedOperateLog.getQuantity()+deliverydetailsum) { + //淇敼鍙戣揣琛ㄧ姸鎬� + finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0); + } + log.setFunction("cancelFinishedGoodsInventoryStorage鍑哄簱"); + + } + + } + return "true"; + } } -- Gitblit v1.8.0