bug
许鹏程
2024-08-28 241e351dcb4b5aa33dde2c05b711b7f2066f3be8
bug
已修改3个文件
90 ■■■■■ 文件已修改
src/main/java/com/product/file/controller/DocumentController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/controller/FileManagerController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/service/DocumentService.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/controller/DocumentController.java
@@ -58,6 +58,7 @@
            String uuids = service.addDocument(fse);
            return OK_Add(uuids);
        } catch (BaseException e) {
            e.printStackTrace();
            SpringMVCContextHolder.getSystemLogger().error(e);
            return this.error(e);
        } catch (Exception e) {
@@ -373,6 +374,7 @@
    /**
     *     文档收藏
     *
     * @param request
     * @return
     */
@@ -391,8 +393,10 @@
            return this.error(DocumentCode.DOCUMENT_COLLECTION_FAIL.getValue(), DocumentCode.DOCUMENT_COLLECTION_FAIL.getText() + e.getMessage());
        }
    }
    /**
     *     文档取消收藏
     *
     * @param request
     * @return
     */
@@ -417,6 +421,7 @@
    /**
     *     文档历史版本
     *
     * @param request
     * @return
     */
@@ -425,7 +430,7 @@
    public String findDocumentHistory(HttpServletRequest request) {
        try {
            //获取参数
            FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_OA_DOCUMENT_COLLECTION);
            FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_OA_DOCUMENT_HISTORY);
            return OK_List(documentService.findDocumentHistory(fse.getUUID()));
        } catch (BaseException e) {
            e.printStackTrace();
@@ -438,6 +443,7 @@
    /**
     *     文档最新版本保存
     *
     * @param request
     * @return
     */
@@ -446,7 +452,7 @@
    public String documentSaveNewVersion(HttpServletRequest request) {
        try {
            //获取参数
            FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_OA_DOCUMENT_COLLECTION);
            FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_OA_DOCUMENT);
            if (documentService.documentSaveNewVersion(fse)) {
                return OK();
            }
@@ -486,6 +492,7 @@
    /**
     * 文档申请保存与更新
     *
     * @param request
     * @return
     */
@@ -511,6 +518,7 @@
    /**
     * 借阅文档排名
     *
     * @return
     */
    @RequestMapping(value = "/getApplayFileSort/{version}", method = RequestMethod.POST)
@@ -523,6 +531,7 @@
    /**
     * 文档借阅人员排名
     *
     * @return
     */
    @RequestMapping(value = "/getApplayUserSort/{version}", method = RequestMethod.POST)
@@ -534,6 +543,7 @@
    /**
     * 获取借阅详情信息
     *
     * @param request
     */
src/main/java/com/product/file/controller/FileManagerController.java
@@ -274,6 +274,7 @@
            return error(FileCode.UPLOAD_FILE_FAIL.getValue(), FileCode.UPLOAD_FILE_FAIL.getText());
        }
    }
    /**
     * 下载文件或者在线预览
     *
@@ -305,6 +306,7 @@
            return error(FileCode.GET_FILE_CONTENT_FAIL.getValue(), FileCode.GET_FILE_CONTENT_FAIL.getText());
        }
    }
    /**
     * 下载文件或者在线预览
     *
@@ -334,6 +336,9 @@
//            sos.close();
            /*===test-start===*/
            return OK();
        } catch (BaseException e) {
            e.printStackTrace();
            return error(e);
        } catch (Exception e) {
            SpringMVCContextHolder.getSystemLogger().error(e);
            e.printStackTrace();
src/main/java/com/product/file/service/DocumentService.java
@@ -73,6 +73,9 @@
            fseDocument.setValue(CmnConst.FILE_SIZE, attachment.getString(CmnConst.ATTACHMENT_SIZE));
            fseDocument.setValue(CmnConst.CREATED_BY, SpringMVCContextHolder.getCurrentUser().getUser_id());
            fseDocument.setValue(CmnConst.CREATED_UTC_DATETIME, DateUtils.getDateTime());
            fseDocument.setValue("latest_version", fse.getObject("latest_version"));
            fseDocument.setValue("business_classify_uuid", fse.getObject("business_classify_uuid"));
            fseDocument.setValue("office_classify_uuid", fse.getObject("office_classify_uuid"));
            //文件名称
            String file_name = attachment.getString(CmnConst.FILE_NAME);
            fseDocument.setValue(CmnConst.FILE_NAME, file_name);
@@ -87,7 +90,7 @@
            BaseUtil.createCreatorAndCreationTime(fseDocumentHistory);
            fseDocumentHistory.setValue("document_uuid", documentUUID);
            fseDocumentHistory.setValue("attachment_uuid", attachment.getUUID());
            fseDocumentHistory.setValue("version_number", "v1");
            fseDocumentHistory.setValue("version_number", fseDocument.getObject("latest_version"));
            baseDao.add(fseDocumentHistory);
            uuidList.add(documentUUID);
@@ -153,8 +156,7 @@
        sql.append("LEFT JOIN product_sys_staffs B ON B.user_id = A.created_by \n");
        sql.append("LEFT JOIN product_sys_attachments C ON C.uuid = B.staff_avatar \n");
        sql.append("LEFT JOIN product_oa_document_collection D ON D.document_uuid = A.uuid AND D.created_by = ?");
        DataTableEntity documentData = baseDao.listTable(sql.toString(), new String[]{directory_uuid, SpringMVCContextHolder.getCurrentUserId()},
                fieldSetEntity.getInteger(CmnConst.PAGESIZE), fieldSetEntity.getInteger(CmnConst.CPAGE));
        DataTableEntity documentData = baseDao.listTable(sql.toString(), new String[]{directory_uuid, SpringMVCContextHolder.getCurrentUserId()}, fieldSetEntity.getInteger(CmnConst.PAGESIZE), fieldSetEntity.getInteger(CmnConst.CPAGE));
        baseDao.listInternationDataTable(documentData, null);
        return documentData;
    }
@@ -191,10 +193,7 @@
            fieldSetEntity.setValue(CmnConst.OPETYPE, opetype);
            fieldSetEntity.setValue(CmnConst.OPE_DOCUMENT, file_name[i]);
            StringBuffer state = new StringBuffer();
            state.append(opetype)
                    .append("了[")
                    .append(file_name[i])
                    .append("]");
            state.append(opetype).append("了[").append(file_name[i]).append("]");
            if (!BaseUtil.strIsNull(file_directory)) {
                state.append("到").append(file_directory).append("目录下");
            }
@@ -223,13 +222,7 @@
            fieldSetEntity.setValue(CmnConst.OPETYPE, opetype);
            fieldSetEntity.setValue(CmnConst.OPE_DOCUMENT, file_name[i]);
            StringBuffer state = new StringBuffer();
            state.append("把[")
                    .append(file_name[i])
                    .append("]")
                    .append(opetype)
                    .append("为[")
                    .append(newFile_name[i])
                    .append("]");
            state.append("把[").append(file_name[i]).append("]").append(opetype).append("为[").append(newFile_name[i]).append("]");
            fieldSetEntity.setValue(CmnConst.STATE, state.toString()); //说明
            fieldSetEntity.setValue(CmnConst.CREATED_BY, user.getUser_id());// 创建人
            fieldSetEntity.setValue(CmnConst.CREATED_UTC_DATETIME, DateUtils.getDateTime());// 创建时间
@@ -305,9 +298,7 @@
            FieldSetEntity org = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_OA_DIRECTORY_RIGHTS, "directory_uuid=?", new String[]{directory_uuid}, false);
            if (verifyOrgExist(org.getString("storage_uuid"))) {
                StringBuffer sql = new StringBuffer();
                sql.append(" SELECT  substring_index(substring_index(a.rigths,',',b.help_topic_id+1),',',-1) fun FROM  PRODUCT_OA_directory_rights a ")
                        .append(" INNER join   mysql.help_topic b on b.help_topic_id < (length(a.rigths) - length(replace(a.rigths,',',''))+1) ")
                        .append(" WHERE a.directory_uuid = ? ");
                sql.append(" SELECT  substring_index(substring_index(a.rigths,',',b.help_topic_id+1),',',-1) fun FROM  PRODUCT_OA_directory_rights a ").append(" INNER join   mysql.help_topic b on b.help_topic_id < (length(a.rigths) - length(replace(a.rigths,',',''))+1) ").append(" WHERE a.directory_uuid = ? ");
                dataTableEntity = baseDao.listTable(sql.toString(), new String[]{directory_uuid});
            }
            StringBuffer button = new StringBuffer();
@@ -360,10 +351,7 @@
        //1为公司文件目录
        if ("1".equals(type)) {
            //String staffId = user.getCurrentStaff().getString("staff_id");
            sql.append(" select a.* from PRODUCT_OA_directory a  ")
                    .append(" LEFT JOIN (  SELECT a.directory_uuid FROM PRODUCT_OA_directory_rights a  LEFT JOIN product_sys_organizational_structure_storage b ")
                    .append(" on a.storage_uuid = b.uuid WHERE a.rigths like '%3%' AND CONCAT(',',b.staff_ids,',') like ? GROUP BY ")
                    .append(" a.directory_uuid) b ON a.uuid = b.directory_uuid  where a.directory_type = 1  and a.org_level_uuid = ? ");
            sql.append(" select a.* from PRODUCT_OA_directory a  ").append(" LEFT JOIN (  SELECT a.directory_uuid FROM PRODUCT_OA_directory_rights a  LEFT JOIN product_sys_organizational_structure_storage b ").append(" on a.storage_uuid = b.uuid WHERE a.rigths like '%3%' AND CONCAT(',',b.staff_ids,',') like ? GROUP BY ").append(" a.directory_uuid) b ON a.uuid = b.directory_uuid  where a.directory_type = 1  and a.org_level_uuid = ? ");
            String staffId = "%" + user.getCurrentStaff().getString("staff_id") + "%";
            param.add(staffId);
            param.add(user.getOrg_level_uuid());
@@ -443,9 +431,7 @@
        //1为公司文件夹
        if (directory_type == 1) {
            StringBuffer sql = new StringBuffer();
            sql.append(" SELECT * FROM PRODUCT_OA_directory_rights  ")
                    .append(" WHERE directory_uuid = ? ")
                    .append(" AND rigths like '%3%' AND concat(',',storage_uuid,',') like ? ");//3为新增
            sql.append(" SELECT * FROM PRODUCT_OA_directory_rights  ").append(" WHERE directory_uuid = ? ").append(" AND rigths like '%3%' AND concat(',',storage_uuid,',') like ? ");//3为新增
            String user_id = String.valueOf(SpringMVCContextHolder.getCurrentUser().getUser_id());
            user_id = "%," + user_id + ",%";
            DataTableEntity dataTableEntity = baseDao.listTable(sql.toString(), new String[]{directory_uuid, user_id});
@@ -478,12 +464,12 @@
    @Override
    public DataTableEntity getDocumentLog(FieldSetEntity fieldSetEntity) throws BaseException {
        return baseDao.listTable("SELECT CONCAT(b.show_name, a.state) log,a.created_utc_datetime FROM PRODUCT_OA_document_log a LEFT JOIN product_sys_staffs b on a.created_by = b.user_id WHERE document_uuid = ? ORDER BY a.created_utc_datetime DESC",
                new String[]{fieldSetEntity.getString(CmnConst.DOCUMENT_UUID)}, fieldSetEntity.getInteger(CmnConst.PAGESIZE), fieldSetEntity.getInteger(CmnConst.CPAGE));
        return baseDao.listTable("SELECT CONCAT(b.show_name, a.state) log,a.created_utc_datetime FROM PRODUCT_OA_document_log a LEFT JOIN product_sys_staffs b on a.created_by = b.user_id WHERE document_uuid = ? ORDER BY a.created_utc_datetime DESC", new String[]{fieldSetEntity.getString(CmnConst.DOCUMENT_UUID)}, fieldSetEntity.getInteger(CmnConst.PAGESIZE), fieldSetEntity.getInteger(CmnConst.CPAGE));
    }
    /**
     *     文档收藏
     *
     * @param fse
     * @return
     */
@@ -495,6 +481,7 @@
    /**
     *     文档取消收藏
     *
     * @param documentUUID
     * @return
     */
@@ -504,21 +491,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 +515,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 +524,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
     */