import request from '@/utils/request';

/**
 * 获取项目详情
 * @param {*} params
 * @returns
 */
export const getProjectDetailApi = (projectId) => request({
  url: `/cbProjectRecord/getCbProjectHeadInfo/${projectId}`,
  method: "get",
  params: {}
});

//校验项目编码是否存在
export function checkProjectCodeExist(data) {
  return request({
    url: '/cbProjectRecord/checkProjectCodeExist',
    method: 'get',
    params: data,
  });
}
//新增项目
export function addProject(data) {
  return request({
    url: '/cbProjectRecord/addProject',
    method: 'post',
    data: data,
  });
}
//修改项目
export function editProjectInfo(data) {
  return request({
    url: '/cbProjectRecord/editProjectInfo',
    method: 'PUT',
    data: data,
  });
}
//删除项目
export function batchDeleteProject(ids) {
  return request({
    url: '/cbProjectRecord/batchDeleteProject/' + ids,
    method: 'Delete',
  });
}
//新增新阶段项目
export function addNewStageProject(data) {
  return request({
    url: '/cbProjectRecord/addNewStageProject',
    method: 'POST',
    data: data,
  });
}
//获取当前项目文件上传
export function getProjectFileUploadDetail(projectId) {
  return request({
    url: '/cbProjectFile/getProjectFileUploadDetail/' + projectId,
    method: 'get',
  });
}

//根据项目文件导入数据
export function importData(projectId) {
  return request({
    url: '/cbProjectRecord/importData/' + projectId,
    method: 'post',
  });
}

//获取草稿箱列表
export function getDraftDialogList(data) {
  return request({
    url: '/cbProjectRecord/getDraftDialogList',
    method: 'get',
    params: data
  });
}

//上传文件
export function uploadCbProjectFile(data) {
  return request({
    url: '/cbProjectFile/uploadCbProjectFile',
    method: 'post',
    data
  });
}
//删除文件
export function deleteCbProjectFile(data) {
  return request({
    url: '/cbProjectFile/deleteCbProjectFile',
    method: 'Delete',
    data: data
  });
}

//删除草稿
export function deleteDraft(projectId) {
  return request({
    url: '/cbProjectRecord/deleteDraft/' + projectId,
    method: 'Delete',
  });
}

//查询当前项目可删除成本阶段
export function getProjectCbStageNotDraft(relatedId) {
  return request({
    url: '/cbProjectRecord/getProjectCbStageNotDraft/' + relatedId,
    method: 'get',
  });
}

//查询当前项目可删除成本阶段
export function getProjectList(data) {
  return request({
    url: '/cbProjectRecord/getProjectList',
    method: 'get',
    params: data
  });
}

//查询当前项目可删除成本阶段
export function getProjectHistoryInfo(data) {
  return request({
    url: '/cbProjectRecord/getProjectHistoryInfo',
    method: 'get',
    params: data
  });
}

//盈亏分析对比 左侧菜单
export const getProfitLossMenuTreeApi = (params = {}) => request({
  url: "/cbSummary/cbNameList",
  method: "get",
  params
});

//盈亏分析对比 数据列表
export function getAnalysislist(data) {
  return request({
    url: '/cb/gain/loss/analysis/list',
    method: 'get',
    params: data
  });
}
// 措施项目 左侧菜单
export function getMeasureslist(projectId) {
  return request({
    url: '/cb/cost/measures/type/' + projectId,
    method: 'get',
  });
}
//措施费列表
export function getCostMeasureslist(data) {
  return request({
    url: '/cb/cost/measures/list',
    method: 'get',
    params: data
  });
}

//措施费汇总
export function getSummarydata(data) {
  return request({
    url: '/cb/cost/measures/summary/data',
    method: 'post',
    data: data
  });
}
//措施费推送工程量
export function pushProjectvolume(data) {
  return request({
    url: '/cb/cost/measures/push/project/volume',
    method: 'post',
    data: data
  });
}

//措措施费-获取上一次推送工程量
export function projectVolume(data) {
  return request({
    url: '/cb/cost/measures/last/project/volume/' + data,
    method: 'GET',
  });
}

//措施费-获取实际成本月份列表
export const getActualMonthsApi = (params = {}) => request({
  url: '/cb/cost/measures/actual/months',
  method: 'get',
  params
});

//批量保存或修改每月措施费
export function saveBatch(data) {
  return request({
    url: '/cb/cost/measures/saveBatch',
    method: 'post',
    data: data,
  });
}




// 工料汇总

/**
 * 获取工料汇总左侧菜单
 * @param {*} params
 * @returns
 */
export const getFeedSummaryMenuTreeApi = (params = {}) => request({
  url: "/cb/quantity/summary/subjectTree",
  method: "get",
  params
});

/**
 * 实体工程材料-单位换算提示
 * @param {*} params
 * @returns
 */
export const getFeedSummaryConversionNotice = (params = {}) => request({
  url: "/cb/quantity/summary/conversionNotice",
  method: "get",
  params
});

/**
 * 获取已记录月份集合
 * @param {*} params
 * @returns
 */
export const getFeedSummaryMonthListApi = (params = {}) => request({
  url: "/cb/quantity/summary/monthList",
  method: "get",
  params
});

/**
 * 获取科目月份列表
 * @param {{
 * cbSubjectName : string;
 * recordDate : string;
 * projectId : number;
 * cbStage : number
 * }} params
 * @returns
 */
export const getFeedSummaryListApi = (params = {}) => request({
  url: "/cb/quantity/summary/subjectList",
  method: "get",
  params
});

/**
 * 更新月成本信息
 * @param {*} data
 * @returns
 */
export const updateFeedSummaryRowsApi = (data) => request({
  url: "/cb/quantity/summary/updateActual",
  method: "put",
  data
});

/**
 * 推送工程用量
 * @param {*} data
 * @returns
 */
export const pushFeedSummaryRowsApi = (data) => request({
  url: "/cb/quantity/summary/pushData",
  method: "put",
  data
});



//工程项目信息
export const getCbProjectInfo = (relatedId) => request({
  url: '/cbProjectRecord/getCbProjectInfo/' + relatedId,
  method: "get",
});

//直接费菜单
export const getCbDirectExpenseMenuTreeApi = (relatedId) => request({
  url: '/cbDirectExpense/getMenuList/' + relatedId,
  method: "get",
});

//直接费数据
export const getCbDirectExpenseList = (relatedId) => request({
  url: '/cbDirectExpense/getDataDetail/' + relatedId,
  method: "get",
});

//新增直接费费用项
export function cbDirectExpenseAdd(data) {
  return request({
    url: '/cbDirectExpense/addExpense',
    method: 'post',
    data: data,
  });
}

//删除直接费费用项
export function cbDirectExpenseDelete(ids) {
  return request({
    url: '/cbDirectExpense/deleteExpense/' + ids,
    method: 'Delete',
  });
}

// 其他项目

//其他项目左侧菜单
export const getProjectOtherMenuTreeApi = (relatedId) => request({
  url: '/cb/projectOther/type/' + relatedId,
  method: "get",
});

//其他费用-费用汇总
export const getProjectOtherStatistics = (relatedId) => request({
  url: '/cb/projectOther/statistics/' + relatedId,
  method: "get",
});

//其他费用-其他费用列表
export const getProjectOtherList = (params = {}) => request({
  url: "/cb/projectOther/list",
  method: "get",
  params
});

// 现场经费

/**
 * 获取现场经费左侧菜单
 * @param {*} params
 * @returns
 */
export const getFieldExpensesMenuTreeApi = (projectId) => request({
  url: `/cbSceneExpenseChildren/getMenuList/${projectId}`,
  method: "get",
  params: {}
});

/**
 * 获取现场经费统计月份
 * @param {*} params
 * @returns
 */
export const getFieldExpensesMonthListApi = (params = {}) => request({
  url: ``,
  method: "get",
  params
});

/**
 * 获取现场经费列表
 * @param {*} params
 * @returns
 */
export const getFieldExpensesListApi = (projectId) => request({
  url: `/CbProjectExpenseSummary/getCbSceneExpenseSummaryData/${projectId}`,
  method: "get",
  params: {}
});

/**
 * 获取现场经费 除开现场经费汇总之外的列表
 * @param {*} params
 * @returns
 */
export const getFieldExpensesOtherListApi = (params = {}) => request({
  url: `/cbSceneExpenseChildren/getChildrenData`,
  method: "get",
  params
});


// 成本汇总

/**
 * 成本汇总左侧一级菜单
 * @param {*} params 
 * @returns 
 */
export const getCostSummaryMenuTreeApi = (params = {}) => request({
  url: "/cbSummary/cbNameList",
  method: "get",
  params
});

/**
 * 成本汇总已添加成本月份
 * @param {*} params 
 * @returns 
 */
export const getCostSummaryMonthListApi = (params = {}) => request({
  url: "/cbSummary/expenseDateList",
  method: "get",
  params
});

/**
 * 获取成本汇总数据列表 懒加载
 * @param {*} params 
 * @returns 
 */
export const getCostSummaryListApi = (params = {}) => request({
  url: "/cbSummary/list",
  method: "get",
  params
});

/**
 * 获取全量成本汇总列表
 * @param {*} params 
 * @returns 
 */
export const getCostSummaryAllListApi = (params = {}) => request({
  url: "/cbSummary/allList",
  method: "get",
  params
});

/**
 * 锁定成本前提示未填项
 * @param {*} params 
 * @returns 
 */
export const validateBeforeCostLockApi = (params = {}) => request({
  url: "/cbSummary/getUnfilled",
  method: "get",
  params
});

/**
 * 确定锁定成本
 * @param {*} data 
 * @returns 
 */
export const setCostLockApi = (data = {}) => request({
  url: "/cbSummary/lockActual",
  method: "post",
  data
});

/**
 * 获取已经锁定成本月份
 * @param {*} params 
 * @returns 
 */
export const getLockMonthListApi = (params = {}) => request({
  url: "/cbSummary/expenseDateList/locked",
  method: "get",
  params
});

/**
 * 成本汇总导出
 * @param {*} data 
 * @returns 
 */
export const exportCostLockExcelApi = (data = {}) => request({
  url: "/cbSummary/export",
  method: "post",
  data,
  isFile: true,
  responseType: "blob"
});

/**
 * 编辑成本 保存成本
 * @param {*} data 
 * @returns 
 */
export const saveCostModifyApi = (data = {}) => request({
  url: "/cbSummary/editActual",
  method: "put",
  data
});
