纺织品供应链管理软件:Logility二次开发_(8).Logility采购管理模块二次开发

Logility采购管理模块二次开发

在这里插入图片描述

1. 采购计划自动化

1.1 采购计划生成原理

在纺织品供应链管理中,采购计划的生成是一个关键环节。Logility采购管理模块通过分析需求预测、库存水平、供应商能力等数据,自动生成最优的采购计划。这一过程涉及到多个步骤和算法,主要包括需求预测、库存优化、供应商选择和订单生成。

需求预测

需求预测是采购计划生成的基础。Logility使用历史销售数据、市场趋势、季节性因素等信息,通过统计模型和机器学习算法预测未来的需求。常见的预测方法包括移动平均法、指数平滑法和ARIMA模型等。

例子:使用Python进行需求预测

假设我们有过去12个月的销售数据,我们可以使用Python的pandas库和statsmodels库进行ARIMA模型预测。


import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from statsmodels.tsa.arima.model import ARIMA



# 假设销售数据存储在一个CSV文件中

data = pd.read_csv('sales_data.csv')

data['date'] = pd.to_datetime(data['date'])

data.set_index('date', inplace=True)



# 检查数据

print(data.head())



# 绘制历史销售数据

plt.figure(figsize=(10, 6))

plt.plot(data['sales'], label='Sales Data')

plt.title('Historical Sales Data')

plt.xlabel('Date')

plt.ylabel('Sales')

plt.legend()

plt.show()



# 拟合ARIMA模型

model = ARIMA(data['sales'], order=(5,1,0))

model_fit = model.fit()



# 预测未来12个月的销售

forecast = model_fit.forecast(steps=12)

print(forecast)



# 绘制预测结果

plt.figure(figsize=(10, 6))

plt.plot(data['sales'], label='Historical Sales')

plt.plot(forecast, label='Forecasted Sales', color='red')

plt.title('Sales Forecast')

plt.xlabel('Date')

plt.ylabel('Sales')

plt.legend()

plt.show()

1.2 库存优化

库存优化的目标是在满足客户需求的同时,最小化库存成本。Logility通过库存模型和优化算法,确定最佳的库存水平。常用的库存模型包括经济订货量(EOQ)模型、安全库存模型和再订货点(ROP)模型等。

经济订货量(EOQ)模型

EOQ模型用于确定每次采购的最优数量,以最小化总成本。总成本包括采购成本、库存持有成本和缺货成本。

例子:使用Python计算EOQ

假设我们有以下参数:

  • 年需求量(D):10000件

  • 每次订货成本(S):500元

  • 每件商品的年持有成本(H):10元


# 定义参数

D = 10000  # 年需求量

S = 500    # 每次订货成本

H = 10     # 每件商品的年持有成本



# 计算EOQ

EOQ = np.sqrt((2 * D * S) / H)

print(f"经济订货量 (EOQ): {EOQ:.2f} 件")



# 计算年总成本

total_cost = (D / EOQ) * S + (EOQ / 2) * H

print(f"年总成本: {total_cost:.2f} 元")

1.3 供应商选择

供应商选择是采购计划中的一个重要环节。Logility通过评估供应商的多个指标,如价格、质量、交货时间、可靠性等,选择最优的供应商。常用的供应商选择方法包括多属性决策法(MADM)和层次分析法(AHP)。

多属性决策法(MADM)

MADM通过将多个属性进行量化和加权,选择最优的供应商。常见的MADM方法包括TOPSIS、VIKOR和ELECTRE等。

例子:使用Python进行TOPSIS供应商选择

假设我们有如下供应商数据:

  • 供应商A:价格=100元,质量=8,交货时间=10天,可靠性=9

  • 供应商B:价格=120元,质量=9,交货时间=8天,可靠性=8

  • 供应商C:价格=110元,质量=8.5,交货时间=9天,可靠性=8.5


import numpy as np



# 定义供应商数据

data = np.array([

    [100, 8, 10, 9],

    [120, 9, 8, 8],

    [110, 8.5, 9, 8.5]

])



# 定义权重

weights = [0.4, 0.3, 0.2, 0.1]



# 定义属性类型(1表示效益型,-1表示成本型)

attribute_types = [1, 1, -1, 1]



# 归一化数据

normalized_data = data / np.sqrt((data ** 2).sum(axis=0))



# 计算加权归一化数据

weighted_normalized_data = normalized_data * weights



# 确定正理想解和负理想解

positive_ideal_solution = np.where(attribute_types == 1, weighted_normalized_data.max(axis=0), weighted_normalized_data.min(axis=0))

negative_ideal_solution = np.where(attribute_types == 1, weighted_normalized_data.min(axis=0), weighted_normalized_data.max(axis=0))



# 计算每个供应商到正理想解和负理想解的距离

distance_to_positive_ideal = np.sqrt(((weighted_normalized_data - positive_ideal_solution) ** 2).sum(axis=1))

distance_to_negative_ideal = np.sqrt(((weighted_normalized_data - negative_ideal_solution) ** 2).sum(axis=1))



# 计算相对接近度

closeness = distance_to_negative_ideal / (distance_to_positive_ideal + distance_to_negative_ideal)



# 输出供应商的相对接近度

print("供应商的相对接近度:")

for i, supplier in enumerate(['A', 'B', 'C']):

    print(f"供应商 {supplier}: {closeness[i]:.4f}")



# 选择最优供应商

best_supplier = np.argmax(closeness)

print(f"最优供应商: {['A', 'B', 'C'][best_supplier]}")

1.4 订单生成

订单生成是采购计划的最终步骤。Logility根据生成的采购计划和选定的供应商,生成采购订单。订单生成涉及到订单数量、交货时间和付款条件等多个参数。

生成采购订单

假设我们已经生成了采购计划,并选择了最优供应商,接下来需要生成具体的采购订单。我们可以使用Python的pandas库来处理订单数据。

例子:生成采购订单

假设我们有以下采购计划数据:

  • 采购计划1:采购数量=500件,交货时间=2023-10-01

  • 采购计划2:采购数量=300件,交货时间=2023-10-15

  • 采购计划3:采购数量=200件,交货时间=2023-11-01


import pandas as pd



# 定义采购计划数据

procurement_plan = pd.DataFrame({

    'order_quantity': [500, 300, 200],

    'delivery_date': ['2023-10-01', '2023-10-15', '2023-11-01']

})



# 定义供应商信息

supplier_info = pd.DataFrame({

    'supplier': ['A', 'B', 'C'],

    'price_per_unit': [100, 120, 110],

    'lead_time': [10, 8, 9],

    'payment_terms': ['30天', '45天', '60天']

})



# 选择最优供应商

best_supplier = 'A'



# 生成采购订单

procurement_order = procurement_plan.copy()

procurement_order['supplier'] = best_supplier

procurement_order['price_per_unit'] = supplier_info.loc[supplier_info['supplier'] == best_supplier, 'price_per_unit'].values[0]

procurement_order['total_cost'] = procurement_order['order_quantity'] * procurement_order['price_per_unit']

procurement_order['lead_time'] = supplier_info.loc[supplier_info['supplier'] == best_supplier, 'lead_time'].values[0]

procurement_order['payment_terms'] = supplier_info.loc[supplier_info['supplier'] == best_supplier, 'payment_terms'].values[0]



# 输出采购订单

print(procurement_order)

2. 采购订单管理

2.1 采购订单状态跟踪

在Logility采购管理模块中,采购订单的状态跟踪是确保供应链顺畅的关键。通过实时监控订单的状态,企业可以及时发现并解决潜在问题,如延迟交货、质量问题等。

订单状态跟踪系统

订单状态跟踪系统通常包括订单创建、订单确认、订单发货、订单接收等多个环节。每个环节都需要记录相应的状态信息,如时间戳、操作人员、备注等。

例子:使用Python和SQLite进行订单状态跟踪

假设我们有一个订单状态跟踪系统,使用SQLite数据库存储订单状态信息。


import sqlite3

import pandas as pd



# 连接到SQLite数据库

conn = sqlite3.connect('procurement_orders.db')

cursor = conn.cursor()



# 创建订单状态跟踪表

cursor.execute('''

CREATE TABLE IF NOT EXISTS order_status (

    order_id INTEGER PRIMARY KEY,

    order_quantity INTEGER,

    supplier TEXT,

    status TEXT,

    timestamp DATETIME,

    operator TEXT,

    remarks TEXT

)

''')



# 插入初始订单状态

initial_orders = [

    (1, 500, 'A', '创建', '2023-09-01 10:00:00', '张三', '第一笔订单'),

    (2, 300, 'A', '创建', '2023-09-02 11:00:00', '李四', '第二笔订单'),

    (3, 200, 'A', '创建', '2023-09-03 12:00:00', '王五', '第三笔订单')

]



cursor.executemany('INSERT INTO order_status (order_id, order_quantity, supplier, status, timestamp, operator, remarks) VALUES (?, ?, ?, ?, ?, ?, ?)', initial_orders)

conn.commit()



# 更新订单状态

updated_orders = [

    (1, '确认', '2023-09-02 14:00:00', '张三', '确认订单'),

    (2, '确认', '2023-09-03 15:00:00', '李四', '确认订单'),

    (3, '确认', '2023-09-04 16:00:00', '王五', '确认订单')

]



cursor.executemany('UPDATE order_status SET status = ?, timestamp = ?, operator = ?, remarks = ? WHERE order_id = ?', updated_orders)

conn.commit()



# 查询订单状态

query = "SELECT * FROM order_status"

order_status = pd.read_sql_query(query, conn)



# 输出订单状态

print(order_status)

2.2 采购订单异常处理

在采购订单的执行过程中,可能会遇到各种异常情况,如供应商延迟交货、货物损坏等。Logility采购管理模块提供了异常处理机制,帮助企业及时应对这些情况。

异常处理流程

异常处理流程通常包括以下几个步骤:

  1. 异常检测:通过实时监控订单状态,检测异常情况。

  2. 异常记录:记录异常情况的详细信息,包括原因、影响范围等。

  3. 异常处理:根据异常类型和影响范围,采取相应的处理措施。

  4. 异常报告:生成异常报告,供管理层审阅和决策。

例子:使用Python处理采购订单异常

假设我们有一个订单异常处理系统,使用Python和SQLite数据库进行异常记录和处理。


import sqlite3

import pandas as pd



# 连接到SQLite数据库

conn = sqlite3.connect('procurement_orders.db')

cursor = conn.cursor()



# 创建订单异常表

cursor.execute('''

CREATE TABLE IF NOT EXISTS order_exceptions (

    exception_id INTEGER PRIMARY KEY,

    order_id INTEGER,

    exception_type TEXT,

    reason TEXT,

    timestamp DATETIME,

    operator TEXT,

    status TEXT,

    remarks TEXT

)

''')



# 插入初始订单异常

initial_exceptions = [

    (1, 1, '延迟交货', '供应商A生产延迟', '2023-09-25 10:00:00', '张三', '未处理', '供应商A生产延迟,预计延误2天'),

    (2, 2, '货物损坏', '运输过程中损坏', '2023-09-26 11:00:00', '李四', '未处理', '运输过程中损坏,需要重新发货')

]



cursor.executemany('INSERT INTO order_exceptions (exception_id, order_id, exception_type, reason, timestamp, operator, status, remarks) VALUES (?, ?, ?, ?, ?, ?, ?, ?)', initial_exceptions)

conn.commit()



# 更新订单异常状态

updated_exceptions = [

    (1, '处理中', '已联系供应商解决问题'),

    (2, '处理中', '已联系物流公司重新发货')

]



cursor.executemany('UPDATE order_exceptions SET status = ?, remarks = ? WHERE exception_id = ?', updated_exceptions)

conn.commit()



# 查询订单异常

query = "SELECT * FROM order_exceptions"

order_exceptions = pd.read_sql_query(query, conn)



# 输出订单异常

print(order_exceptions)

2.3 采购订单审批流程

采购订单的审批流程是确保订单合理性和合规性的关键。Logility采购管理模块提供了灵活的审批流程配置,支持多级审批和自定义审批规则。

审批流程配置

审批流程配置通常包括以下几个步骤:

  1. 定义审批级别:确定订单审批的层级,如一级审批、二级审批等。

  2. 配置审批规则:根据订单金额、供应商类型等条件,配置不同的审批规则。

  3. 实现审批流程:通过编程实现审批流程的自动化,确保订单在各层级之间的流转。

例子:使用Python实现多级审批流程

假设我们有一个多级审批系统,使用Python和SQLite数据库进行审批流程管理。


import sqlite3

import pandas as pd



# 连接到SQLite数据库

conn = sqlite3.connect('procurement_orders.db')

cursor = conn.cursor()



# 创建订单审批表

cursor.execute('''

CREATE TABLE IF NOT EXISTS order_approvals (

    approval_id INTEGER PRIMARY KEY,

    order_id INTEGER,

    approval_level INTEGER,

    approver TEXT,

    status TEXT,

    timestamp DATETIME,

    remarks TEXT

)

''')



# 插入初始订单审批

initial_approvals = [

    (1, 1, 1, '张三', '待审批', '2023-09-01 10:00:00', '一级审批'),

    (2, 2, 1, '李四', '待审批', '2023-09-02 11:00:00', '一级审批'),

    (3, 3, 1, '王五', '待审批', '2023-09-03 12:00:00', '一级审批')

]



cursor.executemany('INSERT INTO order_approvals (approval_id, order_id, approval_level, approver, status, timestamp, remarks) VALUES (?, ?, ?, ?, ?, ?, ?)', initial_approvals)

conn.commit()



# 定义审批规则

def approve_order(order_id, approval_level, approver):

    if approval_level == 1:

        # 一级审批

        cursor.execute('UPDATE order_approvals SET status = ?, timestamp = ?, remarks = ? WHERE order_id = ? AND approval_level = ?', ('已审批', '2023-09-04 10:00:00', '一级审批通过', order_id, 1))

        conn.commit()



        # 检查是否需要二级审批

        cursor.execute('SELECT order_quantity FROM order_status WHERE order_id = ?', (order_id,))

        order_quantity = cursor.fetchone()[0]



        if order_quantity > 500:

            # 需要二级审批

            cursor.execute('INSERT INTO order_approvals (order_id, approval_level, approver, status, timestamp, remarks) VALUES (?, ?, ?, ?, ?, ?)', (order_id, 2, '赵六', '待审批', '2023-09-04 11:00:00', '二级审批'))

            conn.commit()

    elif approval_level == 2:

        # 二级审批

        cursor.execute('UPDATE order_approvals SET status = ?, timestamp = ?, remarks = ? WHERE order_id = ? AND approval_level = ?', ('已审批', '2023-09-05 10:00:00', '二级审批通过', order_id, 2))

        conn.commit()



# 审批订单

approve_order(1, 1, '张三')

approve_order(2, 1, '李四')

approve_order(3, 1, '王五')



# 查询订单审批

query = "SELECT * FROM order_approvals"

order_approvals = pd.read_sql_query(query, conn)



# 输出订单审批

print(order_approvals)

3. 采购成本控制

3.1 采购成本分析

采购成本控制是确保企业利润最大化的重要环节。Logility采购管理模块提供了详细的采购成本分析功能,帮助企业识别成本控制的关键点。通过分析采购成本,企业可以优化采购策略,减少不必要的支出,提高整体效益。

采购成本分析方法

采购成本分析通常包括以下几个方面:

  • 直接成本:原材料成本、运输成本等。

  • 间接成本:管理费用、仓储费用等。

  • 总成本:直接成本和间接成本的总和。

例子:使用Python进行采购成本分析

假设我们有以下采购成本数据:

  • 供应商A:原材料成本=100元/件,运输成本=20元/件,管理费用=5000元,仓储费用=1000元

  • 供应商B:原材料成本=120元/件,运输成本=15元/件,管理费用=6000元,仓储费用=1500元

  • 供应商C:原材料成本=110元/件,运输成本=18元/件,管理费用=5500元,仓储费用=1200元

我们可以使用Python的pandas库和numpy库来计算和分析这些成本。


import pandas as pd

import numpy as np



# 定义供应商成本数据

cost_data = pd.DataFrame({

    'supplier': ['A', 'B', 'C'],

    'raw_material_cost_per_unit': [100, 120, 110],

    'transport_cost_per_unit': [20, 15, 18],

    'management_fee': [5000, 6000, 5500],

    'storage_cost': [1000, 1500, 1200]

})



# 定义采购计划数据

procurement_plan = pd.DataFrame({

    'order_quantity': [500, 300, 200],

    'supplier': ['A', 'A', 'A']

})



# 计算每个订单的总成本

def calculate_total_cost(plan, cost_data):

    total_cost = []

    for index, row in plan.iterrows():

        supplier = row['supplier']

        order_quantity = row['order_quantity']

        raw_material_cost_per_unit = cost_data.loc[cost_data['supplier'] == supplier, 'raw_material_cost_per_unit'].values[0]

        transport_cost_per_unit = cost_data.loc[cost_data['supplier'] == supplier, 'transport_cost_per_unit'].values[0]

        management_fee = cost_data.loc[cost_data['supplier'] == supplier, 'management_fee'].values[0]

        storage_cost = cost_data.loc[cost_data['supplier'] == supplier, 'storage_cost'].values[0]

        

        direct_cost = (raw_material_cost_per_unit + transport_cost_per_unit) * order_quantity

        indirect_cost = (management_fee + storage_cost) / len(plan)

        total_cost.append(direct_cost + indirect_cost)

    

    return total_cost



# 计算总成本

procurement_plan['total_cost'] = calculate_total_cost(procurement_plan, cost_data)



# 输出采购计划及其总成本

print(procurement_plan)



# 总成本汇总

total_cost_summary = procurement_plan['total_cost'].sum()

print(f"总成本汇总: {total_cost_summary:.2f} 元")

3.2 采购成本优化

采购成本优化的目标是通过合理的采购策略和供应商管理,降低采购成本。Logility采购管理模块提供了多种成本优化工具和方法,如批量采购、长期合同、供应商谈判等。

批量采购

批量采购可以降低单位成本,提高采购效率。通过分析历史采购数据和未来的采购需求,企业可以确定最优的批量采购策略。

例子:使用Python进行批量采购优化

假设我们有以下数据:

  • 年需求量(D):10000件

  • 每次订货成本(S):500元

  • 每件商品的年持有成本(H):10元

  • 供应商A的批量折扣信息:500件以上,每件98元;1000件以上,每件95元


# 定义参数

D = 10000  # 年需求量

S = 500    # 每次订货成本

H = 10     # 每件商品的年持有成本



# 定义供应商A的批量折扣信息

discount_info = {

    500: 98,

    1000: 95

}



# 计算批量采购的最优批量

def calculate_optimal_batch_quantity(D, S, H, discount_info):

    optimal_quantity = None

    min_total_cost = float('inf')

    

    for quantity, price in discount_info.items():

        EOQ = np.sqrt((2 * D * S) / H)

        if EOQ >= quantity:

            total_cost = (D / EOQ) * S + (EOQ / 2) * H + D * price

            if total_cost < min_total_cost:

                min_total_cost = total_cost

                optimal_quantity = quantity

        else:

            total_cost = (D / quantity) * S + (quantity / 2) * H + D * price

            if total_cost < min_total_cost:

                min_total_cost = total_cost

                optimal_quantity = quantity

    

    return optimal_quantity, min_total_cost



# 计算最优批量

optimal_quantity, min_total_cost = calculate_optimal_batch_quantity(D, S, H, discount_info)

print(f"最优批量采购数量: {optimal_quantity} 件")

print(f"最低总成本: {min_total_cost:.2f} 元")

3.3 供应商谈判

供应商谈判是降低采购成本的有效手段。通过与供应商进行谈判,企业可以争取到更优惠的价格、更好的付款条件等。Logility采购管理模块提供了谈判管理工具,帮助企业记录和管理谈判过程。

谈判管理工具

谈判管理工具通常包括以下几个功能:

  • 记录谈判历史:记录每次谈判的时间、地点、参与人员、谈判结果等信息。

  • 分析谈判效果:通过历史数据,分析谈判效果,优化未来的谈判策略。

  • 生成谈判报告:生成详细的谈判报告,供管理层审阅和决策。

例子:使用Python记录和分析谈判历史

假设我们有以下谈判历史数据:

  • 谈判1:时间=2023-08-01,地点=公司会议室,参与人员=张三、李四、供应商A,结果=每件价格降低2元,交货时间缩短2天

  • 谈判2:时间=2023-08-15,地点=供应商A办公室,参与人员=王五、赵六、供应商A,结果=每件价格降低3元,付款条件放宽5天


import pandas as pd

import sqlite3



# 连接到SQLite数据库

conn = sqlite3.connect('procurement_orders.db')

cursor = conn.cursor()



# 创建谈判历史表

cursor.execute('''

CREATE TABLE IF NOT EXISTS negotiation_history (

    negotiation_id INTEGER PRIMARY KEY,

    negotiation_date DATETIME,

    location TEXT,

    participants TEXT,

    supplier TEXT,

    result TEXT,

    remarks TEXT

)

''')



# 插入初始谈判历史

initial_negotiations = [

    (1, '2023-08-01 10:00:00', '公司会议室', '张三,李四,供应商A', 'A', '每件价格降低2元,交货时间缩短2天', '谈判成功'),

    (2, '2023-08-15 14:00:00', '供应商A办公室', '王五,赵六,供应商A', 'A', '每件价格降低3元,付款条件放宽5天', '谈判成功')

]



cursor.executemany('INSERT INTO negotiation_history (negotiation_id, negotiation_date, location, participants, supplier, result, remarks) VALUES (?, ?, ?, ?, ?, ?, ?)', initial_negotiations)

conn.commit()



# 查询谈判历史

query = "SELECT * FROM negotiation_history"

negotiation_history = pd.read_sql_query(query, conn)



# 输出谈判历史

print(negotiation_history)



# 分析谈判效果

def analyze_negotiation_effect(negotiation_history):

    price_savings = 0

    lead_time_improvement = 0

    payment_terms_improvement = 0

    

    for index, row in negotiation_history.iterrows():

        result = row['result']

        if '每件价格降低' in result:

            price_savings += int(result.split('元')[0].split('降低')[1])

        if '交货时间缩短' in result:

            lead_time_improvement += int(result.split('天')[0].split('缩短')[1])

        if '付款条件放宽' in result:

            payment_terms_improvement += int(result.split('天')[0].split('放宽')[1])

    

    return price_savings, lead_time_improvement, payment_terms_improvement



# 分析谈判效果

price_savings, lead_time_improvement, payment_terms_improvement = analyze_negotiation_effect(negotiation_history)

print(f"总价格节省: {price_savings} 元")

print(f"总交货时间缩短: {lead_time_improvement} 天")

print(f"总付款条件放宽: {payment_terms_improvement} 天")

4. 采购绩效评估

4.1 采购绩效指标

采购绩效评估是衡量采购管理效果的重要手段。Logility采购管理模块提供了多种绩效指标,帮助企业评估采购流程的效率和效果。常见的绩效指标包括采购周期时间、供应商绩效、采购成本节约等。

采购周期时间

采购周期时间是指从采购需求提出到采购完成的总时间。通过缩短采购周期时间,企业可以提高采购效率,减少库存成本。

例子:使用Python计算采购周期时间

假设我们有以下采购订单数据:

  • 订单1:需求日期=2023-08-01,交货日期=2023-09-01

  • 订单2:需求日期=2023-08-05,交货日期=2023-09-05

  • 订单3:需求日期=2023-08-10,交货日期=2023-09-10


import pandas as pd

from datetime import datetime



# 定义采购订单数据

procurement_orders = pd.DataFrame({

    'order_id': [1, 2, 3],

    'demand_date': ['2023-08-01', '2023-08-05', '2023-08-10'],

    'delivery_date': ['2023-09-01', '2023-09-05', '2023-09-10']

})



# 将日期字符串转换为日期对象

procurement_orders['demand_date'] = pd.to_datetime(procurement_orders['demand_date'])

procurement_orders['delivery_date'] = pd.to_datetime(procurement_orders['delivery_date'])



# 计算采购周期时间

procurement_orders['procurement_cycle_time'] = (procurement_orders['delivery_date'] - procurement_orders['demand_date']).dt.days



# 输出采购订单及其周期时间

print(procurement_orders)



# 计算平均采购周期时间

average_cycle_time = procurement_orders['procurement_cycle_time'].mean()

print(f"平均采购周期时间: {average_cycle_time:.2f} 天")

4.2 供应商绩效评估

供应商绩效评估是确保供应链稳定性和可靠性的重要环节。Logility采购管理模块通过多种指标评估供应商的绩效,如交货准时率、质量合格率、响应时间等。

交货准时率

交货准时率是指供应商按时交货的订单数量占总订单数量的比例。通过提高交货准时率,企业可以减少因延迟交货带来的损失。

例子:使用Python计算供应商交货准时率

假设我们有以下订单状态数据:

  • 订单1:交货日期=2023-09-01,实际交货日期=2023-09-01

  • 订单2:交货日期=2023-09-05,实际交货日期=2023-09-06

  • 订单3:交货日期=2023-09-10,实际交货日期=2023-09-10


import pandas as pd

from datetime import datetime



# 定义订单状态数据

order_status = pd.DataFrame({

    'order_id': [1, 2, 3],

    'delivery_date': ['2023-09-01', '2023-09-05', '2023-09-10'],

    'actual_delivery_date': ['2023-09-01', '2023-09-06', '2023-09-10']

})



# 将日期字符串转换为日期对象

order_status['delivery_date'] = pd.to_datetime(order_status['delivery_date'])

order_status['actual_delivery_date'] = pd.to_datetime(order_status['actual_delivery_date'])



# 判断是否按时交货

order_status['on_time_delivery'] = (order_status['actual_delivery_date'] == order_status['delivery_date'])



# 计算交货准时率

on_time_delivery_count = order_status['on_time_delivery'].sum()

total_orders = len(order_status)

on_time_delivery_rate = on_time_delivery_count / total_orders



# 输出订单状态及其是否按时交货

print(order_status)



# 输出交货准时率

print(f"交货准时率: {on_time_delivery_rate:.2%}")

4.3 采购成本节约分析

采购成本节约分析是评估采购策略效果的重要手段。通过比较实际采购成本和预期采购成本,企业可以了解采购成本节约的情况,进一步优化采购策略。

采购成本节约分析方法

采购成本节约分析通常包括以下几个步骤:

  1. 计算预期采购成本:根据历史数据和市场信息,计算预期的采购成本。

  2. 记录实际采购成本:记录每次采购的实际成本。

  3. 计算成本节约:比较预期成本和实际成本,计算成本节约金额。

  4. 生成成本节约报告:生成详细的成本节约报告,供管理层审阅和决策。

例子:使用Python进行采购成本节约分析

假设我们有以下数据:

  • 预期采购成本:1000000元

  • 实际采购成本:900000元


# 定义预期采购成本和实际采购成本

expected_cost = 1000000  # 预期采购成本

actual_cost = 900000     # 实际采购成本



# 计算成本节约

cost_savings = expected_cost - actual_cost



# 计算成本节约率

cost_savings_rate = cost_savings / expected_cost



# 输出成本节约和成本节约率

print(f"成本节约: {cost_savings:.2f} 元")

print(f"成本节约率: {cost_savings_rate:.2%}")



# 生成成本节约报告

cost_savings_report = pd.DataFrame({

    'metric': ['预期采购成本', '实际采购成本', '成本节约', '成本节约率'],

    'value': [expected_cost, actual_cost, cost_savings, cost_savings_rate]

})



# 输出成本节约报告

print(cost_savings_report)

通过以上步骤,Logility采购管理模块可以帮助企业实现采购计划的自动化、优化库存、选择最优供应商、生成和管理采购订单、控制采购成本,并评估采购绩效。这些功能不仅提高了采购管理的效率,还为企业带来了显著的成本节约和供应链稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值