1.修复进销存报表时间段查询不准确的问题;
This commit is contained in:
parent
0c3fc88c8d
commit
c7ab2b1957
|
@ -122,7 +122,11 @@ func (m *ErpDecisionReportReq) DecisionReportList(c *gin.Context) (*ErpDecisionR
|
|||
for _, store := range m.StoreId {
|
||||
storeIDs = append(storeIDs, store)
|
||||
}
|
||||
qs = qs.Where("store_id IN (?)", storeIDs)
|
||||
if len(storeIDs) == 1 {
|
||||
qs = qs.Where("store_id IN = ?", storeIDs[0])
|
||||
} else {
|
||||
qs = qs.Where("store_id IN (?)", storeIDs)
|
||||
}
|
||||
}
|
||||
|
||||
if len(m.CommodityName) > 0 { // 商品名称
|
||||
|
@ -130,7 +134,11 @@ func (m *ErpDecisionReportReq) DecisionReportList(c *gin.Context) (*ErpDecisionR
|
|||
for _, commodityName := range m.CommodityName {
|
||||
commodityNames = append(commodityNames, commodityName)
|
||||
}
|
||||
qs = qs.Where("erp_commodity_name IN (?)", commodityNames)
|
||||
if len(commodityNames) == 1 {
|
||||
qs = qs.Where("erp_commodity_name = ?", commodityNames[0])
|
||||
} else {
|
||||
qs = qs.Where("erp_commodity_name IN (?)", commodityNames)
|
||||
}
|
||||
}
|
||||
|
||||
if len(m.CategoryID) > 0 { // 商品分类id
|
||||
|
@ -138,7 +146,11 @@ func (m *ErpDecisionReportReq) DecisionReportList(c *gin.Context) (*ErpDecisionR
|
|||
for _, category := range m.CategoryID {
|
||||
categoryIDs = append(categoryIDs, category)
|
||||
}
|
||||
qs = qs.Where("erp_category_id IN (?)", categoryIDs)
|
||||
if len(categoryIDs) == 1 {
|
||||
qs = qs.Where("erp_category_id = ?", categoryIDs[0])
|
||||
} else {
|
||||
qs = qs.Where("erp_category_id IN (?)", categoryIDs)
|
||||
}
|
||||
}
|
||||
|
||||
var count int64
|
||||
|
@ -159,23 +171,30 @@ func (m *ErpDecisionReportReq) DecisionReportList(c *gin.Context) (*ErpDecisionR
|
|||
return nil, err
|
||||
}
|
||||
|
||||
if len(m.StoreId) != 1 && m.IsExport != 1 { // 查询所有门店数据
|
||||
if len(m.StoreId) != 1 && m.IsExport != 1 { // 查询多个or所有门店数据
|
||||
// 剔除商品id重复的数据
|
||||
var trimCommodities []ErpStock
|
||||
tempCommodityMap := make(map[uint32]ErpStock)
|
||||
var tempCommodityMap = make(map[uint32]ErpStock)
|
||||
for i, item := range commodities {
|
||||
if _, found := tempCommodityMap[item.ErpCommodityId]; found {
|
||||
commodities[i].DecisionStoreId = append(commodities[i].DecisionStoreId, item.StoreId)
|
||||
continue
|
||||
if existingItem, found := tempCommodityMap[item.ErpCommodityId]; found {
|
||||
// 在已有记录的 DecisionStoreId 中追加 StoreId
|
||||
existingItem.DecisionStoreId = append(existingItem.DecisionStoreId, item.StoreId)
|
||||
// 更新 map 中的记录
|
||||
tempCommodityMap[item.ErpCommodityId] = existingItem
|
||||
} else {
|
||||
if len(m.StoreId) != 0 {
|
||||
commodities[i].StoreId = 0
|
||||
}
|
||||
commodities[i].DecisionStoreId = append(commodities[i].DecisionStoreId, item.StoreId)
|
||||
tempCommodityMap[item.ErpCommodityId] = commodities[i]
|
||||
trimCommodities = append(trimCommodities, commodities[i])
|
||||
}
|
||||
}
|
||||
|
||||
// 从 map 中提取所有不重复的商品记录到 trimCommodities
|
||||
trimCommodities := make([]ErpStock, 0, len(tempCommodityMap))
|
||||
for _, item := range tempCommodityMap {
|
||||
trimCommodities = append(trimCommodities, item)
|
||||
}
|
||||
|
||||
SortStockCommodities(trimCommodities)
|
||||
|
||||
// 分页
|
||||
|
@ -203,58 +222,78 @@ func (m *ErpDecisionReportReq) DecisionReportList(c *gin.Context) (*ErpDecisionR
|
|||
go func(item ErpStock) {
|
||||
defer wg.Done()
|
||||
|
||||
var reportData DecisionReportData
|
||||
//var reportData DecisionReportData
|
||||
//reportData.CommodityId = item.ErpCommodityId
|
||||
//reportData.CommodityName = item.ErpCommodityName
|
||||
//reportData.CommoditySerialNumber = item.CommoditySerialNumber
|
||||
//reportData.CategoryID = item.ErpCategoryId
|
||||
//reportData.CategoryName = item.ErpCategoryName
|
||||
//
|
||||
//// 查询期初库存、期初金额
|
||||
//systemStartData, _ := getSystemStartCount(m, item)
|
||||
//reportData.BeginStock = systemStartData.BeginStock
|
||||
//reportData.BeginAmount = systemStartData.BeginAmount
|
||||
//
|
||||
//// 查询采购进货数量
|
||||
//purchaseStockData, _ := getPurchaseStockCount(m, item)
|
||||
//reportData.PurchaseStock = purchaseStockData.PurchaseStock
|
||||
//
|
||||
//// 查询采购退货数量
|
||||
//purchaseReturnData, _ := getPurchaseReturnCount(m, item)
|
||||
//reportData.PurchaseReturn = purchaseReturnData.PurchaseReturn
|
||||
//
|
||||
//// 查询零售销售数量
|
||||
//saleOutData, _ := getSaleOutCount(m, item)
|
||||
//reportData.OrderSale = saleOutData.OrderSale
|
||||
//
|
||||
//// 查询零售退货数量
|
||||
//saleReturnData, _ := getSaleReturnCount(m, item)
|
||||
//reportData.OrderReject = saleReturnData.OrderReject
|
||||
//
|
||||
//// 查询调拨入库数量
|
||||
//allotInData, _ := getAllotInCount(m, item)
|
||||
//reportData.AllotIn = allotInData.AllotIn
|
||||
//
|
||||
//// 查询在途库存(入库)数量
|
||||
//allotWaitInData, _ := getAllotWaitInCount(m, item)
|
||||
//reportData.AllotWaitIn = allotWaitInData.AllotWaitIn
|
||||
//
|
||||
//// 查询调拨出库数量
|
||||
//allotOutData, _ := getAllotOutCount(m, item)
|
||||
//reportData.AllotOut = allotOutData.AllotOut
|
||||
//
|
||||
//// 查询在途库存(出库)数量
|
||||
//allotWaitOutData, _ := getAllotWaitOutCount(m, item)
|
||||
//reportData.AllotWaitOut = allotWaitOutData.AllotWaitOut
|
||||
//
|
||||
//// 查询产品入库数量:产品入库
|
||||
//productData, _ := getProductCount(m, item)
|
||||
//reportData.ProductIn = productData.ProductIn
|
||||
//
|
||||
//// 查询系统出库数据:系统出库
|
||||
//systemOutData, _ := getSystemOutCount(m, item)
|
||||
//reportData.SystemOut = systemOutData.SystemOut
|
||||
//
|
||||
//// 查询盘点入库数量
|
||||
//changeAddData, _ := getChangeAddCount(m, item)
|
||||
//reportData.CheckIn = changeAddData.CheckIn
|
||||
//
|
||||
//// 查询盘点出库数量
|
||||
//changeReduceData, _ := getChangeReduceCount(m, item)
|
||||
//reportData.CheckOut = changeReduceData.CheckOut
|
||||
//
|
||||
//// 查询期末库存、期末金额
|
||||
//systemEndData, _ := getSystemEndCount(m, item)
|
||||
//reportData.EndStock = systemEndData.EndStock
|
||||
//reportData.EndAmount = systemEndData.EndAmount
|
||||
|
||||
reportData, _ := calculateInventoryReport(m, item)
|
||||
reportData.CommodityId = item.ErpCommodityId
|
||||
reportData.CommodityName = item.ErpCommodityName
|
||||
reportData.CommoditySerialNumber = item.CommoditySerialNumber
|
||||
reportData.CategoryID = item.ErpCategoryId
|
||||
reportData.CategoryName = item.ErpCategoryName
|
||||
|
||||
// 查询各项数据
|
||||
systemStartData, _ := getSystemStartCount(m, item)
|
||||
reportData.BeginStock = systemStartData.BeginStock
|
||||
reportData.BeginAmount = systemStartData.BeginAmount
|
||||
|
||||
purchaseStockData, _ := getPurchaseStockCount(m, item)
|
||||
reportData.PurchaseStock = purchaseStockData.PurchaseStock
|
||||
|
||||
purchaseReturnData, _ := getPurchaseReturnCount(m, item)
|
||||
reportData.PurchaseReturn = purchaseReturnData.PurchaseReturn
|
||||
|
||||
saleOutData, _ := getSaleOutCount(m, item)
|
||||
reportData.OrderSale = saleOutData.OrderSale
|
||||
|
||||
saleReturnData, _ := getSaleReturnCount(m, item)
|
||||
reportData.OrderReject = saleReturnData.OrderReject
|
||||
|
||||
allotInData, _ := getAllotInCount(m, item)
|
||||
reportData.AllotIn = allotInData.AllotIn
|
||||
|
||||
allotWaitInData, _ := getAllotWaitInCount(m, item)
|
||||
reportData.AllotWaitIn = allotWaitInData.AllotWaitIn
|
||||
|
||||
allotOutData, _ := getAllotOutCount(m, item)
|
||||
reportData.AllotOut = allotOutData.AllotOut
|
||||
|
||||
allotWaitOutData, _ := getAllotWaitOutCount(m, item)
|
||||
reportData.AllotWaitOut = allotWaitOutData.AllotWaitOut
|
||||
|
||||
productData, _ := getProductCount(m, item)
|
||||
reportData.ProductIn = productData.ProductIn
|
||||
|
||||
systemOutData, _ := getSystemOutCount(m, item)
|
||||
reportData.SystemOut = systemOutData.SystemOut
|
||||
|
||||
changeAddData, _ := getChangeAddCount(m, item)
|
||||
reportData.CheckIn = changeAddData.CheckIn
|
||||
|
||||
changeReduceData, _ := getChangeReduceCount(m, item)
|
||||
reportData.CheckOut = changeReduceData.CheckOut
|
||||
|
||||
systemEndData, _ := getSystemEndCount(m, item)
|
||||
reportData.EndStock = systemEndData.EndStock
|
||||
reportData.EndAmount = systemEndData.EndAmount
|
||||
|
||||
// 发送结果到通道
|
||||
ch <- reportData
|
||||
}(item)
|
||||
|
@ -331,57 +370,445 @@ func (m *ErpDecisionReportReq) DecisionReportList(c *gin.Context) (*ErpDecisionR
|
|||
return resp, nil
|
||||
}
|
||||
|
||||
// 查询期初库存、期初金额
|
||||
// 没有时间:默认为系统入库数量
|
||||
// 某一天:默认系统入库数量 - 某一天前的所有出库数量 + 某一天前的所有入库数量
|
||||
// 某个时间段:默认系统入库数量 - 开始时间前的所有出库数量 + 开始时间前的所有入库数量
|
||||
func getSystemStartCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportData, error) {
|
||||
func calculateInventoryReport(m *ErpDecisionReportReq, item ErpStock) (DecisionReportData, error) {
|
||||
var reportData DecisionReportData
|
||||
|
||||
qs := orm.Eloquent.Debug().Table("erp_stock_commodity")
|
||||
|
||||
// 进行条件查询
|
||||
if req.StartTime != "" { // 出入库开始时间
|
||||
parse, err := time.Parse(QueryTimeFormat, req.StartTime)
|
||||
if err != nil {
|
||||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("created_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
parse, err := time.Parse(QueryTimeFormat, req.EndTime)
|
||||
if err != nil {
|
||||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("created_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
err = qs.Select("SUM(count) as begin_stock, SUM(wholesale_price) as begin_amount").
|
||||
Where("storage_type = ? and store_id in (?) and erp_commodity_id = ?", SystemInventory, stock.DecisionStoreId,
|
||||
stock.ErpCommodityId).Find(&reportData).Error
|
||||
} else {
|
||||
err = qs.Select("SUM(count) as begin_stock, SUM(wholesale_price) as begin_amount").
|
||||
Where("storage_type = ? and store_id = ? and erp_commodity_id = ?", SystemInventory, stock.StoreId,
|
||||
stock.ErpCommodityId).Find(&reportData).Error
|
||||
}
|
||||
} else {
|
||||
err = qs.Select("SUM(count) as begin_stock, SUM(wholesale_price) as begin_amount").
|
||||
Where("storage_type = ? and erp_commodity_id = ?", SystemInventory, stock.ErpCommodityId).
|
||||
Find(&reportData).Error
|
||||
}
|
||||
// Step 1: 查询期初库存和金额
|
||||
systemStartData, err := getSystemStartCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.BeginStock = systemStartData.BeginStock
|
||||
reportData.BeginAmount = systemStartData.BeginAmount
|
||||
|
||||
// Step 2: 查询期末库存和金额
|
||||
systemEndData, err := getSystemEndCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.EndStock = systemEndData.EndStock
|
||||
reportData.EndAmount = systemEndData.EndAmount
|
||||
|
||||
// Step 3: 查询期间内的各类库存变动数据
|
||||
purchaseStockData, err := getPurchaseStockCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.PurchaseStock = purchaseStockData.PurchaseStock
|
||||
|
||||
purchaseReturnData, err := getPurchaseReturnCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.PurchaseReturn = purchaseReturnData.PurchaseReturn
|
||||
|
||||
saleOutData, err := getSaleOutCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.OrderSale = saleOutData.OrderSale
|
||||
|
||||
saleReturnData, err := getSaleReturnCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.OrderReject = saleReturnData.OrderReject
|
||||
|
||||
allotInData, err := getAllotInCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.AllotIn = allotInData.AllotIn
|
||||
|
||||
allotWaitInData, err := getAllotWaitInCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.AllotWaitIn = allotWaitInData.AllotWaitIn
|
||||
|
||||
allotOutData, err := getAllotOutCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.AllotOut = allotOutData.AllotOut
|
||||
|
||||
allotWaitOutData, err := getAllotWaitOutCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.AllotWaitOut = allotWaitOutData.AllotWaitOut
|
||||
|
||||
productData, err := getProductCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.ProductIn = productData.ProductIn
|
||||
|
||||
systemOutData, err := getSystemOutCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.SystemOut = systemOutData.SystemOut
|
||||
|
||||
changeAddData, err := getChangeAddCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.CheckIn = changeAddData.CheckIn
|
||||
|
||||
changeReduceData, err := getChangeReduceCount(m, item)
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
reportData.CheckOut = changeReduceData.CheckOut
|
||||
|
||||
// Step 4: 计算调整库存逻辑(期初+入库-出库)
|
||||
reportData.EndStock = reportData.BeginStock + reportData.PurchaseStock + reportData.AllotIn + reportData.ProductIn + reportData.CheckIn
|
||||
if reportData.EndStock < (reportData.PurchaseReturn + reportData.OrderSale + reportData.AllotOut + reportData.SystemOut + reportData.CheckOut) {
|
||||
reportData.EndStock = 0
|
||||
reportData.EndAmount = 0
|
||||
} else {
|
||||
reportData.EndStock -= reportData.PurchaseReturn + reportData.OrderSale + reportData.AllotOut + reportData.SystemOut + reportData.CheckOut
|
||||
}
|
||||
|
||||
return reportData, nil
|
||||
}
|
||||
|
||||
func getSystemStartCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportData, error) {
|
||||
var reportData DecisionReportData
|
||||
|
||||
if req.StartTime != "" { // 有开始时间
|
||||
startTime, err := time.Parse(QueryTimeFormat, req.StartTime)
|
||||
if err != nil {
|
||||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
|
||||
// 计算开始时间的前一天
|
||||
previousDay := startTime.AddDate(0, 0, -1)
|
||||
|
||||
// 获取系统入库数量
|
||||
var systemStartData DecisionReportData
|
||||
qs := orm.Eloquent.Debug().Table("erp_stock_commodity").
|
||||
Select("SUM(count) as begin_stock, SUM(wholesale_price) as begin_amount").
|
||||
Where("storage_type = ? and erp_commodity_id = ?", SystemInventory, stock.ErpCommodityId).
|
||||
Where("created_at <= ?", previousDay)
|
||||
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
qs = qs.Where("store_id in (?)", stock.DecisionStoreId)
|
||||
} else {
|
||||
qs = qs.Where("store_id = ?", stock.DecisionStoreId)
|
||||
}
|
||||
}
|
||||
|
||||
err = qs.Find(&systemStartData).Error
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
|
||||
// 获取开始时间前一天的所有出库数量(包括销售出库、系统出库和盘点出库)
|
||||
var outStockData struct {
|
||||
SoldOut uint32 `json:"sold_out"`
|
||||
SystemOut uint32 `json:"system_out"`
|
||||
CheckOut uint32 `json:"check_out"`
|
||||
}
|
||||
es := orm.Eloquent.Debug().Table("erp_stock_commodity").
|
||||
Select("SUM(CASE WHEN state = ? THEN count ELSE 0 END) AS sold_out, "+
|
||||
"SUM(CASE WHEN state = ? THEN count ELSE 0 END) AS system_out, "+
|
||||
"SUM(CASE WHEN state = ? THEN count ELSE 0 END) AS check_out",
|
||||
SoldOut, SystemOut, CheckOut).
|
||||
Where("updated_at <= ?", previousDay).
|
||||
Where("state IN (?)", []int{SoldOut, SystemOut, CheckOut}).
|
||||
Where("erp_commodity_id = ?", stock.ErpCommodityId)
|
||||
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
es = es.Where("store_id in (?)", stock.DecisionStoreId)
|
||||
} else {
|
||||
es = es.Where("store_id = ?", stock.DecisionStoreId)
|
||||
}
|
||||
}
|
||||
|
||||
err = es.Find(&outStockData).Error
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
|
||||
// 获取开始时间前一天的所有入库数量(包括采购入库、产品入库和盘点入库)
|
||||
var inStockData struct {
|
||||
PurchaseIn uint32 `json:"purchase_in"`
|
||||
ProductIn uint32 `json:"product_in"`
|
||||
CheckIn uint32 `json:"check_in"`
|
||||
}
|
||||
ts := orm.Eloquent.Debug().Table("erp_stock_commodity").
|
||||
Select("SUM(CASE WHEN storage_type = ? THEN count ELSE 0 END) AS purchase_in, "+
|
||||
"SUM(CASE WHEN storage_type = ? THEN count ELSE 0 END) AS product_in, "+
|
||||
"SUM(CASE WHEN storage_type = ? THEN count ELSE 0 END) AS check_in",
|
||||
PurchaseInventory, ProductInventory, CheckInventory).
|
||||
Where("created_at <= ?", previousDay).
|
||||
Where("erp_commodity_id = ?", stock.ErpCommodityId)
|
||||
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
ts = ts.Where("store_id in (?)", stock.DecisionStoreId)
|
||||
} else {
|
||||
ts = ts.Where("store_id = ?", stock.DecisionStoreId)
|
||||
}
|
||||
}
|
||||
|
||||
err = ts.Find(&inStockData).Error
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
|
||||
// 计算期初库存
|
||||
beginStock := int64(systemStartData.BeginStock) - int64(outStockData.SoldOut) - int64(outStockData.SystemOut) - int64(outStockData.CheckOut) +
|
||||
int64(inStockData.PurchaseIn) + int64(inStockData.ProductIn) + int64(inStockData.CheckIn)
|
||||
|
||||
if beginStock < 0 {
|
||||
beginStock = 0 // 确保库存不会为负
|
||||
}
|
||||
reportData.BeginStock = uint32(beginStock)
|
||||
reportData.BeginAmount = systemStartData.BeginAmount
|
||||
|
||||
} else {
|
||||
// 如果没有开始时间,直接获取系统入库数量作为期初库存
|
||||
qs := orm.Eloquent.Debug().Table("erp_stock_commodity").
|
||||
Select("SUM(count) as begin_stock, SUM(wholesale_price) as begin_amount").
|
||||
Where("storage_type = ? and erp_commodity_id = ?", SystemInventory, stock.ErpCommodityId)
|
||||
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
qs = qs.Where("store_id in (?)", stock.DecisionStoreId)
|
||||
} else {
|
||||
qs = qs.Where("store_id = ?", stock.DecisionStoreId)
|
||||
}
|
||||
}
|
||||
err := qs.Find(&reportData).Error
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
}
|
||||
|
||||
return reportData, nil
|
||||
}
|
||||
|
||||
func getSystemEndCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportData, error) {
|
||||
var reportData DecisionReportData
|
||||
|
||||
qs := orm.Eloquent.Debug().Table("erp_stock_commodity")
|
||||
es := orm.Eloquent.Debug().Table("erp_stock_commodity")
|
||||
|
||||
if req.EndTime != "" { // 有结束时间
|
||||
endTime, err := time.Parse(QueryTimeFormat, req.EndTime)
|
||||
if err != nil {
|
||||
logger.Errorf("getSystemEndCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
|
||||
// 获取结束时间之前的所有入库数量(包括系统入库、采购入库、产品入库和盘点入库)
|
||||
var inStockData struct {
|
||||
SystemIn uint32 `json:"system_in"`
|
||||
PurchaseIn uint32 `json:"purchase_in"`
|
||||
ProductIn uint32 `json:"product_in"`
|
||||
CheckIn uint32 `json:"check_in"`
|
||||
}
|
||||
qs = qs.Select("SUM(CASE WHEN storage_type = ? THEN count ELSE 0 END) AS system_in, "+
|
||||
"SUM(CASE WHEN storage_type = ? THEN count ELSE 0 END) AS purchase_in, "+
|
||||
"SUM(CASE WHEN storage_type = ? THEN count ELSE 0 END) AS product_in, "+
|
||||
"SUM(CASE WHEN storage_type = ? THEN count ELSE 0 END) AS check_in",
|
||||
SystemInventory, PurchaseInventory, ProductInventory, CheckInventory).
|
||||
Where("updated_at <= ?", endTime)
|
||||
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
qs = qs.Where("store_id in (?)", stock.DecisionStoreId)
|
||||
} else {
|
||||
qs = qs.Where("store_id = ?", stock.DecisionStoreId)
|
||||
}
|
||||
}
|
||||
|
||||
err = qs.Find(&inStockData).Error
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
|
||||
// 获取结束时间之前的所有出库数量(包括销售出库、系统出库和盘点出库)
|
||||
var outStockData struct {
|
||||
SoldOut uint32 `json:"sold_out"`
|
||||
SystemOut uint32 `json:"system_out"`
|
||||
CheckOut uint32 `json:"check_out"`
|
||||
}
|
||||
es = es.Select("SUM(CASE WHEN state = ? THEN count ELSE 0 END) AS sold_out, "+
|
||||
"SUM(CASE WHEN state = ? THEN count ELSE 0 END) AS system_out, "+
|
||||
"SUM(CASE WHEN state = ? THEN count ELSE 0 END) AS check_out",
|
||||
SoldOut, SystemOut, CheckOut).
|
||||
Where("updated_at <= ?", endTime).
|
||||
Where("state IN (?)", []int{SoldOut, SystemOut, CheckOut})
|
||||
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
es = es.Where("store_id in (?)", stock.DecisionStoreId)
|
||||
} else {
|
||||
es = es.Where("store_id = ?", stock.DecisionStoreId)
|
||||
}
|
||||
}
|
||||
err = es.Find(&outStockData).Error
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
|
||||
// 计算期末库存
|
||||
endStock := int64(inStockData.SystemIn) + int64(inStockData.PurchaseIn) + int64(inStockData.ProductIn) + int64(inStockData.CheckIn) -
|
||||
int64(outStockData.SoldOut) - int64(outStockData.SystemOut) - int64(outStockData.CheckOut)
|
||||
|
||||
if endStock < 0 {
|
||||
endStock = 0 // 确保库存不会为负
|
||||
}
|
||||
reportData.EndStock = uint32(endStock)
|
||||
|
||||
} else {
|
||||
// 如果没有结束时间,直接获取系统入库数量作为期末库存
|
||||
qs = qs.Select("SUM(count) as end_stock, SUM(wholesale_price) as end_amount").
|
||||
Where("storage_type = ? and erp_commodity_id = ?", SystemInventory, stock.ErpCommodityId)
|
||||
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
qs = qs.Where("store_id in (?)", stock.DecisionStoreId)
|
||||
} else {
|
||||
qs = qs.Where("store_id = ?", stock.DecisionStoreId)
|
||||
}
|
||||
}
|
||||
err := qs.Find(&reportData).Error
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
}
|
||||
|
||||
return reportData, nil
|
||||
}
|
||||
|
||||
////查询期初库存、期初金额
|
||||
////没有时间:默认为系统入库数量
|
||||
////某一天:默认系统入库数量 - 某一天前的所有出库数量 + 某一天前的所有入库数量
|
||||
////某个时间段:默认系统入库数量 - 开始时间前的所有出库数量 + 开始时间前的所有入库数量
|
||||
//func getSystemStartCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportData, error) {
|
||||
// var reportData DecisionReportData
|
||||
//
|
||||
// qs := orm.Eloquent.Debug().Table("erp_stock_commodity")
|
||||
//
|
||||
// // 进行条件查询
|
||||
// if req.StartTime != "" { // 出入库开始时间
|
||||
// parse, err := time.Parse(QueryTimeFormat, req.StartTime)
|
||||
// if err != nil {
|
||||
// logger.Errorf("getSystemStartCount err:", err)
|
||||
// return DecisionReportData{}, err
|
||||
// }
|
||||
//
|
||||
// // 将时间往前推一天
|
||||
// previousDay := parse.AddDate(0, 0, -1)
|
||||
//
|
||||
// // 手动创建 req 的深拷贝
|
||||
// tempReq := &ErpDecisionReportReq{
|
||||
// StartTime: "", // 清空 StartTime
|
||||
// EndTime: previousDay.Format(QueryTimeFormat),
|
||||
// IsExport: req.IsExport,
|
||||
// PageIndex: req.PageIndex,
|
||||
// PageSize: req.PageSize,
|
||||
// StoreId: req.StoreId,
|
||||
// CommodityName: req.CommodityName,
|
||||
// CategoryID: req.CategoryID,
|
||||
// }
|
||||
//
|
||||
// tempReportData, err := getSystemEndCount(tempReq, stock)
|
||||
// if err != nil {
|
||||
// return DecisionReportData{}, err
|
||||
// }
|
||||
// reportData.BeginStock = tempReportData.EndStock
|
||||
// reportData.BeginAmount = tempReportData.EndAmount
|
||||
// } else {
|
||||
// var err error
|
||||
// if stock.StoreId != 0 {
|
||||
// if len(stock.DecisionStoreId) > 1 {
|
||||
// err = qs.Select("SUM(count) as begin_stock, SUM(wholesale_price) as begin_amount").
|
||||
// Where("storage_type = ? and store_id in (?) and erp_commodity_id = ?", SystemInventory, stock.DecisionStoreId,
|
||||
// stock.ErpCommodityId).Find(&reportData).Error
|
||||
// } else {
|
||||
// err = qs.Select("SUM(count) as begin_stock, SUM(wholesale_price) as begin_amount").
|
||||
// Where("storage_type = ? and store_id = ? and erp_commodity_id = ?", SystemInventory, stock.StoreId,
|
||||
// stock.ErpCommodityId).Find(&reportData).Error
|
||||
// }
|
||||
// } else {
|
||||
// err = qs.Select("SUM(count) as begin_stock, SUM(wholesale_price) as begin_amount").
|
||||
// Where("storage_type = ? and erp_commodity_id = ?", SystemInventory, stock.ErpCommodityId).
|
||||
// Find(&reportData).Error
|
||||
// }
|
||||
// if err != nil {
|
||||
// return DecisionReportData{}, err
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// //if req.EndTime != "" { // 出入库结束时间
|
||||
// // parse, err := time.Parse(QueryTimeFormat, req.EndTime)
|
||||
// // if err != nil {
|
||||
// // logger.Errorf("getSystemStartCount err:", err)
|
||||
// // return DecisionReportData{}, err
|
||||
// // }
|
||||
// // qs = qs.Where("created_at <= ?", parse)
|
||||
// //}
|
||||
//
|
||||
// return reportData, nil
|
||||
//}
|
||||
//
|
||||
////查询期末库存、期末金额
|
||||
//func getSystemEndCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportData, error) {
|
||||
// var reportData DecisionReportData
|
||||
//
|
||||
// qs := orm.Eloquent.Debug().Table("erp_stock_commodity")
|
||||
//
|
||||
// //// 进行条件查询
|
||||
// //if req.StartTime != "" { // 出入库开始时间
|
||||
// // parse, err := time.Parse(QueryTimeFormat, req.StartTime)
|
||||
// // if err != nil {
|
||||
// // logger.Errorf("getSystemStartCount err:", err)
|
||||
// // return DecisionReportData{}, err
|
||||
// // }
|
||||
// // qs = qs.Where("created_at > ?", parse)
|
||||
// //}
|
||||
//
|
||||
// if req.EndTime != "" { // 出入库结束时间
|
||||
// parse, err := time.Parse(QueryTimeFormat, req.EndTime)
|
||||
// if err != nil {
|
||||
// logger.Errorf("getSystemStartCount err:", err)
|
||||
// return DecisionReportData{}, err
|
||||
// }
|
||||
// qs = qs.Where("created_at <= ?", parse)
|
||||
// }
|
||||
//
|
||||
// var err error
|
||||
// if stock.StoreId != 0 {
|
||||
// if len(stock.DecisionStoreId) > 1 {
|
||||
// err = qs.Select("SUM(count) as end_stock, SUM(wholesale_price) as end_amount").
|
||||
// Where("state in (?) and store_id in (?) and erp_commodity_id = ?", []uint32{InStock, InAllot}, stock.DecisionStoreId,
|
||||
// stock.ErpCommodityId).Find(&reportData).Error
|
||||
// } else {
|
||||
// err = qs.Select("SUM(count) as end_stock, SUM(wholesale_price) as end_amount").
|
||||
// Where("state in (?) and store_id = ? and erp_commodity_id = ?", []uint32{InStock, InAllot}, stock.StoreId,
|
||||
// stock.ErpCommodityId).Find(&reportData).Error
|
||||
// }
|
||||
// } else {
|
||||
// err = qs.Select("SUM(count) as end_stock, SUM(wholesale_price) as end_amount").
|
||||
// Where("state in (?) and erp_commodity_id = ?", []uint32{InStock, InAllot},
|
||||
// stock.ErpCommodityId).Find(&reportData).Error
|
||||
// }
|
||||
// if err != nil {
|
||||
// return DecisionReportData{}, err
|
||||
// }
|
||||
//
|
||||
// return reportData, nil
|
||||
//}
|
||||
|
||||
// 查询采购进货数量
|
||||
func getPurchaseStockCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportData, error) {
|
||||
var reportData DecisionReportData
|
||||
|
@ -395,7 +822,7 @@ func getPurchaseStockCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionR
|
|||
logger.Errorf("getPurchaseCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_purchase_inventory.created_at > ?", parse)
|
||||
qs = qs.Where("erp_purchase_inventory.updated_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
|
@ -404,7 +831,7 @@ func getPurchaseStockCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionR
|
|||
logger.Errorf("getPurchaseCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_purchase_inventory.created_at <= ?", parse)
|
||||
qs = qs.Where("erp_purchase_inventory.updated_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -449,7 +876,7 @@ func getPurchaseReturnCount(req *ErpDecisionReportReq, stock ErpStock) (Decision
|
|||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("created_at > ?", parse)
|
||||
qs = qs.Where("updated_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
|
@ -458,7 +885,7 @@ func getPurchaseReturnCount(req *ErpDecisionReportReq, stock ErpStock) (Decision
|
|||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("created_at <= ?", parse)
|
||||
qs = qs.Where("updated_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -641,7 +1068,7 @@ func getChangeAddCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionRepor
|
|||
logger.Errorf("getChangeAddCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_change_order.created_at > ?", parse)
|
||||
qs = qs.Where("erp_inventory_change_order.updated_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
|
@ -650,7 +1077,7 @@ func getChangeAddCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionRepor
|
|||
logger.Errorf("getChangeAddCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_change_order.created_at <= ?", parse)
|
||||
qs = qs.Where("erp_inventory_change_order.updated_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -701,7 +1128,7 @@ func getChangeReduceCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionRe
|
|||
logger.Errorf("getChangeAddCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_change_order.created_at > ?", parse)
|
||||
qs = qs.Where("erp_inventory_change_order.updated_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
|
@ -710,7 +1137,7 @@ func getChangeReduceCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionRe
|
|||
logger.Errorf("getChangeAddCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_change_order.created_at <= ?", parse)
|
||||
qs = qs.Where("erp_inventory_change_order.updated_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -761,7 +1188,7 @@ func getSystemOutCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionRepor
|
|||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("created_at > ?", parse)
|
||||
qs = qs.Where("updated_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
|
@ -770,7 +1197,7 @@ func getSystemOutCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionRepor
|
|||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("created_at <= ?", parse)
|
||||
qs = qs.Where("updated_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -851,7 +1278,7 @@ func getAllotWaitOutCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionRe
|
|||
logger.Errorf("getAllotOutCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_allot_commodity.created_at > ?", parse)
|
||||
qs = qs.Where("erp_inventory_allot_commodity.updated_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
|
@ -860,7 +1287,7 @@ func getAllotWaitOutCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionRe
|
|||
logger.Errorf("getAllotOutCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_allot_commodity.created_at <= ?", parse)
|
||||
qs = qs.Where("erp_inventory_allot_commodity.updated_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -911,7 +1338,7 @@ func getAllotInCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportD
|
|||
logger.Errorf("getChangeAddCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_allot_commodity.created_at > ?", parse)
|
||||
qs = qs.Where("erp_inventory_allot_commodity.updated_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
|
@ -920,7 +1347,7 @@ func getAllotInCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportD
|
|||
logger.Errorf("getChangeAddCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_allot_commodity.created_at <= ?", parse)
|
||||
qs = qs.Where("erp_inventory_allot_commodity.updated_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -971,7 +1398,7 @@ func getAllotOutCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReport
|
|||
logger.Errorf("getAllotOutCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_allot_commodity.created_at > ?", parse)
|
||||
qs = qs.Where("erp_inventory_allot_commodity.updated_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
|
@ -980,7 +1407,7 @@ func getAllotOutCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReport
|
|||
logger.Errorf("getAllotOutCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("erp_inventory_allot_commodity.created_at <= ?", parse)
|
||||
qs = qs.Where("erp_inventory_allot_commodity.updated_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
|
@ -1018,54 +1445,6 @@ func getAllotOutCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReport
|
|||
return reportData, nil
|
||||
}
|
||||
|
||||
// 查询期末库存、期末金额
|
||||
func getSystemEndCount(req *ErpDecisionReportReq, stock ErpStock) (DecisionReportData, error) {
|
||||
var reportData DecisionReportData
|
||||
|
||||
qs := orm.Eloquent.Debug().Table("erp_stock_commodity")
|
||||
|
||||
// 进行条件查询
|
||||
if req.StartTime != "" { // 出入库开始时间
|
||||
parse, err := time.Parse(QueryTimeFormat, req.StartTime)
|
||||
if err != nil {
|
||||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("created_at > ?", parse)
|
||||
}
|
||||
|
||||
if req.EndTime != "" { // 出入库结束时间
|
||||
parse, err := time.Parse(QueryTimeFormat, req.EndTime)
|
||||
if err != nil {
|
||||
logger.Errorf("getSystemStartCount err:", err)
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
qs = qs.Where("created_at <= ?", parse)
|
||||
}
|
||||
|
||||
var err error
|
||||
if stock.StoreId != 0 {
|
||||
if len(stock.DecisionStoreId) > 1 {
|
||||
err = qs.Select("SUM(count) as end_stock, SUM(wholesale_price) as end_amount").
|
||||
Where("state in (?) and store_id in (?) and erp_commodity_id = ?", []uint32{InStock, InAllot}, stock.DecisionStoreId,
|
||||
stock.ErpCommodityId).Find(&reportData).Error
|
||||
} else {
|
||||
err = qs.Select("SUM(count) as end_stock, SUM(wholesale_price) as end_amount").
|
||||
Where("state in (?) and store_id = ? and erp_commodity_id = ?", []uint32{InStock, InAllot}, stock.StoreId,
|
||||
stock.ErpCommodityId).Find(&reportData).Error
|
||||
}
|
||||
} else {
|
||||
err = qs.Select("SUM(count) as end_stock, SUM(wholesale_price) as end_amount").
|
||||
Where("state in (?) and erp_commodity_id = ?", []uint32{InStock, InAllot},
|
||||
stock.ErpCommodityId).Find(&reportData).Error
|
||||
}
|
||||
if err != nil {
|
||||
return DecisionReportData{}, err
|
||||
}
|
||||
|
||||
return reportData, nil
|
||||
}
|
||||
|
||||
// 查询库存汇总数据:期初库存、期初金额、采购退货数量、产品入库、系统出库、在途库存(入库)数量、期末库存、期末金额
|
||||
func getSumStockData(req *ErpDecisionReportReq) (DecisionReportData, error) {
|
||||
var reportData DecisionReportData
|
||||
|
|
|
@ -1873,6 +1873,7 @@ func getErpPurchaseDemandAll(req *GetErpPurchaseDemandReq, c *gin.Context) (*Get
|
|||
|
||||
qs := orm.Eloquent.Debug().Table("erp_commodity")
|
||||
if req.ErpCategoryId != 0 {
|
||||
page = 0
|
||||
categoryInfo, err := GetErpCategory(req.ErpCategoryId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -1880,12 +1881,15 @@ func getErpPurchaseDemandAll(req *GetErpPurchaseDemandReq, c *gin.Context) (*Get
|
|||
qs = qs.Where("serial_number like ?", categoryInfo.Number+"%")
|
||||
}
|
||||
if req.ErpCommoditySerialNumber != "" {
|
||||
page = 0
|
||||
qs = qs.Where("serial_number=?", req.ErpCommoditySerialNumber)
|
||||
}
|
||||
if req.ErpCommodityName != "" {
|
||||
page = 0
|
||||
qs = qs.Where("name=?", req.ErpCommodityName)
|
||||
}
|
||||
if req.ErpSupplierId != 0 {
|
||||
page = 0
|
||||
qs = qs.Where("erp_supplier_id=?", req.ErpSupplierId)
|
||||
}
|
||||
|
||||
|
@ -2198,9 +2202,11 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge
|
|||
}
|
||||
}
|
||||
if req.ErpCommodityName != "" {
|
||||
page = 0
|
||||
demandQs = demandQs.Where("erp_commodity_name = ?", req.ErpCommodityName)
|
||||
}
|
||||
if req.ErpSupplierId != 0 {
|
||||
page = 0
|
||||
demandQs = demandQs.Where("erp_supplier_id=?", req.ErpSupplierId)
|
||||
}
|
||||
err = demandQs.Find(&demand).Error
|
||||
|
@ -2214,6 +2220,15 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge
|
|||
Where("state = 1").
|
||||
Where("remark IS NOT NULL").
|
||||
Where("remark <> ''")
|
||||
if req.ErpCommodityName != "" {
|
||||
var erpCommodity ErpCommodity
|
||||
err = orm.Eloquent.Table("erp_commodity").Where("name = ?", req.ErpCommodityName).
|
||||
Find(&erpCommodity).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
demandRemarkQs = demandRemarkQs.Where("erp_commodity_id = ?", erpCommodity.ID)
|
||||
}
|
||||
err = demandRemarkQs.Find(&demandRemarkInfo).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -2248,34 +2263,36 @@ func getErpPurchaseDemandHide(req *GetErpPurchaseDemandReq, c *gin.Context) (*Ge
|
|||
}
|
||||
|
||||
// 查询商品信息
|
||||
qs := orm.Eloquent.Debug().Table("erp_commodity")
|
||||
if req.ErpCategoryId != 0 {
|
||||
categoryInfo, err := GetErpCategory(req.ErpCategoryId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
qs = qs.Where("serial_number like ?", categoryInfo.Number+"%")
|
||||
}
|
||||
if req.ErpCommoditySerialNumber != "" {
|
||||
qs = qs.Where("serial_number=?", req.ErpCommoditySerialNumber)
|
||||
}
|
||||
if req.ErpCommodityName != "" {
|
||||
qs = qs.Where("name=?", req.ErpCommodityName)
|
||||
}
|
||||
if req.ErpSupplierId != 0 {
|
||||
qs = qs.Where("erp_supplier_id=?", req.ErpSupplierId)
|
||||
}
|
||||
|
||||
var count int64
|
||||
if err := qs.Count(&count).Error; err != nil {
|
||||
logger.Error("count err:", logger.Field("err", err))
|
||||
return resp, err
|
||||
}
|
||||
|
||||
var commodities []ErpCommodity
|
||||
err = qs.Order("id DESC").Find(&commodities).Error
|
||||
if err != nil && err != RecordNotFound {
|
||||
return resp, err
|
||||
if len(demand) > 0 {
|
||||
qs := orm.Eloquent.Debug().Table("erp_commodity")
|
||||
if req.ErpCategoryId != 0 {
|
||||
categoryInfo, err := GetErpCategory(req.ErpCategoryId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
qs = qs.Where("serial_number like ?", categoryInfo.Number+"%")
|
||||
}
|
||||
if req.ErpCommoditySerialNumber != "" {
|
||||
qs = qs.Where("serial_number=?", req.ErpCommoditySerialNumber)
|
||||
}
|
||||
if req.ErpCommodityName != "" {
|
||||
qs = qs.Where("name=?", req.ErpCommodityName)
|
||||
}
|
||||
if req.ErpSupplierId != 0 {
|
||||
qs = qs.Where("erp_supplier_id=?", req.ErpSupplierId)
|
||||
}
|
||||
|
||||
var count int64
|
||||
if err := qs.Count(&count).Error; err != nil {
|
||||
logger.Error("count err:", logger.Field("err", err))
|
||||
return resp, err
|
||||
}
|
||||
|
||||
err = qs.Order("id DESC").Find(&commodities).Error
|
||||
if err != nil && err != RecordNotFound {
|
||||
return resp, err
|
||||
}
|
||||
}
|
||||
|
||||
// 匹配商品id,有则继续查询返回数据,没有则不返回
|
||||
|
|
|
@ -26,7 +26,7 @@ func registerUserManageUnAuthRouter(v1 *gin.RouterGroup) {
|
|||
userInfo.POST("/add_assistant", usermanage.UserAddAssistant)
|
||||
userInfo.POST("/assistant_del", usermanage.UserAssistantDel)
|
||||
userInfo.POST("/invite_list", usermanage.UserInviteList)
|
||||
userInfo.POST("/cancel_members", usermanage.CancelMembers)
|
||||
userInfo.POST("/cancel_members", usermanage.CancelMembers) // 取消租卡会员
|
||||
|
||||
userInfo.POST("/user_derive", usermanage.ExportDataUserMember)
|
||||
userInfo.POST("/deposit_refund/list", usermanage.UserDepositRefundRecordList) // 保证金审核列表
|
||||
|
|
Loading…
Reference in New Issue
Block a user