廖井涛
2024-09-25 82fb2e3d457212ac2f3516d63ecc38a4d11c2f64
成品入库,成品出库后台数据校验
5个文件已修改
145 ■■■■■ 已修改文件
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/CreateProductStock.vue
@@ -280,9 +280,13 @@
            })
            request.post("/FinishedGoodsInventory/addSelectWarehousing",flowData.value).then((res) => {
              if(res.code==200 && res.data===true){
              if(res.code==200 && res.data==="true"){
                ElMessage.success(t('productStock.receivedSuccessfully'))
                router.push({path:'/main/productStock/CreateProductStock',query:{random:Math.random()}})
              }else if(res.data==="false1"){
                ElMessage.warning("库存数量不对请刷新界面")
              }else if(res.data==="false2"){
                ElMessage.warning("数据不存在")
              }else{
                ElMessage.warning(t('productStock.entryFailure'))
              }
north-glass-erp/northglass-erp/src/views/mm/mainProductStock/FinishedProductOut.vue
@@ -286,10 +286,14 @@
              orderDetail: selectRecords
            })
            request.post("/FinishedGoodsInventory/addDeliveryDetail", orderDetailData.value).then((res) => {
              if (res.code == 200 && res.data===true) {
              if (res.code == 200 && res.data==="true") {
                ElMessage.success(t('productStock.deliverySuccessful'))
                router.push({path: '/main/productStock/FinishedProductOut', query: {random: Math.random()}})
              } else {
              }else if (res.data==="false1") {
                ElMessage.warning("发货单已出库请刷新界面")
              }else if (res.data==="false2") {
                ElMessage.warning("发货单库存数不存在")
              }else {
                ElMessage.warning(t('productStock.deliveryFailed'))
              }
            }).catch((err)=>{
north-glass-erp/src/main/java/com/example/erp/mapper/mm/FinishedGoodsInventoryMapper.java
@@ -3,6 +3,7 @@
import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.DeliveryDetail;
import com.example.erp.entity.sd.Order;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.sd.Product;
@@ -128,6 +129,11 @@
    Boolean updateOrderInventory(@Param("orderDetail") OrderDetail orderDetail);
    FlowCard findFlowCard(FlowCard flowCard);
    DeliveryDetail findDeliverydetail(@Param("orderId") String orderId,
                                      @Param("orderNumber") Integer orderNumber,@Param("deliveryId") String deliveryId);
}
north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -8,6 +8,7 @@
import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.DeliveryDetail;
import com.example.erp.entity.sd.Order;
import com.example.erp.entity.sd.OrderDetail;
import com.example.erp.entity.userInfo.Log;
@@ -66,8 +67,8 @@
        return map;
    }
    public Boolean addSelectWarehousing(Map<String,Object> object) {
        boolean saveState = true;
    public String addSelectWarehousing(Map<String,Object> object) {
        String saveState = "true";
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        try {
            //定义前端传输的数据
@@ -110,42 +111,51 @@
                    Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber());
                    Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(flowCard.getOrder().getOrderId());
                    Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(flowCard.getOrder().getOrderId());
                    /*System.out.println("订单总数:" + ordersum + "已入库数量:" + ordernumbersum + "准备入库数量" + flowCard.getInventoryQuantity());*/
                    if (finishedGoodsInventorycount > 0) {
                        //修改库存表入库数量
                        finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark);
                        //修改流程卡表入库数量
                        finishedGoodsInventoryMapper.updateflowcard(flowCard);
                        //修改订单表入库状态
                        finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
                        //修改订单明细表入库数量
                        finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
                        //判断订单是否全部入库
                        if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
                            //修改订单表入库状态
                            finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
                        }
                    } else {
                        if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) {
                    FlowCard flowCard1=finishedGoodsInventoryMapper.findFlowCard(flowCard);
                    //判断库存数是否大于未入库数
                    if(flowCard1.getReceivedQuantity()+flowCard.getInventoryQuantity()<=flowCard1.getInventoryQuantity()){
                        /*System.out.println("订单总数:" + ordersum + "已入库数量:" + ordernumbersum + "准备入库数量" + flowCard.getInventoryQuantity());*/
                        if (finishedGoodsInventorycount > 0) {
                            //修改库存表入库数量
                            finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark);
                            //修改流程卡表入库数量
                            finishedGoodsInventoryMapper.updateflowcard(flowCard);
                            //修改订单表入库状态
                            finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
                            //修改订单明细表入库数量
                            finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
                            //判断订单是否全部入库
                            if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
                                //修改订单表入库状态
                                finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
                            }else{
                                //修改订单表入库状态
                                finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
                            }
                        } else {
                            if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) {
                                //修改流程卡表入库数量
                                finishedGoodsInventoryMapper.updateflowcard(flowCard);
                                //修改订单明细表入库数量
                                finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
                                if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
                                    //修改订单表入库状态
                                    finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
                                }else{
                                    //修改订单表入库状态
                                    finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
                                }
                            }
                        }
                    }else{
                        TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                        return "false1";
                    }
                }
            }else{
                return false;
                TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                return "false2";
            }
        } catch (Exception e) {
@@ -155,7 +165,7 @@
            sysError.setError(e+Arrays.toString(e.getStackTrace()));
            sysError.setFunc("addSelectWarehousing");
            sysErrorService.insert(sysError);
            saveState = false;
            saveState = "false";
        }
@@ -173,8 +183,8 @@
    }
    public Boolean addDeliveryDetail(Map<String,Object> object) {
        boolean saveState = true;
    public String addDeliveryDetail(Map<String,Object> object) {
        String saveState = "true";
        //设置回滚点
        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
        try {
@@ -212,36 +222,45 @@
                        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(orderDetail.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()) {
                        //判断发货单是否已出库
                        if(deliveryDetail==null){
                            if(orderDetail.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(),2);
                                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 "false1";
                        }
                    }else{
                        TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
                        saveState = false;
                        return "false2";
                    }
                }
            }
@@ -253,7 +272,7 @@
            sysError.setError(e+Arrays.toString(e.getStackTrace()));
            sysError.setFunc("addDeliveryDetail");
            sysErrorService.insert(sysError);
            saveState = false;
            saveState = "false";
        }
        return saveState;
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -885,6 +885,16 @@
        where order_number=#{orderDetail.orderNumber}  and order_id=#{orderDetail.orderId}
    </update>
    <select id="findFlowCard">
        select * from pp.flow_card
        where order_number=#{orderNumber} and process_id=#{processId} and order_id=#{order.orderId} group by process_id
    </select>
    <select id="findDeliverydetail">
        select * from sd.delivery_detail
        where order_number=#{orderNumber}  and order_id=#{orderId} and delivery_id=#{deliveryId} and delivery_detail_state=0
    </select>