liujiandao
2024-03-23 21c3a18da3d6cc53c7695d795a41dd6bee59f243
采购单全部合格入库
3个文件已修改
91 ■■■■■ 已修改文件
api/v1/purchase/purchase.go 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
router/purchase/purchase.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/purchase/purchase.go 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/v1/purchase/purchase.go
@@ -526,7 +526,7 @@
        response.FailWithMessage("保存失败", c)
        return
    }
    err = server.SavePurchaseQualityInspection(list)
    _, err = server.SavePurchaseQualityInspection(list)
    if err != nil {
        global.GVA_LOG.Error("保存失败!", zap.Error(err))
        response.FailWithMessage("保存失败", c)
@@ -641,3 +641,78 @@
    }
    response.OkWithMessage("质检成功", c)
}
// AllProductInWarehouse
// @Tags      Purchase
// @Summary   全部合格入库
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param     data  body     purchaserequest.SaveQualityInspectionInfo   true  "参数"
// @Success   200   {object}  response.Response{data=[]purchase.PurchaseProductConfirm}  "获取确认信息"
// @Router    /purchase/allProductInWarehouse [post]
func (e *PurchaseApi) AllProductInWarehouse(c *gin.Context) {
    var params []*purchaserequest.PurchaseProductConfirmInfo
    err := c.ShouldBindJSON(&params)
    if err != nil {
        response.FailWithMessage(err.Error(), c)
        return
    }
    list := make([]*purchase.PurchaseProductConfirm, 0, len(params))
    if err := utils.AssignTo(params, &list); err != nil {
        response.FailWithMessage(err.Error(), c)
        return
    }
    server := service.NewPurchaseService()
    err = server.SavePurchaseProductConfirm(list)
    if err != nil {
        global.GVA_LOG.Error("保存失败!", zap.Error(err))
        response.FailWithMessage("保存失败", c)
        return
    }
    inspectionList, err := server.SavePurchaseQualityInspection(list)
    if err != nil {
        global.GVA_LOG.Error("保存失败!", zap.Error(err))
        response.FailWithMessage("保存失败", c)
        return
    }
    purchaseData, err := server.GetPurchaseByNumber(list[0].PurchaseNumber)
    if err != nil {
        global.GVA_LOG.Error("获取失败!", zap.Error(err))
        response.FailWithMessage("获取失败", c)
        return
    }
    product := make([]*purchase_wms.PurchaseProduct, 0)
    ids := make([]int, 0)
    for _, inspection := range inspectionList {
        var p purchase_wms.PurchaseProduct
        p.Id = inspection.ProductId
        p.Amount = inspection.Amount.IntPart()
        product = append(product, &p)
        ids = append(ids, int(inspection.ID))
    }
    client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn)
    _, err = client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{
        Number:        purchaseData.Number,
        SupplierName:  purchaseData.Supplier.Name,
        SupplierId:    int64(purchaseData.SupplierId),
        Product:       product,
        Source:        "SRM_PURCHASE",
        WarehouseName: purchaseData.Warehouse,
    })
    if err != nil {
        global.GVA_LOG.Error("grpc调用失败!", zap.Error(err))
        response.FailWithMessage("grpc调用失败", c)
        return
    }
    err = server.UpdatePurchaseQualityInspection(ids, purchase.InWarehouse)
    if err != nil {
        global.GVA_LOG.Error("质检失败!", zap.Error(err))
        response.FailWithMessage("质检失败", c)
        return
    }
    response.OkWithMessage("质检成功", c)
}
router/purchase/purchase.go
@@ -24,6 +24,7 @@
        purchaseRouter.POST("savePurchaseProductConfirm", PurchaseApi.SavePurchaseProductConfirm)               // 确认收货
        purchaseRouter.POST("getPurchaseQualityInspectionInfo", PurchaseApi.GetPurchaseQualityInspectionInfo)   // 获取采购质检信息信息
        purchaseRouter.POST("savePurchaseQualityInspectionInfo", PurchaseApi.SavePurchaseQualityInspectionInfo) // 保存采购质检信息信息
        purchaseRouter.POST("allProductInWarehouse", PurchaseApi.AllProductInWarehouse)                         // 全部合格入库
    }
    qualityInspectRouter := Router.Group("purchase")
service/purchase/purchase.go
@@ -120,6 +120,11 @@
    return
}
func (slf *PurchaseService) GetPurchaseByNumber(number string) (purchase purchase.Purchase, err error) {
    err = global.GVA_DB.Where("number = ?", number).Preload("Supplier").First(&purchase).Error
    return
}
//@function: GetPurchaseList
//@description: 分页获取采购单列表
//@param: info request.PageInfo
@@ -354,9 +359,9 @@
    return list, err
}
func (slf *PurchaseService) SavePurchaseQualityInspection(list []*purchase.PurchaseProductConfirm) (err error) {
func (slf *PurchaseService) SavePurchaseQualityInspection(list []*purchase.PurchaseProductConfirm) ([]*purchase.PurchaseQualityInspection, error) {
    if len(list) == 0 {
        return errors.New("产品列表不能为空")
        return nil, errors.New("产品列表不能为空")
    }
    purchaseNumber := list[0].PurchaseNumber
    qualityList := make([]*purchase.PurchaseQualityInspection, 0)
@@ -374,8 +379,8 @@
        pqi.Type = confirm.Type
        qualityList = append(qualityList, &pqi)
    }
    err = global.GVA_DB.Model(purchase.PurchaseQualityInspection{}).Create(qualityList).Error
    return err
    err := global.GVA_DB.Model(purchase.PurchaseQualityInspection{}).Create(qualityList).Error
    return qualityList, err
}
func (slf *PurchaseService) GetPurchaseQualityInspection(params purchaserequest.GetQualityInspectionInfo) ([]*purchase.PurchaseQualityInspection, error) {