select($sql); if (!$list) { $error_msg = '未查到覆盖仓'; return true; } $area_addr_list = []; foreach ($list as $l) { $crop_config = @unserialize($l['crop_config']); unset($l['crop_config']); if (!$crop_config['stock_monitor']) { continue; } $area_addr_list[$l['branch_id']] = $l; $area_addr_list[$l['branch_id']]['province'] = $ship_province; $area_addr_list[$l['branch_id']]['city'] = $ship_city; $area_addr_list[$l['branch_id']]['street'] = $ship_district; $area_addr_list[$l['branch_id']]['town'] = $ship_town; $area_addr_list[$l['branch_id']]['address'] = $ship_addr; $object = kernel::single('erpapi_router_request')->set('wms', $l['wms_id']); $platform_area = $object->branch_getAreaId([ 'ship_province' => $ship_province, 'ship_city' => $ship_city, 'ship_district' => $ship_district, 'ship_town' => $ship_town, 'ship_addr' => $ship_addr, ]); $area_addr_list[$l['branch_id']]['provinceId'] = $platform_area['data']['provinceid']; $area_addr_list[$l['branch_id']]['cityId'] = $platform_area['data']['cityid']; $area_addr_list[$l['branch_id']]['townId'] = $platform_area['data']['streetid']; $area_addr_list[$l['branch_id']]['countyId'] = $platform_area['data']['townid']; } unset($list); if (!$area_addr_list) { $error_msg = '库存监控未开启'; return true; } $branch_id = array_keys($area_addr_list); // 获取渠道关系 $sql = 'SELECT c.material_bn,c.channel_id,c.bm_id,bp.branch_id,bp.store FROM sdb_material_basic_material_channel c LEFT JOIN sdb_ome_branch_product bp ON(bp.product_id=c.bm_id) WHERE c.bm_id IN(' . implode(',', $product_id) . ') AND bp.branch_id IN(' . implode(',', $branch_id) . ') AND c.approve_status = "1" AND bp.store > 0 AND c.is_error="0"'; $list = kernel::database()->select($sql); if (!$list) { $error_msg = '未查到有货库存'; return true; } // 按渠道分类 $skus_list = []; foreach ($list as $l) { $l['warn_num'] = $items[$l['bm_id']]['number']; $skus_list[$l['channel_id']][$l['branch_id']][$l['bm_id']] = $l; } unset($list); // 库存处理 foreach ($skus_list as $channel_id => $bp) { foreach ($bp as $branch_id => $skus) { $addr = $area_addr_list[$branch_id]; $params = [ 'channel_id' => $channel_id, 'skus' => $skus, 'addr' => $addr, ]; $object = kernel::single('erpapi_router_request')->set('wms', $addr['wms_id']); $object->goods_syncStore($params); } } return true; } }