case-info 升级

以 1.8.30 版本为基础,进行以下升级

1.8.31

更新说明

下载地址:http://dev.whrunpu.com:9040/app/detail?id=1139

更新内容:

  • 根据不同纬度判断是否编目归目
    • 纬度:系统、法院、案件类型、案件阶段、是否装订

其它包对应版本:

  • 阅卷:1.8.19

执行操作:

1、配置表编目、归目修改,先查询原来的配置,进行删除,然后插入新的配置:

select * from common_property where property_name in ('renameFile','classifyFile');

2、插入配置

以下为衡水地区配置,插入编目配置后,需修改对应的法院id
编目:只开启客户端、阅卷编目;第三方的编目关闭;
归目:关闭归目

mysql 数据库:

-- 归目
INSERT INTO `business`.`common_property`(`property_id`, `property_name`, `property_value`, `property_desc`, `create_time`, `create_user_id`, `update_flag`, `display`) VALUES (335, 'classifyFile', 'import cn.hutool.extra.spring.SpringUtil\nimport org.springframework.jdbc.core.JdbcTemplate\nimport org.springframework.util.ObjectUtils\nimport org.apache.logging.log4j.LogManager\nimport org.apache.logging.log4j.Logger\n\n\n\ndef apply(param){\n    // 归目开关默认值\n    Logger logger = LogManager.getLogger();\n    boolean flag = false;\n    // 法院code白名单\n    def whiteList = [];\n          \n    if(param == null){\n        return flag\n    }\n\n    // 法院code黑名单\n    def blackList = [];\n    def caseId = 0;\n    def userId = 0;\n    if(param instanceof Long || param instanceof String){\n        caseId = param;\n    }else{\n        caseId = param[\"caseId\"];\n        userId = param[\"userId\"];\n    }\n    //判断param类型,为了兼容以前传case_id为参数的\n    if(caseId){\n        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class)\n        // 查询当前法院code\n        if(!whiteList.isEmpty() || !blackList.isEmpty()){\n            def map = jdbcTemplate.queryForMap(\"SELECT a.court_id as courtId, a.case_type_id as caseType, a.case_status as caseStatus, \" +\n                    \"MAX(book_status) AS binding FROM case_info a LEFT JOIN sub_case_info b ON a.case_id = b.case_id \" +\n                    \"AND invalid_flag = 0 WHERE a.case_id = ? AND a.display = 0 GROUP BY a.court_id \", caseId)\n            if(!ObjectUtils.isEmpty(map)){\n                // 设置系统来源\n                map.put(\"system\", [\"CLIENT\",\"REVIEW\"])\n                if(userId){\n                    def user = jdbcTemplate.queryForMap(\"select real_name as realName from sys_user where id = ? and deleted = 0\", userId);\n                    if(user != null){\n                        map.put(\"system\", [user[\"realName\"]])\n                    }\n                }\n                if(!whiteList.isEmpty()){\n                    if(whiteList.containsKey(map[\"courtId\"]) != null){\n                        def items  = whiteList[map[\"courtId\"].toString()];\n                        def exists = items.any { entry ->\n                            entry.put(\"courtId\", [map.get(\"courtId\")])\n                            map.every { key, value ->\n                                key.equals(\"system\") ? !Collections.disjoint(entry[key], value) :\n                                        entry.get(key)?.collect { it.toString() }?.containsAll(value.toString())\n                            }\n                        }\n                        if(exists){\n                            flag = true;\n                        }\n                    }\n                }\n                // 黑名单关闭其功能\n                if(!blackList.isEmpty()){\n                    if(blackList.containsKey(map[\"courtId\"]) != null){\n                        def items  = blackList[map[\"courtId\"].toString()];\n                        def exists = items.any { entry ->\n                            entry.put(\"courtId\", [map.get(\"courtId\")])\n                            map.every { key, value ->\n                                key.equals(\"system\") ? !Collections.disjoint(entry[key], value) :\n                                        entry.get(key)?.collect { it.toString() }?.containsAll(value.toString())\n                            }\n                        }\n                        if(exists){\n                            flag = false;\n                        }\n                    }\n                }\n            }\n        }\n    }\n    return flag;\n}', 'true:开启归目功能,false:关闭归目功能', NULL, NULL, 0, 0);


-- 编目
INSERT INTO `business`.`common_property`(`property_id`, `property_name`, `property_value`, `property_desc`, `create_time`, `create_user_id`, `update_flag`, `display`) VALUES (334, 'renameFile', 'import cn.hutool.extra.spring.SpringUtil\nimport org.springframework.jdbc.core.JdbcTemplate\nimport org.springframework.util.ObjectUtils\nimport org.apache.logging.log4j.LogManager\nimport org.apache.logging.log4j.Logger\n\n\n\ndef apply(param){\n    // 编目开关默认值\n    Logger logger = LogManager.getLogger();\n    boolean flag = false;\n    // 法院code白名单\n    def whiteList = [\n \'280\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'281\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'282\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'283\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'284\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'285\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'286\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'287\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'288\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'202\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'289\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'290\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ],\n \'291\' : [\n    [\"caseType\" : [1,2,5,6,8,12], \"system\": [\"CLIENT\",\"REVIEW\"], \"caseStatus\": [1,2,3,4,5,6,7,8,9,10,11], \"binding\": [0,1]]     \n ]];\n \n        if(param == null){\n        return flag\n    }\n\n    // 法院code黑名单\n    def blackList = [];\n    def caseId = 0;\n    def userId = 0;\n    if(param instanceof Long || param instanceof String){\n        caseId = param;\n    }else{\n        caseId = param[\"caseId\"];\n        userId = param[\"userId\"];\n    }\n    //判断param类型,为了兼容以前传case_id为参数的\n    logger.info(\"caseId:{}\", caseId);\n    if(caseId){\n        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class)\n        // 查询当前法院code\n        if(!whiteList.isEmpty() || !blackList.isEmpty()){\n            def map = jdbcTemplate.queryForMap(\"SELECT a.court_id as courtId, a.case_type_id as caseType, a.case_status as caseStatus, \" +\n                    \"IFNULL(MAX(book_status),0) AS binding FROM case_info a LEFT JOIN sub_case_info b ON a.case_id = b.case_id \" +\n                    \"AND invalid_flag = 0 WHERE a.case_id = ? AND a.display = 0 GROUP BY a.court_id \", caseId)\n            if(!ObjectUtils.isEmpty(map)){\n                // 设置系统来源\n                map.put(\"system\", [\"CLIENT\",\"REVIEW\"])\n                logger.info(\"案件信息:{}\", map);\n                if(userId){\n                    def user = jdbcTemplate.queryForMap(\"select real_name as realName from sys_user where id = ? and deleted = 0\", userId);\n                    if(user != null){\n                        map.put(\"system\", [user[\"realName\"]])\n                    }\n                }\n                if(!whiteList.isEmpty()){\n                    if(whiteList.containsKey(map[\"courtId\"]) != null){\n                        def items  = whiteList[map[\"courtId\"].toString()];\n                        def exists = items.any { entry ->\n                            entry.put(\"courtId\", [map.get(\"courtId\")])\n                            map.every { key, value ->\n                                logger.info(\"{}对比:{}--{}\",key, entry[key], value);\n                                logger.info(\"案件类型{} -- {}\", entry[key][0].class.getName(), value.class.getName())\n                                key.equals(\"system\") ? !Collections.disjoint(entry[key], value) :\n                                        entry.get(key)?.collect { it.toString() }?.containsAll(value.toString())\n                            }\n                        }\n                        logger.info(\"对比结果:{}\", exists);\n                        if(exists){\n                            flag = true;\n                        }\n                    }\n                }\n                // 黑名单关闭其功能\n                if(!blackList.isEmpty()){\n                    if(blackList.containsKey(map[\"courtId\"]) != null){\n                        def items  = blackList[map[\"courtId\"].toString()];\n                        def exists = items.any { entry ->\n                            entry.put(\"courtId\", [map.get(\"courtId\")])\n                            map.every { key, value ->\n                                key.equals(\"system\") ? !Collections.disjoint(entry[key], value) :\n                                        entry.get(key)?.collect { it.toString() }?.containsAll(value.toString())\n                            }\n                        }\n                        if(exists){\n                            flag = false;\n                        }\n                    }\n                }\n            }\n        }\n    }\n    return flag;\n}', 'true:开启编目功能,false:关闭编目功能', NULL, NULL, 0, 0);

达梦数据库:

归目:

INSERT INTO SYSDBA.common_property
(property_id, property_name, property_value, property_desc, create_time, create_user_id, update_flag, display)
VALUES(340, 'classifyFile', 'import cn.hutool.extra.spring.SpringUtil
import org.springframework.jdbc.core.JdbcTemplate
import org.springframework.util.ObjectUtils
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.Logger



def apply(param){
    // 归目开关默认值
    Logger logger = LogManager.getLogger();
    boolean flag = false;
    // 法院code白名单
    def whiteList = []

    if(param == null){
        return flag
    }

    // 法院code黑名单
    def blackList = [];
    def caseId = 0;
    def userId = 0;
    if(param instanceof Long || param instanceof String){
        caseId = param;
    }else{
        caseId = param["caseId"];
        userId = param["userId"];
    }
    //判断param类型,为了兼容以前传case_id为参数的
    if(caseId){
        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class)
        // 查询当前法院code
        if(!whiteList.isEmpty() || !blackList.isEmpty()){
            def map = jdbcTemplate.queryForMap("SELECT a.court_id as courtId, a.case_type_id as caseType, a.case_status as caseStatus, " +
                    "MAX(book_status) AS binding FROM case_info a LEFT JOIN sub_case_info b ON a.case_id = b.case_id " +
                    "AND invalid_flag = 0 WHERE a.case_id = ? AND a.display = 0 GROUP BY a.court_id ", caseId)
            if(!ObjectUtils.isEmpty(map)){
                // 设置系统来源
                map.put("system", ["CLIENT","REVIEW"])
                if(userId){
                    def user = jdbcTemplate.queryForMap("select real_name as realName from sys_user where id = ? and deleted = 0", userId);
                    if(user != null){
                        map.put("system", [user["realName"]])
                    }
                }
                if(!whiteList.isEmpty()){
                    if(whiteList.containsKey(map["courtId"]) != null){
                        def items  = whiteList[map["courtId"].toString()];
                        def exists = items.any { entry ->
                            entry.put("courtId", [map.get("courtId")])
                            map.every { key, value ->
                                key.equals("system") ? !Collections.disjoint(entry[key], value) :
                                        entry.get(key)?.collect { it.toString() }?.containsAll(value.toString())
                            }
                        }
                        if(exists){
                            flag = true;
                        }
                    }
                }
                // 黑名单关闭其功能
                if(!blackList.isEmpty()){
                    if(blackList.containsKey(map["courtId"]) != null){
                        def items  = blackList[map["courtId"].toString()];
                        def exists = items.any { entry ->
                            entry.put("courtId", [map.get("courtId")])
                            map.every { key, value ->
                                key.equals("system") ? !Collections.disjoint(entry[key], value) :
                                        entry.get(key)?.collect { it.toString() }?.containsAll(value.toString())
                            }
                        }
                        if(exists){
                            flag = false;
                        }
                    }
                }
            }
        }
    }
    return flag;
}', 'true:开启归目功能,false:关闭归目功能', NULL, NULL, 0, 0);

编目


INSERT INTO SYSDBA.common_property
(property_id, property_name, property_value, property_desc, create_time, create_user_id, update_flag, display)
VALUES(339, 'renameFile', 'import cn.hutool.extra.spring.SpringUtil
import org.springframework.jdbc.core.JdbcTemplate
import org.springframework.util.ObjectUtils
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.Logger



def apply(param){
    // 编目开关默认值
    Logger logger = LogManager.getLogger();
    boolean flag = false;
    // 法院code白名单
    def whiteList = []

    if(param == null){
        return flag
    }

    // 法院code黑名单
    def blackList = [];
    def caseId = 0;
    def userId = 0;
    if(param instanceof Long || param instanceof String){
        caseId = param;
    }else{
        caseId = param["caseId"];
        userId = param["userId"];
    }
    //判断param类型,为了兼容以前传case_id为参数的
    logger.info("caseId:{}", caseId);
    if(caseId){
        JdbcTemplate jdbcTemplate = SpringUtil.getBean(JdbcTemplate.class)
        // 查询当前法院code
        if(!whiteList.isEmpty() || !blackList.isEmpty()){
            def map = jdbcTemplate.queryForMap("SELECT a.court_id as courtId, a.case_type_id as caseType, a.case_status as caseStatus, " +
                    "IFNULL(MAX(book_status),0) AS binding FROM case_info a LEFT JOIN sub_case_info b ON a.case_id = b.case_id " +
                    "AND invalid_flag = 0 WHERE a.case_id = ? AND a.display = 0 GROUP BY a.court_id ", caseId)
            if(!ObjectUtils.isEmpty(map)){
                // 设置系统来源
                map.put("system", ["CLIENT","REVIEW"])
                logger.info("案件信息:{}", map);
                if(userId){
                    def user = jdbcTemplate.queryForMap("select real_name as realName from sys_user where id = ? and deleted = 0", userId);
                    if(user != null){
                        map.put("system", [user["realName"]])
                    }
                }
                if(!whiteList.isEmpty()){
                    if(whiteList.containsKey(map["courtId"]) != null){
                        def items  = whiteList[map["courtId"].toString()];
                        def exists = items.any { entry ->
                            entry.put("courtId", [map.get("courtId")])
                            map.every { key, value ->
                                logger.info("{}对比:{}--{}",key, entry[key], value);
                                logger.info("案件类型{} -- {}", entry[key][0].class.getName(), value.class.getName())
                                key.equals("system") ? !Collections.disjoint(entry[key], value) :
                                        entry.get(key)?.collect { it.toString() }?.containsAll(value.toString())
                            }
                        }
                        logger.info("对比结果:{}", exists);
                        if(exists){
                            flag = true;
                        }
                    }
                }
                // 黑名单关闭其功能
                if(!blackList.isEmpty()){
                    if(blackList.containsKey(map["courtId"]) != null){
                        def items  = blackList[map["courtId"].toString()];
                        def exists = items.any { entry ->
                            entry.put("courtId", [map.get("courtId")])
                            map.every { key, value ->
                                key.equals("system") ? !Collections.disjoint(entry[key], value) :
                                        entry.get(key)?.collect { it.toString() }?.containsAll(value.toString())
                            }
                        }
                        if(exists){
                            flag = false;
                        }
                    }
                }
            }
        }
    }
    return flag;
}', '编目开关:true:开启编目功能,false:关闭编目功能  
boolean flag = true开关控制,
如果少数开启,就将需要开启的法院code加到白名单中,开关默认值为false,
如果多数开启,就将不需要开启的法院code加到黑名单中,开关默认值为true,', NULL, NULL, 0, 0);

  • 维度定义为:系统、法院、案件类型、案件阶段、是否装订;

  • binding:是否装订,0:非装订,1:装订

  • system:系统来源,其值查询 select value from sys_dict where category = 'case_batch_source'。阅卷系统和客户端系统现在是同一套规则,也就是对于来源,不分区阅卷和客户端

  • 以法院为主线,不同维度自由组合,同家法院支持多个规则;

  • 阅卷系统对应调整:

    • a. 同类型下,总开关开启时,阅卷系统才提供编目归目,且普通目录的上传弹窗中展示【智能编目】开关按钮;
    • b.同类型下,总开关关闭时,阅卷系统不编目归目,普通目录的上传弹窗中,隐藏【智能编目】开关按钮;

  • 启用最新编目归目配置后,上一版第三方新增材料的编目配置作废(即:sys_user表——>setting字段中的编目开关,不再生效。)

1.9.0

下载地址:http://dev.whrunpu.com:9040/app/detail?id=1145

更新内容:
1、组合查询通过ywlx+short_name判断案件类型
2、统一存储xml合并只要有非特殊节点的文件就生成批次,如华宇回推的只有封皮封底,则不生成该批次;

1.10.0

下载地址:http://dev.whrunpu.com:9040/app/detail?id=1148

更新内容:

  • 华宇待入卷的批次进入到自动分案

1.11.0

下载地址: http://dev.whrunpu.com:9040/app/detail?id=1152

更新内容:
1、阅卷展示pdf真实页数;
2、xml合并设置pdf页数
3、xml合并设置封皮封底不给sub_case_id,并且不给全局索引,都设置为0,只有正常文件才纳入批次

1.11.1

下载地址:https://app.nat.whrunpu.com/app/detail?id=1153
更新内容:

  • 组织查询新加逻辑(通过ywlx+short_name)判断案件类型,兼容dm

1.11.2

下载地址:https://app.nat.whrunpu.com/app/detail?id=1161
更新内容:

  • xml合并,第三方入卷,获取华宇待入卷,润普推送,以及分类界面保存都需要推送质检系统

1.11.3

下载地址:https://app.nat.whrunpu.com/app/detail?id=1163
更新内容:
1、统一存储合并xml成功才删除缓存,即合并失败的是推送不过去的;
2、低版本xml合并,如果合并的时候只有华宇批次,合并删除;

1.12.1

下载地址:https://app.nat.whrunpu.com/app/detail?id=1175
更新内容:
1、修复统一存储bug,处理异常,不会因为强制合并而覆盖异常信息,只有处理成功才会出现 强制合并,未/已通知的消息
2、修改统一存储逻辑,只要华宇xml版本小于润普版本,就强制合并(增删改)
3、修改统一存储逻辑,同级目录下,如果目录名重名,华宇解析会出现bug,新增业务判断,如果有重名目录,则修改为不重名

1.13.0

下载地址:https://app.nat.whrunpu.com/app/detail?id=1180
分类前端更新包:https://app.nat.whrunpu.com/app/detail?id=1177

更新内容:
1、合并XML如果待分类区存在文件则新建待分类区批次,
2、未处理列表字段增加上传时间

1.13.1

下载地址:https://app.nat.whrunpu.com/app/detail?id=1180

更新说明:

  • 生成个案,加锁。

1.14.1

下载地址:https://app.nat.whrunpu.com/app/detail?id=1194

更新说明:
1、优化获取待入卷接口,如果润普获取了华宇待入卷,只要润普华宇映射关系存在,则不会再次获取该材料,即一份材料只获取一次(测试完成上线之后需要观察映射表是否还出现两个相同的华宇id),否则可能会导致无法推送到华宇;
2、解决合并华宇xml,出现数据已过期。因为衡水华宇存储问题,合并时间很长,导致最新xml缓存在合并完成之后被删除(上线观察是否还出现数据已过期);
3、字典迁移到 basic服务中;

执行操作

1、停止当前服务
2、删除redis字典缓存,del sys_dict
3、更新并启动服务
4、再次删除redis 字典缓存

注意:低于1.14.1的版本升级该版本及以上,都需要做清理字典缓存操作!!!

1.14.2

下载地址:https://app.nat.whrunpu.com/app/detail?id=1223

更新内容:
解决自动分案中,同一个案件出现在两个账户下的问题

执行操作

1、xxl-job中,更改自动分案定时任务时间:

2、执行下面语句,排查旧数据问题:

沧州升级后出现卡顿,经排查2022年有几十万华宇批次是未处理的状态,实际是已经处理完成的(刚上统一存储时出现的数据问题)

查看所有未处理的案件:

select distinct b.case_id,a.sub_index,a.source,FROM_UNIXTIME(a.create_time/1000), c.id as court_id, b.case_type_id, a.create_time 
from sub_case_info a
join case_info b on a.case_id=b.case_id join sys_org c on b.court_id = c.code 
where a.invalid_flag = 0 
and a.deal_user_id is null 
and b.lock_flag != 1 
and b.display = 0 
and a.display = 0 
and a.deal_case_status = 1 
order by a.create_time;

上面语句可以确定需要处理的时间节点,然后将未处理状态更新为处理完成:

-- 查询
select * from sub_case_info 
where create_time < UNIX_TIMESTAMP('2023-01-01')*1000 
and invalid_flag = 0 
and source = 'CLIENT' 
and deal_case_status < 3 
and deal_user_id is null 
and cur_deal_user_id is null

-- 更新,将未处理状态更新为处理完成
update sub_case_info set deal_case_status = 3 
where create_time < UNIX_TIMESTAMP('2023-01-01')*1000 
and invalid_flag = 0 
and source = 'CLIENT' 
and deal_case_status < 3 
and deal_user_id is null 
and cur_deal_user_id is null

1.14.3

下载地址:https://app.nat.whrunpu.com/app/detail?id=1229

更新内容:

  • 文件转换回调完之后上传存储之后,获取文件大小并打印(因为华宇系统看润普上传的拓展文件,发现看不了图片,因此打印此日志)

日志参考图:

1.14.4

下载地址:https://app.nat.whrunpu.com/app/detail?id=1231

更新内容:

  • 统一存储xml合并接口(/caseinfo/hbhy/merge)增加参数isConvertPath,控制是否进行转储,默认都进行转储

1.15.0

下载地址: https://app.nat.whrunpu.com/app/detail?id=1252

更新内容:

  • 新增重新编目接口(对应分类: classify:1.9.18)
  • 修复xml合并文件地址为空,获取文件后缀异常问题
  • 取消sql拦截器 角色的日志打印

对应版本

  • classify(分类平台):1.9.18

执行操作

sys_resource 新增资源:

INSERT INTO `sys_resource` (`id`, `name`, `url`, `method`, `pid`, `description`, `create_time`, `update_time`) VALUES (1820728175329644545, '重新编目', '/caseinfo/classify/re-classify-by-ids', 'GET', 108, '重新编目', '2024-08-06 15:46:39', '2024-08-06 15:46:39');

新增资源后,给超级管理员、分类人员角色勾选该权限:

1.17.1

下载地址:https://app.nat.whrunpu.com/app/detail?id=1826527769488658432

更新内容:

  • 自动分案首页 统计模块,达梦适配,调整SQL,使其正确触发索引,优化接口查询速度

1.17.2

下载地址:https://app.nat.whrunpu.com/app/detail?id=1826873909228736512

更新内容:

  • 质检不依赖于hebeiapp,代码重写到caseinfo服务;
  • 桥西流转推送阅卷直接进入已完成状态

对应版本:

  • 质检后端 casecheckapp: 1.1.0
  • 质检前端 zj-view: 1.1.6

执行操作:
参考工单:侯卫嘉-202408050001

1.17.3

下载地址:https://app.nat.whrunpu.com/app/detail?id=1828722380374151168

更新内容:

  • 查询卷装订状态 需要查询第三方批次
  • 编目归目时获取文件后缀,从文件名称里面获取,如果文件名称没有,则从文件地址里面获取

1.17.4 (有问题:上传pdf拆分报错,无法拆分)

下载地址:https://app.nat.whrunpu.com/app/detail?id=1830880862380625920

更新内容:

  • 编目归目筛选文件类型和大小
  • 编辑目录设置备注
  • 禁止推送的案件类型,开启ocr自动编目后,对案件类型进行校验,判断是否进行推送

执行操作

数据库更新:https://doc.dev.whrunpu.com/docs/dossier/upgrade

数据库更新操作示例,如图,测试环境42.142,浏览器地址栏输入更新地址即可:

实际执行时要更换对应ip地址、数据库名,执行以上更新语句后,数据库配置表中多了以下配置:renameConfig

[
    {
        "suffix": [
            "jpeg",
            "jpg",
            "png",
            "bmp",
            "pdf"
        ],
        "size": 10240,
        "type": "图片"
    }
]
size为编目归目最大文件大小

1.17.5

下载地址:https://app.nat.whrunpu.com/app/detail?id=1834534022122967040

更新内容:

  • 兼容查看tif文件(需要部署 kkfileview 文件预览服务)
  • 解决分类界面旋转图片,编目不正常

对应包版本:

  • basic: 1.7.1
  • 分类(classify):1.9.20
  • 阅卷(review-papers):1.9.6
  • 客户端:2.0.16

执行操作:

部署 kkfileView 服务:
1、docker-compose中新增 kkfileview配置,

  #kkfile 4.3.0配置
  fileviewer:
    image: keking/kkfileview:4.3.0
    container_name: kkfileview
    restart: always
    environment:
        KK_OFFICE_PREVIEW_TYPE: "pdf"
        WATERMARK_FONTSIZE: "18px"
        WATERMARK_X_SPACE: "200"
        WATERMARK_Y_SPACE: "200"
    ports:
      - "8012:8012"
    network_mode: 'host'

从测试环境(131.16.42.142)拿到对应的包。

2、数据库新增配置:

-- 查询是否有该配置
select * from common_property where property_name = 'fileViewer';

-- 没有则新增(需要改为线上环境的ip地址)
INSERT INTO `business`.`common_property`(`property_id`, `property_name`, `property_value`, `property_desc`, `create_time`, `create_user_id`, `update_flag`, `display`) VALUES (1839231031825727490, 'fileViewer', 'http://131.102.1.54:8012', '文件预览服务', NULL, 1, 0, 0);

新增配置表后,需要重启 caseinfo与basic服务。

1.17.8

下载地址:https://app.nat.whrunpu.com/app/detail?id=1838784041197899776

更新内容:

  • 更新案件案由:
    1. 组合查询更新案件案由(新增和更新)
    2. caseinfo服务,/caseinfo/full-case接口,返回体中,新增laCaseReason字段(立案案由)的返回

执行操作:

  1. caseinfo服务首次使用SQL自动更新的地区,在浏览器中执行a链接,否则执行b链接

参考:https://doc.dev.whrunpu.com/docs/dossier/upgrade

a>首次使用 sql 自动更新:

http://服务器ip:caseinfo后端服务端口号/caseinfo/$upgrade?startVersion=更新前caseinfo的版本号

例如:
http://192.168.0.27:8210/caseinfo/$upgrade?startVersion=1.17.8

b>

http://服务器ip:caseinfo后端服务端口号/caseinfo/$upgrade

例如:
http://192.168.0.27:8210/caseinfo/$upgrade
  1. 执行完第一步后,common_property会新增一条配置,配置名(property_name):hyT3EAppendUrl,该配置为请求华宇T3E案件补充信息的接口,该配置中property_value字段值是一个url地址,该url的ip和port,请根据华宇的实际请求地址设置,之后需要去平台设置->缓存管理模块中,刷新配置缓存(common_property)

  1. caseinfo swagger 新增接口:/caseinfo/hb-extra/sync-case-reason,用于对卷宗库caseinfo表中已经存在的数据,做立案案由的更新。更新的内容,补充在caseinfo表的extra字段中,补充的内容为caseReason(案由),首次执行该接口时,参数sqlCondition字段,建议不填值,此时会更新所有案件的立案信息,之后再次使用该接口时,sqlCondition可根据实际情况设置值,该值为SQL语句where后的拼接条件

1.17.9

下载地址: https://app.nat.whrunpu.com/app/detail?id=1840326930113630208

更新内容:

  • 添加配置common_property.storageConfig.checkLastHyXml 检查华宇最后一条xml合并失败是否推送

执行操作:
更新数据库参考:https://doc.dev.whrunpu.com/docs/dossier/upgrade

升级完成后,检查下配置表多了以下配置:

1.17.10

下载地址:https://app.nat.whrunpu.com/app/detail?id=1846428572122746880

更新内容:

  • 修复sub_case_id超长,推送质检报错问题

1.17.11

下载地址:https://app.nat.whrunpu.com/app/detail?id=1849308963057831936

更新内容:

  • 解决pdf拆分,缓存不删的问题

执行操作:
1、将nacos中,redis.yml修改为固定ip(图中为测试环境ip),如图:

其中端口要查看docker-compose.yml中配置的对外端口:
如图,左侧为对外端口,右侧为容器内端口,使用ip配置的方式,则使用左侧的对外端口

2、重启依赖于 redis 的服务:

  • caseinfo
  • basic
  • user
  • gateway

通过如下方式查看哪些服务依赖于redis:

1.17.12(有问题,需要更新到 1.19.0 版本)

更新内容:

  • 对接华宇销案

执行操作:

1、执行数据库升级操作,参考:https://doc.dev.whrunpu.com/docs/dossier/upgrade

执行完后,新增配置hyCaseConfig:查询华宇销案配置

修改值如下:

{
    "cancelCaseConfig": [        {            "url": "http://131.16.104.73:10002/t3-ajwh/api/v1/xaRz",            "header": {                "x-app-id": "api-rp",                "appToken": "fd3daa1a72ac40fe8b350f0ae28e6156"            },            "ajlxList": [                "0100",                "0200",                "0300",                "0400",                "0500",                "0600",                "0700",                "0800",                "0900"            ],            "handle": "HBHYCaseT3CService"        },        {            "url": "http://131.16.200.228:9080/jxjs/mvc/api/v1/xaRz",            "header": {                "x-app-id": "",                "appToken": ""            },            "handle": "HBHYCaseJXJSService"        }    ]
}
  • url:地址
  • header: 请求头
  • ajlxList: 案件类别列表
  • handle: HBHYCaseT3CService为t3c,HBHYCaseJXJSService 为减刑假释

2、xxl-job任务中新增定时任务

3、启动该任务

4、重启 caseinfo与basic;

作者:hbrunpu  创建时间:2024-05-10 16:49
最后编辑:hbrunpu  更新时间:2024-12-11 16:29