From ee90ce66302890edadc3e8bc479ff59f0a28a769 Mon Sep 17 00:00:00 2001 From: chenlin Date: Mon, 27 May 2024 19:01:04 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E7=BC=BA=E9=99=B7=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=EF=BC=9A=20=EF=BC=881?= =?UTF-8?q?=EF=BC=89=E8=A7=A3=E5=86=B3=E6=9D=83=E9=99=90=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E9=97=A8=E5=BA=97=E5=8F=AA=E6=9C=891?= =?UTF-8?q?=E5=AE=B6=E6=97=B6sql=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B=20=EF=BC=882=EF=BC=89=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E9=9B=B6=E5=94=AE=E6=98=8E=E7=BB=86=E7=AD=9B=E9=80=89=E9=80=80?= =?UTF-8?q?=E8=B4=A7=E5=8D=95=E9=87=91=E9=A2=9D=E4=B8=BA=E6=AD=A3=EF=BC=8C?= =?UTF-8?q?=E4=B8=94=E6=B1=87=E6=80=BB=E6=95=B0=E6=8D=AE=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/commodity.go | 24 ++++++-- app/admin/models/erp_order.go | 96 +++++++++++++++++++++++++------- app/admin/models/purchase.go | 6 +- app/admin/models/recycle_card.go | 6 +- 4 files changed, 106 insertions(+), 26 deletions(-) diff --git a/app/admin/models/commodity.go b/app/admin/models/commodity.go index 386a008..05b2d3e 100644 --- a/app/admin/models/commodity.go +++ b/app/admin/models/commodity.go @@ -1695,8 +1695,13 @@ func (m *ErpStockListReq) stockNoEmptyList(c *gin.Context) (*ErpStockListResp, e } } else { if len(storeList) > 0 { - qs = qs.Where("store_id IN (?)", storeList) - es = es.Where("store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("store_id = ?", storeList[0]) + es = es.Where("store_id = ?", storeList[0]) + } else { + qs = qs.Where("store_id IN (?)", storeList) + es = es.Where("store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } @@ -1888,8 +1893,13 @@ func (m *ErpStockListReq) allCommodityList(c *gin.Context) (*ErpStockListResp, e } } else { if len(storeList) > 0 { - qs = qs.Where("store_id IN (?)", storeList) - es = es.Where("store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("store_id = ?", storeList[0]) + es = es.Where("store_id = ?", storeList[0]) + } else { + qs = qs.Where("store_id IN (?)", storeList) + es = es.Where("store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } @@ -2069,7 +2079,11 @@ func (m *ErpStockCommodityListReq) GetDetailList(c *gin.Context) (*ErpStockCommo } } else { if len(storeList) > 0 { - qs = qs.Where("store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("store_id = ?", storeList[0]) + } else { + qs = qs.Where("store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } diff --git a/app/admin/models/erp_order.go b/app/admin/models/erp_order.go index 802d150..2e93c24 100644 --- a/app/admin/models/erp_order.go +++ b/app/admin/models/erp_order.go @@ -509,7 +509,11 @@ func (m *ErpOrderListReq) List(c *gin.Context) (*ErpOrderListResp, error) { // 返回sysUser未过期的门店id列表 storeList := GetValidStoreIDs(sysUser.StoreData) if len(storeList) > 0 { - qs = qs.Where("store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("store_id = ?", storeList[0]) + } else { + qs = qs.Where("store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } @@ -730,7 +734,11 @@ func QueryListByCommodityName(req *ErpOrderListReq, showConfig string, c *gin.Co // 返回sysUser未过期的门店id列表 storeList := GetValidStoreIDs(sysUser.StoreData) if len(storeList) > 0 { - qs = qs.Where("erp_order.store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("erp_order.store_id = ?", storeList[0]) + } else { + qs = qs.Where("erp_order.store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } @@ -1899,7 +1907,11 @@ func QueryStoreManageData(req *ErpOrderStoreManageDataReq, c *gin.Context) (*Erp // 返回sysUser未过期的门店id列表 storeList := GetValidStoreIDs(sysUser.StoreData) if len(storeList) > 0 { - qs = qs.Where("store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("store_id = ?", storeList[0]) + } else { + qs = qs.Where("store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } @@ -2231,7 +2243,7 @@ func QueryRetailMargin(req *ErpOrderRetailMarginReq, c *gin.Context) (*ErpOrderR if req.StartTime != "" { startTime, err := time.Parse(QueryTimeFormat, req.StartTime) if err == nil { - qs = qs.Where("erp_order.created_at>?", startTime) + qs = qs.Where("erp_order.audit_time>?", startTime) } else { logger.Errorf("QueryRetailMargin time start parse err:", err.Error()) } @@ -2239,7 +2251,7 @@ func QueryRetailMargin(req *ErpOrderRetailMarginReq, c *gin.Context) (*ErpOrderR if req.EndTime != "" { endTime, err := time.Parse(QueryTimeFormat, req.EndTime) if err == nil { - qs = qs.Where("erp_order.created_at 0 { - qs = qs.Where("erp_order.store_id IN (?)", storeList) - es = es.Where("erp_order.store_id IN (?)", storeList) - orderSumQs = orderSumQs.Where("erp_order.store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("erp_order.store_id = ?", storeList[0]) + es = es.Where("erp_order.store_id = ?", storeList[0]) + orderSumQs = orderSumQs.Where("eo.store_id = ?", storeList[0]) + rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.store_id = ?", storeList[0]) + } else { + qs = qs.Where("erp_order.store_id IN (?)", storeList) + es = es.Where("erp_order.store_id IN (?)", storeList) + orderSumQs = orderSumQs.Where("eo.store_id IN (?)", storeList) + rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } @@ -2806,6 +2829,7 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp qs = qs.Where("JSON_CONTAINS(erp_order.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman)) es = es.Where("JSON_CONTAINS(erp_order.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman)) orderSumQs = orderSumQs.Where("JSON_CONTAINS(eo.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman)) + rejectedOrderSumQs = rejectedOrderSumQs.Where("JSON_CONTAINS(eo.salesman_list, ?)", fmt.Sprintf(`{"uid":%d}`, req.Salesman)) } if req.StartTime != "" { // 审核开始时间 parse, err := time.Parse(QueryTimeFormat, req.StartTime) @@ -2815,6 +2839,7 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp qs = qs.Where("erp_order.audit_time > ?", parse) es = es.Where("erp_order.audit_time > ?", parse) orderSumQs = orderSumQs.Where("eo.audit_time > ?", parse) + rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.audit_time > ?", parse) } if req.EndTime != "" { // 审核结束时间 parse, err := time.Parse(QueryTimeFormat, req.EndTime) @@ -2825,11 +2850,13 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp qs = qs.Where("erp_order.audit_time < ?", parse) es = es.Where("erp_order.audit_time < ?", parse) orderSumQs = orderSumQs.Where("eo.audit_time < ?", parse) + rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.audit_time < ?", parse) } if showConfig.ShowAll == "OFF" { qs = qs.Where("erp_order.is_print = ? or erp_order.retail_type = ?", HavePrinted, RetailTypeRejected) es = es.Where("erp_order.is_print = ? or erp_order.retail_type = ?", HavePrinted, RetailTypeRejected) orderSumQs = orderSumQs.Where("eo.is_print = ? or eo.retail_type = ?", HavePrinted, RetailTypeRejected) + rejectedOrderSumQs = rejectedOrderSumQs.Where("eo.is_print = ? or eo.retail_type = ?", HavePrinted, RetailTypeRejected) } qs.Where("erp_order.pay_status = ? or (erp_order.retail_type = ? and erp_order.state != ?)", HavePaid, RetailTypeRejected, ErpOrderStateUnAudit) @@ -2837,6 +2864,8 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp HavePaid, RetailTypeRejected, ErpOrderStateUnAudit) orderSumQs.Where("eo.pay_status = ? or (eo.retail_type = ? and eo.state != ?)", HavePaid, RetailTypeRejected, ErpOrderStateUnAudit) + rejectedOrderSumQs.Where("eo.pay_status = ? or (eo.retail_type = ? and eo.state != ?)", + HavePaid, RetailTypeRejected, ErpOrderStateUnAudit) // 销售订单的汇总数据 var sumData RetailDetailTotalData @@ -2847,7 +2876,6 @@ func queryRetailDetailByJoin(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp } // 退货订单的汇总数据 var rejectedSumData RetailDetailTotalData - rejectedOrderSumQs := orderSumQs rejectedSumData, err = getRetailDetailTotalDataJoinErpOrder(rejectedOrderSumQs, RetailTypeRejected) if err != nil { logger.Error("query sum data err:", logger.Field("err", err)) @@ -3026,8 +3054,34 @@ func packData(result []RetailDetailByJoin) []ErpOrder { order.InvoiceNumber = item.InvoiceNumber order.RejectedTotalAmount = item.RejectedTotalAmount order.RejectedTotalCount = item.RejectedTotalCount + + if order.RetailType == RetailTypeRejected { // 退货订单,金额需要转换为负值 + order.TotalRetailPrice = -math.Abs(order.TotalRetailPrice) + order.TotalAmount = -math.Abs(order.TotalAmount) + order.TotalCount = -int32(math.Abs(float64(order.TotalCount))) + order.TotalSalesProfit = -math.Abs(order.TotalSalesProfit) + order.TotalStaffProfit = -math.Abs(order.TotalStaffProfit) + order.TotalDiscount = -math.Abs(order.TotalDiscount) + order.VmCount = -uint32(math.Abs(float64(order.VmCount))) + order.StorePer = -math.Abs(order.StorePer) + } } + if order.RetailType == RetailTypeRejected { // 退货订单,金额需要转换为负值 + item.Count = -item.Count + item.RetailPrice = -item.RetailPrice + item.SalePrice = -item.SalePrice + item.Amount = -item.Amount + item.SaleDiscount = -item.SaleDiscount + item.MemberDiscount = -item.MemberDiscount + item.VmDiscount = -item.VmDiscount + item.ReceivedAmount = -item.ReceivedAmount + item.RejectedAmount = -item.RejectedAmount + item.SalesProfit = -item.SalesProfit + item.StaffProfit = -item.StaffProfit + item.StaffCostPrice = -item.StaffCostPrice + item.WholesalePrice = -item.WholesalePrice + } // 订单商品数据 commodity.CreatedAt = item.ErpOrderCommodity.CreatedAt commodity.ErpOrderId = item.ErpOrderId @@ -3119,7 +3173,11 @@ func queryRetailDetailCommon(req *ErpOrderRetailDetailReq, c *gin.Context) (*Erp // 返回sysUser未过期的门店id列表 storeList := GetValidStoreIDs(sysUser.StoreData) if len(storeList) > 0 { - qs = qs.Where("store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("store_id = ?", storeList[0]) + } else { + qs = qs.Where("store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } diff --git a/app/admin/models/purchase.go b/app/admin/models/purchase.go index 27e1601..6411ba6 100644 --- a/app/admin/models/purchase.go +++ b/app/admin/models/purchase.go @@ -579,7 +579,11 @@ func (m *ErpPurchaseOrderListReq) List(c *gin.Context) (*ErpPurchaseOrderListRes // 返回sysUser未过期的门店id列表 storeList := GetValidStoreIDs(sysUser.StoreData) if len(storeList) > 0 { - qs = qs.Where("store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("store_id = ?", storeList[0]) + } else { + qs = qs.Where("store_id IN (?)", storeList) + } } else { return nil, errors.New("用户未绑定门店") } diff --git a/app/admin/models/recycle_card.go b/app/admin/models/recycle_card.go index 28a1ce1..ccff180 100644 --- a/app/admin/models/recycle_card.go +++ b/app/admin/models/recycle_card.go @@ -108,7 +108,11 @@ func (m *RecycleCardOrderListReq) List(c *gin.Context) (RecycleCardOrderListRsp, } } else { if len(storeList) > 0 { - qs = qs.Where("store_id IN (?)", storeList) + if len(storeList) == 1 { + qs = qs.Where("store_id = ?", storeList[0]) + } else { + qs = qs.Where("store_id IN (?)", storeList) + } } else { return RecycleCardOrderListRsp{}, errors.New("用户未绑定门店") }