package cn.estsh.i3plus.ext.mes.api.busi.bu;

import java.util.List;

/**
 * @PROJECT_NAME: i3plus-mes-panasonic-bu
 * @DESCRIPTION:
 * @USER: xinwang.yi
 * @DATE: 2022-11-01 15:40
 */
public interface IBuRecordChangeDataService {

    /**
     * 表字段修改记录
     * @param menuType 菜单类型
     * @param sourceData 源数据
     * @param newData 新数据
     * @param clazz 反射类
     * @param partNo 物料编码
     * @param partName 物料名称
     * @param organizeCode 组织代码
     * @param <T>
     */
    <T> void doRecordChangeData(Integer menuType , T sourceData, T newData , Class clazz, String partNo, String partName, String organizeCode, String modifyDatetime);

    /**
     * 表字段修改记录
     * @param menuType 菜单类型
     * @param sourceData 源数据
     * @param newData 新数据
     * @param clazz 反射类
     * @param partNo 物料编码
     * @param partName 物料名称
     * @param organizeCode 组织代码
     * @param fields 字段
     * @param <T>
     */
    <T> void doRecordChangeData(Integer menuType , T sourceData, T newData , Class clazz, String partNo, String partName, String organizeCode, List<String> fields, String modifyDatetime);

    /**
     * 表字段修改记录
     * @param menuType 菜单类型
     * @param sourceData 源数据
     * @param newData 新数据
     * @param clazz 反射类
     * @param partNo 物料编码
     * @param partName 物料名称
     * @param organizeCode 组织代码
     * @param <T>
     */
    <T> void doRecordChangeData(Integer menuType , T sourceData, T newData , Class clazz, String partNo, String partName, String itemPartNo, String itemPartName, String processCode, String processName, String organizeCode, String modifyDatetime);
}
