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
更新内容:
- 更新案件案由:
- 组合查询更新案件案由(新增和更新)
- caseinfo服务,/caseinfo/full-case接口,返回体中,新增laCaseReason字段(立案案由)的返回
执行操作:
- 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
- 执行完第一步后,common_property会新增一条配置,配置名(property_name):hyT3EAppendUrl,该配置为请求华宇T3E案件补充信息的接口,该配置中property_value字段值是一个url地址,该url的ip和port,请根据华宇的实际请求地址设置,之后需要去平台设置->缓存管理模块中,刷新配置缓存(common_property)
- 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-12-11 16:29