| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- const fs = require('node:fs');
- const path = require('node:path');
- const { getDuplicateCheckDir, getDuplicateCheckFilePath, getTechnicalPlanFilePath } = require('../utils/paths.cjs');
- const { deleteImportedImageBatches } = require('../utils/importedImages.cjs');
- function createWorkspaceStore(app) {
- const technicalPlanFile = getTechnicalPlanFilePath(app);
- const duplicateCheckFile = getDuplicateCheckFilePath(app);
- const duplicateCheckDir = getDuplicateCheckDir(app);
- return {
- getTechnicalPlanFilePath() {
- return technicalPlanFile;
- },
- loadTechnicalPlan() {
- if (!fs.existsSync(technicalPlanFile)) {
- return null;
- }
- try {
- const raw = fs.readFileSync(technicalPlanFile, 'utf-8');
- return JSON.parse(raw);
- } catch (error) {
- throw new Error(`技术方案缓存读取失败:${error.message}`);
- }
- },
- saveTechnicalPlan(state) {
- try {
- fs.mkdirSync(path.dirname(technicalPlanFile), { recursive: true });
- fs.writeFileSync(technicalPlanFile, JSON.stringify(state, null, 2), 'utf-8');
- return { success: true, message: '技术方案缓存已保存', file_path: technicalPlanFile };
- } catch (error) {
- throw new Error(`技术方案缓存保存失败:${error.message}`);
- }
- },
- updateTechnicalPlan(partial) {
- const prev = this.loadTechnicalPlan() || {};
- const next = { ...prev, ...partial };
- this.saveTechnicalPlan(next);
- return next;
- },
- clearTechnicalPlan() {
- try {
- if (fs.existsSync(technicalPlanFile)) {
- fs.unlinkSync(technicalPlanFile);
- }
- deleteImportedImageBatches(app, 'technical-plan');
- return { success: true, message: '技术方案缓存已清空', file_path: technicalPlanFile };
- } catch (error) {
- throw new Error(`技术方案缓存清空失败:${error.message}`);
- }
- },
- loadDuplicateCheck() {
- if (!fs.existsSync(duplicateCheckFile)) {
- return null;
- }
- try {
- const raw = fs.readFileSync(duplicateCheckFile, 'utf-8');
- return JSON.parse(raw);
- } catch (error) {
- throw new Error(`标书查重缓存读取失败:${error.message}`);
- }
- },
- saveDuplicateCheck(state) {
- try {
- fs.mkdirSync(path.dirname(duplicateCheckFile), { recursive: true });
- fs.writeFileSync(duplicateCheckFile, JSON.stringify(state, null, 2), 'utf-8');
- return { success: true, message: '标书查重缓存已保存', file_path: duplicateCheckFile };
- } catch (error) {
- throw new Error(`标书查重缓存保存失败:${error.message}`);
- }
- },
- updateDuplicateCheck(partial) {
- const prev = this.loadDuplicateCheck() || {};
- const next = { ...prev, ...partial };
- this.saveDuplicateCheck(next);
- return next;
- },
- clearDuplicateCheck() {
- try {
- if (fs.existsSync(duplicateCheckFile)) {
- fs.unlinkSync(duplicateCheckFile);
- }
- if (fs.existsSync(duplicateCheckDir)) {
- fs.rmSync(duplicateCheckDir, { recursive: true, force: true });
- }
- deleteImportedImageBatches(app, 'duplicate-check-content');
- return { success: true, message: '标书查重缓存已清空', file_path: duplicateCheckFile };
- } catch (error) {
- throw new Error(`标书查重缓存清空失败:${error.message}`);
- }
- },
- };
- }
- module.exports = {
- createWorkspaceStore,
- };
|