fix
liujiandao
2024-05-06 5f4ff02960658a1ffca65a8d1eb5425faca6ecee
fix
2个文件已修改
56 ■■■■■ 已修改文件
controllers/location_product_amount.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/operation.go 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/location_product_amount.go
@@ -57,7 +57,7 @@
    //wms_operation_details.amount as adjust_amount,wms_operation.id as operation_id,wms_operation.status
    search.Orm = search.Orm.
        Table("wms_location_product_amount").
        Select(`wms_location_product_amount.id as location_product_amount_id,wms_location.id as location_id,wms_location.name as location_name,
        Select(`wms_location_product_amount.id as location_product_amount_id,wms_location.id as location_id,wms_location.joint_name as location_name,
        material.id as product_id,material.name as product_name,wms_location_product_amount.amount,material.unit,
        wms_location_product_amount.create_date,material.weight`).
        InnerJoins("inner join material on material.id=wms_location_product_amount.product_id").
controllers/operation.go
@@ -2,7 +2,6 @@
import (
    "context"
    "encoding/json"
    "errors"
    "fmt"
    "github.com/gin-gonic/gin"
@@ -10,7 +9,6 @@
    "github.com/shopspring/decimal"
    "github.com/xuri/excelize/v2"
    "gorm.io/gorm"
    "os"
    "sort"
    "strconv"
    "strings"
@@ -20,7 +18,6 @@
    "wms/extend/code"
    "wms/extend/util"
    "wms/models"
    "wms/opa"
    "wms/pkg/logx"
    "wms/pkg/mysqlx"
    "wms/pkg/structx"
@@ -542,23 +539,23 @@
        }
        if operation.BaseOperationType == constvar.BaseOperationTypeOutgoing {
        if operation.BaseOperationType == constvar.BaseOperationTypeOutgoing || operation.BaseOperationType == constvar.BaseOperationTypeDisuse {
            for k, v := range listDetails {
                //todo 演示测试数据
                data, err := os.ReadFile("conf/input.json")
                if err != nil {
                    return errors.New("文件读取失败")
                }
                m := make(map[string]interface{})
                err = json.Unmarshal(data, &m)
                if err != nil {
                    return errors.New("格式转换失败")
                }
                if opa.OpaCheck(c, m, "operation") {
                    if v.Product.Amount.LessThan(v.Amount) {
                        return errors.New(fmt.Sprintf("产品:%v,库存:%v,出库:%v,数量不够,无法完成出库操作", v.Product.Name, v.Product.Amount.String(), v.Amount.String()))
                    }
                }
                //data, err := os.ReadFile("conf/input.json")
                //if err != nil {
                //    return errors.New("文件读取失败")
                //}
                //m := make(map[string]interface{})
                //err = json.Unmarshal(data, &m)
                //if err != nil {
                //    return errors.New("格式转换失败")
                //}
                //if opa.OpaCheck(c, m, "operation") {
                //    if v.Product.Amount.LessThan(v.Amount) {
                //        return errors.New(fmt.Sprintf("产品:%v,库存:%v,出库:%v,数量不够,无法完成出库操作", v.Product.Name, v.Product.Amount.String(), v.Amount.String()))
                //    }
                //}
                //todo ================end===============================
                if v.Product.Amount.LessThan(v.Amount) {
                    return errors.New(fmt.Sprintf("产品:%v,库存:%v,出库:%v,数量不够,无法完成出库操作", v.Product.Name, v.Product.Amount.String(), v.Amount.String()))
@@ -614,6 +611,27 @@
                }
            }
        }
        if operation.BaseOperationType == constvar.BaseOperationTypeAdjust {
            for _, v := range listDetails {
                if locAmount, aok := mapLocAmount[strconv.Itoa(v.ToLocationID)+v.ProductId]; aok {
                    locAmount.Amount = v.Amount
                    if res := models.NewLocationProductAmountSearch().Orm.Where("id=?", locAmount.ID).Save(locAmount); res.Error != nil {
                        return res.Error
                    }
                } else {
                    if err := models.NewLocationProductAmountSearch().Create(&models.LocationProductAmount{
                        LocationId:        v.ToLocationID,
                        ProductCategoryID: v.Product.CategoryId,
                        ProductId:         v.ProductId,
                        Amount:            v.Amount,
                        CreateDate:        time.Now().Format("2006-01-02 15:04:05"),
                    }); err != nil {
                        return err
                    }
                }
            }
        }
        return nil
    })
    if err != nil {