许鹏程
2024-08-28 de75467367c6119b6060bc7eb7a9ae5c5c8d4b1d
历史文档查询
已修改1个文件
32 ■■■■ 文件已修改
src/main/java/com/product/file/service/DocumentService.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/service/DocumentService.java
@@ -504,21 +504,23 @@
    /**
     *     查询文档历史版本
     *
     * @param documentUUID
     * @return
     */
    public DataTableEntity findDocumentHistory(String documentUUID) {
        StringBuilder sql = new StringBuilder();
        sql.append("SELECT A.*,B.file_name");
        sql.append("SELECT A.*,B.file_name\n");
        sql.append("FROM product_oa_document_history A \n");
        sql.append("LEFT JOIN product_oa_document_history B ON B.uuid = A.document_uuid \n");
        sql.append("WHERE A.document_uuid = ?");
        sql.append("LEFT JOIN product_oa_document B ON B.uuid = A.document_uuid \n");
        sql.append("WHERE A.document_uuid = ?\n");
        sql.append("ORDER BY A.version_number");
        return baseDao.listTable(sql.toString(), new Object[] {documentUUID});
    }
    /**
     *     文档最新版本保存
     *
     * @param fse
     * @return
     */
@@ -526,7 +528,7 @@
    public boolean documentSaveNewVersion(FieldSetEntity fse) {
        // 获取文档数据和最大编号
        StringBuilder sql = new StringBuilder();
        sql.append("SELECT A.*, IFNULL(B.max_version_number, 'v0')AS max_version_number \n");
        sql.append("SELECT A.*, IFNULL(B.max_version_number, '0')AS max_version_number \n");
        sql.append("FROM product_oa_document A \n");
        sql.append("LEFT JOIN ( \n");
        sql.append("    SELECT document_uuid, MAX(version_number) AS max_version_number \n");
@@ -535,19 +537,33 @@
        sql.append("    GROUP BY document_uuid \n");
        sql.append(") B ON B.document_uuid = A.uuid \n");
        sql.append("WHERE uuid = ? \n");
        FieldSetEntity fseDocument = baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[] {fse.getString("document_uuid"),fse.getString("document_uuid")}, false);
        String documentUuid = fse.getString("document_uuid");
        FieldSetEntity fseDocument = baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[]{documentUuid, documentUuid}, false);
        if(fseDocument == null) {
            throw new BaseException(DocumentCode.DOCUMENT_DATA_NO_EXIST.getValue(), DocumentCode.DOCUMENT_DATA_NO_EXIST.getText());
        }
        fseDocument.setValue("attachments_uuid", fse.getString("attachment_uuid"));
        String attachmentUuid = fse.getString("attachment_uuid");
        FieldSetEntity fieldSetEntity = baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_ATTACHMENTS, attachmentUuid, false);
        fseDocument.setValue("file_size", fieldSetEntity.getString(CmnConst.ATTACHMENT_SIZE));
        fseDocument.setValue("file_name", fieldSetEntity.getString("file_name"));
        fseDocument.setValue("attachments_uuid", attachmentUuid);
        fseDocument.setValue("latest_version", fseDocument.getInteger("max_version_number") + 1);
        baseDao.saveFieldSetEntity(fseDocument);
        fse.setValue("version_number", versionNUmberAddne(fseDocument.getString("max_version_number")));
        return baseDao.saveFieldSetEntity(fse);
        //创建文档版本数据容器
        FieldSetEntity fseDocumentHistory = new FieldSetEntity(CmnConst.PRODUCT_OA_DOCUMENT_HISTORY);
        BaseUtil.createCreatorAndCreationTime(fseDocumentHistory);
        fseDocumentHistory.setValue("document_uuid", documentUuid);
        fseDocumentHistory.setValue("attachment_uuid", attachmentUuid);
        fseDocumentHistory.setValue("version_number", fseDocument.getObject("latest_version"));
        return baseDao.saveFieldSetEntity(fseDocumentHistory);
    }
    /**
     *     文档版本+1
     *
     * @param originNumber
     * @return
     */