案件bug修复

This commit is contained in:
18792927508
2023-12-21 09:16:26 +08:00
parent c7970e884f
commit 1da61f526d
6 changed files with 369 additions and 178 deletions
@@ -222,14 +222,13 @@ public class DeptIdentifyController extends BaseController {
/**
* 根据模板id查询模板字段列表
* @param templateManage
* @param id
* @return
*/
@GetMapping("/getTemplateInfoById")
public AjaxResult getTemplateInfoById(@RequestBody TemplateManage templateManage){
if(templateManage.getId()==null){
return error("参数校验错误");
}
public AjaxResult getTemplateInfoById(@RequestParam("id") Long id){
TemplateManage templateManage = new TemplateManage();
templateManage.setId(id);
List<FatchRule> fatchRuleList = deptIdentifyService.getTemplateInfoById(templateManage);
return AjaxResult.success(fatchRuleList);
}
@@ -1093,9 +1093,11 @@ public class CaseApplicationServiceImpl implements ICaseApplicationService {
if(CollectionUtil.isNotEmpty(caseApplication.getColumnValues())) {
// 修改自定义字段
for (ColumnValue columnValue : caseApplication.getColumnValues()) {
if(StrUtil.isNotEmpty(columnValue.getValue())) {
columnValueMapper.updateColumnValue(columnValue);
}
}
}
// 修改记录表状态为同意提交修改的内容
caseApplication.setUpdateSubmitStatus(0);
} else {
@@ -32,6 +32,7 @@ import com.ruoyi.wisdomarbitrate.utils.UnZipFileUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
@@ -93,7 +94,7 @@ public class CaseZipImportImpl {
private Integer maxCaseNum;
private Integer maxBatchNumber;
@Transactional
public AjaxResult zipImport(MultipartFile file, Long templateId) {
UUID uuid = UUID.randomUUID();
// todo
@@ -166,7 +167,12 @@ public class CaseZipImportImpl {
throw new ServiceException("未找到文件夹");
}
File[] files = directory.listFiles();
CaseZipImportTask caseZipImportTask = new CaseZipImportTask(this, templateId, fatchRuleList, fatchMap, fatchRuleMap, userMap, dictDataList, files , deptMap,SecurityUtils.getLoginUser());
CaseZipImportTask caseZipImportTask = null;
try {
caseZipImportTask = new CaseZipImportTask(this, templateId, fatchRuleList, fatchMap, fatchRuleMap, userMap, dictDataList, files , deptMap, SecurityUtils.getLoginUser());
} catch (Exception e) {
return error("导入失败");
}
Future<List<CaseApplication>> future = ThreadPoolUtil.submit(caseZipImportTask);
try {
if(future.get()!=null){
@@ -174,14 +180,17 @@ public class CaseZipImportImpl {
}
} catch (InterruptedException e) {
e.printStackTrace();
return success("导入失败");
} catch (ExecutionException e) {
e.printStackTrace();
return success("导入失败");
}
return error("无可导入的案件");
return error("导入失败");
}
@Transactional
public CaseApplication buildCaseInfo(File file, Long templateId, List<FatchRule> fatchRuleList, Map<String, List<FatchRule>> fatchRuleMap, Map<String, String> fatchMap, Map<String, SysUser> userMap, List<SysDictData> dictDataList, Map<String, Long> deptMap,LoginUser loginUser) {
// fileMap<caseId, List<File>>
Map<String, String> fileMap = findFile(file, fatchRuleList);
@@ -288,9 +297,54 @@ public class CaseZipImportImpl {
caseApplication.setCaseAttachList(caseAttachs);
// 案件压缩包导入
caseApplication.setImportFlag(2);
caseApplicationMapper.insertCaseApplication(caseApplication);
// 多线程执行
// List<MultipleThreadListParam> execList = new ArrayList<>();
// if (CollectionUtil.isNotEmpty(addUsers)) {
// Function<List<SysUser>, Integer> function = userMapper::batchSave;
// execList.add(new MultipleThreadListParam(function, addUsers));
// }
// if (CollectionUtil.isNotEmpty(userRoleList)) {
// Function<List<SysUserRole>, Integer> function = userRoleMapper::batchUserRole;
// execList.add(new MultipleThreadListParam(function, userRoleList));
//
// }
// if (CollectionUtil.isNotEmpty(sysDepts)) {
// Function<List<SysDept>, Integer> function = sysDeptMapper::batchSave;
// execList.add(new MultipleThreadListParam(function, sysDepts));
//
// }
// if (CollectionUtil.isNotEmpty(caseApplications)) {
// Function<List<CaseApplication>, Integer> function = caseApplicationMapper::batchSave;
// execList.add(new MultipleThreadListParam(function, caseApplications));
// Function<List<CaseApplication>, Integer> functionLog = caseApplicationLogMapper::batchSave;
// execList.add(new MultipleThreadListParam(functionLog, caseApplications));
//
// }
// if (CollectionUtil.isNotEmpty(caseAffiliates)) {
// Function<List<CaseAffiliate>, Integer> function = caseAffiliateMapper::batchCaseAffiliate;
// execList.add(new MultipleThreadListParam(function, caseAffiliates));
// Function<List<CaseAffiliate>, Integer> functionLog = caseAffiliateLogMapper::batchCaseAffiliate;
// execList.add(new MultipleThreadListParam(functionLog, caseAffiliates));
// }
// if (CollectionUtil.isNotEmpty(caseAttachs)) {
// Function<List<CaseAttach>, Integer> function = caseAttachMapper::batchSave;
// execList.add(new MultipleThreadListParam(function, caseAttachs));
// Function<List<CaseAttach>, Integer> functionLog = caseAttachLogMapper::batchSave;
// execList.add(new MultipleThreadListParam(functionLog, caseAttachs));
// }
// if (CollectionUtil.isNotEmpty(columnValueList)) {
// Function<List<ColumnValue>, Integer> function = columnValueMapper::batchSave;
// execList.add(new MultipleThreadListParam(function, columnValueList));
// Function<List<ColumnValue>, Integer> functionLog = columnValueLogMapper::batchSave;
// execList.add(new MultipleThreadListParam(functionLog, columnValueList));
// }
// if (CollectionUtil.isNotEmpty(execList)) {
// MultipleThreadWorkUtil.execListFun(execList.toArray(new MultipleThreadListParam[execList.size()]));
// }
// 多线程执行
ThreadPoolUtil.execute(() -> {
try {
caseApplicationMapper.insertCaseApplication(caseApplication);
caseApplicationLogMapper.insert(caseApplication);
// 多线程执行
if (CollectionUtil.isNotEmpty(addUsers)) {
@@ -340,6 +394,10 @@ public class CaseZipImportImpl {
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("导入失败,请检查抓取规则是否正确");
}
});
return caseApplication;
@@ -49,6 +49,7 @@ public class CaseZipImportTask implements Callable<List<CaseApplication>> {
@Override
public List<CaseApplication> call() {
List<CaseApplication> caseApplications = new ArrayList<>();
try {
for (File file1 : files) {
if (file1.isDirectory() && file1.listFiles() != null) {
@@ -60,6 +61,9 @@ public class CaseZipImportTask implements Callable<List<CaseApplication>> {
}
}
}
} catch (Exception e) {
throw new RuntimeException("导入失败");
}
return caseApplications;
}
@@ -204,23 +204,23 @@
<delete id="batchDeleteLog">
delete from case_application_log l where l.id in
<foreach collection="ids" item="id" separator=",">
#{id}
<foreach collection="ids" item="item" open="(" separator="," close=")">
#{item}
</foreach>
;
delete from case_affiliate_log l where l.case_appli_log_id in
<foreach collection="ids" item="id" separator=",">
#{id}
<foreach collection="ids" item="item" open="(" separator="," close=")">
#{item}
</foreach>
;
delete from case_attach_log l where l.case_appli_log_id in
<foreach collection="ids" item="id" separator=",">
#{id}
<foreach collection="ids" item="item" open="(" separator="," close=")">
#{item}
</foreach>
;
delete from column_value_log l where l.case_appli_log_id in
<foreach collection="ids" item="id" separator=",">
#{id}
<foreach collection="ids" item="item" open="(" separator="," close=")">
#{item}
</foreach>
;
</delete>
@@ -368,6 +368,114 @@
JOIN case_affiliate ca ON ca.case_appli_id = c.id AND ca.identity_type=1
WHERE
r.create_by=#{loginUserName} AND ca.identity_type=1
and c.id not in(
<trim suffixOverrides="union">
<!--被申请人,仲裁员,部门长,财务,代理人案件-->
<if test="isOtherRole!=null and isOtherRole==1">
select c.id
from case_application c
JOIN case_affiliate ca ON ca.case_appli_id = c.id
<where>
<!--根据角色和状态过滤-->
<!--被申请人-->
<if test="idCard != null and idCard != ''">
or (ca.identity_num=#{idCard} AND ca.identity_type=2
and (c.case_status=4 or c.case_status=17)
)
</if>
<!--仲裁员-->
<if test="userId != null and userId != ''">
or ( ca.identity_type=1 and
c.case_status in (7,13,17,18)
and
instr (c.arbitrator_id,#{userId})>0)
</if>
<!--部门长-->
<if test="deptHeadStatus != null and deptHeadStatus.size() > 0">
or (ca.identity_type=1)
</if>
<!--财务-->
<if test="financeStatus != null and financeStatus != ''">
or (ca.identity_type=1
and c.case_status =#{financeStatus}
)
</if>
<!--代理人-->
<if test="agentDeptIds != null and agentDeptIds.size()>0">
or (
ca.application_organ_id in
<foreach item="deptId" collection="agentDeptIds" open="(" separator="," close=")">#{deptId}
</foreach>
AND ca.identity_type=1
and c.case_status in (0,9)
)
</if>
</where>
union
</if>
<if test="applicationOrganId != null and applicationOrganId != ''">
<!--申请人案件-->
select c.id
from case_application c
JOIN case_affiliate ca ON ca.case_appli_id =c.id AND ca.identity_type = 1
<where>
(c.case_status &lt;= 10 or c.case_status=31) AND
ca.identity_type=1
<if test="applicationOrganId != null and applicationOrganId != ''">
AND ca.application_organ_id = #{applicationOrganId}
</if>
</where>
union
</if>
<!--秘书案件-->
<if test="deptIds != null and deptIds.size() > 0">
<!--秘书主表案件-->
SELECT
c.id
FROM
case_application c
JOIN case_affiliate ca ON ca.case_appli_id = c.id AND ca.identity_type = 1
JOIN case_application_log l on l.case_appli_id=c.id and l.update_submit_status not in(1, 2) and
l.version
= (
SELECT
max( version ) version
FROM
case_application_log
WHERE case_appli_id = c.id
)
WHERE
ca.identity_type=1
and c.case_status in (1,5,8,9,11,14,15,16,17,31)
union
<!--秘书审核案件-->
SELECT
l.case_appli_id id
FROM
case_application c
JOIN case_application_log l ON c.id = l.case_appli_id
JOIN case_affiliate_log ca ON ca.case_appli_log_id = l.id
AND ca.identity_type = 1
WHERE
l.update_submit_status IN ( 1, 2 ) and ca.identity_type=1
<!-- 查询该案件的最新记录 -->
AND l.version = (
SELECT
max( version ) version
FROM
case_application_log
WHERE
c.id = case_appli_id)
</if>
</trim>
)
</if>
</trim>
@@ -408,9 +516,11 @@
ELSE '无案件状态'
END caseStatusName,
c.hear_date ,c.arbitrat_claims ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag ,c.fee_payable ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag
,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time ,c.lock_status,
c.update_by ,c.update_time , c.arbitrator_name,ca.application_organ_id applicationOrganId ,ca.application_organ_name as applicantName,c.filearbitra_url,c.version
c.update_by ,c.update_time , c.arbitrator_name,ca.application_organ_id applicationOrganId
,ca.application_organ_name as applicantName,c.filearbitra_url,c.version
from case_log_record r
join case_application c on r.case_appli_id=c.id
JOIN case_affiliate ca ON ca.case_appli_id = c.id AND ca.identity_type=1
@@ -443,7 +553,8 @@
from(
select t.id,t.case_num ,t.case_subject_amount ,t.register_date ,t.arbitrat_method,
t.arbitratMethodName,t.case_status,t.caseStatusName,t.hear_date ,t.arbitrat_claims ,
t.loan_start_date ,t.loan_end_date ,t.claim_princi_owed ,t.claim_interest_owed ,t.claim_liquid_damag,t.fee_payable ,
t.loan_start_date ,t.loan_end_date ,t.claim_princi_owed ,t.claim_interest_owed
,t.claim_liquid_damag,t.fee_payable ,
t.begin_video_date ,t.online_video_person ,t.contract_number ,t.create_by ,t.create_time ,
t.update_by ,t.update_time , t.arbitrator_name,t.name,t.application_organ_id,t.applicantName,
t.arbitrator_id,t.identity_num , t.identity_type,t.filearbitra_url,t.lock_status,t.version
@@ -565,7 +676,8 @@
<trim suffixOverrides="union">
<!--被申请人,仲裁员,部门长,财务,代理人案件-->
<if test="isOtherRole!=null and isOtherRole==1">
select DISTINCT(t.id),t.case_status,t.application_organ_id, t.arbitrator_id,t.identity_num , t.identity_type from(
select DISTINCT(t.id),t.case_status,t.application_organ_id, t.arbitrator_id,t.identity_num ,
t.identity_type from(
select c.id ,
c.case_status,ca.application_organ_id,
c.arbitrator_id,ca.identity_num , ca.identity_type
@@ -705,9 +817,11 @@
ELSE '无案件状态'
END caseStatusName,
c.hear_date ,c.arbitrat_claims ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag ,c.fee_payable ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag
,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time ,c.lock_status,
c.update_by ,c.update_time , c.arbitrator_name,ca.application_organ_id applicationOrganId ,ca.application_organ_name as applicantName,c.filearbitra_url,(select version from
c.update_by ,c.update_time , c.arbitrator_name,ca.application_organ_id applicationOrganId
,ca.application_organ_name as applicantName,c.filearbitra_url,(select version from
case_application_log where case_appli_id=c.id order by version desc limit 1) as version,(select
update_submit_status from case_application_log where case_appli_id=c.id order by version desc limit 1)
as updateSubmitStatus,c.batch_number
@@ -962,7 +1076,9 @@
<if test="claimLiquidDamag != null ">claim_liquid_damag = #{claimLiquidDamag},</if>
<if test="feePayable != null ">fee_payable = #{feePayable},</if>
<if test="beginVideoDate != null ">begin_video_date = #{beginVideoDate},</if>
<if test="onlineVideoPerson != null and onlineVideoPerson != ''">online_video_person = #{onlineVideoPerson},</if>
<if test="onlineVideoPerson != null and onlineVideoPerson != ''">online_video_person =
#{onlineVideoPerson},
</if>
<if test="contractNumber != null and contractNumber != ''">contract_number = #{contractNumber},</if>
@@ -979,7 +1095,9 @@
<if test="caseNum != null and caseNum != ''">case_num = #{caseNum},</if>
<if test="version != null ">version = #{version},</if>
<if test="facts != null and facts != ''">facts = #{facts},</if>
<if test="mediationAgreement != null and mediationAgreement != ''">mediation_agreement = #{mediationAgreement},</if>
<if test="mediationAgreement != null and mediationAgreement != ''">mediation_agreement =
#{mediationAgreement},
</if>
update_time = sysdate()
</set>
where id = #{id}
@@ -1003,13 +1121,17 @@
<if test="isAbsence != null">is_absence = #{isAbsence},</if>
<if test="appliIsAbsen != null">appli_is_absen = #{appliIsAbsen},</if>
<if test="responCrossOpin != null and responCrossOpin != ''">respon_cross_opin = #{responCrossOpin},</if>
<if test="applicaCrossOpin != null and applicaCrossOpin != ''">applica_cross_opin = #{applicaCrossOpin},</if>
<if test="responDefenOpini != null and responDefenOpini != ''">respon_defen_opini = #{responDefenOpini},</if>
<if test="applicaCrossOpin != null and applicaCrossOpin != ''">applica_cross_opin = #{applicaCrossOpin},
</if>
<if test="responDefenOpini != null and responDefenOpini != ''">respon_defen_opini = #{responDefenOpini},
</if>
<if test="objectionAddEviden != null">objection_add_eviden = #{objectionAddEviden},</if>
<if test="openCourtHear != null">open_court_hear = #{openCourtHear},</if>
<if test="hearDate != null">hear_date = #{hearDate},</if>
<if test="filearbitraUrl != null and filearbitraUrl != ''">filearbitra_url = #{filearbitraUrl},</if>
<if test="adjudicaCounterReason != null and adjudicaCounterReason != ''">adjudica_counter_reason = #{adjudicaCounterReason},</if>
<if test="adjudicaCounterReason != null and adjudicaCounterReason != ''">adjudica_counter_reason =
#{adjudicaCounterReason},
</if>
</set>
where id = #{id}
</update>
@@ -1075,10 +1197,13 @@
ELSE '无案件状态'
END caseStatusName,
c.hear_date ,c.arbitrat_claims ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag ,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time ,c.request_rule,c.adjudica_counter,c.proper_preser,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag
,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time
,c.request_rule,c.adjudica_counter,c.proper_preser,
c.is_absence ,c.respon_cross_opin ,c.applica_cross_opin ,c.respon_defen_opini ,
c.update_by ,c.update_time,c.arbitrator_id,c.arbitrator_name,ca.application_organ_id applicationOrganId ,ca.application_organ_name as applicantName,
c.update_by ,c.update_time,c.arbitrator_id,c.arbitrator_name,ca.application_organ_id applicationOrganId
,ca.application_organ_name as applicantName,
c.batch_number,
c.facts,
c.appli_iswrit_hear,c.respon_isWrit_hear,
@@ -1110,10 +1235,13 @@
ELSE '无案件状态'
END caseStatusName,
c.hear_date ,c.arbitrat_claims ,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag ,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time ,c.request_rule,c.adjudica_counter,c.proper_preser,
c.loan_start_date ,c.loan_end_date ,c.claim_princi_owed ,c.claim_interest_owed ,c.claim_liquid_damag
,c.fee_payable ,
c.begin_video_date ,c.online_video_person ,c.contract_number ,c.create_by ,c.create_time
,c.request_rule,c.adjudica_counter,c.proper_preser,
c.is_absence ,c.respon_cross_opin ,c.applica_cross_opin ,c.respon_defen_opini ,
c.update_by ,c.update_time,c.arbitrator_id,c.arbitrator_name,ca.application_organ_id applicationOrganId ,ca.application_organ_name as applicantName,
c.update_by ,c.update_time,c.arbitrator_id,c.arbitrator_name,ca.application_organ_id applicationOrganId
,ca.application_organ_name as applicantName,
c.batch_number,
c.facts,
c.mediation_agreement,c.template_id templateId