Commit aa0fda4b authored by R10's avatar R10

智写-文书写作模板-模板对话

parent f26c7626
package cn.com.poc.law.ExtractEntityStrategy;
import cn.com.poc.law.dto.LegalTemplateDto;
import java.util.concurrent.ExecutionException;
/**
* @Author:Roger Wu
* @name:LegalTemplateSerivce
* @Date:2025-08-07 18:53
*/
public interface ExtractEntityStrategy {
/**
* 提取实体
* @return
*/
LegalTemplateDto extractEntity(String input) throws ExecutionException, InterruptedException;
}
package cn.com.poc.law.ExtractEntityStrategy;
/**
* @Author:Roger Wu
* @name:LawyerExtractType
* @Date:2025-08-08 11:09
*/
public enum LawyerExtractTypeEnum {
motorVehicleDrivingComplaint;
}
package cn.com.poc.law.ExtractEntityStrategy;
import cn.com.poc.law.ExtractEntityStrategy.ExtractEntityType.MotorVehicleDrivingComplaint;
import cn.com.yict.framemax.core.exception.BusinessException;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class LawyerTemplateExtractServiceBuilder implements ApplicationContextAware {
private ApplicationContext applicationContext;
public ExtractEntityStrategy getService(LawyerExtractTypeEnum type) throws Exception {
if (LawyerExtractTypeEnum.motorVehicleDrivingComplaint.equals(type)) {
return applicationContext.getBean(MotorVehicleDrivingComplaint.class);
}
throw new BusinessException("选择模板异常!");
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
}
...@@ -43,6 +43,12 @@ public class AiLawDialoguesDto { ...@@ -43,6 +43,12 @@ public class AiLawDialoguesDto {
*/ */
private boolean enableDeepThinking; private boolean enableDeepThinking;
/**
*
* @return
*/
private String templateCode;
public String getDialoguesId() { public String getDialoguesId() {
return dialoguesId; return dialoguesId;
} }
...@@ -98,4 +104,20 @@ public class AiLawDialoguesDto { ...@@ -98,4 +104,20 @@ public class AiLawDialoguesDto {
public void setEnableDeepThinking(boolean enableDeepThinking) { public void setEnableDeepThinking(boolean enableDeepThinking) {
this.enableDeepThinking = enableDeepThinking; this.enableDeepThinking = enableDeepThinking;
} }
public boolean isEnableSearchEngine() {
return enableSearchEngine;
}
public boolean isEnableDeepThinking() {
return enableDeepThinking;
}
public String getTemplateCode() {
return templateCode;
}
public void setTemplateCode(String templateCode) {
this.templateCode = templateCode;
}
} }
package cn.com.poc.law.dto;
/**
* @Author:Roger Wu
* @name:LegalTemplateDto
* @Date:2025-08-07 18:22
*/
public class LegalTemplateDto {
}
package cn.com.poc.law.entity;
import cn.com.poc.law.dto.LegalTemplateDto;
/**
* @Author:Roger Wu
* @name:MotorVehicleDrivingComplaint
* @Date:2025-08-08 11:39
*/
public class MotorVehicleDrivingComplaintEntity extends LegalTemplateDto {
Plaintiff plaintiff;
PlaintiffOrg plaintiffOrg;
Defendant defendant;
DefendantOrg defendantOrg;
Agent agent;
ThirdParty thirdParty;
ThirdPartyOrg thirdPartyOrg;
Claim claim;
FactsAndReasons factsAndReasons;
Preservation preservation;
UnderstandsMediationBenefit understandsMediationBenefit;
public Plaintiff getPlaintiff() {
return plaintiff;
}
public void setPlaintiff(Plaintiff plaintiff) {
this.plaintiff = plaintiff;
}
public PlaintiffOrg getPlaintiffOrg() {
return plaintiffOrg;
}
public void setPlaintiffOrg(PlaintiffOrg plaintiffOrg) {
this.plaintiffOrg = plaintiffOrg;
}
public Defendant getDefendant() {
return defendant;
}
public void setDefendant(Defendant defendant) {
this.defendant = defendant;
}
public DefendantOrg getDefendantOrg() {
return defendantOrg;
}
public void setDefendantOrg(DefendantOrg defendantOrg) {
this.defendantOrg = defendantOrg;
}
public Agent getAgent() {
return agent;
}
public void setAgent(Agent agent) {
this.agent = agent;
}
public ThirdParty getThirdParty() {
return thirdParty;
}
public void setThirdParty(ThirdParty thirdParty) {
this.thirdParty = thirdParty;
}
public ThirdPartyOrg getThirdPartyOrg() {
return thirdPartyOrg;
}
public void setThirdPartyOrg(ThirdPartyOrg thirdPartyOrg) {
this.thirdPartyOrg = thirdPartyOrg;
}
public Claim getClaim() {
return claim;
}
public void setClaim(Claim claim) {
this.claim = claim;
}
public FactsAndReasons getFactsAndReasons() {
return factsAndReasons;
}
public void setFactsAndReasons(FactsAndReasons factsAndReasons) {
this.factsAndReasons = factsAndReasons;
}
public Preservation getPreservation() {
return preservation;
}
public void setPreservation(Preservation preservation) {
this.preservation = preservation;
}
public UnderstandsMediationBenefit getUnderstandsMediationBenefit() {
return understandsMediationBenefit;
}
public void setUnderstandsMediationBenefit(UnderstandsMediationBenefit understandsMediationBenefit) {
this.understandsMediationBenefit = understandsMediationBenefit;
}
}
...@@ -3,6 +3,7 @@ package cn.com.poc.law.rest; ...@@ -3,6 +3,7 @@ package cn.com.poc.law.rest;
import cn.com.poc.ai_finance.dto.AiFinanceDialoguesDto; import cn.com.poc.ai_finance.dto.AiFinanceDialoguesDto;
import cn.com.poc.law.dto.AiLawDialoguesDto; import cn.com.poc.law.dto.AiLawDialoguesDto;
import cn.com.poc.law.dto.LegalFileDto; import cn.com.poc.law.dto.LegalFileDto;
import cn.com.poc.law.dto.LegalTemplateDto;
import cn.com.yict.framemax.core.rest.BaseRest; import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.web.permission.Access; import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission; import cn.com.yict.framemax.web.permission.Permission;
...@@ -31,7 +32,7 @@ public interface LegalRest extends BaseRest { ...@@ -31,7 +32,7 @@ public interface LegalRest extends BaseRest {
/** /**
* templateAi对话 * templateAi对话
*/ */
void templateCall(@RequestBody AiLawDialoguesDto dto) throws Exception; LegalTemplateDto templateCall(@RequestBody AiLawDialoguesDto dto) throws Exception;
} }
...@@ -6,6 +6,7 @@ import cn.com.poc.common.utils.Assert; ...@@ -6,6 +6,7 @@ import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext; import cn.com.poc.common.utils.BlContext;
import cn.com.poc.law.dto.AiLawDialoguesDto; import cn.com.poc.law.dto.AiLawDialoguesDto;
import cn.com.poc.law.dto.LegalFileDto; import cn.com.poc.law.dto.LegalFileDto;
import cn.com.poc.law.dto.LegalTemplateDto;
import cn.com.poc.law.rest.LegalRest; import cn.com.poc.law.rest.LegalRest;
import cn.com.poc.law.service.AiLawService; import cn.com.poc.law.service.AiLawService;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity; import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
...@@ -65,11 +66,11 @@ public class LegalRestImpl implements LegalRest { ...@@ -65,11 +66,11 @@ public class LegalRestImpl implements LegalRest {
* @param dto * @param dto
*/ */
@Override @Override
public void templateCall(AiLawDialoguesDto dto) throws Exception { public LegalTemplateDto templateCall(AiLawDialoguesDto dto) throws Exception {
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException(); UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) { if (userBaseEntity == null) {
throw new BusinessException("用户未登录"); throw new BusinessException("用户未登录");
} }
aiLawService.templateCall(dto.getDialoguesId(), dto.getInput(), dto.getFileUrl(), userBaseEntity.getUserId()); return aiLawService.templateCall(dto.getDialoguesId(), dto.getTemplateCode(),dto.getInput(), dto.getFileUrl(), userBaseEntity.getUserId());
} }
} }
package cn.com.poc.law.service; package cn.com.poc.law.service;
import cn.com.poc.law.dto.LegalTemplateDto;
/** /**
* AI财务 * AI财务
* *
...@@ -25,5 +27,5 @@ public interface AiLawService { ...@@ -25,5 +27,5 @@ public interface AiLawService {
/** /**
* @throws Exception * @throws Exception
*/ */
void templateCall(String dialoguesId, String input, String fileUrl, Long userId) throws Exception; LegalTemplateDto templateCall(String dialoguesId, String templateCode, String input, String fileUrl, Long userId) throws Exception;
} }
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