1、创建零售退货订单时,单个商品退货金额以入参为准;
2、优化库存导入接口,尝试解决库存列表数据重复的问题;
This commit is contained in:
parent
75553fa63d
commit
16e12f85cb
|
@ -1229,13 +1229,13 @@ func (m *StockImporter) processErpStocks(erpStocks []ErpStockCommodity) error {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
err := m.ErpStockCountUpdate(begin) //更新or插入库存表
|
err := errGroup.Wait()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
begin.Rollback()
|
begin.Rollback()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = errGroup.Wait()
|
err = m.ErpStockCountUpdate(begin) //更新or插入库存表
|
||||||
if err != nil {
|
if err != nil {
|
||||||
begin.Rollback()
|
begin.Rollback()
|
||||||
return err
|
return err
|
||||||
|
@ -1259,8 +1259,26 @@ func createStockList(begin *gorm.DB, stockList []ErpStockCommodity) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 合并导入数据的辅助函数
|
||||||
|
func mergeCensusMap(censusMap map[uint32]map[uint32]uint32) map[uint32]map[uint32]uint32 {
|
||||||
|
mergedMap := make(map[uint32]map[uint32]uint32)
|
||||||
|
for storeId, commodities := range censusMap {
|
||||||
|
if mergedMap[storeId] == nil {
|
||||||
|
mergedMap[storeId] = make(map[uint32]uint32)
|
||||||
|
}
|
||||||
|
for commodityId, count := range commodities {
|
||||||
|
mergedMap[storeId][commodityId] += count
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return mergedMap
|
||||||
|
}
|
||||||
|
|
||||||
func (m *StockImporter) ErpStockCountUpdate(gdb *gorm.DB) error {
|
func (m *StockImporter) ErpStockCountUpdate(gdb *gorm.DB) error {
|
||||||
for k1, v1 := range m.CensusMap {
|
// 合并导入数据,避免同一商品多次重复处理
|
||||||
|
mergedCensusMap := mergeCensusMap(m.CensusMap)
|
||||||
|
|
||||||
|
//for k1, v1 := range m.CensusMap {
|
||||||
|
for k1, v1 := range mergedCensusMap {
|
||||||
for k2, v2 := range v1 {
|
for k2, v2 := range v1 {
|
||||||
exist, err := QueryRecordExist(fmt.Sprintf("SELECT * FROM erp_stock WHERE store_id=%d AND erp_commodity_id=%d", k1, k2))
|
exist, err := QueryRecordExist(fmt.Sprintf("SELECT * FROM erp_stock WHERE store_id=%d AND erp_commodity_id=%d", k1, k2))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -5382,8 +5382,8 @@ func checkOrderData(req *ErpOrderCreateReq, c *gin.Context) (*ErpOrder, error) {
|
||||||
req.ErpOrderCommodities[i].MemberDiscount = req.ErpOrderCommodities[i].MemberDiscount / float64(req.ErpOrderCommodities[i].Count)
|
req.ErpOrderCommodities[i].MemberDiscount = req.ErpOrderCommodities[i].MemberDiscount / float64(req.ErpOrderCommodities[i].Count)
|
||||||
// 单个商品实收金额
|
// 单个商品实收金额
|
||||||
req.ErpOrderCommodities[i].ReceivedAmount = req.ErpOrderCommodities[i].ReceivedAmount / float64(req.ErpOrderCommodities[i].Count)
|
req.ErpOrderCommodities[i].ReceivedAmount = req.ErpOrderCommodities[i].ReceivedAmount / float64(req.ErpOrderCommodities[i].Count)
|
||||||
// 单个商品退货金额
|
//// 单个商品退货金额
|
||||||
req.ErpOrderCommodities[i].RejectedAmount = req.ErpOrderCommodities[i].RejectedAmount / float64(req.ErpOrderCommodities[i].Count)
|
//req.ErpOrderCommodities[i].RejectedAmount = req.ErpOrderCommodities[i].RejectedAmount / float64(req.ErpOrderCommodities[i].RejectedCount)
|
||||||
|
|
||||||
for j := 0; j < int(req.ErpOrderCommodities[i].Count); j++ {
|
for j := 0; j < int(req.ErpOrderCommodities[i].Count); j++ {
|
||||||
stockIdList, _ := stringToIntArray(req.ErpOrderCommodities[i].ErpStockCommodityID)
|
stockIdList, _ := stringToIntArray(req.ErpOrderCommodities[i].ErpStockCommodityID)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user