import {
    AxiosRequestData,
    AxiosRequestFile
} from "@/data/axios_request";

import { networkUrl } from '@/data/global_configuration'
import cache from "@/utils/cache";

/**
 * 用户手机号查询企业列表
 * @param {String} entTaxId 企业税号
 * @param {String} entName 企业名称
 * @param {Number} serviceStatus 企业服务状态  1：待初始化，2：初始化成功 3：服务状态有效（开票判断）4.欠费等
 * @param {Number} pageNum 当前页码  默认为1
 * @param {String} hasSigned 签约状态： 已签约 true 未签约 false
 * @param {Number} pageSize 每页数量  默认为10
 */
function EntInfoByMobile({ entTaxId = null, entName = null, serviceStatus = -1, hasSigned = null, pageNum = 1, pageSize = 10 }) {
    const url = '/sys/entInfo/findPageByMobile';
    const token = cache.getToken();
    let mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        pageNum: pageNum,
        pageSize: pageSize,
        reqChannel: 4,
        userMobile: mobile,
        hasSigned: hasSigned
    }
    if (entTaxId != null && entTaxId != '') {
        args.entTaxId = entTaxId;
    }
    if (entName != null && entName != '') {
        args.entName = entName;
    }
    if (serviceStatus != -1 && serviceStatus != '') {
        args.serviceStatus = serviceStatus;
    }

    console.log('用户手机号查询企业列表 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('用户手机号查询企业列表 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 企业设备信息查询
 * @param {String} entTaxId 企业税号
 */
function EntDeviceQuery(entTaxId = null) {
    const url = '/sys/entDevice/devicesStatus';
    const token = cache.getToken();
    let args = {
        entTaxId: entTaxId,
    }
    console.log('企业设备信息查询 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('企业设备信息查询 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 企业设备信息查询
 * @param {String} entTaxId 企业税号
 */
function EntFindDevice(entTaxId = null) {
    const url = '/sys/entDevice/findDevices';
    const token = cache.getToken();
    let args = {
        entTaxId: entTaxId,
    }
    console.log('企业设备信息查询 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('企业设备信息查询 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 分页查询托管设备
 * @param {String} entTaxId 企业税号
 * @param {string} entName 企业名称
 * @param {string} initStatus 上架状态：1：未初始化  2：初始化成功 3：初始化中 4初始化失败 5：上架成功  6：已下架
 * @param {string} deviceType 设备类型
 * @param {string} taxDiscId 设备盘号
 * @param {string} ispId 服务商id
 */
function findEntInitDevice({ entTaxId = '', entName = '', initStatus = '', deviceType = '', taxDiscId = '', ispId = '', pageNum = 1, pageSize = 10 }) {
    const url = '/sys/entDevice/findPage';
    const token = cache.getToken();
    let args = {
        pageNum: pageNum,
        pageSize: pageSize,
    }
    if (entTaxId) {
        args.entTaxId = entTaxId;
    }
    if (entName) {
        args.entName = entName;
    }
    if (initStatus) {
        args.initStatus = initStatus;
    }
    if (deviceType) {
        args.deviceType = deviceType;
    }
    if (taxDiscId) {
        args.taxDiscId = taxDiscId;
    }
    if (ispId) {
        args.ispId = ispId;
    }
    console.log('分页查询托管设备 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('分页查询托管设备 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 获取企业发票领用存信息
 */
function GetEntPurchaseQuery(entTaxId, deviceType, taxDiscId) {
    const url = "/sys/invoiceExt/purchaseQuery";
    let token = cache.getToken();
    let args = {
        entTaxId: entTaxId,
        deviceType: deviceType,
        taxDiscId: taxDiscId
    };
    console.log('企业发票领用存信息 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2)
            .then(val => {
                console.log('企业发票领用存信息 结果：');
                console.log(val);
                if (val.code == 0) {
                    resolve(val);
                } else {
                    reject(val.msg);
                }
            })
    });
}

/**
 * 获取批量企业上架模板文件下载地址
 */
function GetBatchEntInitTemplateUrl() {
    return networkUrl() + '/ext/batch_ent_init_template.xlsx'
}

/**
 * 企业税盘上架
 * @param {String} isvPlatform  上架选择的服务模式
 * @param {String} taxToken 激活码
 * @param {String} taxMachineNo 税控服务器编号
 * @param {String} devicePos 上架设备的端口位置
 * @param {String} deviceType 上架的设备类型 默认的开票设备  1：软证书  2：税控盘  3：金税盘  4：税控ukey  5：税控服务器
 * @param {String} defaultInvoiceDevice 默认的开票设备  1：软证书  2：税控盘  3：金税盘  4：税控ukey  5：税控服务器
 * @param {String} entTaxId 税号
 * @param {String} entName 企业名称
 * @param {String} entShortName 企业简称  最多9个字符
 * @param {String} entType 企业类型 一般纳税人：1; 小规模纳税人：2; 起征点以下纳税人：3
 * @param {String} entAddress 开票信息公司地址
 * @param {String} provinceCity 企业所属省市  格式示例：北京市-北京市   四川省-成都市
 * @param {String} entContactPerson 企业联系人
 * @param {String} entPhone 企业电话
 * @param {String} bankName 企业开户行
 * @param {String} bankAccountNumber 企业银行账号
 * @param {String} reserveMrName  企业管理者姓名
 * @param {String} reserveMrMobile 企业管理者电话
 * @param {String} authProtocol 企业授权书
 * @param {String} businessLicenseImg 企业营业执照
 * @param {String} availableTaxes 可用税率（多个多个以英文状态下逗号分割）第一个为默认开票税率
 * @param {String} payees 收款人（只有姓名，多个以英文状态下逗号分割）
 * @param {String} reviewers 审核者（只有姓名，多个以英文状态下逗号分割）
 * @param {String} defaultTaxCode 开票默认税收编码
 * @param {String} defaultItemName 开票默认项目名
 * @param {String} taxDiscId 税盘id
 * @param {String} entTaxOfficeCode 税局
 * @param {String} keyPwd 口令密码
 * @param {String} digitalCertPwd 数字证书密码
 * @param {String} rootLoginPwd 管理员登陆密码
 */
function EntTaxDiskInit({
    isvPlatform, taxToken, taxMachineNo, devicePos, deviceType, defaultInvoiceDevice,
    entTaxId, entName, entShortName, entType, entAddress, provinceCity, entContactPerson, entPhone,
    bankName, bankAccountNumber, reserveMrName, reserveMrMobile, authProtocol, businessLicenseImg,
    availableTaxes, payees, reviewers, defaultTaxCode, defaultItemName,
    taxDiscId, entTaxOfficeCode, keyPwd, digitalCertPwd, rootLoginPwd }) {
    const url = '/sys/entInfo/postInit';
    const token = cache.getToken();
    let mobile = JSON.parse(cache.getLocal("user")).account;

    // 创建 FormData
    let formData = new FormData();
    // 平台信息
    formData.append('isvPlatform', isvPlatform);
    formData.append('taxToken', taxToken);
    formData.append('taxMachineNo', taxMachineNo);
    formData.append('devicePos', devicePos);
    formData.append('deviceType', deviceType);
    formData.append('defaultInvoiceDevice', defaultInvoiceDevice);
    // 企业信息
    formData.append('entTaxId', entTaxId);
    formData.append('entName', entName);
    formData.append('entShortName', entShortName);
    formData.append('entType', entType);
    formData.append('entAddress', entAddress);
    formData.append('provinceCity', provinceCity);
    formData.append('entContactPerson', entContactPerson);
    formData.append('entPhone', entPhone);
    formData.append('bankName', bankName);
    formData.append('bankAccountNumber', bankAccountNumber);
    formData.append('reserveMrName', reserveMrName);
    formData.append('reserveMrMobile', reserveMrMobile);
    formData.append('authProtocol', authProtocol);
    formData.append('businessLicenseImg', businessLicenseImg);
    // 发票相关信息
    formData.append('availableTaxes', availableTaxes);
    formData.append('payees', payees);
    formData.append('reviewers', reviewers);
    formData.append('defaultTaxCode', defaultTaxCode);
    formData.append('defaultItemName', defaultItemName);
    // 税盘信息
    formData.append('taxDiscId', taxDiscId);
    formData.append('entTaxOfficeCode', entTaxOfficeCode);
    formData.append('machineId', 'web-test');
    formData.append('entPwdInfoVO.keyPwd', keyPwd);
    formData.append('entPwdInfoVO.digitalCertPwd', digitalCertPwd);
    formData.append('entPwdInfoVO.rootLoginPwd', rootLoginPwd);
    // 当前操作账户信息
    formData.append('userMobile', mobile); // 服务商用户手机号
    formData.append('reqChannel', 4);

    console.log('企业税盘上架 参数：');
    console.log(formData);
    return new Promise(function (resolve, reject) {
        AxiosRequestFile(url, token, formData).then(val => {
            console.log('企业税盘上架 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 企业批量上架上传文件
 * @param {File} file 上传文件
 */
function MultipleEntInitUploadFile(file) {
    const url = '/sys/batchInit/save';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;

    const formData = new FormData();
    formData.append('mobile', mobile);
    formData.append('batchFile', file);

    console.log('企业批量上架上传文件 参数：');
    console.log(formData);
    return new Promise(function (resolve, reject) {
        AxiosRequestFile(url, token, formData).then(val => {
            console.log('企业批量上架上传文件 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
* 批量上架文件查询
* @param {String} fileName 上传文件名  模糊查询
* @param {Number} status 文件处理状态，1：文件处理中   2：文件处理失败  3：文件处理成功
* @param {String} uploadDateBegin 上传文件开始时间
* @param {String} uploadDateEnd 上传文件结束时间
* @param {Number} pageNum 当前页码
* @param {Number} pageSize 每页数量
*/
function UploadFileSearch({ fileName = '', status = -1, uploadDateBegin = '', uploadDateEnd = '', pageNum = 1, pageSize = 10 }) {
    const url = '/sys/batchInit/findPageBatchs';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        pageNum: pageNum,
        pageSize: pageSize,
        mobile: mobile
    }
    if (fileName != '') {
        args.fileName = fileName;
    }
    if (status != -1 && status != '') {
        args.status = status;
    }
    if (uploadDateBegin != '') {
        args.uploadDateBegin = uploadDateBegin;
    }
    if (uploadDateEnd != '') {
        args.uploadDateEnd = uploadDateEnd;
    }

    console.log('批量上架文件查询 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('批量上架文件查询 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 获取批量上架提交记录
 * @param {String} batchId 批量上传记录id
 * @param {Number} status  提交状态1：初始保存  2：准备提交 3：提交中  4：提交成功  5：提交失败
 * @param {String} entTaxId 上架的企业税号
 * @param {String} entName 上架的企业名称
 * @param {Number} entInitDevice 上架的设备 1：软证书  2：税控盘  3：金税盘  4：税控ukey  5：税控服务器
 * @param {Number} pageNum 当前页码
 * @param {Number} pageSize 每页数量
 */
function GetBatchInitEntList({ batchId, status = -1, entTaxId = '', entName = '', entInitDevice = -1, pageNum = 1, pageSize = 10 }) {
    const url = '/sys/batchInit/findPageItems';
    const token = cache.getToken();
    let args = {
        batchId: batchId,
        pageNum: pageNum,
        pageSize: pageSize,
    }
    if (status != -1 && status != '') {
        args.status = status;
    }
    if (entTaxId != '') {
        args.entTaxId = entTaxId;
    }
    if (entName != '') {
        args.entName = entName;
    }
    if (entInitDevice != -1 && entInitDevice != '') {
        args.entInitDevice = entInitDevice;
    }

    console.log('获取批量上架提交记录 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('获取批量上架提交记录 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 提交批量上架
 * @param {String} batchId 批次id
 * @param {Array} recordIds 提交记录id
 */
function CommitBatchInit(batchId, recordIds) {
    const url = '/sys/batchInit/commit';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        batchId: batchId,
        recordIds: recordIds,
        mobile: mobile,
    }
    console.log('提交批量上架 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1).then(val => {
            console.log('提交批量上架 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 保存批量上架文件
 * @param {String} recordId 上架企业记录id
 * @param {File} businessLicenseImg 营业执照文件
 * @param {File} authProtocol 授权协议文件
 */
function SaveBatchInitFile(recordId, businessLicenseImg, authProtocol) {
    const url = '/sys/batchInit/saveQualityFile';
    const token = cache.getToken();

    const formData = new FormData();
    formData.append('recordId', recordId);
    formData.append('businessLicenseImg', businessLicenseImg);
    formData.append('authProtocol', authProtocol);

    console.log('保存批量上架文件 参数：');
    console.log(formData);
    return new Promise(function (resolve, reject) {
        AxiosRequestFile(url, token, formData).then(val => {
            console.log('保存批量上架文件 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 修改批量上架的企业的信息
 * @param {String} recordId 上架记录id
 * @param {Object} updateInitInfoVO 提交记录id
 */
function UpdatebatchInitItem(recordId, updateInitInfoVO) {
    const url = '/sys/batchInit/updateItem';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        recordId: recordId,
        updateInitInfoVO: updateInitInfoVO,
        mobile: mobile,
    }
    console.log('修改批量上架的企业的信息 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1).then(val => {
            console.log('修改批量上架的企业的信息 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 批量客户文件提交保存
 * @param {Array} files 文件数组
 */
function BatchCustomerFileSave(files) {
    const url = '/sys/batchCustomer/save';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;

    var formData = new FormData();
    formData.append('mobile', mobile);
    files.forEach(function (file) {
        formData.append('batchFiles', file);
    })

    console.log('批量客户文件提交保存 参数：');
    console.log(formData);
    console.log(formData.getAll("batchFiles"));
    return new Promise(function (resolve, reject) {
        AxiosRequestFile(url, token, formData).then(val => {
            console.log('批量客户文件提交保存 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
* 批量客户文件上传记录查询
* @param {String} fileName 上传文件名  模糊查询
* @param {Number} status 文件处理状态，1：文件处理中   2：文件处理失败  3：文件处理成功
* @param {String} uploadDateBegin 上传文件开始时间
* @param {String} uploadDateEnd 上传文件结束时间
* @param {Number} pageNum 当前页码
* @param {Number} pageSize 每页数量
*/
function BatchCustomerUploadFileSearch({ fileName = '', status = -1, uploadDateBegin = '', uploadDateEnd = '', pageNum = 1, pageSize = 10 }) {
    const url = '/sys/batchCustomer/findPageBatchs';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        pageNum: pageNum,
        pageSize: pageSize,
        mobile: mobile
    }
    if (fileName != '') {
        args.fileName = fileName;
    }
    if (status != -1 && status != '') {
        args.status = status;
    }
    if (uploadDateBegin != '') {
        args.uploadDateBegin = uploadDateBegin;
    }
    if (uploadDateEnd != '') {
        args.uploadDateEnd = uploadDateEnd;
    }

    console.log('批量客户文件上传记录查询 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('批量客户文件上传记录查询 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 获取批量客户保存记录
 * @param {String} batchId 批量上传记录id
 * @param {Number} status  提交状态1：初始保存  2：准备提交 3：提交中  4：提交成功  5：提交失败
 * @param {String} customerEntTaxId 客户税号
 * @param {String} customerName 客户名称
 * @param {Number} pageNum 当前页码
 * @param {Number} pageSize 每页数量
 */
function GetBatchCustomerFileItems({ batchId, status = -1, customerEntTaxId = '', customerName = '', pageNum = 1, pageSize = 10 }) {
    const url = '/sys/batchCustomer/findPageItems';
    const token = cache.getToken();
    let args = {
        batchId: batchId,
        pageNum: pageNum,
        pageSize: pageSize,
    }
    if (status != -1 && status != '') {
        args.status = status;
    }
    if (customerEntTaxId != '') {
        args.customerEntTaxId = customerEntTaxId;
    }
    if (customerName != '') {
        args.customerName = customerName;
    }

    console.log('获取批量客户保存记录 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('获取批量客户保存记录 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 批量客户记录多文件提交保存
 * @param {String} batchIds 文件的batchId集合
 */
function BatchCustomerFilesCommit(batchIds) {
    const url = '/sys/batchCustomer/commit';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        batchIds: batchIds,
        commitFlag: 1, // 1：勾选多个文件一起提交；2：单个文件里面勾选记录提交
        mobile: mobile,
    }
    console.log('批量客户记录多文件提交保存 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1).then(val => {
            console.log('批量客户记录多文件提交保存 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 批量客户记录文件中客户提交保存
 * @param {Array} recordIds 提交记录id
 */
function BatchCustomerFileItemsCommit(recordIds) {
    const url = '/sys/batchCustomer/commit';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        recordIds: recordIds,
        commitFlag: 2, // 1：勾选多个文件一起提交；2：单个文件里面勾选记录提交
        mobile: mobile,
    }
    console.log('批量客户记录文件中项目提交保存 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1).then(val => {
            console.log('批量客户记录文件中项目提交保存 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 批量商品文件提交保存
 * @param {Array} files 文件数组
 */
function BatchProductFileSave(files) {
    const url = '/sys/batchProduct/save';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;

    var formData = new FormData();
    formData.append('mobile', mobile);
    files.forEach(function (file) {
        formData.append('batchFiles', file);
    })

    console.log('批量商品文件提交保存 参数：');
    console.log(formData);
    console.log(formData.getAll("batchFiles"));
    return new Promise(function (resolve, reject) {
        AxiosRequestFile(url, token, formData).then(val => {
            console.log('批量商品文件提交保存 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
* 批量商品文件上传记录查询
* @param {String} entTaxId 企业税号
* @param {String} fileName 上传文件名  模糊查询
* @param {Number} status 文件处理状态，1：文件处理中   2：文件处理失败  3：文件处理成功
* @param {String} uploadDateBegin 上传文件开始时间
* @param {String} uploadDateEnd 上传文件结束时间
* @param {Number} pageNum 当前页码
* @param {Number} pageSize 每页数量
*/
function BatchProductUploadFileSearch({ entTaxId = '', fileName = '', status = -1, uploadDateBegin = '', uploadDateEnd = '', pageNum = 1, pageSize = 10 }) {
    const url = '/sys/batchProduct/findPageBatchs';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        pageNum: pageNum,
        pageSize: pageSize,
        mobile: mobile
    }
    if (entTaxId != '') {
        args.entTaxId = entTaxId;
    }
    if (fileName != '') {
        args.fileName = fileName;
    }
    if (status != -1 && status != '') {
        args.status = status;
    }
    if (uploadDateBegin != '') {
        args.uploadDateBegin = uploadDateBegin;
    }
    if (uploadDateEnd != '') {
        args.uploadDateEnd = uploadDateEnd;
    }

    console.log('批量商品文件上传记录查询 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('批量商品文件上传记录查询 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 获取批量商品保存记录
 * @param {String} batchId 批量上传记录id
 * @param {Number} status  提交状态1：初始保存  2：准备提交 3：提交中  4：提交成功  5：提交失败
 * @param {String} productName 商品名称
 * @param {Number} pageNum 当前页码
 * @param {Number} pageSize 每页数量
 */
function GetBatchProductFileItems({ batchId, status = -1, productName = '', pageNum = 1, pageSize = 10 }) {
    const url = '/sys/batchProduct/findPageItems';
    const token = cache.getToken();
    let args = {
        batchId: batchId,
        pageNum: pageNum,
        pageSize: pageSize,
    }
    if (status != -1 && status != '') {
        args.status = status;
    }
    if (productName != '') {
        args.productName = productName;
    }

    console.log('获取批量商品保存记录 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 2).then(val => {
            console.log('获取批量商品保存记录 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 批量商品记录多文件提交保存
 * @param {String} batchIds 文件的batchId集合
 */
function BatchProductFilesCommit(batchIds) {
    const url = '/sys/batchProduct/commit';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        batchIds: batchIds,
        commitFlag: 1, // 1：勾选多个文件一起提交；2：单个文件里面勾选记录提交
        mobile: mobile,
    }
    console.log('批量商品记录多文件提交保存 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1).then(val => {
            console.log('批量商品记录多文件提交保存 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 批量商品记录文件中商品提交保存
 * @param {Array} recordIds 提交记录id
 */
function BatchProductFileItemsCommit(recordIds) {
    const url = '/sys/batchProduct/commit';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        recordIds: recordIds,
        commitFlag: 2, // 1：勾选多个文件一起提交；2：单个文件里面勾选记录提交
        mobile: mobile,
    }
    console.log('批量商品记录文件中商品提交保存 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1).then(val => {
            console.log('批量商品记录文件中商品提交保存 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 企业设备终端同步
 * @param {String} entTaxId 企业税号
 * @param {String} deviceType 设备类型
 * @param {String} taxDiscId 盘号
 */
function EntDeviceSync(entTaxId, deviceType, taxDiscId) {
    const url = '/sys/entInfo/syncDevices';
    const token = cache.getToken();
    let args = {
        entTaxId: entTaxId,
        deviceType: deviceType,
        taxDiscId: taxDiscId,
        reqChannel: 4
    }
    console.log('企业设备终端同步 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1).then(val => {
            console.log('企业设备终端同步 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

/**
 * 退服务下架托管设备
 * @param {String} entTaxId 企业税号
 * @param {String} deviceType 设备类型
 * @param {String} taxDiscId 盘号
 * @param {string} remark 备注
 */
function removeEntInitDevice({ entTaxId, deviceType, taxDiscId, remark }) {
    const url = '/sys/entDevice/unShelve';
    const token = cache.getToken();
    const mobile = JSON.parse(cache.getLocal("user")).account;
    let args = {
        entTaxId: entTaxId,
        deviceType: deviceType,
        taxDiscId: taxDiscId,
        remark: remark,
        mobile: mobile,
        reqChannel: 4
    }
    console.log('退服务下架托管设备 参数：');
    console.log(args);
    return new Promise(function (resolve, reject) {
        AxiosRequestData(url, token, args, false, 1).then(val => {
            console.log('退服务下架托管设备 结果：');
            console.log(val);
            if (val.code == 0) {
                resolve(val);
            } else {
                reject(val.msg);
            }
        });
    })
}

export {
    EntInfoByMobile,
    EntDeviceQuery,
    EntFindDevice,
    findEntInitDevice,
    GetEntPurchaseQuery,
    GetBatchEntInitTemplateUrl,
    EntTaxDiskInit,
    MultipleEntInitUploadFile,
    UploadFileSearch,
    GetBatchInitEntList,
    CommitBatchInit,
    SaveBatchInitFile,
    UpdatebatchInitItem,
    BatchCustomerFileSave,
    BatchCustomerUploadFileSearch,
    GetBatchCustomerFileItems,
    BatchCustomerFilesCommit,
    BatchCustomerFileItemsCommit,
    BatchProductFileSave,
    BatchProductUploadFileSearch,
    GetBatchProductFileItems,
    BatchProductFilesCommit,
    BatchProductFileItemsCommit,
    EntDeviceSync,
    removeEntInitDevice
}
