import { post, get, del, put, uploadFile } from '../request' /** * 新增工作票申请 * @param {Object} data - 工作票数据 * @param {Number} data.projectId - 所属项目ID(必填) * @param {String} data.workLocation - 作业地点 * @param {Number} data.supervisorId - 作业负责人ID * @param {String} data.supervisorName - 作业负责人姓名 * @param {String} data.supervisorPosition - 作业负责人职位 * @param {String} data.workContent - 作业内容 * @param {String} data.riskType - 风险类型(如:高风险、中风险、低风险) * @param {String} data.workStartTime - 作业开始时间(格式:yyyy-MM-dd HH:mm:ss) * @param {String} data.workEndTime - 作业结束时间(格式:yyyy-MM-dd HH:mm:ss) * @param {Array} data.safetyMeasuresList - 安全措施列表 * @param {Array} data.qualificationList - 作业班成员资质列表 * @param {String} data.needMonitoringCamera - 是否需申领移动监控球机("0"否,"1"是) * @param {Number} data.cameraApplicationId - 监控球机申请ID(如果需要监控球机时填写) * @param {String} data.remark - 备注 * @returns {Promise} 返回工作票ID */ export function createWorkTicket(data) { return post('/manage/contractor/workTicket', data) } /** * 出入证申请 * @param {Object} data - 出入证申请数据 * @returns {Promise} */ export function applyAccessPermit(data) { return post('/manage/contractor/accessPermit', data) } /** * 新增工作计划 * @param {Object} data - 工作计划数据 * @returns {Promise} */ export function createWorkPlan(data) { return post('/manage/contractor/workPlan', data) } /** * 球机申领新增接口 * @param {Object} data - 球机申领数据 * @param {Number} data.projectId - 项目ID(必填) * @param {Number} data.needCameraCnt - 申领数量(必填,必须大于0) * @param {String} data.installationLocation - 安装位置(必填) * @param {String} data.contactPerson - 联系人(必填) * @param {String} data.contactPhone - 联系方式(必填) * @param {String} data.remark - 备注(可选) * @returns {Promise} 返回申领单ID */ export function createCameraApplication(data) { return post('/manage/project/cameraApplication', data) } /** * 查询工作计划列表 * @param {Object} params - 查询参数 * @param {Number} params.pageNum - 页码(可选) * @param {Number} params.pageSize - 每页数量(可选) * @param {String} params.status - 状态(可选) * @param {Number} params.projectId - 项目ID(可选) * @returns {Promise} 返回工作计划列表 { total: number, rows: array } */ export function getWorkPlanList(params) { return get('/manage/contractor/workPlan/list', params) } /** * 删除工作计划 * @param {Number|String|Array|Array} projectIds - 项目ID,可以是单个ID、ID数组或逗号分隔的字符串 * @returns {Promise} */ export function deleteWorkPlan(projectIds) { // 处理不同的输入格式 let ids = projectIds if (Array.isArray(projectIds)) { ids = projectIds.join(',') } return del(`/manage/contractor/workPlan/${ids}`) } /** * 提交工作计划 * @param {Number|String} projectId - 项目ID(必填) * @returns {Promise} */ export function submitWorkPlan(projectId) { return put(`/manage/contractor/workPlan/submit/${projectId}`) } /** * 撤回工作计划 * @param {Number|String} projectId - 项目ID(必填) * @returns {Promise} */ export function withdrawWorkPlan(projectId) { return put(`/manage/contractor/workPlan/withdraw/${projectId}`) } /** * 上传文件 * @param {String} filePath - 文件路径(本地临时文件路径) * @param {String} name - 文件对应的 key,默认为 'file' * @param {Object} formData - 额外的表单数据 * @param {Object} options - 其他配置选项 * @returns {Promise<{name: string, url: string}>} 返回上传后的文件信息,包含 name(文件名)和 url(文件访问地址) */ export function uploadFileApi(filePath, name = 'file', formData = {}, options = {}) { return uploadFile('/file/upload', filePath, name, formData, options) } /** * 查询风险管控卡模板列表 * @param {Object} params - 查询参数(可选) * @returns {Promise} 返回风险管控卡模板列表 */ export function getRiskCardTemplateList(params = {}) { return get('/manage/logistics/riskCard/template/list', params) } /** * 获取风险管控卡模板详细信息 * @param {Number|String} templateId - 模板ID(必填) * @returns {Promise} 返回风险管控卡模板详细信息 */ export function getRiskCardTemplateDetail(templateId) { return get(`/manage/logistics/riskCard/template/${templateId}`) } /** * 获取工作计划详细信息 * @param {Number|String} projectId - 项目ID(必填) * @returns {Promise} 返回工作计划详细信息 */ export function getWorkPlanDetail(projectId) { return get(`/manage/contractor/workPlan/${projectId}`) } /** * 获取工作票详细信息 * @param {Number|String} ticketId - 工作票ID(必填) * @returns {Promise} 返回工作票详细信息 */ export function getWorkTicketDetail(ticketId) { return get(`/manage/contractor/workTicket/${ticketId}`) } /** * 提交风险管控卡监理审核 * @param {Object} data - 风险管控卡数据 * @param {Number} data.ticketId - 工作票ID(必填) * @param {Number} data.templateId - 模板ID(必填) * @param {String} data.ticketNumber - 票证编号(必填) * @param {String} data.operatingUnit - 所属单位(必填) * @param {String} data.workContent - 工作内容(必填) * @param {String} data.supervisorName - 工作负责人姓名(必填) * @param {String} data.supervisorPosition - 工作负责人职位 * @param {String} data.contactMethod - 联系方式 * @param {String} data.inspectionTime - 检查时间(格式:yyyy-MM-ddTHH:mm) * @param {Array} data.checkItems - 检查项列表 * @param {Number} data.checkItems[].templateItemId - 模板项ID * @param {String} data.checkItems[].itemDescription - 检查项描述 * @param {String} data.checkItems[].checkResult - 检查结果 * @param {Number} data.checkItems[].sortOrder - 排序顺序 * @param {Array} data.attachmentList - 附件URL列表 * @returns {Promise} 返回风险管控卡ID(cardId) */ export function submitRiskControlCard(data) { return post('/manage/contractor/riskControlCard', data) } /** * 提交工作票 * @param {Number|String} ticketId - 工作票ID(必填) * @param {Number|String} cardId - 风险管控卡ID(可选,高等风险时必填) * @returns {Promise} */ export function submitWorkTicket(ticketId, cardId = null) { let url = `/manage/contractor/workTicket/submit/${ticketId}`; if (cardId) { url += `?cardId=${cardId}`; } return put(url) } /** * 提交工作票(承包商接口) * @param {Number|String} ticketId - 工作票ID(必填) * @returns {Promise} */ export function submitWorkTicketForContractor(ticketId) { return put(`/manage/contractor/workTicket/submit/${ticketId}`) } /** * 提交实施 * @param {Number|String} projectId - 项目ID(必填) * @returns {Promise} */ export function submitImplementation(projectId) { return put(`/manage/contractor/projectImplementation/submitImplementation?projectId=${projectId}`) } /** * 修改工作计划 * @param {Object} data - 工作计划数据 * @param {Number|String} data.id - 工作计划ID(必填) * @returns {Promise} */ export function updateWorkPlan(data) { return put('/manage/contractor/workPlan', data) } /** * 获取出入证详情(根据项目ID) * @param {Number|String} projectId - 项目ID(必填) * @returns {Promise} 返回出入证详情 */ export function getAccessPermitDetail(projectId) { return get(`/manage/contractor/accessPermit/project/${projectId}`) } /** * 修改出入证申请 * @param {Object} data - 出入证申请数据 * @param {Number|String} data.id - 出入证申请ID(必填) * @returns {Promise} */ export function updateAccessPermit(data) { return put('/manage/contractor/accessPermit', data) } /** * 修改工作票申请 * @param {Object} data - 工作票数据 * @param {Number|String} data.id - 工作票ID(必填) * @param {Number} data.projectId - 所属项目ID(必填) * @param {String} data.workLocation - 作业地点 * @param {Number} data.supervisorId - 作业负责人ID * @param {String} data.supervisorName - 作业负责人姓名 * @param {String} data.supervisorPosition - 作业负责人职位 * @param {String} data.workContent - 作业内容 * @param {String} data.riskType - 风险类型(如:高风险、中风险、低风险) * @param {String} data.workStartTime - 作业开始时间(格式:yyyy-MM-dd HH:mm:ss) * @param {String} data.workEndTime - 作业结束时间(格式:yyyy-MM-dd HH:mm:ss) * @param {Array} data.safetyMeasuresList - 安全措施列表 * @param {Array} data.qualificationList - 作业班成员资质列表 * @param {String} data.needMonitoringCamera - 是否需申领移动监控球机("0"否,"1"是) * @param {Number} data.cameraApplicationId - 监控球机申请ID(如果需要监控球机时填写) * @param {String} data.remark - 备注 * @returns {Promise} */ export function updateWorkTicket(data) { return put('/manage/contractor/workTicket', data) }