diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/entity/NdKqZzsfwMattersDeduplicate.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/entity/NdKqZzsfwMattersDeduplicate.java
new file mode 100644
index 0000000..cab8f04
--- /dev/null
+++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/entity/entity/NdKqZzsfwMattersDeduplicate.java
@@ -0,0 +1,43 @@
+package com.ningdatech.kqapi.zzsfw.entity.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ *
+ *
+ *
+ *
+ * @author ZPF
+ * @since 2023-10-27
+ */
+@Data
+@TableName("nd_kq_zzsfw_matters_deduplicate")
+@ApiModel(value = "NdKqZzsfwMattersDeduplicate", description = "")
+public class NdKqZzsfwMattersDeduplicate implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @ApiModelProperty("id主键")
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ @ApiModelProperty("数据同步时间")
+ private LocalDateTime createOn;
+
+ @ApiModelProperty("事项名称")
+ private String qlName;
+
+ @ApiModelProperty("链接")
+ private String webapplyurl;
+
+ @ApiModelProperty("重复数")
+ private Integer countNum;
+}
diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java
index 5988172..d33351d 100644
--- a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java
+++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/manage/MatterManage.java
@@ -11,10 +11,8 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -32,7 +30,6 @@ public class MatterManage {
public List getMatters() {
List matters = menuService.list(Wrappers.lambdaQuery(NdKqZzsfwMenu.class)
- .eq(NdKqZzsfwMenu::getHasUrl, CommonEnum.YES.getCode())
.orderByAsc(NdKqZzsfwMenu::getSort));
if(CollUtil.isEmpty(matters)){
return Collections.emptyList();
@@ -76,7 +73,8 @@ public class MatterManage {
}
private List generateMatters(NdKqZzsfwMenu menu, List matters) {
- return matters.stream().filter(m -> StringUtils.isNotBlank(m.getDepartment()) &&
+ return matters.stream().filter(m -> Objects.nonNull(m.getHasUrl()) && m.getHasUrl() == 1 &&
+ StringUtils.isNotBlank(m.getDepartment()) &&
m.getDepartment().equals(menu.getDepartment()) && m.getWindow().equals(menu.getWindow()) &&
m.getZoneName().equals(menu.getZoneName()))
.map(m -> {
diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/mapper/NdKqZzsfwMatterDeduplicateMapper.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/mapper/NdKqZzsfwMatterDeduplicateMapper.java
new file mode 100644
index 0000000..292ddf9
--- /dev/null
+++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/mapper/NdKqZzsfwMatterDeduplicateMapper.java
@@ -0,0 +1,16 @@
+package com.ningdatech.kqapi.zzsfw.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMattersDeduplicate;
+
+/**
+ *
+ * Mapper 接口
+ *
+ *
+ * @author ZPF
+ * @since 2023-10-27
+ */
+public interface NdKqZzsfwMatterDeduplicateMapper extends BaseMapper {
+
+}
diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/service/INdKqZzsfwMatterDeduplicateService.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/service/INdKqZzsfwMatterDeduplicateService.java
new file mode 100644
index 0000000..f94a816
--- /dev/null
+++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/service/INdKqZzsfwMatterDeduplicateService.java
@@ -0,0 +1,16 @@
+package com.ningdatech.kqapi.zzsfw.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMattersDeduplicate;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author ZPF
+ * @since 2023-10-27
+ */
+public interface INdKqZzsfwMatterDeduplicateService extends IService {
+
+}
diff --git a/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/service/impl/NdKqZzsfwMatterDeduplicateServiceImpl.java b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/service/impl/NdKqZzsfwMatterDeduplicateServiceImpl.java
new file mode 100644
index 0000000..0f04f0f
--- /dev/null
+++ b/kqapi/src/main/java/com/ningdatech/kqapi/zzsfw/service/impl/NdKqZzsfwMatterDeduplicateServiceImpl.java
@@ -0,0 +1,21 @@
+package com.ningdatech.kqapi.zzsfw.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMattersDeduplicate;
+import com.ningdatech.kqapi.zzsfw.mapper.NdKqZzsfwMatterDeduplicateMapper;
+import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwMatterDeduplicateService;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author ZPF
+ * @since 2023-10-27
+ */
+@Service
+public class NdKqZzsfwMatterDeduplicateServiceImpl extends ServiceImpl
+ implements INdKqZzsfwMatterDeduplicateService {
+
+}
diff --git a/kqapi/src/test/java/com/ningdatech/kqapi/menu/DuplicationTest.java b/kqapi/src/test/java/com/ningdatech/kqapi/menu/DuplicationTest.java
new file mode 100644
index 0000000..e71acfa
--- /dev/null
+++ b/kqapi/src/test/java/com/ningdatech/kqapi/menu/DuplicationTest.java
@@ -0,0 +1,101 @@
+package com.ningdatech.kqapi.menu;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.google.common.collect.Sets;
+import com.ningdatech.kqapi.AppTests;
+import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMattersDeduplicate;
+import com.ningdatech.kqapi.zzsfw.entity.entity.NdKqZzsfwMenu;
+import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwMatterDeduplicateService;
+import com.ningdatech.kqapi.zzsfw.service.INdKqZzsfwMenuService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @Classname DuplicationTest
+ * @Description
+ * @Date 2023/11/17 10:42
+ * @Author PoffyZhang
+ */
+public class DuplicationTest extends AppTests {
+
+ @Autowired
+ private INdKqZzsfwMatterDeduplicateService matterDeduplicateService;
+
+ @Autowired
+ private INdKqZzsfwMenuService menuService;
+
+ @Test
+ public void test() throws IOException {
+ FileInputStream fis = new FileInputStream("C:\\Users\\PoffyZhang\\Desktop\\去重后的事项数据.xlsx");
+ Workbook workbook = new XSSFWorkbook(fis);
+ Assert.assertNotNull(workbook);
+ Row row;
+ if (workbook != null) {
+ //获取最大行数
+ Sheet sheet = workbook.getSheetAt(0);
+ int rownum = sheet.getPhysicalNumberOfRows();
+ //获取第一行
+ row = sheet.getRow(0);
+ //获取最大列数
+ Integer num = 1;
+
+ matterDeduplicateService.remove(Wrappers.lambdaQuery(NdKqZzsfwMattersDeduplicate.class));
+
+ for (int i = 2; i < rownum; i++) {
+ row = sheet.getRow(i);
+ if(row.getZeroHeight()){
+ continue;
+ }
+ System.out.println("记数:" + (num++));
+ System.out.println(row.getCell(0).getStringCellValue());
+ System.out.println(row.getCell(1).getStringCellValue());
+ Double numericCellValue = row.getCell(2).getNumericCellValue();
+
+ NdKqZzsfwMattersDeduplicate menu = new NdKqZzsfwMattersDeduplicate();
+ menu.setWebapplyurl(row.getCell(1).getStringCellValue());
+ menu.setQlName(row.getCell(0).getStringCellValue());
+ menu.setCreateOn(LocalDateTime.now());
+ menu.setCountNum(numericCellValue.intValue());
+
+ matterDeduplicateService.save(menu);
+ }
+ }
+ }
+
+ @Test
+ public void syncUrl(){
+ List menus = menuService.list(Wrappers.lambdaQuery(NdKqZzsfwMenu.class)
+ .isNull(NdKqZzsfwMenu::getWebapplyurl));
+
+ List list = matterDeduplicateService.list();
+
+ Set qlSet = Sets.newTreeSet();
+ Map map = list.stream().filter(q -> qlSet.add(q.getQlName()))
+ .filter(q -> StringUtils.isNotBlank(q.getWebapplyurl()) && StringUtils.isNotBlank(q.getQlName()))
+ .collect(Collectors.toMap(q -> q.getQlName(), q -> q.getWebapplyurl()));
+
+ for(NdKqZzsfwMenu menu : menus){
+ String itemName = menu.getItemName();
+ if(map.containsKey(itemName)){
+ String url = map.get(itemName);
+ menu.setWebapplyurl(url);
+ menu.setHasUrl(1);
+ menuService.updateById(menu);
+ }
+ }
+ }
+}
diff --git a/kqapi/src/test/java/com/ningdatech/kqapi/menu/MenuTest.java b/kqapi/src/test/java/com/ningdatech/kqapi/menu/MenuTest.java
index 72d45b4..03fcf2c 100644
--- a/kqapi/src/test/java/com/ningdatech/kqapi/menu/MenuTest.java
+++ b/kqapi/src/test/java/com/ningdatech/kqapi/menu/MenuTest.java
@@ -32,7 +32,7 @@ public class MenuTest extends AppTests {
@Test
public void test() throws IOException {
- FileInputStream fis = new FileInputStream("C:\\Users\\PoffyZhang\\Desktop\\8.8柯桥区企业综合服务中心政务服务事项清单2.xlsx");
+ FileInputStream fis = new FileInputStream("C:\\Users\\PoffyZhang\\Desktop\\11.14柯桥.xlsx");
Workbook workbook = new XSSFWorkbook(fis);
Assert.assertNotNull(workbook);
Row row;
@@ -44,6 +44,9 @@ public class MenuTest extends AppTests {
row = sheet.getRow(0);
//获取最大列数
Integer num = 1;
+
+ menuService.remove(Wrappers.lambdaQuery(NdKqZzsfwMenu.class));
+
for (int i = 2; i < rownum; i++) {
row = sheet.getRow(i);
if(row.getZeroHeight()){
@@ -66,16 +69,16 @@ public class MenuTest extends AppTests {
menu.setSort(numericCellValue.intValue());
//去查询 url
- DscSxAdsShareItemQltQlsxCommonIDVKq item = itemQltQlsxCommonIDVKqService.getOne(Wrappers.lambdaQuery(DscSxAdsShareItemQltQlsxCommonIDVKq.class)
- .select(DscSxAdsShareItemQltQlsxCommonIDVKq::getRowguid, DscSxAdsShareItemQltQlsxCommonIDVKq::getWebapplyurl, DscSxAdsShareItemQltQlsxCommonIDVKq::getQlName)
- .eq(DscSxAdsShareItemQltQlsxCommonIDVKq::getQlName, itemName)
- .isNotNull(DscSxAdsShareItemQltQlsxCommonIDVKq::getWebapplyurl)
- .last("limit 1"));
- if(Objects.nonNull(item)){
+// DscSxAdsShareItemQltQlsxCommonIDVKq item = itemQltQlsxCommonIDVKqService.getOne(Wrappers.lambdaQuery(DscSxAdsShareItemQltQlsxCommonIDVKq.class)
+// .select(DscSxAdsShareItemQltQlsxCommonIDVKq::getRowguid, DscSxAdsShareItemQltQlsxCommonIDVKq::getWebapplyurl, DscSxAdsShareItemQltQlsxCommonIDVKq::getQlName)
+// .eq(DscSxAdsShareItemQltQlsxCommonIDVKq::getQlName, itemName)
+// .isNotNull(DscSxAdsShareItemQltQlsxCommonIDVKq::getWebapplyurl)
+// .last("limit 1"));
+// if(Objects.nonNull(item)){
menu.setHasUrl(1);
- menu.setWebapplyurl(item.getWebapplyurl());
- menu.setItemRowid(item.getRowguid());
- }
+// menu.setWebapplyurl(item.getWebapplyurl());
+// menu.setItemRowid(item.getRowguid());
+// }
menuService.save(menu);
}