全文对比

This commit is contained in:
wangzhijiang
2024-02-29 09:58:34 +08:00
parent 94606b404a
commit a5b78583a1
3 changed files with 26 additions and 4 deletions
@@ -179,7 +179,7 @@ public class SarFileCompareItemController extends JeroController<SarFileCompareI
@GetMapping(value = "/clauseComparison")
public Result<?> clauseComparison(@ApiParam("左侧id") @RequestParam(name="leftId",required=true) String leftId,
@ApiParam("右侧id") @RequestParam(name="rightId",required=true) String rightId) {
List<String> res = sarFileCompareItemService.clauseComparison(leftId,rightId);
Map<String,Object> res = sarFileCompareItemService.clauseComparison(leftId,rightId);
return Result.OK(res);
}
@@ -72,7 +72,7 @@ public interface ISarFileCompareItemService extends IService<SarFileCompareItem>
Map<String, SarFileCompareItem> queryMapByInfoId(String infoId);
List<String> clauseComparison(String lid,String rid);
Map<String,Object> clauseComparison(String lid,String rid);
Map<String,Object> clauseComparisonEvent(JSONObject json);
}
@@ -154,12 +154,34 @@ public class SarFileCompareItemServiceImpl extends ServiceImpl<SarFileCompareIte
}
@Override
public List<String> clauseComparison(String lid, String rid) {
public Map<String,Object> clauseComparison(String lid, String rid) {
Map<String,Object> resultMap = new HashMap<String, Object>();
SarFileCompareItem leftItem = this.queryById(lid);
SarFileCompareItem rightItem = this.queryById(rid);
DiffUtils dmp = new DiffUtils();
List<String> htmlDiffStr = dmp.getHtmlDiffStr(leftItem.getItemsText(), rightItem.getItemsText());
return htmlDiffStr;
String oldTxt = leftItem.getItemsText();
String newTxt = rightItem.getItemsText();
String similarityDegree="";
double similarity = 100.00;
if(!StringUtils.isNotBlank(oldTxt.trim()) && !StringUtils.isNotBlank(newTxt.trim())){
similarityDegree = "100.00";
}else if(StringUtils.isNotBlank(oldTxt.trim()) && StringUtils.isNotBlank(newTxt.trim())){
similarity = CompHanLPUtils.findSimilarity(oldTxt.trim(), newTxt.trim());
NumberFormat nf = java.text.NumberFormat.getPercentInstance();
//nf.setMaximumIntegerDigits(2);//小数点前保留几位
nf.setMinimumFractionDigits(2);// 小数点后保留几位
similarityDegree = nf.format(similarity);
}else{
similarity = 0.00;
similarityDegree = "0.00";
}
resultMap.put("similarityDegree",similarityDegree);
resultMap.put("htmlDiffStr",htmlDiffStr);
return resultMap;
}
@Override