Commit 6b5d51cc authored by R10's avatar R10

智写-文书提取

parent e441f5b1
package cn.com.poc.law.entity.legislativeDocument; package cn.com.poc.law.entity.legislativeDocument;
import cn.com.poc.law.entity.JacksonStringNotNullSerializer; import cn.com.poc.law.jsonSerializer.JacksonStringNotNullSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/** /**
......
package cn.com.poc.law.entity.legislativeDocument; package cn.com.poc.law.entity.legislativeDocument;
import cn.com.poc.law.entity.JacksonStringNotNullSerializer;
import cn.com.poc.law.jsonSerializer.JacksonStringNotNullSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/** /**
......
package cn.com.poc.law.entity.legislativeDocument; package cn.com.poc.law.entity.legislativeDocument;
import cn.com.poc.law.entity.JacksonStringNotNullSerializer; import cn.com.poc.law.jsonSerializer.JacksonStringNotNullSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/** /**
......
package cn.com.poc.law.entity.legislativeDocument; package cn.com.poc.law.entity.legislativeDocument;
import cn.com.poc.law.entity.JacksonStringNotNullSerializer; import cn.com.poc.law.jsonSerializer.JacksonStringNotNullSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/** /**
......
package cn.com.poc.law.entity.legislativeDocument; package cn.com.poc.law.entity.legislativeDocument;
import cn.com.poc.law.entity.JacksonStringNotNullSerializer; import cn.com.poc.law.jsonSerializer.JacksonStringNotNullSerializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/** /**
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
import cn.com.poc.law.jsonSerializer.JacksonDateArrayDeSerializer;
import cn.com.poc.law.jsonSerializer.JacksonDateFormatDeSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
...@@ -7,7 +11,8 @@ package cn.com.poc.law.entity; ...@@ -7,7 +11,8 @@ package cn.com.poc.law.entity;
*/ */
public class Claim { public class Claim {
private String treatmentPeriod; @JsonDeserialize(contentUsing = JacksonDateArrayDeSerializer.class)
private String[] treatmentPeriod;
private String hospitalName; private String hospitalName;
private String medicalExpenses; private String medicalExpenses;
private String hasMedicalReceipts; private String hasMedicalReceipts;
...@@ -20,7 +25,8 @@ public class Claim { ...@@ -20,7 +25,8 @@ public class Claim {
private String hasNutritionProof; private String hasNutritionProof;
private String mealAllowance; private String mealAllowance;
private String hasMealAllowanceProof; private String hasMealAllowanceProof;
private String lostWagesPeriod; @JsonDeserialize(contentUsing = JacksonDateArrayDeSerializer.class)
private String[] lostWagesPeriod;
private String lostWagesAmount; private String lostWagesAmount;
private String transportationFee; private String transportationFee;
private String hasTransportationReceipts; private String hasTransportationReceipts;
...@@ -36,11 +42,11 @@ public class Claim { ...@@ -36,11 +42,11 @@ public class Claim {
private String otherFees; private String otherFees;
private String totalClaimAmount; private String totalClaimAmount;
public String getTreatmentPeriod() { public String[] getTreatmentPeriod() {
return treatmentPeriod; return treatmentPeriod;
} }
public void setTreatmentPeriod(String treatmentPeriod) { public void setTreatmentPeriod(String[] treatmentPeriod) {
this.treatmentPeriod = treatmentPeriod; this.treatmentPeriod = treatmentPeriod;
} }
...@@ -140,11 +146,11 @@ public class Claim { ...@@ -140,11 +146,11 @@ public class Claim {
this.hasMealAllowanceProof = hasMealAllowanceProof; this.hasMealAllowanceProof = hasMealAllowanceProof;
} }
public String getLostWagesPeriod() { public String[] getLostWagesPeriod() {
return lostWagesPeriod; return lostWagesPeriod;
} }
public void setLostWagesPeriod(String lostWagesPeriod) { public void setLostWagesPeriod(String[] lostWagesPeriod) {
this.lostWagesPeriod = lostWagesPeriod; this.lostWagesPeriod = lostWagesPeriod;
} }
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
import cn.com.poc.law.jsonSerializer.JacksonDateFormatDeSerializer;
import cn.com.poc.law.jsonSerializer.JacksonDateFormatSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
...@@ -7,17 +13,18 @@ package cn.com.poc.law.entity; ...@@ -7,17 +13,18 @@ package cn.com.poc.law.entity;
*/ */
public class Defendant { public class Defendant {
private String defendantName; private String defendantName;
private String defendantGender; private String defendantGender;
private String defendantDob; @JsonDeserialize(using = JacksonDateFormatDeSerializer.class)
private String defendantEthnicity; private String defendantDob;
private String defendantWorkUnit; private String defendantEthnicity;
private String defendantTitle; private String defendantWorkUnit;
private String defendantPhone; private String defendantTitle;
private String defendantDomicile; private String defendantPhone;
private String defendantHabitualResidence; private String defendantDomicile;
private String defendantIdType; private String defendantHabitualResidence;
private String defendantIdNumber; private String defendantIdType;
private String defendantIdNumber;
public String getDefendantName() { public String getDefendantName() {
return defendantName; return defendantName;
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.LegalTemplateDto;
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
import cn.com.poc.law.jsonSerializer.JacksonDateFormatDeSerializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import java.util.Date;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
...@@ -9,6 +13,7 @@ public class Plaintiff { ...@@ -9,6 +13,7 @@ public class Plaintiff {
private String plaintiffName; private String plaintiffName;
private String plaintiffGender; private String plaintiffGender;
@JsonDeserialize(using = JacksonDateFormatDeSerializer.class)
private String plaintiffDob; private String plaintiffDob;
private String plaintiffEthnicity; private String plaintiffEthnicity;
private String plaintiffWorkUnit; private String plaintiffWorkUnit;
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import cn.com.poc.law.jsonSerializer.JacksonDateFormatDeSerializer;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
...@@ -9,6 +12,8 @@ public class ThirdParty { ...@@ -9,6 +12,8 @@ public class ThirdParty {
private String thirdPartyName; private String thirdPartyName;
private String thirdPartyGender; private String thirdPartyGender;
@JsonDeserialize(using = JacksonDateFormatDeSerializer.class)
private String thirdPartyDob; private String thirdPartyDob;
private String thirdPartyEthnicity; private String thirdPartyEthnicity;
private String thirdPartyWorkUnit; private String thirdPartyWorkUnit;
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
......
package cn.com.poc.law.entity; package cn.com.poc.law.entity.motorVehicleDrivingComplaint;
/** /**
* @Author:Roger Wu * @Author:Roger Wu
......
package cn.com.poc.law.extractEntityStrategy; package cn.com.poc.law.extractEntityStrategy;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.LegalTemplateDto;
import cn.com.poc.law.dto.TemplateCallDto;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
...@@ -13,8 +14,20 @@ public interface ExtractEntityStrategy { ...@@ -13,8 +14,20 @@ public interface ExtractEntityStrategy {
/** /**
* 提取实体 * 提取实体
*
* @return * @return
*/ */
LegalTemplateDto extractEntity(String input) throws ExecutionException, InterruptedException; LegalTemplateDto extractEntity(String input) throws Exception;
/**
* 下载文件
*
* @param dto 法律模板数据传输对象,包含下载文件所需的信息
* @return 返回下载文件的路径或文件标识符
* @throws Exception 当下载过程中发生错误时抛出异常
*/
String downloadFile(LegalTemplateDto dto) throws Exception;
} }
package cn.com.poc.law.extractEntityStrategy; package cn.com.poc.law.extractEntityStrategy;
import cn.com.poc.law.entity.MotorVehicleDrivingComplaintEntity; import cn.com.poc.law.entity.motorVehicleDrivingComplaint.MotorVehicleDrivingComplaintEntity;
import java.lang.reflect.Type; import java.lang.reflect.Type;
......
package cn.com.poc.law.extractEntityStrategy.download;
/**
* @Author:Roger Wu
* @name:ss
* @Date:2025-08-14 19:03
*/
public class MotorVehicleDrivingComplaintDownload {
MotorVehicleDrivingComplaintItem[] item;
public MotorVehicleDrivingComplaintItem[] getItem() {
return item;
}
public void setItem(MotorVehicleDrivingComplaintItem[] item) {
this.item = item;
}
String filePath;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
}
package cn.com.poc.law.extractEntityStrategy.download;
/**
* @Author:Roger Wu
* @name:MotorVehicleDrivingComplaintItem
* @Date:2025-08-14 19:15
*/
public class MotorVehicleDrivingComplaintItem {
private String key;
private String[] value;
private String type;
private String[] options;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String[] getValue() {
return value;
}
public void setValue(String[] value) {
this.value = value;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String[] getOptions() {
return options;
}
public void setOptions(String[] options) {
this.options = options;
}
}
package cn.com.poc.law.extractEntityStrategy.extractEntityType; package cn.com.poc.law.extractEntityStrategy.extractEntityType;
import cn.com.poc.law.extractEntityStrategy.download.MotorVehicleDrivingComplaintItem;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity; import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService; import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService;
import cn.com.poc.common.utils.DocumentLoad; import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.law.entity.motorVehicleDrivingComplaint.*;
import cn.com.poc.law.extractEntityStrategy.ExtractEntityStrategy; import cn.com.poc.law.extractEntityStrategy.ExtractEntityStrategy;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.LegalTemplateDto;
import cn.com.poc.law.entity.*; import cn.com.poc.law.extractEntityStrategy.download.MotorVehicleDrivingComplaintDownload;
import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum; import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
...@@ -20,7 +22,9 @@ import org.springframework.stereotype.Service; ...@@ -20,7 +22,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.concurrent.*; import java.util.concurrent.*;
/** /**
...@@ -46,7 +50,7 @@ public class MotorVehicleDrivingComplaint implements ExtractEntityStrategy { ...@@ -46,7 +50,7 @@ public class MotorVehicleDrivingComplaint implements ExtractEntityStrategy {
* @return * @return
*/ */
@Override @Override
public LegalTemplateDto extractEntity(String input) throws ExecutionException, InterruptedException { public LegalTemplateDto extractEntity(String input) throws Exception {
CompletableFuture<Plaintiff> extractPlaintiffFuture = CompletableFuture CompletableFuture<Plaintiff> extractPlaintiffFuture = CompletableFuture
.supplyAsync(() -> { .supplyAsync(() -> {
...@@ -214,6 +218,66 @@ public class MotorVehicleDrivingComplaint implements ExtractEntityStrategy { ...@@ -214,6 +218,66 @@ public class MotorVehicleDrivingComplaint implements ExtractEntityStrategy {
return motorVehicleDrivingComplaintEntity; return motorVehicleDrivingComplaintEntity;
} }
/**
* 下载文件
*
* @param dto 法律模板数据传输对象,包含下载文件所需的信息
* @return 返回下载文件的路径或文件标识符
* @throws Exception 当下载过程中发生错误时抛出异常
*/
@Override
public String downloadFile(LegalTemplateDto dto) throws Exception {
MotorVehicleDrivingComplaintEntity motorVehicleDrivingComplaintEntity = (MotorVehicleDrivingComplaintEntity) dto;
String templateFileUrl = "https://gsst-poe-sit.gz.bcebos.com/v1/%E6%B0%91%E9%97%B4%E5%80%9F%E8%B4%B7%E7%BA%A0%E7%BA%B7%E6%B0%91%E4%BA%8B%E8%B5%B7%E8%AF%89%E7%8A%B6.docx";
//
MotorVehicleDrivingComplaintDownload motorVehicleDrivingComplaintDownload = new MotorVehicleDrivingComplaintDownload();
motorVehicleDrivingComplaintDownload.setItem(new MotorVehicleDrivingComplaintItem[0]);
MotorVehicleDrivingComplaintItem motorVehicleDrivingComplaintItem = new MotorVehicleDrivingComplaintItem();
motorVehicleDrivingComplaintItem.setKey("check");
motorVehicleDrivingComplaintItem.setValue(new String[]{motorVehicleDrivingComplaintEntity.getAgent().getAgentAuthority()});
motorVehicleDrivingComplaintItem.setType("checkbox");
motorVehicleDrivingComplaintItem.setOptions(new String[]{"国有控股","国有参股","民营"});
Map<String,String> plaintiffMap = new HashMap<>();
plaintiffMap.put("男","☑");
plaintiffMap.put("女","□");
// MotorVehicleDrivingComplaintItem plaintiffNameMotorVehicleDrivingComplaintItem = builderText("plaintiffName", new String[]{plaintiff.getPlaintiffName()});
// MotorVehicleDrivingComplaintItem plaintiffGenderMotorVehicleDrivingComplaintItem = builderText("plaintiffGender", new String[]{plaintiff.getPlaintiffGender()});
// MotorVehicleDrivingComplaintItem plaintiffDobMotorVehicleDrivingComplaintItem = builderText("plaintiffDob", new String[]{plaintiff.getPlaintiffDob()});
// MotorVehicleDrivingComplaintItem plaintiffEthnicityMotorVehicleDrivingComplaintItem = builderText("plaintiffEthnicity", new String[]{plaintiff.getPlaintiffEthnicity()});
motorVehicleDrivingComplaintDownload.setFilePath("");
return null;
}
private MotorVehicleDrivingComplaintItem builderText(String boxName, String[] boxValue) {
MotorVehicleDrivingComplaintItem motorVehicleDrivingComplaintItem = new MotorVehicleDrivingComplaintItem();
motorVehicleDrivingComplaintItem.setKey(boxName);
motorVehicleDrivingComplaintItem.setValue(boxValue);
motorVehicleDrivingComplaintItem.setType("text");
motorVehicleDrivingComplaintItem.setOptions(null);
return motorVehicleDrivingComplaintItem;
}
private Plaintiff extractPlaintiff(String input) throws Exception { private Plaintiff extractPlaintiff(String input) throws Exception {
// 获取对话提示词 // 获取对话提示词
......
package cn.com.poc.law.jsonSerializer;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**
* @Author:Roger Wu
* @name:JacksonDateFormatDeSerializer
* @Date:2025-08-14 16:07
*/
public class JacksonDateArrayDeSerializer extends JsonDeserializer<String> {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
//[]
String date = p.getText();
try {
// 解析为 Date 对象
return String.valueOf(dateFormat.parse(date).getTime());
} catch (ParseException e) {
// 抛出运行时异常,如果解析失败
return null;
}
}
}
package cn.com.poc.law.jsonSerializer;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Author:Roger Wu
* @name:JacksonDateFormatDeSerializer
* @Date:2025-08-14 16:07
*/
public class JacksonDateFormatDeSerializer extends JsonDeserializer<String> {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
String date = p.getText();
try {
// 解析为 Date 对象
return String.valueOf(dateFormat.parse(date).getTime());
} catch (ParseException e) {
// 抛出运行时异常,如果解析失败
return null;
}
}
}
package cn.com.poc.law.jsonSerializer;
import cn.com.poc.common.utils.StringUtils;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
import java.text.SimpleDateFormat;
/**
* @Author:Roger Wu
* @name:JacksonDateFormatlSerializer
* @Date:2025-08-13 18:58
*/
@Configuration
public class JacksonDateFormatSerializer extends JsonSerializer<String> {
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Override
public void serialize(String value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (StringUtils.isBlank(value)) {
value = null;
}
jsonGenerator.writeString(value);
if (value != null) {
jsonGenerator.writeString(dateFormat.format(value));
} else {
jsonGenerator.writeNull();
}
}
}
package cn.com.poc.law.entity; package cn.com.poc.law.jsonSerializer;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonGenerator;
......
...@@ -27,7 +27,7 @@ public interface BizAiLawyerWritingTemplateDataRest extends BaseRest { ...@@ -27,7 +27,7 @@ public interface BizAiLawyerWritingTemplateDataRest extends BaseRest {
void updateTemplateData(@RequestBody SaveTemplateDataDto saveTemplateDataDto) throws Exception; void updateTemplateData(@RequestBody SaveTemplateDataDto saveTemplateDataDto) throws Exception;
String downloadTemplateData(@RequestParam Long recordId); String downloadTemplateData(@RequestParam Long recordId) throws Exception;
TemplateDataDetailDto getTemplateDataDetail(@RequestParam String dialoguesId) throws Exception; TemplateDataDetailDto getTemplateDataDetail(@RequestParam String dialoguesId) throws Exception;
} }
\ No newline at end of file
...@@ -63,9 +63,8 @@ public class BizAiLawyerWritingTemplateDataRestImpl implements BizAiLawyerWritin ...@@ -63,9 +63,8 @@ public class BizAiLawyerWritingTemplateDataRestImpl implements BizAiLawyerWritin
} }
@Override @Override
public String downloadTemplateData(Long recordId){ public String downloadTemplateData(Long recordId) throws Exception {
service.downloadTemplateData( recordId); return service.downloadTemplateData( recordId);
return null;
} }
@Override @Override
...@@ -74,7 +73,7 @@ public class BizAiLawyerWritingTemplateDataRestImpl implements BizAiLawyerWritin ...@@ -74,7 +73,7 @@ public class BizAiLawyerWritingTemplateDataRestImpl implements BizAiLawyerWritin
if (userBaseEntity == null) { if (userBaseEntity == null) {
throw new BusinessException("用户未登录"); throw new BusinessException("用户未登录");
} }
return service.getTemplateDataDetail(dialoguesId,userBaseEntity.getUserId()); return service.getTemplateDataDetail(dialoguesId,userBaseEntity.getUserId(),true);
} }
......
...@@ -32,7 +32,6 @@ public class LegalRestImpl implements LegalRest { ...@@ -32,7 +32,6 @@ public class LegalRestImpl implements LegalRest {
Assert.notBlank(legalFileDto.getFilePath(), "文件路径不能为空"); Assert.notBlank(legalFileDto.getFilePath(), "文件路径不能为空");
Assert.notEmpty(legalFileDto.getItems(), "文件项不能为空"); Assert.notEmpty(legalFileDto.getItems(), "文件项不能为空");
LegalFileResponse response = new LegalFileResponse(); LegalFileResponse response = new LegalFileResponse();
response.setFilePath(legalFileDto.getFilePath()); response.setFilePath(legalFileDto.getFilePath());
response.setItems(legalFileDto.getItems()); response.setItems(legalFileDto.getItems());
......
...@@ -22,7 +22,20 @@ public interface BizAiLawyerWritingTemplateDataService extends BaseService { ...@@ -22,7 +22,20 @@ public interface BizAiLawyerWritingTemplateDataService extends BaseService {
void updateTemplateData(Long recordId, String data) throws Exception; void updateTemplateData(Long recordId, String data) throws Exception;
void downloadTemplateData(Long recordId); /**
* 下载模板数据
TemplateDataDetailDto getTemplateDataDetail(String dialoguesId, Long userId) throws Exception; * @param recordId
* @return
* @throws Exception
*/
String downloadTemplateData(Long recordId) throws Exception;
/**
* 获取模板数据详情
* @param dialoguesId
* @param userId
* @return
* @throws Exception
*/
TemplateDataDetailDto getTemplateDataDetail(String dialoguesId, Long userId,boolean ifException) throws Exception;
} }
\ No newline at end of file
...@@ -75,7 +75,7 @@ public class AiLawServiceImpl implements AiLawService { ...@@ -75,7 +75,7 @@ public class AiLawServiceImpl implements AiLawService {
private BizAgentApplicationGcConfigService bizAgentApplicationGcConfigService; private BizAgentApplicationGcConfigService bizAgentApplicationGcConfigService;
@Resource @Resource
LawyerTemplateExtractServiceBuilder LawyerTemplateExtractServiceBuilder; LawyerTemplateExtractServiceBuilder lawyerTemplateExtractServiceBuilder;
@Resource @Resource
BizAiLawyerWritingTemplateDataService bizAiLawyerWritingTemplateDataService; BizAiLawyerWritingTemplateDataService bizAiLawyerWritingTemplateDataService;
...@@ -222,12 +222,12 @@ public class AiLawServiceImpl implements AiLawService { ...@@ -222,12 +222,12 @@ public class AiLawServiceImpl implements AiLawService {
fileContent = DocumentLoad.documentToText(file); fileContent = DocumentLoad.documentToText(file);
} }
ExtractEntityStrategy extractEntityStrategy = LawyerTemplateExtractServiceBuilder.getService(LawyerExtractTypeConstants.LawyerExtractTypeEnum.get(templateCode)); ExtractEntityStrategy extractEntityStrategy = lawyerTemplateExtractServiceBuilder.getService(LawyerExtractTypeConstants.LawyerExtractTypeEnum.get(templateCode));
LegalTemplateDto legalTemplateDto = extractEntityStrategy.extractEntity(input + fileContent); LegalTemplateDto legalTemplateDto = extractEntityStrategy.extractEntity(input + fileContent);
LegalTemplateDto returnLegalTemplateDto = legalTemplateDto; LegalTemplateDto returnLegalTemplateDto = legalTemplateDto;
if (!ifCover) { TemplateDataDetailDto templateDataDetail = bizAiLawyerWritingTemplateDataService.getTemplateDataDetail(dialoguesId, userId, false);
TemplateDataDetailDto templateDataDetail = bizAiLawyerWritingTemplateDataService.getTemplateDataDetail(dialoguesId, userId); if (!ifCover && templateDataDetail != null) {
LegalTemplateDto oldLegalTemplateDto = templateDataDetail.getLegalTemplateDto(); LegalTemplateDto oldLegalTemplateDto = templateDataDetail.getLegalTemplateDto();
JSONObject legalTemplateDtoJsonObject = JSONObject.parseObject(JsonUtils.serialize(legalTemplateDto)); JSONObject legalTemplateDtoJsonObject = JSONObject.parseObject(JsonUtils.serialize(legalTemplateDto));
JSONObject oldLegalTemplateDtoJsonObject = JSONObject.parseObject(JsonUtils.serialize(oldLegalTemplateDto)); JSONObject oldLegalTemplateDtoJsonObject = JSONObject.parseObject(JsonUtils.serialize(oldLegalTemplateDto));
......
package cn.com.poc.law.service.impl; package cn.com.poc.law.service.impl;
import cn.com.poc.common.utils.JsonUtils; import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.law.dto.LegalTemplateDto; import cn.com.poc.law.dto.LegalTemplateDto;
...@@ -8,8 +9,9 @@ import cn.com.poc.ai_dialogues.service.BizAiDialoguesService; ...@@ -8,8 +9,9 @@ import cn.com.poc.ai_dialogues.service.BizAiDialoguesService;
import cn.com.poc.common.constant.CommonConstant; import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.law.dto.TemplateCallDto; import cn.com.poc.law.dto.TemplateCallDto;
import cn.com.poc.law.dto.TemplateDataDetailDto; import cn.com.poc.law.dto.TemplateDataDetailDto;
import cn.com.poc.law.entity.MotorVehicleDrivingComplaintEntity; import cn.com.poc.law.extractEntityStrategy.ExtractEntityStrategy;
import cn.com.poc.law.extractEntityStrategy.LawyerExtractTypeConstants; import cn.com.poc.law.extractEntityStrategy.LawyerExtractTypeConstants;
import cn.com.poc.law.extractEntityStrategy.LawyerTemplateExtractServiceBuilder;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl; import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.law.service.BizAiLawyerWritingTemplateDataService; import cn.com.poc.law.service.BizAiLawyerWritingTemplateDataService;
...@@ -40,6 +42,8 @@ public class BizAiLawyerWritingTemplateDataServiceImpl extends BaseServiceImpl ...@@ -40,6 +42,8 @@ public class BizAiLawyerWritingTemplateDataServiceImpl extends BaseServiceImpl
@Resource @Resource
private BizAiDialoguesService bizAiDialoguesService; private BizAiDialoguesService bizAiDialoguesService;
@Resource
LawyerTemplateExtractServiceBuilder LawyerTemplateExtractServiceBuilder;
public BizAiLawyerWritingTemplateDataEntity get(java.lang.Integer id) throws Exception { public BizAiLawyerWritingTemplateDataEntity get(java.lang.Integer id) throws Exception {
Assert.notNull(id); Assert.notNull(id);
...@@ -140,12 +144,21 @@ public class BizAiLawyerWritingTemplateDataServiceImpl extends BaseServiceImpl ...@@ -140,12 +144,21 @@ public class BizAiLawyerWritingTemplateDataServiceImpl extends BaseServiceImpl
} }
@Override @Override
public void downloadTemplateData(Long recordId) { public String downloadTemplateData(Long recordId) throws Exception {
BizAiLawyerWritingTemplateDataModel model = new BizAiLawyerWritingTemplateDataModel();
model.setBizAiLawyerWritingTemplateDialoguesRecordId(recordId);
model.setIsDeleted("N");
List<BizAiLawyerWritingTemplateDataModel> models = this.repository.findByExample(model, null);
if (org.springframework.util.CollectionUtils.isEmpty(models)) {
throw new Exception("找不到该记录");
}
ExtractEntityStrategy extractEntityStrategy = LawyerTemplateExtractServiceBuilder.getService(LawyerExtractTypeConstants.LawyerExtractTypeEnum.get(models.get(0).getBizAiLawyerWritingTemplateCode()));
return extractEntityStrategy.downloadFile(JsonUtils.deSerialize(models.get(0).getBizAiLawyerWritingTemplateData(), LegalTemplateDto.class));
} }
@Override @Override
public TemplateDataDetailDto getTemplateDataDetail(String dialoguesId, Long userId) throws Exception { public TemplateDataDetailDto getTemplateDataDetail(String dialoguesId, Long userId, boolean ifException) throws Exception {
BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity(); BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity();
bizAiDialoguesEntity.setDialoguesId(dialoguesId); bizAiDialoguesEntity.setDialoguesId(dialoguesId);
bizAiDialoguesEntity.setMemberId(userId); bizAiDialoguesEntity.setMemberId(userId);
...@@ -158,12 +171,15 @@ public class BizAiLawyerWritingTemplateDataServiceImpl extends BaseServiceImpl ...@@ -158,12 +171,15 @@ public class BizAiLawyerWritingTemplateDataServiceImpl extends BaseServiceImpl
BizAiLawyerWritingTemplateDataEntity example = new BizAiLawyerWritingTemplateDataEntity(); BizAiLawyerWritingTemplateDataEntity example = new BizAiLawyerWritingTemplateDataEntity();
example.setBizAiLawyerWritingTemplateDialoguesId(dialoguesId); example.setBizAiLawyerWritingTemplateDialoguesId(dialoguesId);
example.setIsDeleted(CommonConstant.IsDeleted.N); example.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAiLawyerWritingTemplateDataEntity> bizAiLawyerWritingTemplateDataEntityList = findByExample(example,null); List<BizAiLawyerWritingTemplateDataEntity> bizAiLawyerWritingTemplateDataEntityList = findByExample(example, null);
BizAiLawyerWritingTemplateDataEntity bizAiLawyerWritingTemplateDataEntity = bizAiLawyerWritingTemplateDataEntityList.get(bizAiLawyerWritingTemplateDataEntityList.size()-1); if (CollectionUtils.isEmpty(bizAiLawyerWritingTemplateDataEntityList) || StringUtils.isBlank(bizAiLawyerWritingTemplateDataEntityList.get(bizAiLawyerWritingTemplateDataEntityList.size() - 1).getBizAiLawyerWritingTemplateData())) {
if(CollectionUtils.isEmpty(bizAiLawyerWritingTemplateDataEntityList) || StringUtils.isBlank(bizAiLawyerWritingTemplateDataEntity.getBizAiLawyerWritingTemplateData())){ if (ifException) {
throw new BusinessException("查询不到模板内容信息"); throw new BusinessException("查询不到模板内容信息");
} else {
return null;
}
} }
BizAiLawyerWritingTemplateDataEntity bizAiLawyerWritingTemplateDataEntity = bizAiLawyerWritingTemplateDataEntityList.get(bizAiLawyerWritingTemplateDataEntityList.size() - 1);
Type aClass = LawyerExtractTypeConstants.LawyerExtractTypeEnum.getClass(bizAiLawyerWritingTemplateDataEntity.getBizAiLawyerWritingTemplateCode()); Type aClass = LawyerExtractTypeConstants.LawyerExtractTypeEnum.getClass(bizAiLawyerWritingTemplateDataEntity.getBizAiLawyerWritingTemplateCode());
LegalTemplateDto legalTemplateDto = JSON.deSerialize(aClass, bizAiLawyerWritingTemplateDataEntity.getBizAiLawyerWritingTemplateData()); LegalTemplateDto legalTemplateDto = JSON.deSerialize(aClass, bizAiLawyerWritingTemplateDataEntity.getBizAiLawyerWritingTemplateData());
TemplateDataDetailDto templateDataDetailDto = new TemplateDataDetailDto(); TemplateDataDetailDto templateDataDetailDto = new TemplateDataDetailDto();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment