From 50847f807065131cd0bd3b2c7fab8547e0b3abb2 Mon Sep 17 00:00:00 2001 From: chenlin Date: Mon, 16 Jun 2025 10:42:36 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E6=94=B9=E5=95=86=E5=93=81?= =?UTF-8?q?=E8=B5=84=E6=96=99=E3=80=81=E9=97=A8=E5=BA=97=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E5=90=8E=E5=90=8C=E6=AD=A5=E4=BF=AE=E6=94=B9=E9=87=87=E8=B4=AD?= =?UTF-8?q?=E5=92=8C=E9=9B=B6=E5=94=AE=E6=95=B0=E6=8D=AE=E5=8F=8A=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/erpordermanage/erp_order.go | 8 ++-- app/admin/models/erp_order.go | 22 ++++++++-- app/admin/models/file.go | 48 ++++++++++++++++++++++ app/admin/models/purchase.go | 39 ++++++++++++++---- app/admin/models/repair.go | 4 ++ app/admin/models/store.go | 12 ++++++ 6 files changed, 118 insertions(+), 15 deletions(-) diff --git a/app/admin/apis/erpordermanage/erp_order.go b/app/admin/apis/erpordermanage/erp_order.go index d270390..6f7304b 100644 --- a/app/admin/apis/erpordermanage/erp_order.go +++ b/app/admin/apis/erpordermanage/erp_order.go @@ -582,10 +582,10 @@ func ErpOrderShowAllData(c *gin.Context) { return } - if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") { - app.Error(c, http.StatusBadRequest, errors.New("您没有该接口权限"), "您没有该接口权限") - return - } + //if !(tools.GetRoleName(c) == "admin" || tools.GetRoleName(c) == "系统管理员") { + // app.Error(c, http.StatusBadRequest, errors.New("您没有该接口权限"), "您没有该接口权限") + // return + //} err = model.SetErpOrderShowConfig(req) if err != nil { diff --git a/app/admin/models/erp_order.go b/app/admin/models/erp_order.go index 2623d08..2798a05 100644 --- a/app/admin/models/erp_order.go +++ b/app/admin/models/erp_order.go @@ -1798,11 +1798,13 @@ func (m *ErpOrder) SetCommodity() { categoryInfo, _ := GetErpCategory(commodities[i].ErpCategoryId) if categoryInfo != nil { commodities[i].CategoryNumber = categoryInfo.Number + commodities[i].ErpCategoryName = categoryInfo.Name } commodityInfo, _ := GetCommodity(commodities[i].ErpCommodityId) - if categoryInfo != nil { + if commodityInfo != nil { commodities[i].CommoditySerialNumber = commodityInfo.SerialNumber + //commodities[i].ErpCommodityName = commodityInfo.Name } } m.Commodities = commodities @@ -2009,8 +2011,15 @@ func (m *ErpOrder) SetOrderSalesmanAI(erpCommodityMap map[uint32]ErpCommodity, s // 添加订单的销售员信息 func erpOrderListSetSalesman(list []ErpOrder) { + storeMap, _ := GetAllStoreData() for i, _ := range list { _ = list[i].SetOrderSalesman() + if len(storeMap) != 0 { + temp := storeMap[list[i].StoreId].Name + if temp != "" { + list[i].StoreName = temp + } + } } } @@ -2022,6 +2031,10 @@ func (m *ErpOrder) SetOrderSalesman() error { if err != nil { logger.Error("GetCommodity err:", logger.Field("err", err)) } + + //// 商品名称可能修改,历史订单没有主动更新,此处查询 + //m.Commodities[i].ErpCommodityName = erpCommodity.Name + salesProfit += item.SalesProfit * erpCommodity.Brokerage1 * 0.01 staffProfit += item.StaffProfit * erpCommodity.Brokerage2 * 0.01 totalStaffProfit += item.StaffProfit @@ -3312,8 +3325,11 @@ func QueryRetailMargin(req *ErpOrderRetailMarginReq, c *gin.Context) (*ErpOrderR } qs := orm.Eloquent.Debug().Table("erp_order_commodity"). - Select("erp_order_commodity.*, erp_order.store_id, erp_order.store_name, erp_order.retail_type"). - Joins("JOIN erp_order ON erp_order_commodity.erp_order_id = erp_order.id") + Select("erp_order_commodity.*, erp_order.store_id, store.name as store_name, erp_order.retail_type," + + "erp_commodity.name as erp_commodity_name"). + Joins("JOIN erp_order ON erp_order_commodity.erp_order_id = erp_order.id"). + Joins("LEFT JOIN erp_commodity ON erp_order_commodity.erp_commodity_id = erp_commodity.id"). + Joins("LEFT JOIN store ON erp_order.store_id = store.id") if len(req.StoreId) != 0 { qs.Where("erp_order.store_id in ?", req.StoreId) diff --git a/app/admin/models/file.go b/app/admin/models/file.go index b7ec09a..e5841d1 100644 --- a/app/admin/models/file.go +++ b/app/admin/models/file.go @@ -1337,6 +1337,30 @@ func UpdateErpStockAmountInfo(begin *gorm.DB, req *CommodityEditRequest, barCode if err != nil { return err } + + // 更新采购商品表(除"已完成"、"已终止"都需要更新) + var commodityIDs []uint32 + err = begin.Table("erp_purchase_commodity AS epc"). + Joins("JOIN erp_purchase_order AS epo ON epc.erp_purchase_order_id = epo.id"). + Where("epc.erp_commodity_id = ? AND epo.state NOT IN ?", req.Id, + []uint{ErpPurchaseOrderFinished, ErpPurchaseOrderEnd}). + Pluck("epc.id", &commodityIDs).Error + if err != nil { + return err + } + + if len(commodityIDs) > 0 { + err = begin.Model(&ErpPurchaseCommodity{}). + Where("id IN ?", commodityIDs). + Updates(map[string]interface{}{ + "retail_price": req.RetailPrice, + "erp_commodity_name": req.Name, + "commodity_serial_number": serial_number, + }).Error + if err != nil { + return err + } + } } else { // 更新库存表 err := begin.Table("erp_stock").Where("erp_commodity_id=?", req.Id). @@ -1361,7 +1385,31 @@ func UpdateErpStockAmountInfo(begin *gorm.DB, req *CommodityEditRequest, barCode if err != nil { return err } + + // 更新采购商品表(除"已完成"、"已终止"都需要更新) + var commodityIDs []uint32 + err = begin.Table("erp_purchase_commodity AS epc"). + Joins("JOIN erp_purchase_order AS epo ON epc.erp_purchase_order_id = epo.id"). + Where("epc.erp_commodity_id = ? AND epo.state NOT IN ?", req.Id, + []uint{ErpPurchaseOrderFinished, ErpPurchaseOrderEnd}). + Pluck("epc.id", &commodityIDs).Error + if err != nil { + return err + } + + if len(commodityIDs) > 0 { + err = begin.Model(&ErpPurchaseCommodity{}). + Where("id IN ?", commodityIDs). + Updates(map[string]interface{}{ + "retail_price": req.RetailPrice, + "erp_commodity_name": req.Name, + }).Error + if err != nil { + return err + } + } } + return nil } diff --git a/app/admin/models/purchase.go b/app/admin/models/purchase.go index 86f200c..209ac6c 100644 --- a/app/admin/models/purchase.go +++ b/app/admin/models/purchase.go @@ -3721,10 +3721,20 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq, c *gin.Context return resp, err } + storeMap, _ := GetAllStoreData() + var reportByOrderDataList []ReportByOrderData var nTotalAmount float64 var nTotalCount int32 - for _, v := range orders { + for i, v := range orders { + // 同步门店名称,可能修改 + if len(storeMap) != 0 { + temp := storeMap[orders[i].StoreId].Name + if temp != "" { + orders[i].StoreName = temp + } + } + var reportByOrderData ReportByOrderData var nAmount float64 var nCount int32 @@ -3733,7 +3743,7 @@ func getReportByOrderFromCommon(req *ErpPurchaseReportByOrderReq, c *gin.Context reportByOrderData.SerialNumber = v.SerialNumber reportByOrderData.PurchaseType = v.PurchaseType reportByOrderData.StoreId = v.StoreId - reportByOrderData.StoreName = v.StoreName + reportByOrderData.StoreName = orders[i].StoreName reportByOrderData.ErpSupplierId = v.ErpSupplierId reportByOrderData.ErpSupplierName = v.ErpSupplierName reportByOrderData.HandlerId = v.HandlerId @@ -4684,6 +4694,8 @@ func getReportByCommodityFromCommon(req *ErpPurchaseReportByCommodityReq, c *gin tempDataMap[data.ErpCommodityId] = append(tempDataMap[data.ErpCommodityId], data) } + storeMap, _ := GetAllStoreData() + var dataList []ReportByCommodityData var totalData PurchaseData // tempDataList,按照商品id进行归类 @@ -4748,6 +4760,13 @@ func getReportByCommodityFromCommon(req *ErpPurchaseReportByCommodityReq, c *gin }, } + if len(storeMap) != 0 { + temp := storeMap[v.StoreId].Name + if temp != "" { + purchaseOrderData.StoreName = temp + } + } + //if v.PurchaseType == ErpRejectOrder { // 退货单 // reportData.PlanCount = -reportData.PlanCount // reportData.PlanAmount = -reportData.PlanAmount @@ -5442,13 +5461,15 @@ func GetReportBySupplier(req *ErpPurchaseReportBySupplierReq, c *gin.Context) ( query := orm.Eloquent.Model(&ErpPurchaseInventory{}). Select("erp_purchase_inventory.erp_purchase_order_id, " + "erp_purchase_inventory.purchase_type, erp_purchase_inventory.serial_number, " + - "erp_purchase_order.store_id, erp_purchase_order.store_name, erp_purchase_order.erp_supplier_id, " + + "erp_purchase_order.store_id, store.name as store_name, erp_purchase_order.erp_supplier_id, " + "erp_purchase_order.erp_supplier_name, " + - "erp_purchase_inventory.erp_commodity_id, erp_purchase_inventory.erp_commodity_name, " + + "erp_purchase_inventory.erp_commodity_id, erp_commodity.name as erp_commodity_name, " + "erp_purchase_inventory.erp_category_id, erp_purchase_inventory.erp_category_name, " + "SUM(erp_purchase_inventory.count) AS count, " + "SUM(erp_purchase_inventory.amount) AS amount"). Joins("JOIN erp_purchase_order ON erp_purchase_order.id = erp_purchase_inventory.erp_purchase_order_id"). + Joins("LEFT JOIN erp_commodity ON erp_purchase_inventory.erp_commodity_id = erp_commodity.id"). + Joins("LEFT JOIN store ON erp_purchase_order.store_id = store.id"). Group("erp_purchase_inventory.erp_purchase_order_id, erp_purchase_inventory.erp_commodity_id, " + "erp_purchase_inventory.erp_commodity_name, erp_purchase_inventory.erp_category_id, " + "erp_purchase_inventory.serial_number") @@ -5456,13 +5477,15 @@ func GetReportBySupplier(req *ErpPurchaseReportBySupplierReq, c *gin.Context) ( countQuery := orm.Eloquent.Model(&ErpPurchaseInventory{}). Select("erp_purchase_inventory.erp_purchase_order_id, " + "erp_purchase_inventory.purchase_type, erp_purchase_inventory.serial_number, " + - "erp_purchase_order.store_id, erp_purchase_order.store_name, erp_purchase_order.erp_supplier_id, " + + "erp_purchase_order.store_id, store.name as store_name, erp_purchase_order.erp_supplier_id, " + "erp_purchase_order.erp_supplier_name, " + - "erp_purchase_inventory.erp_commodity_id, erp_purchase_inventory.erp_commodity_name, " + + "erp_purchase_inventory.erp_commodity_id, erp_commodity.name as erp_commodity_name, " + "erp_purchase_inventory.erp_category_id, erp_purchase_inventory.erp_category_name, " + "SUM(erp_purchase_inventory.count) AS count, " + "SUM(erp_purchase_inventory.amount) AS amount"). Joins("JOIN erp_purchase_order ON erp_purchase_order.id = erp_purchase_inventory.erp_purchase_order_id"). + Joins("LEFT JOIN erp_commodity ON erp_purchase_inventory.erp_commodity_id = erp_commodity.id"). + Joins("LEFT JOIN store ON erp_purchase_order.store_id = store.id"). Group("erp_purchase_inventory.erp_purchase_order_id, erp_purchase_inventory.erp_commodity_id, " + "erp_purchase_inventory.erp_commodity_name, erp_purchase_inventory.erp_category_id, " + "erp_purchase_inventory.serial_number") @@ -5548,7 +5571,7 @@ func GetReportBySupplier(req *ErpPurchaseReportBySupplierReq, c *gin.Context) ( data := PurchaseReportData{ ErpPurchaseOrderId: po.ID, StoreId: po.StoreId, - StoreName: po.StoreName, + StoreName: respItem.StoreName, PurchaseType: respItem.PurchaseType, ErpSupplierId: po.ErpSupplierId, ErpSupplierName: po.ErpSupplierName, @@ -5613,7 +5636,7 @@ func GetReportBySupplier(req *ErpPurchaseReportBySupplierReq, c *gin.Context) ( } resp.List[i].StoreId = purchaseOrderInfo.StoreId - resp.List[i].StoreName = purchaseOrderInfo.StoreName + //resp.List[i].StoreName = purchaseOrderInfo.StoreName resp.List[i].ErpSupplierId = purchaseOrderInfo.ErpSupplierId resp.List[i].ErpSupplierName = purchaseOrderInfo.ErpSupplierName diff --git a/app/admin/models/repair.go b/app/admin/models/repair.go index d70e302..164a6de 100644 --- a/app/admin/models/repair.go +++ b/app/admin/models/repair.go @@ -480,6 +480,10 @@ func (m *ErpRepairOrderListReq) List(c *gin.Context) (*ErpRepairOrderListResp, e if v.CompletedTime != nil && v.CompletedTime.IsZero() { orders[i].CompletedTime = nil } + + // 添加维修单位名称 + supplier, _ := GetSupplierById(v.RepairUnitId) + orders[i].RepairUnitName = supplier.Name } resp.List = orders diff --git a/app/admin/models/store.go b/app/admin/models/store.go index 30e5b24..873685b 100644 --- a/app/admin/models/store.go +++ b/app/admin/models/store.go @@ -220,6 +220,18 @@ func (m *Store) Modify() error { logger.Error("Update erp_stock_commodity err:", logger.Field("err", err)) return err } + + // 更新采购订单表 + err = begin.Table("erp_purchase_order").Where("store_id = ? and state NOT IN ?", m.ID, + []uint{ErpPurchaseOrderFinished, ErpPurchaseOrderEnd}). + Updates(map[string]interface{}{ + "store_name": m.Name, + }).Error + if err != nil { + begin.Rollback() + logger.Error("Update erp_stock_commodity err:", logger.Field("err", err)) + return err + } } err = begin.Commit().Error