|
@@ -1,20 +1,24 @@
|
|
|
package cn.cslg.report.service.business;
|
|
|
|
|
|
+import cn.cslg.report.common.core.base.Constants;
|
|
|
import cn.cslg.report.common.model.dto.CustomFieldLabelDTO;
|
|
|
-import cn.cslg.report.common.model.dto.LabelDTO;
|
|
|
-import cn.cslg.report.common.model.vo.CompareFileVO;
|
|
|
+import cn.cslg.report.common.model.dto.PatentQueryFieldSourceDTO;
|
|
|
import cn.cslg.report.common.model.vo.CompareFilesVO;
|
|
|
import cn.cslg.report.common.model.vo.PatentIndexSettingVO;
|
|
|
+import cn.cslg.report.common.model.vo.PatentQueryFieldSourceVO;
|
|
|
import cn.cslg.report.common.model.vo.PatentVO;
|
|
|
|
|
|
import cn.cslg.report.common.utils.JsonUtils;
|
|
|
import cn.cslg.report.common.utils.Response;
|
|
|
+import cn.cslg.report.common.utils.StringUtils;
|
|
|
import cn.cslg.report.entity.*;
|
|
|
import cn.cslg.report.mapper.CompareFilesMapper;
|
|
|
import cn.cslg.report.service.OutInterfaceService;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
@@ -42,6 +46,7 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
|
|
|
private final ReportFieldOptionService reportFieldOptionService;
|
|
|
private final AssoComapareFielService assoComapareFielService;
|
|
|
private final ReportFieldPatentLinkService reportFieldPatentLinkService;
|
|
|
+ private final SysDictItemService sysDictItemService;
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public String addCompareFile(CompareFilesVO compareFilesVO) throws IOException {
|
|
@@ -184,13 +189,9 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
|
|
|
|
|
|
public List<CustomFieldLabelDTO> setAll(Integer reportId, String patentNos) throws IOException{
|
|
|
List<CustomFieldLabelDTO> dataList = new ArrayList<>();
|
|
|
- List<ReportFieldPatentLink> reportFieldPatentLinks = reportFieldPatentLinkService.get(reportId);
|
|
|
- List<ReportField> reportFields = new ArrayList<>();
|
|
|
- for(ReportFieldPatentLink a :reportFieldPatentLinks){
|
|
|
- ReportField reportField = reportFieldService.get(a.getFieldId());
|
|
|
- reportFields.add(reportField);
|
|
|
+ List<ReportField> reportFields = reportFieldService.selectAll(reportId);
|
|
|
+
|
|
|
|
|
|
- }
|
|
|
for(ReportField reportField:reportFields) {
|
|
|
PatentIndexSettingVO params = new PatentIndexSettingVO();
|
|
|
CustomFieldLabelDTO data = new CustomFieldLabelDTO();
|
|
@@ -205,17 +206,113 @@ public class CompareFilesService extends ServiceImpl<CompareFilesMapper, Compare
|
|
|
dataList.add(data);
|
|
|
|
|
|
}
|
|
|
+
|
|
|
return dataList;
|
|
|
|
|
|
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void getPatentIndexSetting(PatentIndexSettingVO params)throws IOException {
|
|
|
- reportFieldPatentLinkService.updatePatentIndexSetting(params);
|
|
|
- }
|
|
|
+ reportFieldPatentLinkService.updatePatentIndexSetting(params);
|
|
|
|
|
|
+ }
|
|
|
+ public IPage<PatentQueryFieldSourceDTO> getPatentQuerySourcePageList(PatentQueryFieldSourceVO params) {
|
|
|
+ return this.getPatentAttributeSourcePageList(params);
|
|
|
+ }
|
|
|
|
|
|
+ public IPage<PatentQueryFieldSourceDTO> getPatentAttributeSourcePageList(PatentQueryFieldSourceVO params) {
|
|
|
+ this.setPatentQuerySourceParams(params);
|
|
|
+ if (params.getKey().equals("40-0")) {
|
|
|
+ Integer projectId = params.getProjectId();
|
|
|
+// List<PatentQueryFieldSourceDTO> dataList = baseMapper.getCountStatus(projectId);
|
|
|
+ List<PatentQueryFieldSourceDTO> lstA = new ArrayList<>();
|
|
|
+ List<PatentQueryFieldSourceDTO> lstB = new ArrayList<>();
|
|
|
+// dataList.forEach(item -> {
|
|
|
+// if (StringUtils.changeStringToString(item.getLabel(), "\\|").size() > 1) {
|
|
|
+// lstA.add(item);
|
|
|
+// } else {
|
|
|
+// lstB.add(item);
|
|
|
+// }
|
|
|
+// });
|
|
|
+ lstA.forEach(item -> {
|
|
|
+ List<String> stringList = StringUtils.changeStringToString(item.getLabel(), "\\|");
|
|
|
|
|
|
+ stringList.forEach(x -> {
|
|
|
+ List<PatentQueryFieldSourceDTO> lstC = new ArrayList<>();
|
|
|
+ for (PatentQueryFieldSourceDTO patentQueryFieldSourceDTO : lstB) {
|
|
|
+ if (!lstB.stream().map(PatentQueryFieldSourceDTO::getLabel).collect(Collectors.toList()).contains(x)) {
|
|
|
+ PatentQueryFieldSourceDTO a = new PatentQueryFieldSourceDTO();
|
|
|
+ a.setCount(item.getCount());
|
|
|
+ a.setLabel(x);
|
|
|
+ lstC.add(a);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if (patentQueryFieldSourceDTO.getLabel().equals(x)) {
|
|
|
+ patentQueryFieldSourceDTO.setCount(patentQueryFieldSourceDTO.getCount() + item.getCount());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ lstB.addAll(lstC);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ List<SysDictItem> systemDictList = sysDictItemService.getSystemDictListByType(Collections.singletonList(Constants.PATENT_STATUS));
|
|
|
+ lstB.forEach(b -> {
|
|
|
+ Integer status = Integer.parseInt(systemDictList.stream()
|
|
|
+ .filter(systemDict -> systemDict.getType().equals(Constants.PATENT_STATUS) && systemDict.getLabel().equals(b.getLabel()))
|
|
|
+ .findFirst()
|
|
|
+ .orElse(new SystemDict()).getValue());
|
|
|
+ b.setValue(String.valueOf(status));
|
|
|
+ });
|
|
|
+ IPage<PatentQueryFieldSourceDTO> pageList = baseMapper.getPatentQuerySourcePageList(new Page<>(params.getCurrent(), params.getSize()), params, new ArrayList<>());
|
|
|
+ pageList.setRecords(lstB);
|
|
|
+ return pageList;
|
|
|
+ }
|
|
|
+ IPage<PatentQueryFieldSourceDTO> pageList = baseMapper.getPatentQuerySourcePageList(new Page<>(params.getCurrent(), params.getSize()), params, new ArrayList<>());
|
|
|
+ pageList.getRecords().forEach(item -> item.setIds(null));
|
|
|
+ return pageList;
|
|
|
+ }
|
|
|
+ private void setPatentQuerySourceParams(PatentQueryFieldSourceVO params) {
|
|
|
+ List<Integer> field = StringUtils.changeStringToInteger(params.getKey(), "-");
|
|
|
+ Integer type = 0;
|
|
|
+ Integer level = 0;
|
|
|
+ Integer status = 0;
|
|
|
+ switch (params.getKey()) {
|
|
|
+ case "18-6":
|
|
|
+ case "18-7":
|
|
|
+ case "18-8":
|
|
|
+ case "23-6":
|
|
|
+ case "23-7":
|
|
|
+ case "23-8":
|
|
|
+ params.setApplicantType(2);
|
|
|
+ break;
|
|
|
+ case "19-6":
|
|
|
+ case "19-7":
|
|
|
+ case "19-8":
|
|
|
+ case "24-6":
|
|
|
+ case "24-7":
|
|
|
+ case "24-8":
|
|
|
+ params.setApplicantType(1);
|
|
|
+ break;
|
|
|
+ case "29-17":
|
|
|
+ case "30-17":
|
|
|
+ case "29-18":
|
|
|
+ case "29-19":
|
|
|
+ case "29-20":
|
|
|
+ case "30-18":
|
|
|
+ case "30-19":
|
|
|
+ case "30-20":
|
|
|
+ params.setApplicantType(field.get(0) == 29 ? 2 : 1);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ params.setCustomFieldId(field.get(0));
|
|
|
+ if (params.getType().equals("6") && field.get(1).equals(0)) {
|
|
|
+ params.setCustomFieldTreeType(0);
|
|
|
+ } else {
|
|
|
+ params.setCustomFieldTreeType(null);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|