Commit 1468297d authored by R10's avatar R10

智写-立案调查

parent 7d179e72
......@@ -2,10 +2,10 @@ package cn.com.poc.law.entity.LegislativeDocument;
/**
* @Author:Roger Wu
* @name:LegislativeDocumentEntity
* @name:LegislativeDocumentResult
* @Date:2025-08-12 18:22
*/
public class LegislativeDocumentEntity {
public class LegislativeDocumentResult {
CaseInfo caseInfo;
......
package cn.com.poc.law.rest;
import cn.com.poc.law.dto.AiLawDialoguesDto;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentEntity;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentResult;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
......@@ -16,6 +16,13 @@ public interface BizAiLegislativeDocumentWritingRest extends BaseRest {
* @param dto
* @return
*/
LegislativeDocumentEntity legislativeApply(@RequestBody AiLawDialoguesDto dto) throws Exception;
LegislativeDocumentResult legislativeApply(@RequestBody AiLawDialoguesDto dto) throws Exception;
/**
* 获取立案调查详情
* @param dialoguesId
* @return
* @throws Exception
*/
LegislativeDocumentResult getLegislativeApplyDetail(String dialoguesId) throws Exception;
}
\ No newline at end of file
......@@ -2,7 +2,7 @@ package cn.com.poc.law.rest.impl;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.law.dto.AiLawDialoguesDto;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentEntity;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentResult;
import cn.com.poc.law.rest.BizAiLegislativeDocumentWritingRest;
import cn.com.poc.law.service.BizAiLegislativeDocumentWritingService;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
......@@ -13,22 +13,37 @@ import javax.annotation.Resource;
@Component
public class BizAiLegislativeDocumentWritingRestImpl implements BizAiLegislativeDocumentWritingRest {
@Resource
@Resource
private BizAiLegislativeDocumentWritingService service;
/**
* 立案调查保存
*
* @param dto
* @return
*/
@Override
public LegislativeDocumentEntity legislativeApply(AiLawDialoguesDto dto) throws Exception {
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) {
throw new BusinessException("用户未登录");
}
return service.call(dto.getDialoguesId(), dto.getInput(), dto.getFileUrl(), userBaseEntity.getUserId());
}
/**
* 立案调查保存
*
* @param dto
* @return
*/
@Override
public LegislativeDocumentResult legislativeApply(AiLawDialoguesDto dto) throws Exception {
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) {
throw new BusinessException("用户未登录");
}
return service.call(dto.getDialoguesId(), dto.getInput(), dto.getFileUrl(), userBaseEntity.getUserId());
}
/**
* 获取立案调查详情
*
* @param dialoguesId
* @return
*/
@Override
public LegislativeDocumentResult getLegislativeApplyDetail(String dialoguesId) throws Exception {
UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity == null) {
throw new BusinessException("用户未登录");
}
return service.getlegislativeApplyDetail(dialoguesId, userBaseEntity.getUserId());
}
}
\ No newline at end of file
package cn.com.poc.law.service;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentEntity;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentResult;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.law.entity.BizAiLegislativeDocumentWritingEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
......@@ -19,5 +19,7 @@ public interface BizAiLegislativeDocumentWritingService extends BaseService {
void deletedById(java.lang.Integer id) throws Exception;
LegislativeDocumentEntity call(String dialoguesId, String input, String fileUrl, Long userId) throws Exception;
LegislativeDocumentResult call(String dialoguesId, String input, String fileUrl, Long userId) throws Exception;
LegislativeDocumentResult getlegislativeApplyDetail(String dialoguesId, Long userId) throws Exception;
}
\ No newline at end of file
......@@ -15,6 +15,7 @@ import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.SSEUtil;
import cn.com.poc.law.dto.TemplateDataDetailDto;
import cn.com.poc.law.entity.BizAiLawyerWritingTemplateDataEntity;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentResult;
import cn.com.poc.law.extractEntityStrategy.ExtractEntityStrategy;
import cn.com.poc.law.extractEntityStrategy.LawyerExtractTypeConstants;
import cn.com.poc.law.extractEntityStrategy.LawyerTemplateExtractServiceBuilder;
......@@ -238,8 +239,10 @@ public class AiLawServiceImpl implements AiLawService {
if (!ifCover) {
TemplateDataDetailDto templateDataDetail = bizAiLawyerWritingTemplateDataService.getTemplateDataDetail(dialoguesId, userId);
LegalTemplateDto oldLegalTemplateDto = templateDataDetail.getLegalTemplateDto();
JsonUtils.deepMerge(new JSONObject().getJSONObject(JsonUtils.serialize(legalTemplateDto)),new JSONObject().getJSONObject(JsonUtils.serialize(oldLegalTemplateDto)));
returnLegalTemplateDto = oldLegalTemplateDto;
JSONObject legalTemplateDtoJsonObject = JSONObject.parseObject(JsonUtils.serialize(legalTemplateDto));
JSONObject oldLegalTemplateDtoJsonObject = JSONObject.parseObject(JsonUtils.serialize(oldLegalTemplateDto));
JsonUtils.deepMerge(legalTemplateDtoJsonObject, oldLegalTemplateDtoJsonObject);
returnLegalTemplateDto = oldLegalTemplateDtoJsonObject.toJavaObject(LegalTemplateDto.class);
}
long inputTimestamp = System.currentTimeMillis();
......
......@@ -9,7 +9,7 @@ import cn.com.poc.ai_dialogues.service.BizAiDialoguesService;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentEntity;
import cn.com.poc.law.entity.LegislativeDocument.LegislativeDocumentResult;
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.largemodel.LargeModelDemandResult;
......@@ -24,6 +24,7 @@ import cn.com.poc.law.convert.BizAiLegislativeDocumentWritingConvert;
import cn.com.poc.law.repository.BizAiLegislativeDocumentWritingRepository;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -40,8 +41,7 @@ import javax.annotation.Resource;
import org.springframework.util.Assert;
@Service
public class BizAiLegislativeDocumentWritingServiceImpl extends BaseServiceImpl
implements BizAiLegislativeDocumentWritingService {
public class BizAiLegislativeDocumentWritingServiceImpl extends BaseServiceImpl implements BizAiLegislativeDocumentWritingService {
@Resource
private BizAiLegislativeDocumentWritingRepository repository;
......@@ -140,7 +140,7 @@ public class BizAiLegislativeDocumentWritingServiceImpl extends BaseServiceImpl
}
@Override
public LegislativeDocumentEntity call(String dialoguesId, String input, String fileUrl, Long userId) throws Exception {
public LegislativeDocumentResult call(String dialoguesId, String input, String fileUrl, Long userId) throws Exception {
BizAiDialoguesEntity bizAiDialoguesEntity = new BizAiDialoguesEntity();
bizAiDialoguesEntity.setDialoguesId(dialoguesId);
bizAiDialoguesEntity.setMemberId(userId);
......@@ -165,13 +165,13 @@ public class BizAiLegislativeDocumentWritingServiceImpl extends BaseServiceImpl
largeModelResponse.setMessages(messages.toArray(new Message[0]));
largeModelResponse.setStream(false);
LargeModelDemandResult chat = llmService.chat(largeModelResponse);
LegislativeDocumentEntity legislativeDocumentEntity = new LegislativeDocumentEntity();
LegislativeDocumentResult legislativeDocumentResult = new LegislativeDocumentResult();
if (ObjectUtil.isEmpty(chat) || !chat.getCode().equals("0")) {
throw new BusinessException("获取失败");
}
String message = chat.getMessage().replaceAll("```json", StringUtils.EMPTY).replaceAll("```", StringUtils.EMPTY);
legislativeDocumentEntity = JsonUtils.deSerialize(message, LegislativeDocumentEntity.class);
if (ObjectUtil.isEmpty(legislativeDocumentEntity)) {
legislativeDocumentResult = JsonUtils.deSerialize(message, LegislativeDocumentResult.class);
if (ObjectUtil.isEmpty(legislativeDocumentResult)) {
throw new BusinessException("提取失败");
}
......@@ -195,11 +195,45 @@ public class BizAiLegislativeDocumentWritingServiceImpl extends BaseServiceImpl
bizAgentApplicationDialoguesRecordService.save(inputRecord);
bizAgentApplicationDialoguesRecordService.save(assistantRecord);
//找出原有的,做替换
BizAiLegislativeDocumentWritingEntity example = new BizAiLegislativeDocumentWritingEntity();
example.setLegislativeDocumentWritingDialoguesId(dialoguesId);
example.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAiLegislativeDocumentWritingEntity> bizAiLegislativeDocumentWritingEntities = findByExample(example, null);
BizAiLegislativeDocumentWritingEntity bizAiLegislativeDocumentWritingEntity = new BizAiLegislativeDocumentWritingEntity();
bizAiLegislativeDocumentWritingEntity.setLegislativeDocumentWritingDialoguesId(dialoguesId);
bizAiLegislativeDocumentWritingEntity.setLegislativeDocumentWritingDialoguesData(JsonUtils.serialize(legislativeDocumentEntity));
bizAiLegislativeDocumentWritingService.save(bizAiLegislativeDocumentWritingEntity);
return legislativeDocumentEntity;
if (CollectionUtils.isNotEmpty(bizAiLegislativeDocumentWritingEntities)) {
BizAiLegislativeDocumentWritingEntity aiLegislativeDocumentWritingEntity = bizAiLegislativeDocumentWritingEntities.get(0);
LegislativeDocumentResult oldLegislativeDocumentResult = JsonUtils.deSerialize(aiLegislativeDocumentWritingEntity.getLegislativeDocumentWritingDialoguesData(), LegislativeDocumentResult.class);
JSONObject legislativeDocumentResultJsonObject = JSONObject.parseObject(JsonUtils.serialize(legislativeDocumentResult));
JSONObject oldLegislativeDocumentResultJsonObject = JSONObject.parseObject(JsonUtils.serialize(oldLegislativeDocumentResult));
JsonUtils.deepMerge(legislativeDocumentResultJsonObject, oldLegislativeDocumentResultJsonObject);
legislativeDocumentResult = oldLegislativeDocumentResultJsonObject.toJavaObject(LegislativeDocumentResult.class);
bizAiLegislativeDocumentWritingEntity.setLegislativeDocumentWritingId(aiLegislativeDocumentWritingEntity.getLegislativeDocumentWritingId());
bizAiLegislativeDocumentWritingEntity.setLegislativeDocumentWritingDialoguesData(JsonUtils.serialize(legislativeDocumentResult));
bizAiLegislativeDocumentWritingService.update(bizAiLegislativeDocumentWritingEntity);
} else {
bizAiLegislativeDocumentWritingEntity.setLegislativeDocumentWritingDialoguesData(JsonUtils.serialize(legislativeDocumentResult));
bizAiLegislativeDocumentWritingService.save(bizAiLegislativeDocumentWritingEntity);
}
return legislativeDocumentResult;
}
@Override
public LegislativeDocumentResult getlegislativeApplyDetail(String dialoguesId, Long userId) throws Exception {
BizAiLegislativeDocumentWritingEntity example = new BizAiLegislativeDocumentWritingEntity();
example.setLegislativeDocumentWritingDialoguesId(dialoguesId);
example.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizAiLegislativeDocumentWritingEntity> bizAiLegislativeDocumentWritingEntityList = findByExample(example, null);
if (CollectionUtils.isEmpty(bizAiLegislativeDocumentWritingEntityList)) {
return null;
}
return JsonUtils.deSerialize(bizAiLegislativeDocumentWritingEntityList.get(0).getLegislativeDocumentWritingDialoguesData(), LegislativeDocumentResult.class);
}
private List<Message> buildMessages(String dialogsId, Long userId, String input, String fileUrl) throws Exception {
......@@ -261,4 +295,5 @@ public class BizAiLegislativeDocumentWritingServiceImpl extends BaseServiceImpl
return messages;
}
}
\ No newline at end of file
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