Browse Source

feat:【司法报告】文字填充提交

master
zhangjing 1 year ago
parent
commit
bb4dec15d8
13 changed files with 2027 additions and 333 deletions
  1. +85
    -0
      src/main/java/com/fkzy/warn/common/constants/ReportConstants.java
  2. +3
    -0
      src/main/java/com/fkzy/warn/common/util/Demo.java
  3. +1089
    -0
      src/main/java/com/fkzy/warn/common/util/ReportUtil.java
  4. +14
    -0
      src/main/java/com/fkzy/warn/mapper/EnterpriseInfoMapper.java
  5. +230
    -0
      src/main/java/com/fkzy/warn/model/EnterpriseInfo.java
  6. +207
    -94
      src/main/java/com/fkzy/warn/model/LawCase.java
  7. +9
    -4
      src/main/java/com/fkzy/warn/model/LitigantInfo.java
  8. +89
    -0
      src/main/java/com/fkzy/warn/model/ReportModel.java
  9. +44
    -0
      src/main/java/com/fkzy/warn/service/EnterpriseInfoService.java
  10. +54
    -0
      src/main/java/com/fkzy/warn/service/impl/EnterpriseInfoServiceImpl.java
  11. +202
    -235
      src/main/java/com/fkzy/warn/service/impl/LawCaseServiceImpl.java
  12. BIN
      司法风险报告demo.docx
  13. +1
    -0
      工商.txt

+ 85
- 0
src/main/java/com/fkzy/warn/common/constants/ReportConstants.java View File

@ -0,0 +1,85 @@
package com.fkzy.warn.common.constants;
import com.fkzy.warn.model.EnterpriseInfo;
/**
* 用户常量
*
* @param
* @author zhangjing
* @return
* @create 2024/12/4
**/
public class ReportConstants {
/**
* 司法体检背景
**/
public static final String BACKGROUND_JUDICIAL = "backgroundJudicial";
/**
* 企业基本信息
**/
public static final String BASIC_ENTERPRISE = "basicEnterprise";
/**
* 近三月新发案件告警Text1
**/
public static final String THREE_MONTHS_TEXT1 = "threeMonthsText1";
/**
* 近三月新发案件告警Table1
**/
public static final String THREE_MONTHS_TABLE1 = "threeMonthsTable1";
/**
* 近三月新发案件告警Text2
**/
public static final String THREE_MONTHS_TEXT2 = "threeMonthsText2";
/**
* 近三月新发案件告警Text2
**/
public static final String THREE_MONTHS_TEXT3 = "threeMonthsText3";
/**
* 近三月新发案件告警Table4
**/
public static final String THREE_MONTHS_TABLE3 = "threeMonthsTable3";
/**
* 5.1 案件审理阶段Text1
**/
public static final String CASE_STAGE_TEXT1 = "caseStageText1";
/**
* 5.2 案件发生地域与管辖法院
**/
public static final String LOCATION_TEXT = "locationText";
/**
* 5.3案件类型与案由Text1
**/
public static final String CASE_ACTION_TEXT1 = "caseActionText1";
/**
* 5.3案件类型与案由Table1
**/
public static final String CASE_ACTION_TABLE1 = "caseActionTable1";
/**
* 5.3案件类型与案由Text2
**/
public static final String CASE_ACTION_TEXT2 = "caseActionText2";
/**
* 5.4 涉案金额
**/
public static final String AMOUNT_INVOLVED_TEXT = "amountInvolvedText";
/**
* 5.5 诉讼地位
**/
public static final String LITIGATION_STATUS_TEXT = "litigationStatusText";
/**
* 6.2 重大法律纠纷案件
**/
public static final String MAJOR_CASE_TEXT = "majorCaseText";
/**
* 6.3 执行案件
**/
public static final String EXECUTION_CASES_TEXT = "executionCasesText";
/**
* 6.4 高频诉讼对手
**/
public static final String HIGH_FREQUENCY_TEXT = "highFrequencyText";
}

+ 3
- 0
src/main/java/com/fkzy/warn/common/util/Demo.java View File

@ -25,6 +25,9 @@ public class Demo {
// LawResearchUtil law = new LawResearchUtil(); // LawResearchUtil law = new LawResearchUtil();
// law.querySssxxg(null, null); // law.querySssxxg(null, null);
// } // }
public static void main(String[] args) { public static void main(String[] args) {
String filePath = "司法.txt"; String filePath = "司法.txt";
String jsonOutput = convertTextToJson(filePath); String jsonOutput = convertTextToJson(filePath);

+ 1089
- 0
src/main/java/com/fkzy/warn/common/util/ReportUtil.java
File diff suppressed because it is too large
View File


+ 14
- 0
src/main/java/com/fkzy/warn/mapper/EnterpriseInfoMapper.java View File

@ -0,0 +1,14 @@
package com.fkzy.warn.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fkzy.warn.model.EnterpriseInfo;
import org.apache.ibatis.annotations.Mapper;
/**
* @author zhangjing
* @date 2024/12/04 14:48
* @description
*/
@Mapper
public interface EnterpriseInfoMapper extends BaseMapper<EnterpriseInfo> {
}

+ 230
- 0
src/main/java/com/fkzy/warn/model/EnterpriseInfo.java View File

@ -0,0 +1,230 @@
package com.fkzy.warn.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 企业基本信息
* @author zhangjing
* @date 2024/12/05 14:07
* @description
*/
@Data
@TableName("t_enterprise_info")
public class EnterpriseInfo extends BaseField{
/**
* 统一信用代码
*/
@ApiModelProperty("统一信用代码")
@TableId(value = "CREDITCODE", type = IdType.INPUT)
private String CREDITCODE;
/**
* 组织机构代码
*/
@ApiModelProperty("组织机构代码")
@TableField(value = "ORGCODES")
private String ORGCODES;
/**
* 注册号
*/
@ApiModelProperty("注册号")
@TableField(value = "REGNO")
private String REGNO;
/**
* 经营期限至
*/
@ApiModelProperty("经营期限至")
@TableField(value = "OPTO")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date OPTO;
/**
* 经营期限自
*/
@ApiModelProperty("经营期限自")
@TableField(value = "OPFROM")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date OPFROM;
/**
* 企业名称
*/
@ApiModelProperty("企业名称")
@TableField(value = "ENTNAME")
private String ENTNAME;
/**
* 注册资本企业:万元
*/
@ApiModelProperty("注册资本(企业:万元)")
@TableField(value = "REGCAP")
private String REGCAP;
/**
* 成立日期
*/
@ApiModelProperty("成立日期")
@TableField(value = "ESDATE")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date ESDATE;
/**
* 法定代表人/负责人/执行事务合伙人
*/
@ApiModelProperty("法定代表人/负责人/执行事务合伙人")
@TableField(value = "FRNAME")
private String FRNAME;
/**
* 登记机关
*/
@ApiModelProperty("登记机关")
@TableField(value = "REGORG")
private String REGORG;
/**
* 经营状态
*/
@ApiModelProperty("经营状态")
@TableField(value = "ENTSTATUS")
private String ENTSTATUS;
/**
* 企业类型
*/
@ApiModelProperty("企业类型")
@TableField(value = "ENTTYPE")
private String ENTTYPE;
/**
* 所在省份
*/
@ApiModelProperty("所在省份")
@TableField(value = "REGORGPROVINCE")
private String REGORGPROVINCE;
/**
* 所在城市
*/
@ApiModelProperty("所在城市")
@TableField(value = "REGORGCITY")
private String REGORGCITY;
/**
* 所在区/
*/
@ApiModelProperty("所在区/县")
@TableField(value = "REGORGDISTRICT")
private String REGORGDISTRICT;
/**
* 注册资本币种
*/
@ApiModelProperty("注册资本币种")
@TableField(value = "REGCAPCUR")
private String REGCAPCUR;
/**
* 吊销日期
*/
@ApiModelProperty("吊销日期")
@TableField(value = "REVDATE")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date REVDATE;
/**
* 注销日期
*/
@ApiModelProperty("注销日期")
@TableField(value = "CANDATE")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date CANDATE;
/**
* 经营业务范围
*/
@ApiModelProperty("经营业务范围")
@TableField(value = "ZSOPSCOPE")
private String ZSOPSCOPE;
/**
* 曾用名
*/
@ApiModelProperty("曾用名")
@TableField(value = "ENTNAME_OLD")
private String ENTNAME_OLD;
/**
* 核准日期
*/
@ApiModelProperty("核准日期")
@TableField(value = "APPRDATE")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date APPRDATE;
/**
* 注销原因
*/
@ApiModelProperty("注销原因")
@TableField(value = "CEICANCELREASON")
private String CEICANCELREASON;
/**
* 吊销原因
*/
@ApiModelProperty("吊销原因")
@TableField(value = "CEIREVOKEREASON")
private String CEIREVOKEREASON;
/**
* 实缴资本
*/
@ApiModelProperty("实缴资本")
@TableField(value = "CEIREALCAPITAL")
private String CEIREALCAPITAL;
/**
* 英文名称
*/
@ApiModelProperty("英文名称")
@TableField(value = "CEIENNAME")
private String CEIENNAME;
/**
* 上市代码
*/
@ApiModelProperty("上市代码")
@TableField(value = "CEILISTCODE")
private String CEILISTCODE;
/**
* 一级行业编码
*/
@ApiModelProperty("一级行业编码")
@TableField(value = "CEICATEGORYCODE1")
private String CEICATEGORYCODE1;
/**
* 一级行业名称
*/
@ApiModelProperty("一级行业名称")
@TableField(value = "CEICATEGORYNAME1")
private String CEICATEGORYNAME1;
/**
* 二级行业编码
*/
@ApiModelProperty("二级行业编码")
@TableField(value = "CEICATEGORYCODE2")
private String CEICATEGORYCODE2;
/**
* 二级行业名称
*/
@ApiModelProperty("二级行业名称")
@TableField(value = "CEICATEGORYNAME2")
private String CEICATEGORYNAME2;
/**
* 三级行业编码
*/
@ApiModelProperty("三级行业编码")
@TableField(value = "CEICATEGORYCODE3")
private String CEICATEGORYCODE3;
/**
* 三级行业名称
*/
@ApiModelProperty("三级行业名称")
@TableField(value = "CEICATEGORYNAME3")
private String CEICATEGORYNAME3;
/**
* 地址
*/
@ApiModelProperty("地址")
@TableField(value = "DOM")
private String DOM;
}

+ 207
- 94
src/main/java/com/fkzy/warn/model/LawCase.java View File

@ -1,12 +1,16 @@
package com.fkzy.warn.model; package com.fkzy.warn.model;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/** /**
* 八类案件 * 八类案件
@ -16,248 +20,354 @@ import java.math.BigDecimal;
*/ */
@Data @Data
@TableName("t_law_case") @TableName("t_law_case")
public class LawCase extends BaseField{
public class LawCase extends BaseField {
/** /**
* 授权书id
* 案件标识
*/ */
@ApiModelProperty("案件标识") @ApiModelProperty("案件标识")
@TableId(value = "n_ajbs", type = IdType.INPUT) @TableId(value = "n_ajbs", type = IdType.INPUT)
private String n_ajbs;
private String nAjbs;
/** /**
* 案件唯一 ID * 案件唯一 ID
*/ */
@ApiModelProperty("案件唯一 ID") @ApiModelProperty("案件唯一 ID")
private String c_id;
@TableField(value = "c_id")
private String cId;
/** /**
* 统一社会信用代码
* CRC
*/ */
@ApiModelProperty("CRC 值") @ApiModelProperty("CRC 值")
private String n_crc;
@TableField(value = "n_crc")
private String nCrc;
/** /**
* 企业法人
* 案件类型
*/ */
@ApiModelProperty("案件类型") @ApiModelProperty("案件类型")
private String n_ajlx;
@TableField(value = "n_ajlx")
private String nAjlx;
/** /**
* 地址
* 案号
*/ */
@ApiModelProperty("案号") @ApiModelProperty("案号")
private String c_ah;
@TableField(value = "c_ah")
private String cAh;
/** /**
* 授权书id
* 原审案号
*/ */
@ApiModelProperty("原审案号") @ApiModelProperty("原审案号")
private String c_ah_ys;
@TableField(value = "c_ah_ys")
private String cAhYs;
/** /**
* 授权书id
* 后续案号
*/ */
@ApiModelProperty("后续案号") @ApiModelProperty("后续案号")
private String c_ah_hx;
@TableField(value = "c_ah_hx")
private String cAhHx;
/** /**
* 授权书id
* 经办法院
*/ */
@ApiModelProperty("经办法院") @ApiModelProperty("经办法院")
private String n_jbfy;
@TableField(value = "n_jbfy")
private String nJbfy;
/** /**
* 授权书id
* 法院所属层级
*
* 最高人民法院
* 高级人民法院
* 中级人民法院
* 基层法院
*/ */
@ApiModelProperty("法院所属层级") @ApiModelProperty("法院所属层级")
private String n_jbfy_cj;
@TableField(value = "n_jbfy_cj")
private String nJbfyCj;
/** /**
* 授权书id
* 审理程序
*/ */
@ApiModelProperty("审理程序") @ApiModelProperty("审理程序")
private String n_slcx;
@TableField(value = "n_slcx")
private String nSlcx;
/** /**
* 授权书id
* 所属地域
*/ */
@ApiModelProperty("所属地域") @ApiModelProperty("所属地域")
private String c_ssdy;
@TableField(value = "c_ssdy")
private String cSsdy;
/** /**
* 授权书id
* 案件进展阶段 未结案 已结案
*/ */
@ApiModelProperty("案件进展阶段") @ApiModelProperty("案件进展阶段")
private String n_ajjzjd;
@TableField(value = "n_ajjzjd")
private String nAjjzjd;
/** /**
* 授权书id
* 立案时间
*/ */
@ApiModelProperty("立案时间") @ApiModelProperty("立案时间")
private String d_larq;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@TableField(value = "d_larq")
private Date dLarq;
/**
* 立案案由
*/
@ApiModelProperty("立案案由")
@TableField(value = "n_laay")
private String nLaay;
/** /**
* 授权书id
* 立案案由详细
*/ */
@ApiModelProperty("立案案由详细") @ApiModelProperty("立案案由详细")
private String n_laay_tree;
@TableField(value = "n_laay_tree")
private String nLaayTree;
/** /**
* 授权书id
* 起诉标的金额等级
*/ */
@ApiModelProperty("起诉标的金额等级") @ApiModelProperty("起诉标的金额等级")
private String n_qsbdje_level;
@TableField(value = "n_qsbdje_level")
private String nQsbdjeLevel;
/** /**
* 授权书id
* 起诉标的金额
*/ */
@ApiModelProperty("起诉标的金额") @ApiModelProperty("起诉标的金额")
private BigDecimal n_qsbdje;
@TableField(value = "n_qsbdje")
private BigDecimal nQsbdje;
/** /**
* 授权书id
* 审理方式信息
*/ */
@ApiModelProperty("审理方式信息") @ApiModelProperty("审理方式信息")
private String c_slfsxx;
@TableField(value = "c_slfsxx")
private String cSlfsxx;
/** /**
* 授权书id
* 结案时间
*/ */
@ApiModelProperty("结案时间") @ApiModelProperty("结案时间")
private String d_jarq;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@TableField(value = "d_jarq")
private Date dJarq;
/** /**
* 授权书id
* 结案案由
*/ */
@ApiModelProperty("结案案由") @ApiModelProperty("结案案由")
private String n_jaay;
@TableField(value = "n_jaay")
private String nJaay;
/** /**
* 授权书id
* 结案案由详细
*/ */
@ApiModelProperty("结案案由详细") @ApiModelProperty("结案案由详细")
private String n_jaay_tree;
@TableField(value = "n_jaay_tree")
private String nJaayTree;
/** /**
* 授权书id
* 结案标的金额等级
*/ */
@ApiModelProperty("结案标的金额等级") @ApiModelProperty("结案标的金额等级")
private String n_jabdje_level;
@TableField(value = "n_jabdje_level")
private String nJabdjeLevel;
/** /**
* 授权书id
* 结案标的金额
*/ */
@ApiModelProperty("结案标的金额") @ApiModelProperty("结案标的金额")
private BigDecimal n_jabdje;
@TableField(value = "n_jabdje")
private BigDecimal nJabdje;
/** /**
* 授权书id
* 结案方式
*/ */
@ApiModelProperty("结案方式") @ApiModelProperty("结案方式")
private String n_jafs;
@TableField(value = "n_jafs")
private String nJafs;
/** /**
* 授权书id
* 胜诉估计
*/ */
@ApiModelProperty("胜诉估计") @ApiModelProperty("胜诉估计")
private String n_pj_victory;
@TableField(value = "n_pj_victory")
private String nPjVictory;
/** /**
* 授权书id
* 诉讼地位
*/ */
@ApiModelProperty("诉讼地位") @ApiModelProperty("诉讼地位")
private String n_ssdw;
@TableField(value = "n_ssdw")
private String nSsdw;
/** /**
* 授权书id
* 一审诉讼地位
*/ */
@ApiModelProperty("一审诉讼地位") @ApiModelProperty("一审诉讼地位")
private String n_ssdw_ys;
@TableField(value = "n_ssdw_ys")
private String nSsdwYs;
/** /**
* 授权书id
* 公开文书 ID
*/ */
@ApiModelProperty("公开文书 ID") @ApiModelProperty("公开文书 ID")
private String c_gkws_id;
@TableField(value = "c_gkws_id")
private String cGkwsId;
/** /**
* 授权书id
* 相关案件号
*/ */
@ApiModelProperty("相关案件号") @ApiModelProperty("相关案件号")
private String c_gkws_glah;
@TableField(value = "c_gkws_glah")
private String cGkwsGlah;
/** /**
* 授权书id
* 当事人段落
*/ */
@ApiModelProperty("当事人段落") @ApiModelProperty("当事人段落")
private String c_gkws_dsr;
@TableField(value = "c_gkws_dsr")
private String cGkwsDsr;
/** /**
* 授权书id
* 判决结果段落
*/ */
@ApiModelProperty("判决结果段落") @ApiModelProperty("判决结果段落")
private String c_gkws_pjjg;
@TableField(value = "c_gkws_pjjg")
private String cGkwsPjjg;
//**********刑事案件 //**********刑事案件
/** /**
* 授权书id
* 犯罪金额等级
*/ */
@ApiModelProperty("犯罪金额等级") @ApiModelProperty("犯罪金额等级")
private String n_fzje_level;
@TableField(value = "n_fzje_level")
private String nFzjeLevel;
/** /**
* 授权书id
* 犯罪金额
*/ */
@ApiModelProperty("犯罪金额") @ApiModelProperty("犯罪金额")
private BigDecimal n_fzje;
@TableField(value = "n_fzje")
private BigDecimal nFzje;
/** /**
* 授权书id
* 被请求赔偿金额等级
*/ */
@ApiModelProperty("被请求赔偿金额等级") @ApiModelProperty("被请求赔偿金额等级")
private String n_bqqpcje_level;
@TableField(value = "n_bqqpcje_level")
private String nBqqpcjeLevel;
/** /**
* 授权书id
* 被请求赔偿金额
*/ */
@ApiModelProperty("被请求赔偿金额") @ApiModelProperty("被请求赔偿金额")
private BigDecimal n_bqqpcje;
@TableField(value = "n_bqqpcje")
private BigDecimal nBqqpcje;
/** /**
* 授权书id
* 定罪罪名
*/ */
@ApiModelProperty("定罪罪名") @ApiModelProperty("定罪罪名")
private String n_dzzm;
@TableField(value = "n_dzzm")
private String nDzzm;
/** /**
* 授权书id
* 定罪罪名详细
*/ */
@ApiModelProperty("定罪罪名详细") @ApiModelProperty("定罪罪名详细")
private String n_dzzm_tree;
@TableField(value = "n_dzzm_tree")
private String nDzzmTree;
/** /**
* 授权书id
* 判处结果
*/ */
@ApiModelProperty("判处结果") @ApiModelProperty("判处结果")
private String n_pcjg;
@TableField(value = "n_pcjg")
private String nPcjg;
/** /**
* 授权书id
* 财产刑执行金额等级
*/ */
@ApiModelProperty("财产刑执行金额等级") @ApiModelProperty("财产刑执行金额等级")
private String n_ccxzxje_level;
@TableField(value = "n_ccxzxje_level")
private String nCcxzxjeLevel;
/** /**
* 授权书id
* 财产刑执行金额
*/ */
@ApiModelProperty("财产刑执行金额") @ApiModelProperty("财产刑执行金额")
private BigDecimal n_ccxzxje;
@TableField(value = "n_ccxzxje")
private BigDecimal nCcxzxje;
/** /**
* 授权书id
* 判处赔偿金额等级
*/ */
@ApiModelProperty("判处赔偿金额等级") @ApiModelProperty("判处赔偿金额等级")
private String n_pcpcje_level;
@TableField(value = "n_pcpcje_level")
private String nPcpcjeLevel;
/** /**
* 授权书id
* 判处赔偿金额
*/ */
@ApiModelProperty("判处赔偿金额") @ApiModelProperty("判处赔偿金额")
private BigDecimal n_pcpcje;
@TableField(value = "n_pcpcje")
private BigDecimal nPcpcje;
//********非诉保全审查 //********非诉保全审查
/** /**
* 授权书id
* 申请保全数额等级
*/ */
@ApiModelProperty("申请保全数额等级") @ApiModelProperty("申请保全数额等级")
private String n_sqbqse_level;
@TableField(value = "n_sqbqse_level")
private String nSqbqseLevel;
/** /**
* 授权书id
* 申请保全数额
*/ */
@ApiModelProperty("申请保全数额") @ApiModelProperty("申请保全数额")
private String n_sqbqse;
@TableField(value = "n_sqbqse")
private String nSqbqse;
/** /**
* 授权书id
* 申请保全标的物
*/ */
@ApiModelProperty("申请保全标的物") @ApiModelProperty("申请保全标的物")
private String c_sqbqbdw;
@TableField(value = "c_sqbqbdw")
private String cSqbqbdw;
//***********执行案件 //***********执行案件
/** /**
* 申请执行标的金额 * 申请执行标的金额
*/ */
@ApiModelProperty("申请执行标的金额") @ApiModelProperty("申请执行标的金额")
private String n_sqzxbdje;
@TableField(value = "n_sqzxbdje")
private BigDecimal nSqzxbdje;
/** /**
* 实际到位金额 * 实际到位金额
*/ */
@ApiModelProperty("实际到位金额") @ApiModelProperty("实际到位金额")
private BigDecimal n_sjdwje;
@TableField(value = "n_sjdwje")
private BigDecimal nSjdwje;
/** /**
* 未执行金额 * 未执行金额
*/ */
@ApiModelProperty("未执行金额") @ApiModelProperty("未执行金额")
private BigDecimal n_wzxje;
@TableField(value = "n_wzxje")
private BigDecimal nWzxje;
/** /**
* 公司名称 * 公司名称
*/ */
@ -269,13 +379,16 @@ public class LawCase extends BaseField{
*/ */
@ApiModelProperty("社会信用统一代码") @ApiModelProperty("社会信用统一代码")
private String creditCode; private String creditCode;
/** /**
* 案件类型 * 案件类型
*/ */
@ApiModelProperty("案件类型") @ApiModelProperty("案件类型")
private String caseType; private String caseType;
/**
* 当事人信息
*/
@TableField(exist = false)
private List<LitigantInfo> litigantInfoList;
} }

+ 9
- 4
src/main/java/com/fkzy/warn/model/LitigantInfo.java View File

@ -15,27 +15,32 @@ import lombok.Data;
@Data @Data
@TableName("t_litigant_info") @TableName("t_litigant_info")
public class LitigantInfo extends BaseField{ public class LitigantInfo extends BaseField{
@TableId(value = "id", type = IdType.ASSIGN_UUID) @TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id; private String id;
/** /**
* 案件标识 * 案件标识
*/ */
@ApiModelProperty("案件标识") @ApiModelProperty("案件标识")
private String n_ajbs;
private String nAjbs;
/** /**
* 名称 * 名称
*/ */
@ApiModelProperty("名称") @ApiModelProperty("名称")
private String c_mc;
private String cMc;
/** /**
* 当事人类型 * 当事人类型
*/ */
@ApiModelProperty("当事人类型") @ApiModelProperty("当事人类型")
private String n_dsrlx;
private String nDsrlx;
/** /**
* 诉讼地位 * 诉讼地位
*/ */
@ApiModelProperty("诉讼地位") @ApiModelProperty("诉讼地位")
private String n_ssdw;
private String nSsdw;
} }

+ 89
- 0
src/main/java/com/fkzy/warn/model/ReportModel.java View File

@ -0,0 +1,89 @@
package com.fkzy.warn.model;
import lombok.Data;
import java.util.List;
/**
* @author zhangjing
* @date 2024/12/17 19:19
* @description
*/
@Data
public class ReportModel {
/**
* 司法体检背景
**/
private String backgroundJudicial;
/**
* 企业基本信息
**/
private EnterpriseInfo basicEnterprise;
/**
* 近三月新发案件告警Text1
**/
private String threeMonthsText1;
/**
* 近三月新发案件告警Table1
**/
private List<LawCase> threeMonthsCases;
/**
* 近三月新发案件告警Text2
**/
private String threeMonthsText2;
/**
* 近三月新发案件告警Text3
**/
private String threeMonthsText3;
/**
* 5.1 案件审理阶段Text1
**/
private String caseStageText1;
/**
* 5.2 案件发生地域与管辖法院
**/
private String locationText;
/**
* 5.3案件类型与案由Text1
**/
private String caseActionText1;
/**
* 近三年案件总体分析
**/
private List<LawCase> threeYearsCases;
/**
* 5.3案件类型与案由Text2
**/
private String caseActionText2;
/**
* 5.4 涉案金额
**/
private String amountInvolvedText;
/**
* 5.5 诉讼地位
**/
private String litigationStatusText;
/**
* 6.2 重大法律纠纷案件
**/
private String majorCaseText;
/**
* 6.3 执行案件
**/
private String executionCasesText;
/**
* 6.4 高频诉讼对手
**/
private String highFrequencyText;
}

+ 44
- 0
src/main/java/com/fkzy/warn/service/EnterpriseInfoService.java View File

@ -0,0 +1,44 @@
package com.fkzy.warn.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fkzy.warn.model.EnterpriseInfo;
import java.util.List;
/**
* @author zhangjing
* @date 2023/10/16 18:17
* @description
*/
public interface EnterpriseInfoService extends IService<EnterpriseInfo> {
/**
* 保存
* @param entity
* @return
*/
void saveModel(EnterpriseInfo entity,String ticket);
/**
* 修改
* @param entity
* @return
*/
void updateModel(EnterpriseInfo entity,String ticket);
/**
* 删除
* @param ids
* @return
*/
void deleteModel(List<String> ids);
/**
* 工商模型保存
* @param jsonObject
* @return
*/
void industryModelSave(JSONObject jsonObject);
}

+ 54
- 0
src/main/java/com/fkzy/warn/service/impl/EnterpriseInfoServiceImpl.java View File

@ -0,0 +1,54 @@
package com.fkzy.warn.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fkzy.warn.common.constants.EntityConstants;
import com.fkzy.warn.mapper.EnterpriseInfoMapper;
import com.fkzy.warn.model.EnterpriseInfo;
import com.fkzy.warn.model.LawCase;
import com.fkzy.warn.service.EnterpriseInfoService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author zhangjing
* @date 2023/10/16 18:17
* @description
*/
@Service
public class EnterpriseInfoServiceImpl extends ServiceImpl<EnterpriseInfoMapper, EnterpriseInfo> implements
EnterpriseInfoService {
@Override
public void saveModel(EnterpriseInfo entity, String ticket) {
save(entity);
}
@Override
public void updateModel(EnterpriseInfo entity,String ticket) {
this.updateById(entity);
}
@Override
public void deleteModel(List<String> ids) {
EnterpriseInfo entity = new EnterpriseInfo();
entity.setIsDel(EntityConstants.DEL);
QueryWrapper wrapper = new QueryWrapper();
wrapper.in("id", ids);
update(entity, wrapper);
}
@Override
public void industryModelSave(JSONObject jsonObject) {
JSONObject data = jsonObject.getJSONObject("data");
JSONObject BASIC = data.getJSONObject("BASIC");
EnterpriseInfo enterpriseInfo = JSON.parseObject(BASIC.toString(), EnterpriseInfo.class);
save(enterpriseInfo);
}
}

+ 202
- 235
src/main/java/com/fkzy/warn/service/impl/LawCaseServiceImpl.java View File

@ -6,15 +6,13 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fkzy.warn.common.constants.EntityConstants; import com.fkzy.warn.common.constants.EntityConstants;
import com.fkzy.warn.common.util.ReportUtil;
import com.fkzy.warn.mapper.LawCaseMapper; import com.fkzy.warn.mapper.LawCaseMapper;
import com.fkzy.warn.service.DishonestInfoService;
import com.fkzy.warn.service.LawCaseService;
import com.fkzy.warn.service.LitigantInfoService;
import com.fkzy.warn.model.DishonestInfo;
import com.fkzy.warn.model.EnterpriseInfo;
import com.fkzy.warn.model.LawCase; import com.fkzy.warn.model.LawCase;
import com.fkzy.warn.model.Limitation;
import com.fkzy.warn.model.LitigantInfo; import com.fkzy.warn.model.LitigantInfo;
import com.fkzy.warn.service.LimitationService;
import com.fkzy.warn.model.ReportModel;
import com.fkzy.warn.service.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -22,16 +20,7 @@ import org.springframework.stereotype.Service;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.BiConsumer;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/** /**
* @author zhangjing * @author zhangjing
@ -52,6 +41,9 @@ public class LawCaseServiceImpl extends ServiceImpl impl
@Autowired @Autowired
private LitigantInfoService litigantInfoService; private LitigantInfoService litigantInfoService;
@Autowired
private EnterpriseInfoService enterpriseInfoService;
@Override @Override
public void saveModel(LawCase entity, String ticket) { public void saveModel(LawCase entity, String ticket) {
save(entity); save(entity);
@ -73,191 +65,145 @@ public class LawCaseServiceImpl extends ServiceImpl impl
/** /**
* 近三月新发案件告警 * 近三月新发案件告警
*
* @return java.lang.String * @return java.lang.String
* @author zhangjing * @author zhangjing
* @create 2024/12/15 * @create 2024/12/15
**/ **/
private String threeMonths() {
private List<LawCase> threeMonthsCases() {
// 获取当前日期 // 获取当前日期
Date currentDate = new Date(); Date currentDate = new Date();
Calendar calendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate); calendar.setTime(currentDate);
calendar.add(Calendar.MONTH, -3);
calendar.add(Calendar.MONTH, -16);
Date threeMonthsAgo = calendar.getTime(); Date threeMonthsAgo = calendar.getTime();
// 获取近三个月的案件
// 获取近三个月的案件 d_larq 立案日期字段
QueryWrapper<LawCase> query = new QueryWrapper<>(); QueryWrapper<LawCase> query = new QueryWrapper<>();
query.ge("d_larq", threeMonthsAgo); // 假设 d_larq 是案件日期字段
List<LawCase> caseList = list(query);
// 初始化统计数据
int totalCases = 0;
BigDecimal totalAmount = BigDecimal.ZERO;
int plaintiffCases = 0;
BigDecimal plaintiffAmount = BigDecimal.ZERO;
int defendantCases = 0;
BigDecimal defendantAmount = BigDecimal.ZERO;
int thirdPartyCases = 0;
BigDecimal thirdPartyAmount = BigDecimal.ZERO;
// 遍历案件列表并统计
query.ge("d_larq", threeMonthsAgo);
List<LawCase> caseList = this.list(query);
for (LawCase lawCase : caseList) { for (LawCase lawCase : caseList) {
totalCases++;
totalAmount = totalAmount.add(lawCase.getN_qsbdje()); // 使用 BigDecimal add 方法
QueryWrapper<LitigantInfo> infoQueryWrapper = new QueryWrapper<>(); QueryWrapper<LitigantInfo> infoQueryWrapper = new QueryWrapper<>();
infoQueryWrapper.eq("n_ajbs", lawCase.getN_ajbs());
List<LitigantInfo> litigantList = litigantInfoService.list(infoQueryWrapper);
for (LitigantInfo litigantInfo : litigantList) {
if ("原告".equals(litigantInfo.getN_ssdw())) {
plaintiffCases++;
plaintiffAmount = plaintiffAmount.add(lawCase.getN_qsbdje());
} else if ("被告".equals(litigantInfo.getN_ssdw())) {
defendantCases++;
defendantAmount = defendantAmount.add(lawCase.getN_qsbdje());
} else if ("第三人".equals(litigantInfo.getN_ssdw())) {
thirdPartyCases++;
thirdPartyAmount = thirdPartyAmount.add(lawCase.getN_qsbdje());
}
}
infoQueryWrapper.eq("n_ajbs", lawCase.getNAjbs());
lawCase.setLitigantInfoList(litigantInfoService.list(infoQueryWrapper));
} }
// 构建返回字符串
StringBuilder result = new StringBuilder();
result.append("近三个月新发案件").append(totalCases).append("件,涉案金额").append(totalAmount).append("万元。\n");
result.append("其中,原告案件").append(plaintiffCases).append("件,涉诉金额").append(plaintiffAmount).append("万元;\n");
result.append("被告案件").append(defendantCases).append("件,涉诉金额").append(defendantAmount).append("万元;\n");
result.append("第三人案件").append(thirdPartyCases).append("件,涉诉金额").append(thirdPartyAmount).append("万元。");
return result.toString();
return caseList;
} }
/** /**
*
* 案件审理阶段
* 近三年案件
*
* @return java.lang.String * @return java.lang.String
* @author zhangjing * @author zhangjing
* @create 2024/12/15 * @create 2024/12/15
**/ **/
private String caseStage(String companyName){
private List<LawCase> threeYearsCases() {
// 获取当前日期
Date currentDate = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate);
calendar.add(Calendar.MONTH, -36);
Date threeMonthsAgo = calendar.getTime();
// 获取近三个月的案件 d_larq 立案日期字段
QueryWrapper<LawCase> query = new QueryWrapper<>(); QueryWrapper<LawCase> query = new QueryWrapper<>();
query.eq("company_name",companyName);
List<LawCase> caseList = list(query);
// 初始化统计数据
int totalCases = 0;
BigDecimal totalAmount = BigDecimal.ZERO;
int plaintiffCases = 0;
BigDecimal plaintiffAmount = BigDecimal.ZERO;
int defendantCases = 0;
BigDecimal defendantAmount = BigDecimal.ZERO;
int thirdPartyCases = 0;
BigDecimal thirdPartyAmount = BigDecimal.ZERO;
int ysCases = 0;
int esCases = 0;
int zsCases = 0;
int zzsCases = 0;
int zxCases = 0;
// 遍历案件列表并统计
query.ge("d_larq", threeMonthsAgo);
List<LawCase> caseList = this.list(query);
for (LawCase lawCase : caseList) { for (LawCase lawCase : caseList) {
totalCases++;
totalAmount = totalAmount.add(lawCase.getN_qsbdje()); // 使用 BigDecimal add 方法
QueryWrapper<LitigantInfo> infoQueryWrapper = new QueryWrapper<>(); QueryWrapper<LitigantInfo> infoQueryWrapper = new QueryWrapper<>();
infoQueryWrapper.eq("n_ajbs", lawCase.getN_ajbs());
List<LitigantInfo> litigantList = litigantInfoService.list(infoQueryWrapper);
for (LitigantInfo litigantInfo : litigantList) {
if ("原告".equals(litigantInfo.getN_ssdw())) {
plaintiffCases++;
plaintiffAmount = plaintiffAmount.add(lawCase.getN_qsbdje());
} else if ("被告".equals(litigantInfo.getN_ssdw())) {
defendantCases++;
defendantAmount = defendantAmount.add(lawCase.getN_qsbdje());
} else if ("第三人".equals(litigantInfo.getN_ssdw())) {
thirdPartyCases++;
thirdPartyAmount = thirdPartyAmount.add(lawCase.getN_qsbdje());
}
}
//n_slcx
if (lawCase.getN_slcx().equals("一审")){
}
infoQueryWrapper.eq("n_ajbs", lawCase.getNAjbs());
lawCase.setLitigantInfoList(litigantInfoService.list(infoQueryWrapper));
} }
return caseList;
}
// 构建返回字符串
StringBuilder result = new StringBuilder();
result.append("案件总数").append(totalCases).append("件,总涉案金额").append(totalAmount).append("万元,\n");
result.append("原告案件").append(plaintiffCases).append("件,涉诉金额").append(plaintiffAmount).append("万元;\n");
result.append("被告案件").append(defendantCases).append("件,涉诉金额").append(defendantAmount).append("万元;\n");
result.append("第三人案件").append(thirdPartyCases).append("件,涉诉金额").append(thirdPartyAmount).append("万元。");
private ReportModel createReportData(){
ReportModel reportModel = new ReportModel();
QueryWrapper<EnterpriseInfo> enterpriseInfoQueryWrapper = new QueryWrapper<>();
enterpriseInfoQueryWrapper.eq("CREDITCODE", "91440300087909371X");
EnterpriseInfo enterpriseInfo = enterpriseInfoService.getOne(enterpriseInfoQueryWrapper);
reportModel.setBackgroundJudicial(ReportUtil.backgroundJudicial(enterpriseInfo));
reportModel.setBasicEnterprise(enterpriseInfo);
List<LawCase> threeMonthsCases = threeMonthsCases();
reportModel.setThreeMonthsText1(ReportUtil.threeMonthsText1(threeMonthsCases));
reportModel.setThreeMonthsCases(threeMonthsCases);
reportModel.setThreeMonthsText2(ReportUtil.threeMonthsText2(threeMonthsCases));
reportModel.setThreeMonthsText3(ReportUtil.threeMonthsText3(threeMonthsCases));
List<LawCase> threeYearsCases = threeYearsCases();
reportModel.setCaseStageText1(ReportUtil.caseStageText1(threeYearsCases));
reportModel.setLocationText(ReportUtil.locationText(threeYearsCases));
reportModel.setCaseActionText1(ReportUtil.caseActionText1(threeYearsCases));
reportModel.setThreeYearsCases(threeYearsCases);
reportModel.setCaseActionText2(ReportUtil.caseActionText2(threeYearsCases));
reportModel.setLitigationStatusText(ReportUtil.litigationStatusText(threeYearsCases));
reportModel.setMajorCaseText(ReportUtil.majorCase(threeYearsCases));
reportModel.setHighFrequencyText(ReportUtil.highFrequencyText(threeYearsCases));
return reportModel;
}
//案件总数1252件总涉案金额18839002.77万元原告案件21件涉诉金额560.89万元被告案件1219件涉诉金额18838000.61万元第三人案件12件涉诉金额441.27万元一审案件1054件二审案件197件再审案件5件再审审查案件3件执行案件2件
return "";
}
@Override @Override
public void judicialModelSave(JSONObject jsonObject) { public void judicialModelSave(JSONObject jsonObject) {
String filePath = "司法.txt";
String jsonOutput = convertTextToJson(filePath);
if (jsonOutput == null) {
logger.error("转换失败,JSON 字符串为空");
return;
}
jsonObject = new JSONObject().parseObject(jsonOutput);
JSONArray arr = jsonObject.getJSONArray("data");
if (arr == null || arr.isEmpty()) {
logger.error("数据数组为空");
return;
}
JSONObject data = arr.getJSONObject(0);
String info = data.getString("id");
String companyName = null;
String creditCode = null;
if (info != null) {
String[] items = info.split(":");
if (items.length == 2) {
companyName = items[0];
creditCode = items[1];
}
}
// 失信
JSONObject sx = data.getJSONObject("sx");
JSONArray sxbzxrCurrent = sx.getJSONArray("sxbzxr_current");
String finalCompanyName = companyName;
String finalCreditCode = creditCode;
List<DishonestInfo> dishonestInfoList = JSON.parseArray(sxbzxrCurrent.toString(), DishonestInfo.class)
.stream()
.peek(p -> {
p.setCompanyName(finalCompanyName);
p.setCreditCode(finalCreditCode);
})
.collect(Collectors.toList());
dishonestInfoService.saveOrUpdateBatch(dishonestInfoList);
ReportModel reportModel = createReportData();
ReportUtil.createReport(reportModel);
// String filePath = "司法.txt";
// String filePath = "工商.txt";
// String jsonOutput = convertTextToJson(filePath);
// if (jsonOutput == null) {
// logger.error("转换失败,JSON 字符串为空");
// return;
// }
// jsonObject = new JSONObject().parseObject(jsonOutput);
// JSONArray arr = jsonObject.getJSONArray("data");
// if (arr == null || arr.isEmpty()) {
// logger.error("数据数组为空");
// return;
// }
//
// JSONObject data = arr.getJSONObject(0);
// String info = data.getString("id");
// String companyName = null;
// String creditCode = null;
// if (info != null) {
// String[] items = info.split(":");
// if (items.length == 2) {
// companyName = items[0];
// creditCode = items[1];
// }
// }
//
// // 失信
// JSONObject sx = data.getJSONObject("sx");
// JSONArray sxbzxrCurrent = sx.getJSONArray("sxbzxr_current");
// String finalCompanyName = companyName;
// String finalCreditCode = creditCode;
// List<DishonestInfo> dishonestInfoList = JSON.parseArray(sxbzxrCurrent.toString(), DishonestInfo.class)
// .stream()
// .peek(p -> {
// p.setCompanyName(finalCompanyName);
// p.setCreditCode(finalCreditCode);
// })
// .collect(Collectors.toList());
// dishonestInfoService.saveOrUpdateBatch(dishonestInfoList);
//
// // 八类案件
// JSONObject detail = data.getJSONObject("detail");
// setCases(detail, companyName, creditCode);
//
// // 限高
// JSONObject xg = data.getJSONObject("xg");
// JSONArray xgbzxrCurrent = xg.getJSONArray("xgbzxr_current");
//
// List<Limitation> limitationList = JSON.parseArray(xgbzxrCurrent.toString(), Limitation.class)
// .stream()
// .peek(p -> {
// p.setCompanyName(finalCompanyName);
// p.setCreditCode(finalCreditCode);
// })
// .collect(Collectors.toList());
// limitationService.saveOrUpdateBatch(limitationList);
}
// 八类案件
JSONObject detail = data.getJSONObject("detail");
setCases(detail, companyName, creditCode);
// 限高
JSONObject xg = data.getJSONObject("xg");
JSONArray xgbzxrCurrent = xg.getJSONArray("xgbzxr_current");
List<Limitation> limitationList = JSON.parseArray(xgbzxrCurrent.toString(), Limitation.class)
.stream()
.peek(p -> {
p.setCompanyName(finalCompanyName);
p.setCreditCode(finalCreditCode);
})
.collect(Collectors.toList());
limitationService.saveOrUpdateBatch(limitationList);
}
private void setCases(JSONObject detail, String companyName, String creditCode) { private void setCases(JSONObject detail, String companyName, String creditCode) {
List<Map.Entry<String, JSONArray>> entries = Arrays.asList( List<Map.Entry<String, JSONArray>> entries = Arrays.asList(
@ -268,8 +214,7 @@ public class LawCaseServiceImpl extends ServiceImpl impl
new AbstractMap.SimpleEntry<>("implement", detail.getJSONObject("implement").getJSONArray("cases")), new AbstractMap.SimpleEntry<>("implement", detail.getJSONObject("implement").getJSONArray("cases")),
new AbstractMap.SimpleEntry<>("bankrupt", detail.getJSONObject("bankrupt").getJSONArray("cases")), new AbstractMap.SimpleEntry<>("bankrupt", detail.getJSONObject("bankrupt").getJSONArray("cases")),
new AbstractMap.SimpleEntry<>("jurisdict", detail.getJSONObject("jurisdict").getJSONArray("cases")), new AbstractMap.SimpleEntry<>("jurisdict", detail.getJSONObject("jurisdict").getJSONArray("cases")),
new AbstractMap.SimpleEntry<>("compensate", detail.getJSONObject("compensate").getJSONArray("cases"))
);
new AbstractMap.SimpleEntry<>("compensate", detail.getJSONObject("compensate").getJSONArray("cases")));
entries.forEach(entry -> saveCases(entry.getValue(), entry.getKey(), companyName, creditCode)); entries.forEach(entry -> saveCases(entry.getValue(), entry.getKey(), companyName, creditCode));
} }
@ -277,100 +222,122 @@ public class LawCaseServiceImpl extends ServiceImpl impl
private void saveCases(JSONArray jsonArray, String type, String companyName, String creditCode) { private void saveCases(JSONArray jsonArray, String type, String companyName, String creditCode) {
List<LawCase> caseList = new ArrayList<>(); List<LawCase> caseList = new ArrayList<>();
List<LitigantInfo> litigantInfoList = new ArrayList<>(); List<LitigantInfo> litigantInfoList = new ArrayList<>();
List<String> nAjbsList = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) { for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i); JSONObject jsonObject = jsonArray.getJSONObject(i);
LawCase lawCase = JSON.parseObject(jsonObject.toString(), LawCase.class); LawCase lawCase = JSON.parseObject(jsonObject.toString(), LawCase.class);
lawCase.setCompanyName(companyName); lawCase.setCompanyName(companyName);
lawCase.setCreditCode(creditCode); lawCase.setCreditCode(creditCode);
lawCase.setCaseType(type); lawCase.setCaseType(type);
if (lawCase.getN_ajbs() != null) {
if (lawCase.getNAjbs() != null) {
caseList.add(lawCase); caseList.add(lawCase);
} }
JSONArray cDsrxx = jsonObject.getJSONArray("c_dsrxx"); JSONArray cDsrxx = jsonObject.getJSONArray("c_dsrxx");
if (cDsrxx != null && lawCase.getN_ajbs() != null) {
nAjbsList.add(lawCase.getNAjbs());
if (cDsrxx != null && lawCase.getNAjbs() != null) {
for (int j = 0; j < cDsrxx.size(); j++) { for (int j = 0; j < cDsrxx.size(); j++) {
JSONObject obj = cDsrxx.getJSONObject(j); JSONObject obj = cDsrxx.getJSONObject(j);
LitigantInfo litigantInfo = JSON.parseObject(obj.toString(), LitigantInfo.class); LitigantInfo litigantInfo = JSON.parseObject(obj.toString(), LitigantInfo.class);
litigantInfo.setN_ajbs(lawCase.getN_ajbs());
litigantInfo.setNAjbs(lawCase.getNAjbs());
litigantInfoList.add(litigantInfo); litigantInfoList.add(litigantInfo);
} }
} }
} }
if (!caseList.isEmpty()) {
saveOrUpdateCases(caseList);
}
// if (!caseList.isEmpty()) {
// saveOrUpdateCases(caseList);
// }
if (!litigantInfoList.isEmpty()) { if (!litigantInfoList.isEmpty()) {
QueryWrapper<LitigantInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.in("n_ajbs", nAjbsList);
litigantInfoService.remove(queryWrapper);
saveOrUpdateLitigantInfo(litigantInfoList); saveOrUpdateLitigantInfo(litigantInfoList);
} }
} }
// 批量大小 // 批量大小
private static final int BATCH_SIZE = 500;
private static final int THREAD_COUNT = 3;
public void saveOrUpdateCases(List<LawCase> lawCaseList) {
ExecutorService executorService = Executors.newFixedThreadPool(THREAD_COUNT);
AtomicInteger counter = new AtomicInteger(0);
for (int i = 0; i < lawCaseList.size(); i += BATCH_SIZE) {
int start = i;
int end = Math.min(i + BATCH_SIZE, lawCaseList.size());
List<LawCase> batch = lawCaseList.subList(start, end);
int finalCounter = counter.getAndIncrement();
executorService.submit(() -> {
try {
this.saveOrUpdateBatch(batch, BATCH_SIZE);
} catch (Exception e) {
// 处理异常
System.err.println("Error processing batch " + finalCounter + ": " + e.getMessage());
}
});
}
executorService.shutdown();
try {
executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new RuntimeException("Interrupted while waiting for tasks to complete", e);
private static final int BATCH_SIZE = 20;
private static final int THREAD_COUNT = 1;
public void saveOrUpdateCases(List<LawCase> entityList) {
int batchSize=20;
int size = entityList.size(); // 总记录数
for (int i = 0; i < size; i += batchSize) {
int toIndex = Math.min(i + batchSize, size); // 计算当前批次的结束索引
List<LawCase> batch = entityList.subList(i, toIndex); // 提取当前批次的记录
// 执行批量插入或更新操作
this.saveOrUpdateBatch(batch);
} }
} }
public void saveOrUpdateLitigantInfo(List<LitigantInfo> litigantInfoList) {
// QueryWrapper<LitigantInfo> query = new QueryWrapper<LitigantInfo>();
// query.eq("n_ajbs", litigantInfoList.get(0).getN_ajbs());
// litigantInfoService.remove(query);
ExecutorService executorService = Executors.newFixedThreadPool(THREAD_COUNT);
AtomicInteger counter = new AtomicInteger(0);
for (int i = 0; i < litigantInfoList.size(); i += BATCH_SIZE) {
int start = i;
int end = Math.min(i + BATCH_SIZE, litigantInfoList.size());
List<LitigantInfo> batch = litigantInfoList.subList(start, end);
int finalCounter = counter.getAndIncrement();
executorService.submit(() -> {
try {
litigantInfoService.saveOrUpdateBatch(batch, BATCH_SIZE);
} catch (Exception e) {
// 处理异常
System.err.println("Error processing batch LitigantInfo" + finalCounter + ": " + e.getMessage());
}
});
}
executorService.shutdown();
try {
executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
throw new RuntimeException("Interrupted while waiting for tasks to complete", e);
}
// public void saveOrUpdateCases(List<LawCase> lawCaseList) {
// ExecutorService executorService = Executors.newFixedThreadPool(THREAD_COUNT);
// AtomicInteger counter = new AtomicInteger(0);
//
// for (int i = 0; i < lawCaseList.size(); i += BATCH_SIZE) {
// int start = i;
// int end = Math.min(i + BATCH_SIZE, lawCaseList.size());
// List<LawCase> batch = lawCaseList.subList(start, end);
// int finalCounter = counter.getAndIncrement();
// executorService.submit(() -> {
// try {
// this.saveOrUpdateBatch(batch, BATCH_SIZE);
// } catch (Exception e) {
// // 处理异常
// System.err.println("Error processing batch " + finalCounter + ": " + e.getMessage());
// }
// });
// }
// executorService.shutdown();
// try {
// executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
// } catch (InterruptedException e) {
// Thread.currentThread().interrupt();
// throw new RuntimeException("Interrupted while waiting for tasks to complete", e);
// }
// }
public void saveOrUpdateLitigantInfo(List<LitigantInfo> entityList) {
int batchSize=20;
int size = entityList.size(); // 总记录数
for (int i = 0; i < size; i += batchSize) {
int toIndex = Math.min(i + batchSize, size); // 计算当前批次的结束索引
List<LitigantInfo> batch = entityList.subList(i, toIndex); // 提取当前批次的记录
// 执行批量插入或更新操作
litigantInfoService.saveOrUpdateBatch(batch);
} }
}
// public void saveOrUpdateLitigantInfo(List<LitigantInfo> litigantInfoList) {
//// QueryWrapper<LitigantInfo> query = new QueryWrapper<LitigantInfo>();
//// query.eq("n_ajbs", litigantInfoList.get(0).getN_ajbs());
//// litigantInfoService.remove(query);
// ExecutorService executorService = Executors.newFixedThreadPool(THREAD_COUNT);
// AtomicInteger counter = new AtomicInteger(0);
//
// for (int i = 0; i < litigantInfoList.size(); i += BATCH_SIZE) {
// int start = i;
// int end = Math.min(i + BATCH_SIZE, litigantInfoList.size());
// List<LitigantInfo> batch = litigantInfoList.subList(start, end);
// int finalCounter = counter.getAndIncrement();
// executorService.submit(() -> {
// try {
// litigantInfoService.saveOrUpdateBatch(batch, BATCH_SIZE);
// } catch (Exception e) {
// // 处理异常
// System.err.println("Error processing batch LitigantInfo" + finalCounter + ": " + e.getMessage());
// }
// });
// }
// executorService.shutdown();
// try {
// executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
// } catch (InterruptedException e) {
// Thread.currentThread().interrupt();
// throw new RuntimeException("Interrupted while waiting for tasks to complete", e);
// }
// }
public String convertTextToJson(String filePath) { public String convertTextToJson(String filePath) {
StringBuilder contentBuilder = new StringBuilder(); StringBuilder contentBuilder = new StringBuilder();

BIN
司法风险报告demo.docx View File


+ 1
- 0
工商.txt
File diff suppressed because it is too large
View File


Loading…
Cancel
Save