|
|
@@ -162,7 +162,7 @@ public class GenerateInstructionService {
|
|
|
mainClaimStr = StringUtils.join(reMainPatentClaims, "\n");
|
|
|
}
|
|
|
String mainClaim = mainClaimStr;
|
|
|
- String claimStrs= StringUtils.join(reMainPatentClaims,"\n");
|
|
|
+ String claimStrs = StringUtils.join(reMainPatentClaims, "\n");
|
|
|
return Flux.create(emitter -> {
|
|
|
new Thread(() -> {
|
|
|
try {
|
|
|
@@ -170,15 +170,30 @@ public class GenerateInstructionService {
|
|
|
//;流程开始
|
|
|
String startMess = getFluxMessage("", ALL_START, "");
|
|
|
emitter.next(startMess);
|
|
|
-
|
|
|
+ String conversionId = "";
|
|
|
+ String title = "";
|
|
|
//生成标题和技术领域
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO = this.genrateTechcialAndTitle(userId, emitter, mainClaim, background, filePath,claimStrs);
|
|
|
- String conversionId = generateInstructAnswerVO.getConversionId();
|
|
|
- String title = generateInstructAnswerVO.getTitle();
|
|
|
+ GenerateInstructAnswerVO generateInstructAnswerVO = this.genrateTechcialAndTitle(userId, emitter, mainClaim, background, filePath, claimStrs);
|
|
|
+ conversionId = generateInstructAnswerVO.getConversionId();
|
|
|
+ title = generateInstructAnswerVO.getTitle();
|
|
|
String technical = generateInstructAnswerVO.getTechnical();
|
|
|
map.put("title", title);
|
|
|
map.put("conversionId", conversionId);
|
|
|
map.put("technical", technical);
|
|
|
+ //生成具体实施方式
|
|
|
+ GenerateInstructAnswerVO generateInstructAnswerVO2 = this.generateImplementation(userId, emitter, background, conversionId, rePatentClaims);
|
|
|
+ map.put("implementation", generateInstructAnswerVO2.getImplementations());
|
|
|
+
|
|
|
+ List<ClaimExplainVO> claimExplainVOS = generateInstructAnswerVO2.getClaimExplainVOs();
|
|
|
+ conversionId = generateInstructAnswerVO2.getConversionId();
|
|
|
+ //生成发明内容
|
|
|
+ String startMessage = getFluxMessage(FIELD_CONTENT, START, "");
|
|
|
+ emitter.next(startMessage);
|
|
|
+
|
|
|
+ GenerateInstructAnswerVO generateInstructAnswerVO3 = this.generateContent(userId, emitter, rePatentClaims, claimExplainVOS, conversionId, title);
|
|
|
+ List<String> formClaimList = generateInstructAnswerVO3.getClaimList();
|
|
|
+ map.put("content", generateInstructAnswerVO3.getAnswers());
|
|
|
+
|
|
|
//生成背景技术
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO4 = this.generateBackGround(emitter, background);
|
|
|
map.put("background", generateInstructAnswerVO4.getAnswers());
|
|
|
@@ -189,17 +204,6 @@ public class GenerateInstructionService {
|
|
|
confessionSession.setConversationId(conversionId);
|
|
|
confessionSession.updateById();
|
|
|
|
|
|
- //生成发明内容
|
|
|
- String startMessage = getFluxMessage(FIELD_CONTENT, START, "");
|
|
|
- emitter.next(startMessage);
|
|
|
- ClaimExplainVO claimExplainVO = this.getFirstImplementation(userId, rePatentClaims.get(0), background, conversionId);
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO3 = this.generateContent(userId, emitter, rePatentClaims, claimExplainVO, conversionId, title);
|
|
|
- List<String> formClaimList = generateInstructAnswerVO3.getClaimList();
|
|
|
- map.put("content", generateInstructAnswerVO3.getAnswers());
|
|
|
- //生成具体实施方式
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO2 = this.generateImplementation(userId, emitter, claimExplainVO, background, conversionId, rePatentClaims, formClaimList);
|
|
|
- map.put("implementation", generateInstructAnswerVO2.getImplementations());
|
|
|
-
|
|
|
//生成文档
|
|
|
String fileGuid = this.generateFile(map, templateFilePath, name);
|
|
|
AssoConfessionSessionFile assoConfessionSessionFile = new AssoConfessionSessionFile();
|
|
|
@@ -251,7 +255,7 @@ public class GenerateInstructionService {
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public GenerateInstructAnswerVO genrateTechcialAndTitle(Integer userId, FluxSink fluxSink, String mainClaim, String background, String filePath,String claimStrs) throws Exception {
|
|
|
+ public GenerateInstructAnswerVO genrateTechcialAndTitle(Integer userId, FluxSink fluxSink, String mainClaim, String background, String filePath, String claimStrs) throws Exception {
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO = null;
|
|
|
GenerateTechnicalVO generateTechnicalVO = null;
|
|
|
String startMessage = getFluxMessage(FIELD_TITLE, START, "");
|
|
|
@@ -334,59 +338,52 @@ public class GenerateInstructionService {
|
|
|
* 生成权要的具体实施方式
|
|
|
*
|
|
|
* @param fluxSink
|
|
|
- * @param firstClaimExplainVO
|
|
|
* @param background
|
|
|
* @param conversationId
|
|
|
* @param rePatentClaims
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
- public GenerateInstructAnswerVO generateImplementation(Integer userId, FluxSink fluxSink, ClaimExplainVO firstClaimExplainVO, String background, String conversationId, List<RePatentClaim> rePatentClaims, List<String> formClaims) throws Exception {
|
|
|
+ public GenerateInstructAnswerVO generateImplementation(Integer userId, FluxSink fluxSink, String background, String conversationId, List<RePatentClaim> rePatentClaims) throws Exception {
|
|
|
String startMessage = getFluxMessage(FIELD_IMPLEMENTATION, START, "");
|
|
|
fluxSink.next(startMessage);
|
|
|
GenerateInstructAnswerVO mainVO = new GenerateInstructAnswerVO();
|
|
|
List<ImplementationMessage> implementationMessages = new ArrayList<>();
|
|
|
|
|
|
-
|
|
|
+ List<ClaimExplainVO> claimExplainVOS = new ArrayList<>();
|
|
|
for (int i = 0; i < rePatentClaims.size(); i++) {
|
|
|
RePatentClaim rePatentClaim = rePatentClaims.get(i);
|
|
|
- String formClaim = "";
|
|
|
- if (formClaims.size() >= i + 1) {
|
|
|
- formClaim = formClaims.get(i);
|
|
|
- }
|
|
|
- ClaimExplainVO claimExplainVO = null;
|
|
|
- if (i == 0) {
|
|
|
- claimExplainVO = firstClaimExplainVO;
|
|
|
- } else {
|
|
|
- try {
|
|
|
|
|
|
- String claimContent = rePatentClaim.getContent();
|
|
|
- GetInstructAnswerDTO getInstructAnswerDTO = new GetInstructAnswerDTO();
|
|
|
- getInstructAnswerDTO.setClaim(claimContent);
|
|
|
- getInstructAnswerDTO.setBackground(background);
|
|
|
- getInstructAnswerDTO.setIndex(i);
|
|
|
- getInstructAnswerDTO.setType("g&implementation");
|
|
|
- getInstructAnswerDTO.setConversationId(conversationId);
|
|
|
- getInstructAnswerDTO.setUserId(userId);
|
|
|
- GenerateInstructAnswerVO generateInstructAnswerVO = this.getAnswerVO(getInstructAnswerDTO);
|
|
|
- String answer = generateInstructAnswerVO.getAnswer();
|
|
|
- if (generateInstructAnswerVO.getConversionId() != null) {
|
|
|
- mainVO.setConversionId(generateInstructAnswerVO.getConversionId());
|
|
|
- }
|
|
|
+ ClaimExplainVO claimExplainVO = null;
|
|
|
|
|
|
- claimExplainVO = JSONObject.parseObject(answer, ClaimExplainVO.class);
|
|
|
+ try {
|
|
|
+
|
|
|
+ String claimContent = rePatentClaim.getContent();
|
|
|
+ GetInstructAnswerDTO getInstructAnswerDTO = new GetInstructAnswerDTO();
|
|
|
+ getInstructAnswerDTO.setClaim(claimContent);
|
|
|
+ getInstructAnswerDTO.setBackground(background);
|
|
|
+ getInstructAnswerDTO.setIndex(i);
|
|
|
+ getInstructAnswerDTO.setType("g&implementation");
|
|
|
+ getInstructAnswerDTO.setConversationId(conversationId);
|
|
|
+ getInstructAnswerDTO.setUserId(userId);
|
|
|
+ GenerateInstructAnswerVO generateInstructAnswerVO = this.getAnswerVO(getInstructAnswerDTO);
|
|
|
+ String answer = generateInstructAnswerVO.getAnswer();
|
|
|
+ if (generateInstructAnswerVO.getConversionId() != null) {
|
|
|
+ mainVO.setConversionId(generateInstructAnswerVO.getConversionId());
|
|
|
+ }
|
|
|
|
|
|
+ claimExplainVO = JSONObject.parseObject(answer, ClaimExplainVO.class);
|
|
|
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
|
|
|
+
|
|
|
String message = "";
|
|
|
String reStr = null;
|
|
|
if (claimExplainVO != null) {
|
|
|
- ImplementationMessage implementationMessage = this.formatImplementation(claimExplainVO, rePatentClaim, formClaim);
|
|
|
+ ImplementationMessage implementationMessage = this.formatImplementation(claimExplainVO, rePatentClaim);
|
|
|
implementationMessages.add(implementationMessage);
|
|
|
if (implementationMessage != null) {
|
|
|
reStr = implementationMessage.getClaimStr() + "\n" + implementationMessage.getExplain() + "\n" + implementationMessage.getEffect();
|
|
|
@@ -395,15 +392,17 @@ public class GenerateInstructionService {
|
|
|
reStr = "\n" + reStr;
|
|
|
}
|
|
|
message = getFluxMessage(FIELD_IMPLEMENTATION, MESSAGE, reStr);
|
|
|
+
|
|
|
} else {
|
|
|
message = getFluxMessage(FIELD_IMPLEMENTATION, MESSAGE, "生成权要" + (i + 1) + "的具体实施方式异常");
|
|
|
|
|
|
}
|
|
|
+ claimExplainVOS.add(claimExplainVO);
|
|
|
fluxSink.next(message);
|
|
|
|
|
|
|
|
|
}
|
|
|
-
|
|
|
+ mainVO.setClaimExplainVOs(claimExplainVOS);
|
|
|
mainVO.setImplementations(implementationMessages);
|
|
|
String endMessage = getFluxMessage(FIELD_IMPLEMENTATION, END, "");
|
|
|
fluxSink.next(endMessage);
|
|
|
@@ -416,9 +415,9 @@ public class GenerateInstructionService {
|
|
|
* @param claimExplainVO
|
|
|
* @return
|
|
|
*/
|
|
|
- private ImplementationMessage formatImplementation(ClaimExplainVO claimExplainVO, RePatentClaim rePatentClaim, String formClaim) {
|
|
|
+ private ImplementationMessage formatImplementation(ClaimExplainVO claimExplainVO, RePatentClaim rePatentClaim) {
|
|
|
ImplementationMessage implementationMessage = new ImplementationMessage();
|
|
|
- String explainVOClaim = formClaim;
|
|
|
+ String explainVOClaim = claimExplainVO.getClaim();
|
|
|
String effect = claimExplainVO.getEffects();
|
|
|
String explain = claimExplainVO.getExplain();
|
|
|
if (explainVOClaim != null && !explainVOClaim.trim().equals("")) {
|
|
|
@@ -531,10 +530,11 @@ public class GenerateInstructionService {
|
|
|
* @param rePatentClaims
|
|
|
* @return
|
|
|
*/
|
|
|
- public GenerateInstructAnswerVO generateContent(Integer userId, FluxSink fluxSink, List<RePatentClaim> rePatentClaims, ClaimExplainVO claimExplainVO, String conversationId, String title) throws Exception {
|
|
|
+ public GenerateInstructAnswerVO generateContent(Integer userId, FluxSink fluxSink, List<RePatentClaim> rePatentClaims, List<ClaimExplainVO> claimExplainVOs, String conversationId, String title) throws Exception {
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO = new GenerateInstructAnswerVO();
|
|
|
List<String> formClaims = new ArrayList<>();
|
|
|
List<String> contentStrs = new ArrayList<>();
|
|
|
+ ClaimExplainVO firstClaimExplainVO = claimExplainVOs.get(0);
|
|
|
List<String> claimStrsList = rePatentClaims.stream().map(RePatentClaim::getContent).collect(Collectors.toList());
|
|
|
GetInstructAnswerDTO getInstructAnswerDTO = new GetInstructAnswerDTO();
|
|
|
getInstructAnswerDTO.setConversationId(conversationId);
|
|
|
@@ -542,7 +542,7 @@ public class GenerateInstructionService {
|
|
|
GenerateInstructAnswerVO generateInstructAnswerVO2 = new GenerateInstructAnswerVO();
|
|
|
|
|
|
//发送说明书内容第一段信息
|
|
|
- getInstructAnswerDTO.setEffects(claimExplainVO.getEffects());
|
|
|
+ getInstructAnswerDTO.setEffects(firstClaimExplainVO.getEffects());
|
|
|
getInstructAnswerDTO.setType("g&re_effect");
|
|
|
getInstructAnswerDTO.setUserId(userId);
|
|
|
generateInstructAnswerVO2 = this.getAnswerVO(getInstructAnswerDTO);
|
|
|
@@ -555,13 +555,8 @@ public class GenerateInstructionService {
|
|
|
fluxSink.next(message);
|
|
|
Integer mainClaimFlag = 0;
|
|
|
for (int i = 0; i < claimStrsList.size(); i++) {
|
|
|
- getInstructAnswerDTO.setType("g&content");
|
|
|
- String claimStr = claimStrsList.get(i);
|
|
|
- getInstructAnswerDTO.setClaim(claimStr);
|
|
|
- generateInstructAnswerVO2 = this.getAnswerVO(getInstructAnswerDTO);
|
|
|
- String answer1 = generateInstructAnswerVO2.getAnswer();
|
|
|
- GenerateContentVO generateTechnicalVO1 = JSONObject.parseObject(answer1, GenerateContentVO.class);
|
|
|
- String claim = generateTechnicalVO1.getClaim();
|
|
|
+ ClaimExplainVO claimExplainVO = claimExplainVOs.get(i);
|
|
|
+ String claim = claimExplainVO.getClaim();
|
|
|
formClaims.add(claim);
|
|
|
RePatentClaim rePatentClaim = rePatentClaims.get(i);
|
|
|
String temContent = "";
|
|
|
@@ -577,8 +572,8 @@ public class GenerateInstructionService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- if (claimExplainVO != null) {
|
|
|
- String temContent = "有益效果是:" + claimExplainVO.getEffects();
|
|
|
+ if (firstClaimExplainVO != null) {
|
|
|
+ String temContent = "有益效果是:" + firstClaimExplainVO.getEffects();
|
|
|
contentStrs.add(temContent);
|
|
|
message = getFluxMessage(FIELD_CONTENT, MESSAGE, "\n" + temContent);
|
|
|
fluxSink.next(message);
|