Jelajahi Sumber

人工导入的数据的建立以及模板的导入

nahida 1 tahun lalu
induk
melakukan
c02c4f4cc3
51 mengubah file dengan 1117 tambahan dan 628 penghapusan
  1. 1 2
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/InformationController.java
  2. 19 2
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrCompanyInfoController.java
  3. 19 2
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrFoodInspectionController.java
  4. 19 2
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrFoodInspectionDetailsController.java
  5. 19 2
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrFoodSamplingInspectionController.java
  6. 25 6
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrPatentController.java
  7. 19 2
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrPublicCreditEvaluationController.java
  8. 19 2
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrQualificationCertificateController.java
  9. 25 6
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrSoftWorksController.java
  10. 19 2
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrTrademarkController.java
  11. 11 3
      background-service/zksy-admin/src/main/java/com/zksy/web/controller/report/CreditReportController.java
  12. 1 1
      background-service/zksy-admin/src/main/resources/application-dev.yml
  13. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/专利模板.xlsx
  14. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/企业基本信息(天眼查)模板.xlsx
  15. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/公共信用综合评价结果模板.xlsx
  16. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/商标模板.xlsx
  17. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/流通、餐饮抽样检验工作汇总模板.xlsx
  18. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/流通抽样检验工作汇总模板.xlsx
  19. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/资质证书信息模板.xlsx
  20. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/软件著作权模板.xlsx
  21. TEMPAT SAMPAH
      background-service/zksy-admin/src/main/resources/template/食品及食用农产品监督抽检情况汇总模板.xlsx
  22. 42 0
      background-service/zksy-common/src/main/java/com/zksy/common/utils/DeleteTableUtils.java
  23. 0 1
      background-service/zksy-framework/src/main/java/com/zksy/framework/config/MybatisPlusConfig.java
  24. 17 0
      background-service/zksy-generator/src/main/resources/vm/java/controller.java.vm
  25. 3 1
      background-service/zksy-generator/src/main/resources/vm/java/service.java.vm
  26. 12 0
      background-service/zksy-generator/src/main/resources/vm/java/serviceImpl.java.vm
  27. 339 533
      background-service/zksy-generator/src/main/resources/vm/vue/v3/bak/index.vue.vm
  28. 51 3
      background-service/zksy-generator/src/main/resources/vm/vue/v3/index.vue.vm
  29. 6 0
      background-service/zksy-system/pom.xml
  30. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrCompanyInfoService.java
  31. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrFoodInspectionDetailsService.java
  32. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrFoodInspectionService.java
  33. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrFoodSamplingInspectionService.java
  34. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrPatentService.java
  35. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrPublicCreditEvaluationService.java
  36. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrQualificationCertificateService.java
  37. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrSoftWorksService.java
  38. 3 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrTrademarkService.java
  39. 3 4
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/InformationService.java
  40. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrCompanyInfoServiceImpl.java
  41. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrFoodInspectionDetailsServiceImpl.java
  42. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrFoodInspectionServiceImpl.java
  43. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrFoodSamplingInspectionServiceImpl.java
  44. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrPatentServiceImpl.java
  45. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrPublicCreditEvaluationServiceImpl.java
  46. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrQualificationCertificateServiceImpl.java
  47. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrSoftWorksServiceImpl.java
  48. 17 2
      background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrTrademarkServiceImpl.java
  49. 45 0
      background-service/zksy-system/src/main/java/com/zksy/report/domain/CreditReportVo.java
  50. 4 0
      background-service/zksy-system/src/main/java/com/zksy/report/service/CreditReportService.java
  51. 219 18
      background-service/zksy-system/src/main/java/com/zksy/report/service/Impl/CreditReportServiceImpl.java

+ 1 - 2
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/InformationController.java

@@ -27,8 +27,7 @@ public class InformationController extends BaseController{
     @Log(title = "企业信用报告")
     @Log(title = "企业信用报告")
     @GetMapping("/report")
     @GetMapping("/report")
     @ApiOperation(value = "企业信用报告", notes = "企业信用报告")
     @ApiOperation(value = "企业信用报告", notes = "企业信用报告")
-    public AjaxResult report(String creditCode)
-    {
+    public AjaxResult report(String creditCode) {
 //        creditCode = "91431227MA4LY5GC2Y";
 //        creditCode = "91431227MA4LY5GC2Y";
         return service.queryByCreditCode(creditCode);
         return service.queryByCreditCode(creditCode);
     }
     }

+ 19 - 2
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrCompanyInfoController.java

@@ -5,26 +5,28 @@ import com.zksy.basicData.domain.XcrCompanyInfo;
 import com.zksy.basicData.service.IXcrCompanyInfoService;
 import com.zksy.basicData.service.IXcrCompanyInfoService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 企业基本信息(天眼查)Controller
  * 企业基本信息(天眼查)Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrCompanyInfo")
 @RequestMapping("/basicData/xcrCompanyInfo")
@@ -79,6 +81,7 @@ public class XcrCompanyInfoController extends BaseController{
     @Log(title = "企业基本信息(天眼查)", businessType = BusinessType.DELETE)
     @Log(title = "企业基本信息(天眼查)", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除企业基本信息(天眼查)", notes = "删除企业基本信息(天眼查)")
     @ApiOperation(value = "删除企业基本信息(天眼查)", notes = "删除企业基本信息(天眼查)")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrCompanyInfo:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -109,4 +112,18 @@ public class XcrCompanyInfoController extends BaseController{
         List<XcrCompanyInfo> list = util.importExcel(file.getInputStream());
         List<XcrCompanyInfo> list = util.importExcel(file.getInputStream());
         return toAjax(service.saveBatch(list));
         return toAjax(service.saveBatch(list));
     }
     }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"企业基本信息(天眼查)模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrCompanyInfo:delete')")
+    @Log(title = "企业基本信息(天眼查)清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
+    }
 }
 }

+ 19 - 2
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrFoodInspectionController.java

@@ -5,26 +5,28 @@ import com.zksy.basicData.domain.XcrFoodInspection;
 import com.zksy.basicData.service.IXcrFoodInspectionService;
 import com.zksy.basicData.service.IXcrFoodInspectionService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 食品及食用农产品监督抽检情况汇总Controller
  * 食品及食用农产品监督抽检情况汇总Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrFoodInspection")
 @RequestMapping("/basicData/xcrFoodInspection")
@@ -79,6 +81,7 @@ public class XcrFoodInspectionController extends BaseController{
     @Log(title = "食品及食用农产品监督抽检情况汇总", businessType = BusinessType.DELETE)
     @Log(title = "食品及食用农产品监督抽检情况汇总", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除食品及食用农产品监督抽检情况汇总", notes = "删除食品及食用农产品监督抽检情况汇总")
     @ApiOperation(value = "删除食品及食用农产品监督抽检情况汇总", notes = "删除食品及食用农产品监督抽检情况汇总")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrFoodInspection:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -109,4 +112,18 @@ public class XcrFoodInspectionController extends BaseController{
         List<XcrFoodInspection> list = util.importExcel(file.getInputStream());
         List<XcrFoodInspection> list = util.importExcel(file.getInputStream());
         return toAjax(service.saveBatch(list));
         return toAjax(service.saveBatch(list));
     }
     }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"食品及食用农产品监督抽检情况汇总模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrFoodInspection:delete')")
+    @Log(title = "食品及食用农产品监督抽检情况汇总清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
+    }
 }
 }

+ 19 - 2
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrFoodInspectionDetailsController.java

@@ -5,26 +5,28 @@ import com.zksy.basicData.domain.XcrFoodInspectionDetails;
 import com.zksy.basicData.service.IXcrFoodInspectionDetailsService;
 import com.zksy.basicData.service.IXcrFoodInspectionDetailsService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 流通抽样检验工作汇总Controller
  * 流通抽样检验工作汇总Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrFoodInspectionDetails")
 @RequestMapping("/basicData/xcrFoodInspectionDetails")
@@ -79,6 +81,7 @@ public class XcrFoodInspectionDetailsController extends BaseController{
     @Log(title = "流通抽样检验工作汇总", businessType = BusinessType.DELETE)
     @Log(title = "流通抽样检验工作汇总", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除流通抽样检验工作汇总", notes = "删除流通抽样检验工作汇总")
     @ApiOperation(value = "删除流通抽样检验工作汇总", notes = "删除流通抽样检验工作汇总")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrFoodInspectionDetails:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -109,4 +112,18 @@ public class XcrFoodInspectionDetailsController extends BaseController{
         List<XcrFoodInspectionDetails> list = util.importExcel(file.getInputStream());
         List<XcrFoodInspectionDetails> list = util.importExcel(file.getInputStream());
         return toAjax(service.saveBatch(list));
         return toAjax(service.saveBatch(list));
     }
     }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"流通抽样检验工作汇总模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrFoodInspectionDetails:delete')")
+    @Log(title = "流通抽样检验工作汇总清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
+    }
 }
 }

+ 19 - 2
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrFoodSamplingInspectionController.java

@@ -5,26 +5,28 @@ import com.zksy.basicData.domain.XcrFoodSamplingInspection;
 import com.zksy.basicData.service.IXcrFoodSamplingInspectionService;
 import com.zksy.basicData.service.IXcrFoodSamplingInspectionService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 流通、餐饮抽样检验工作汇总Controller
  * 流通、餐饮抽样检验工作汇总Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrFoodSamplingInspection")
 @RequestMapping("/basicData/xcrFoodSamplingInspection")
@@ -79,6 +81,7 @@ public class XcrFoodSamplingInspectionController extends BaseController{
     @Log(title = "流通、餐饮抽样检验工作汇总", businessType = BusinessType.DELETE)
     @Log(title = "流通、餐饮抽样检验工作汇总", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除流通、餐饮抽样检验工作汇总", notes = "删除流通、餐饮抽样检验工作汇总")
     @ApiOperation(value = "删除流通、餐饮抽样检验工作汇总", notes = "删除流通、餐饮抽样检验工作汇总")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrFoodSamplingInspection:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -109,4 +112,18 @@ public class XcrFoodSamplingInspectionController extends BaseController{
         List<XcrFoodSamplingInspection> list = util.importExcel(file.getInputStream());
         List<XcrFoodSamplingInspection> list = util.importExcel(file.getInputStream());
         return toAjax(service.saveBatch(list));
         return toAjax(service.saveBatch(list));
     }
     }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"流通、餐饮抽样检验工作汇总模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrFoodSamplingInspection:delete')")
+    @Log(title = "流通、餐饮抽样检验工作汇总清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
+    }
 }
 }

+ 25 - 6
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrPatentController.java

@@ -1,31 +1,32 @@
 package com.zksy.web.controller.basicData;
 package com.zksy.web.controller.basicData;
 
 
-import com.zksy.basicData.domain.XcrSoftWorks;
 import com.zksy.common.core.controller.BaseController;
 import com.zksy.common.core.controller.BaseController;
 import com.zksy.basicData.domain.XcrPatent;
 import com.zksy.basicData.domain.XcrPatent;
 import com.zksy.basicData.service.IXcrPatentService;
 import com.zksy.basicData.service.IXcrPatentService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 专利Controller
  * 专利Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrPatent")
 @RequestMapping("/basicData/xcrPatent")
@@ -80,6 +81,7 @@ public class XcrPatentController extends BaseController{
     @Log(title = "专利", businessType = BusinessType.DELETE)
     @Log(title = "专利", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除专利", notes = "删除专利")
     @ApiOperation(value = "删除专利", notes = "删除专利")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrPatent:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -97,14 +99,31 @@ public class XcrPatentController extends BaseController{
         ExcelUtil<XcrPatent> util = new ExcelUtil<XcrPatent>(XcrPatent.class);
         ExcelUtil<XcrPatent> util = new ExcelUtil<XcrPatent>(XcrPatent.class);
         util.exportExcel(response, list, "专利数据");
         util.exportExcel(response, list, "专利数据");
     }
     }
-    @ApiOperation(value = "专利数据导入")
+    /**
+     * 导入专利列表
+     */
+    @ApiOperation(value = "专利导入")
     @Log(title = "专利管理", businessType = BusinessType.IMPORT)
     @Log(title = "专利管理", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('basicData:xcrPatent:import')")
     @PreAuthorize("@ss.hasPermi('basicData:xcrPatent:import')")
     @PostMapping("/importData")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file) throws Exception
     public AjaxResult importData(MultipartFile file) throws Exception
     {
     {
         ExcelUtil<XcrPatent> util = new ExcelUtil<XcrPatent>(XcrPatent.class);
         ExcelUtil<XcrPatent> util = new ExcelUtil<XcrPatent>(XcrPatent.class);
-        List<XcrPatent> xcrPatent = util.importExcel(file.getInputStream());
-        return toAjax(service.saveBatch(xcrPatent));
+        List<XcrPatent> list = util.importExcel(file.getInputStream());
+        return toAjax(service.saveBatch(list));
+    }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"专利模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrPatent:delete')")
+    @Log(title = "专利清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
     }
     }
 }
 }

+ 19 - 2
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrPublicCreditEvaluationController.java

@@ -5,26 +5,28 @@ import com.zksy.basicData.domain.XcrPublicCreditEvaluation;
 import com.zksy.basicData.service.IXcrPublicCreditEvaluationService;
 import com.zksy.basicData.service.IXcrPublicCreditEvaluationService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 公共信用综合评价结果Controller
  * 公共信用综合评价结果Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrPublicCreditEvaluation")
 @RequestMapping("/basicData/xcrPublicCreditEvaluation")
@@ -79,6 +81,7 @@ public class XcrPublicCreditEvaluationController extends BaseController{
     @Log(title = "公共信用综合评价结果", businessType = BusinessType.DELETE)
     @Log(title = "公共信用综合评价结果", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除公共信用综合评价结果", notes = "删除公共信用综合评价结果")
     @ApiOperation(value = "删除公共信用综合评价结果", notes = "删除公共信用综合评价结果")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrPublicCreditEvaluation:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -109,4 +112,18 @@ public class XcrPublicCreditEvaluationController extends BaseController{
         List<XcrPublicCreditEvaluation> list = util.importExcel(file.getInputStream());
         List<XcrPublicCreditEvaluation> list = util.importExcel(file.getInputStream());
         return toAjax(service.saveBatch(list));
         return toAjax(service.saveBatch(list));
     }
     }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"公共信用综合评价结果模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrPublicCreditEvaluation:delete')")
+    @Log(title = "公共信用综合评价结果清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
+    }
 }
 }

+ 19 - 2
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrQualificationCertificateController.java

@@ -5,26 +5,28 @@ import com.zksy.basicData.domain.XcrQualificationCertificate;
 import com.zksy.basicData.service.IXcrQualificationCertificateService;
 import com.zksy.basicData.service.IXcrQualificationCertificateService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 资质证书信息Controller
  * 资质证书信息Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrQualificationCertificate")
 @RequestMapping("/basicData/xcrQualificationCertificate")
@@ -79,6 +81,7 @@ public class XcrQualificationCertificateController extends BaseController{
     @Log(title = "资质证书信息", businessType = BusinessType.DELETE)
     @Log(title = "资质证书信息", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除资质证书信息", notes = "删除资质证书信息")
     @ApiOperation(value = "删除资质证书信息", notes = "删除资质证书信息")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrQualificationCertificate:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -109,4 +112,18 @@ public class XcrQualificationCertificateController extends BaseController{
         List<XcrQualificationCertificate> list = util.importExcel(file.getInputStream());
         List<XcrQualificationCertificate> list = util.importExcel(file.getInputStream());
         return toAjax(service.saveBatch(list));
         return toAjax(service.saveBatch(list));
     }
     }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"资质证书信息模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrQualificationCertificate:delete')")
+    @Log(title = "资质证书信息清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
+    }
 }
 }

+ 25 - 6
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrSoftWorksController.java

@@ -5,27 +5,28 @@ import com.zksy.basicData.domain.XcrSoftWorks;
 import com.zksy.basicData.service.IXcrSoftWorksService;
 import com.zksy.basicData.service.IXcrSoftWorksService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
-import com.zksy.common.core.domain.entity.SysUser;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 软件著作权Controller
  * 软件著作权Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-26
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrSoftWorks")
 @RequestMapping("/basicData/xcrSoftWorks")
@@ -80,6 +81,7 @@ public class XcrSoftWorksController extends BaseController{
     @Log(title = "软件著作权", businessType = BusinessType.DELETE)
     @Log(title = "软件著作权", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除软件著作权", notes = "删除软件著作权")
     @ApiOperation(value = "删除软件著作权", notes = "删除软件著作权")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrSoftWorks:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -97,14 +99,31 @@ public class XcrSoftWorksController extends BaseController{
         ExcelUtil<XcrSoftWorks> util = new ExcelUtil<XcrSoftWorks>(XcrSoftWorks.class);
         ExcelUtil<XcrSoftWorks> util = new ExcelUtil<XcrSoftWorks>(XcrSoftWorks.class);
         util.exportExcel(response, list, "软件著作权数据");
         util.exportExcel(response, list, "软件著作权数据");
     }
     }
-    @ApiOperation(value = "软件著作权数据导入")
+    /**
+     * 导入软件著作权列表
+     */
+    @ApiOperation(value = "软件著作权导入")
     @Log(title = "软件著作权管理", businessType = BusinessType.IMPORT)
     @Log(title = "软件著作权管理", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('basicData:xcrSoftWorks:import')")
     @PreAuthorize("@ss.hasPermi('basicData:xcrSoftWorks:import')")
     @PostMapping("/importData")
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file) throws Exception
     public AjaxResult importData(MultipartFile file) throws Exception
     {
     {
         ExcelUtil<XcrSoftWorks> util = new ExcelUtil<XcrSoftWorks>(XcrSoftWorks.class);
         ExcelUtil<XcrSoftWorks> util = new ExcelUtil<XcrSoftWorks>(XcrSoftWorks.class);
-        List<XcrSoftWorks> xcrSoftWorks = util.importExcel(file.getInputStream());
-        return toAjax(service.saveBatch(xcrSoftWorks));
+        List<XcrSoftWorks> list = util.importExcel(file.getInputStream());
+        return toAjax(service.saveBatch(list));
+    }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"软件著作权模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrSoftWorks:delete')")
+    @Log(title = "软件著作权清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
     }
     }
 }
 }

+ 19 - 2
background-service/zksy-admin/src/main/java/com/zksy/web/controller/basicData/XcrTrademarkController.java

@@ -5,26 +5,28 @@ import com.zksy.basicData.domain.XcrTrademark;
 import com.zksy.basicData.service.IXcrTrademarkService;
 import com.zksy.basicData.service.IXcrTrademarkService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
  * 商标Controller
  * 商标Controller
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 @RestController
 @RestController
 @RequestMapping("/basicData/xcrTrademark")
 @RequestMapping("/basicData/xcrTrademark")
@@ -79,6 +81,7 @@ public class XcrTrademarkController extends BaseController{
     @Log(title = "商标", businessType = BusinessType.DELETE)
     @Log(title = "商标", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除商标", notes = "删除商标")
     @ApiOperation(value = "删除商标", notes = "删除商标")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrTrademark:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -109,4 +112,18 @@ public class XcrTrademarkController extends BaseController{
         List<XcrTrademark> list = util.importExcel(file.getInputStream());
         List<XcrTrademark> list = util.importExcel(file.getInputStream());
         return toAjax(service.saveBatch(list));
         return toAjax(service.saveBatch(list));
     }
     }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException, IOException {
+        DowntemplateUtil.downloadTemplate(response,"商标模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('basicData:xcrTrademark:delete')")
+    @Log(title = "商标清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
+    }
 }
 }

+ 11 - 3
background-service/zksy-admin/src/main/java/com/zksy/web/controller/report/CreditReportController.java

@@ -2,10 +2,11 @@ package com.zksy.web.controller.report;
 
 
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.report.service.CreditReportService;
 import com.zksy.report.service.CreditReportService;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
 
 
 @RestController
 @RestController
 @RequestMapping("/report")
 @RequestMapping("/report")
@@ -15,7 +16,14 @@ public class CreditReportController {
     private CreditReportService creditReportService;
     private CreditReportService creditReportService;
 
 
     @GetMapping("/queryByUniCode")
     @GetMapping("/queryByUniCode")
+    @ApiOperation(value = "查询企业信用报告", notes = "查询企业信用报告")
     public AjaxResult queryByUniCode(String uniCode) {
     public AjaxResult queryByUniCode(String uniCode) {
         return creditReportService.queryByUniCode(uniCode);
         return creditReportService.queryByUniCode(uniCode);
     }
     }
+
+    @PostMapping("/downloadReport")
+    @ApiOperation(value = "下载企业信用报告", notes = "下载企业信用报告")
+    public void downloadReport(@RequestParam String uniCode, HttpServletResponse response) {
+        creditReportService.downloadReport(uniCode, response);
+    }
 }
 }

+ 1 - 1
background-service/zksy-admin/src/main/resources/application-dev.yml

@@ -3,4 +3,4 @@ minio:
     accessKey: minio
     accessKey: minio
     secretKey: minio123
     secretKey: minio123
     bucket: zksy-file
     bucket: zksy-file
-    readPath: http://192.168.110.30:9000
+    readPath: http://192.168.110.30:9000

TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/专利模板.xlsx


TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/企业基本信息(天眼查)模板.xlsx


TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/公共信用综合评价结果模板.xlsx


TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/商标模板.xlsx


TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/流通、餐饮抽样检验工作汇总模板.xlsx


TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/流通抽样检验工作汇总模板.xlsx


TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/资质证书信息模板.xlsx


TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/软件著作权模板.xlsx


TEMPAT SAMPAH
background-service/zksy-admin/src/main/resources/template/食品及食用农产品监督抽检情况汇总模板.xlsx


+ 42 - 0
background-service/zksy-common/src/main/java/com/zksy/common/utils/DeleteTableUtils.java

@@ -0,0 +1,42 @@
+package com.zksy.common.utils;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @author Administrator
+ * @version 1.0
+ * @project credit-rating
+ * @description 删除整张表
+ * @date 2024/5/13 11:59:24
+ */
+@NoArgsConstructor
+@AllArgsConstructor
+public class DeleteTableUtils<T> {
+
+    private T entity;
+    /**
+     * TODO
+      * @param fun 一般传 类名::getId()
+     * @param mapper 传实体类对应的mapper
+     * @return void
+     * @author Administrator
+     * @date 2024/5/13 12:22:26
+     */
+    public <T> void del(Function<T, Long> fun, BaseMapper<T> mapper){
+        List<T> list = mapper.selectList(null);
+        if(list == null){
+            throw new RuntimeException("没有数据");
+        }
+        List<Long> ids = list.stream().map(fun).collect(Collectors.toList());
+        if(ids.size() == 0){
+            throw new RuntimeException("没有数据");
+        }
+        mapper.deleteBatchIds(ids);
+    }
+}

+ 0 - 1
background-service/zksy-framework/src/main/java/com/zksy/framework/config/MybatisPlusConfig.java

@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
-import com.baomidou.mybatisplus.core.config.GlobalConfig.DbConfig;
 
 
 /**
 /**
  * Mybatis Plus 配置
  * Mybatis Plus 配置

+ 17 - 0
background-service/zksy-generator/src/main/resources/vm/java/controller.java.vm

@@ -5,12 +5,14 @@ import com.zksy.basicData.domain.${ClassName};
 import com.zksy.basicData.service.I${ClassName}Service;
 import com.zksy.basicData.service.I${ClassName}Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.basicData.utils.DowntemplateUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.utils.SearchUtil;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.enums.BusinessType;
 import com.zksy.common.utils.poi.ExcelUtil;
 import com.zksy.common.utils.poi.ExcelUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -78,6 +80,7 @@ public class ${ClassName}Controller extends BaseController{
     @Log(title = "${functionName}", businessType = BusinessType.DELETE)
     @Log(title = "${functionName}", businessType = BusinessType.DELETE)
     @PostMapping("/delete")
     @PostMapping("/delete")
     @ApiOperation(value = "删除${functionName}", notes = "删除${functionName}")
     @ApiOperation(value = "删除${functionName}", notes = "删除${functionName}")
+    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:delete')")
     public AjaxResult delete(@RequestBody List<String> ids)
     public AjaxResult delete(@RequestBody List<String> ids)
     {
     {
         return toAjax(service.removeByIds(ids));
         return toAjax(service.removeByIds(ids));
@@ -108,4 +111,18 @@ public class ${ClassName}Controller extends BaseController{
         List<${ClassName}> list = util.importExcel(file.getInputStream());
         List<${ClassName}> list = util.importExcel(file.getInputStream());
         return toAjax(service.saveBatch(list));
         return toAjax(service.saveBatch(list));
     }
     }
+
+    @PostMapping("/getUploadTemplate")
+    @ApiOperation(value = "获取上传模板", notes = "获取上传模板")
+    public void getUploadTemplate(HttpServletResponse response) throws IOException {
+        DowntemplateUtil.downloadTemplate(response,"${functionName}模板");
+    }
+
+    @DeleteMapping("/deleteAll")
+    @ApiOperation(value = "清除全表", notes = "清除全表")
+    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:delete')")
+    @Log(title = "${functionName}清除全表", businessType = BusinessType.DELETE)
+    public AjaxResult deleteAll(){
+        return service.deleteAll();
+    }
 }
 }

+ 3 - 1
background-service/zksy-generator/src/main/resources/vm/java/service.java.vm

@@ -2,6 +2,8 @@ package ${packageName}.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.${ClassName};
 import com.zksy.basicData.domain.${ClassName};
+import com.zksy.common.core.domain.AjaxResult;
+
 
 
 /**
 /**
  * ${functionName}Service接口
  * ${functionName}Service接口
@@ -10,5 +12,5 @@ import com.zksy.basicData.domain.${ClassName};
  * @date ${datetime}
  * @date ${datetime}
  */
  */
 public interface I${ClassName}Service extends IService<${ClassName}> {
 public interface I${ClassName}Service extends IService<${ClassName}> {
-
+    AjaxResult deleteAll();
 }
 }

+ 12 - 0
background-service/zksy-generator/src/main/resources/vm/java/serviceImpl.java.vm

@@ -1,8 +1,10 @@
 package ${packageName}.service.impl;
 package ${packageName}.service.impl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zksy.common.utils.DeleteTableUtils;
 import com.zksy.basicData.domain.${ClassName};
 import com.zksy.basicData.domain.${ClassName};
 import com.zksy.basicData.mapper.${ClassName}Mapper;
 import com.zksy.basicData.mapper.${ClassName}Mapper;
 import com.zksy.basicData.service.I${ClassName}Service;
 import com.zksy.basicData.service.I${ClassName}Service;
+import org.springframework.transaction.annotation.Transactional;
 
 
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -15,4 +17,14 @@ import org.springframework.stereotype.Service;
 @Service
 @Service
 public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service {
 public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper, ${ClassName}> implements I${ClassName}Service {
 
 
+    @Resource
+    private ${ClassName}Mapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<${ClassName}> utils = new DeleteTableUtils<>();
+        utils.del(${ClassName}::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 339 - 533
background-service/zksy-generator/src/main/resources/vm/vue/v3/bak/index.vue.vm

@@ -1,65 +1,65 @@
 <template>
 <template>
   <div class="app-container">
   <div class="app-container">
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
     <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-#foreach($column in $columns)
-#if($column.query)
-#set($dictType=$column.dictType)
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.htmlType == "input")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-input
-          v-model="queryParams.${column.javaField}"
-          placeholder="请输入${comment}"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable>
-          <el-option
-            v-for="dict in ${dictType}"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-#elseif(($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable>
-          <el-option label="请选择字典生成" value="" />
-        </el-select>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType != "BETWEEN")
-      <el-form-item label="${comment}" prop="${column.javaField}">
-        <el-date-picker clearable
-          v-model="queryParams.${column.javaField}"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择${comment}">
-        </el-date-picker>
-      </el-form-item>
-#elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-      <el-form-item label="${comment}" style="width: 308px">
-        <el-date-picker
-          v-model="daterange${AttrName}"
-          value-format="YYYY-MM-DD"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item>
-#end
-#end
-#end
+      #foreach($column in $columns)
+        #if($column.query)
+          #set($dictType=$column.dictType)
+          #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+          #set($parentheseIndex=$column.columnComment.indexOf("("))
+          #if($parentheseIndex != -1)
+            #set($comment=$column.columnComment.substring(0, $parentheseIndex))
+          #else
+            #set($comment=$column.columnComment)
+          #end
+          #if(($column.javaField == "uniCode") && $column.htmlType == "input")
+            <el-form-item label="${comment}" prop="${column.javaField}" label-width="200">
+              <el-input
+                  v-model="queryParams.${column.javaField}"
+                  placeholder="请输入${comment}"
+                  clearable
+                  @keyup.enter="handleQuery"
+              />
+            </el-form-item>
+          #elseif(($column.javaField == "uniCode") && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
+            <el-form-item label="${comment}" prop="${column.javaField}" label-width="200">
+              <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable>
+                <el-option
+                    v-for="dict in ${dictType}"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+          #elseif(($column.javaField == "uniCode") && ($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
+            <el-form-item label="${comment}" prop="${column.javaField}" label-width="200">
+              <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable>
+                <el-option label="请选择字典生成" value=""/>
+              </el-select>
+            </el-form-item>
+          #elseif(($column.javaField == "uniCode") && $column.htmlType == "datetime" && $column.queryType != "BETWEEN")
+            <el-form-item label="${comment}" prop="${column.javaField}" label-width="200">
+              <el-date-picker clearable
+                              v-model="queryParams.${column.javaField}"
+                              type="date"
+                              value-format="YYYY-MM-DD"
+                              placeholder="请选择${comment}">
+              </el-date-picker>
+            </el-form-item>
+          #elseif(($column.javaField == "uniCode") && $column.htmlType == "datetime" && $column.queryType == "BETWEEN")
+            <el-form-item label="${comment}" style="width: 308px" label-width="200">
+              <el-date-picker
+                  v-model="daterange${AttrName}"
+                  value-format="YYYY-MM-DD"
+                  type="daterange"
+                  range-separator="-"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+              ></el-date-picker>
+            </el-form-item>
+          #end
+        #end
+      #end
       <el-form-item>
       <el-form-item>
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
         <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
         <el-button icon="Refresh" @click="resetQuery">重置</el-button>
@@ -69,273 +69,103 @@
     <el-row :gutter="10" class="mb8">
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
       <el-col :span="1.5">
         <el-button
         <el-button
-          type="primary"
-          plain
-          icon="Plus"
-          @click="handleAdd"
-          v-hasPermi="['${moduleName}:${businessName}:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="Edit"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['${moduleName}:${businessName}:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="Delete"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['${moduleName}:${businessName}:remove']"
-        >删除</el-button>
+            type="warning"
+            plain
+            icon="Download"
+            @click="handleExport"
+            :disabled="!${className}List.length"
+            v-hasPermi="['${moduleName}:${className}:export']"
+        >导出
+        </el-button>
       </el-col>
       </el-col>
       <el-col :span="1.5">
       <el-col :span="1.5">
         <el-button
         <el-button
-          type="warning"
-          plain
-          icon="Download"
-          @click="handleExport"
-          v-hasPermi="['${moduleName}:${businessName}:export']"
-        >导出</el-button>
+            type="info"
+            plain
+            icon="Download"
+            @click="handleExport"
+            :disabled="!${className}List.length"
+            v-hasPermi="['${moduleName}:${className}:export']"
+        >导入
+        </el-button>
       </el-col>
       </el-col>
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
 
 
-    <el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-#foreach($column in $columns)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk)
-      <el-table-column label="${comment}" align="center" prop="${javaField}" />
-#elseif($column.list && $column.htmlType == "datetime")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-#elseif($column.list && $column.htmlType == "imageUpload")
-      <el-table-column label="${comment}" align="center" prop="${javaField}" width="100">
-        <template #default="scope">
-          <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/>
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $column.dictType)
-      <el-table-column label="${comment}" align="center" prop="${javaField}">
-        <template #default="scope">
-#if($column.htmlType == "checkbox")
-          <dict-tag :options="${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/>
-#else
-          <dict-tag :options="${column.dictType}" :value="scope.row.${javaField}"/>
-#end
-        </template>
-      </el-table-column>
-#elseif($column.list && "" != $javaField)
-      <el-table-column label="${comment}" align="center" prop="${javaField}" />
-#end
-#end
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']">修改</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
+    </el-row>
 
 
-    <!-- 添加或修改${functionName}对话框 -->
-    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
-      <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
-#foreach($column in $columns)
-#set($field=$column.javaField)
-#if($column.insert && !$column.pk)
-#if(($column.usableColumn) || (!$column.superColumn))
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#set($dictType=$column.dictType)
-#if($column.htmlType == "input")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" placeholder="请输入${comment}" />
-        </el-form-item>
-#elseif($column.htmlType == "imageUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <image-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "fileUpload")
-        <el-form-item label="${comment}" prop="${field}">
-          <file-upload v-model="form.${field}"/>
-        </el-form-item>
-#elseif($column.htmlType == "editor")
-        <el-form-item label="${comment}">
-          <editor v-model="form.${field}" :min-height="192"/>
-        </el-form-item>
-#elseif($column.htmlType == "select" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="请选择${comment}">
-            <el-option
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-              :label="dict.label"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :value="parseInt(dict.value)"
-#else
-              :value="dict.value"
-#end
-            ></el-option>
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "select" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-select v-model="form.${field}" placeholder="请选择${comment}">
-            <el-option label="请选择字典生成" value="" />
-          </el-select>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-              :label="dict.value">
-              {{dict.label}}
-            </el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "checkbox" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-checkbox-group v-model="form.${field}">
-            <el-checkbox>请选择字典生成</el-checkbox>
-          </el-checkbox-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && "" != $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio
-              v-for="dict in ${dictType}"
-              :key="dict.value"
-#if($column.javaType == "Integer" || $column.javaType == "Long")
-              :label="parseInt(dict.value)"
-#else
-              :label="dict.value"
-#end
-            >{{dict.label}}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "radio" && $dictType)
-        <el-form-item label="${comment}" prop="${field}">
-          <el-radio-group v-model="form.${field}">
-            <el-radio label="1">请选择字典生成</el-radio>
-          </el-radio-group>
-        </el-form-item>
-#elseif($column.htmlType == "datetime")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-date-picker clearable
-            v-model="form.${field}"
-            type="date"
-            value-format="YYYY-MM-DD"
-            placeholder="请选择${comment}">
-          </el-date-picker>
-        </el-form-item>
-#elseif($column.htmlType == "textarea")
-        <el-form-item label="${comment}" prop="${field}">
-          <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-#end
-#end
-#end
-#end
-#if($table.sub)
-        <el-divider content-position="center">${subTable.functionName}信息</el-divider>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button type="primary" icon="Plus" @click="handleAdd${subClassName}">添加</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" icon="Delete" @click="handleDelete${subClassName}">删除</el-button>
-          </el-col>
-        </el-row>
-        <el-table :data="${subclassName}List" :row-class-name="row${subClassName}Index" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
-          <el-table-column type="selection" width="50" align="center" />
-          <el-table-column label="序号" align="center" prop="index" width="50"/>
-#foreach($column in $subTable.columns)
-#set($javaField=$column.javaField)
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-#if($column.pk || $javaField == ${subTableFkclassName})
-#elseif($column.list && $column.htmlType == "input")
-          <el-table-column label="$comment" prop="${javaField}" width="150">
-            <template #default="scope">
-              <el-input v-model="scope.row.$javaField" placeholder="请输入$comment" />
-            </template>
-          </el-table-column>
-#elseif($column.list && $column.htmlType == "datetime")
-          <el-table-column label="$comment" prop="${javaField}" width="240">
+    <el-table v-loading="loading" :data="${className}List" height="650" @selection-change="handleSelectionChange">
+      ##      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="统一社会信用代码" align="center" prop="uniCode" width="200"/>
+      #foreach($column in $columns)
+        #set($javaField=$column.javaField)
+        #set($parentheseIndex=$column.columnComment.indexOf("("))
+        #if($parentheseIndex != -1)
+          #set($comment=$column.columnComment.substring(0, $parentheseIndex))
+        #else
+          #set($comment=$column.columnComment)
+        #end
+        #if($column.pk)
+          ##                      <el-table-column label="${comment}" align="center" prop="${javaField}" />
+        #elseif($column.list && $column.htmlType == "datetime")
+          <el-table-column label="${comment}" align="center" prop="${javaField}" width="180">
             <template #default="scope">
             <template #default="scope">
-              <el-date-picker clearable
-                v-model="scope.row.$javaField"
-                type="date"
-                value-format="YYYY-MM-DD"
-                placeholder="请选择$comment">
-              </el-date-picker>
+              <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $column.dictType)
-          <el-table-column label="$comment" prop="${javaField}" width="150">
+        #elseif($column.list && $column.htmlType == "imageUpload")
+          <el-table-column label="${comment}" align="center" prop="${javaField}" width="100">
             <template #default="scope">
             <template #default="scope">
-              <el-select v-model="scope.row.$javaField" placeholder="请选择$comment">
-                <el-option
-                  v-for="dict in $column.dictType"
-                  :key="dict.value"
-                  :label="dict.label"
-                  :value="dict.value"
-                ></el-option>
-              </el-select>
+              <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/>
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-#elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" == $column.dictType)
-          <el-table-column label="$comment" prop="${javaField}" width="150">
+        #elseif($column.list && "" != $column.dictType)
+          <el-table-column label="${comment}" align="center" prop="${javaField}" width="100">
             <template #default="scope">
             <template #default="scope">
-              <el-select v-model="scope.row.$javaField" placeholder="请选择$comment">
-                <el-option label="请选择字典生成" value="" />
-              </el-select>
+              #if($column.htmlType == "checkbox")
+                <dict-tag :options="${column.dictType}"
+                          :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/>
+              #else
+                <dict-tag :options="${column.dictType}" :value="scope.row.${javaField}"/>
+              #end
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-#end
-#end
-        </el-table>
-#end
-      </el-form>
+        #elseif($column.list && "" != $javaField)
+          #if($javaField == "uniCode")
+            ##                  <el-table-column label="${comment}" align="center" prop="${javaField}" width="150"/>
+          #else
+            <el-table-column label="${comment}" align="center" prop="${javaField}" :show-overflow-tooltip='true' width="150"/>
+          #end
+        #end
+      #end
+    </el-table>
+
+    <div style="position: fixed;bottom: 20px;right: 10px;">
+      <pagination
+          v-show="total>0"
+          :total="total"
+          v-model:page="queryParams.pageNum"
+          v-model:limit="queryParams.pageSize"
+          @pagination="getList"
+      />
+    </div>
+
+    <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
+      <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
+                 :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
+                 :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
+        <el-icon class="el-icon--upload">
+          <upload-filled/>
+        </el-icon>
+        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+        <template #tip>
+          <div class="el-upload__tip text-center">
+            <span>仅允许导入xls、xlsx格式文件。</span>
+          </div>
+        </template>
+      </el-upload>
       <template #footer>
       <template #footer>
         <div class="dialog-footer">
         <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">确 定</el-button>
-          <el-button @click="cancel">取 消</el-button>
+          <el-button type="primary" @click="submitFileForm">确 定</el-button>
+          <el-button @click="upload.open = false">取 消</el-button>
         </div>
         </div>
       </template>
       </template>
     </el-dialog>
     </el-dialog>
@@ -343,248 +173,224 @@
 </template>
 </template>
 
 
 <script setup name="${BusinessName}">
 <script setup name="${BusinessName}">
-import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}";
-
-const { proxy } = getCurrentInstance();
-#if(${dicts} != '')
-#set($dictsNoSymbol=$dicts.replace("'", ""))
-const { ${dictsNoSymbol} } = proxy.useDict(${dicts});
-#end
+  import {
+    list${BusinessName},
+    get${BusinessName},
+    del${BusinessName},
+    del${BusinessName}Batch
+  } from "@/api/${moduleName}/${className}";
+  import {reactive, ref, toRaw} from "vue";
+  import {getToken} from "@/utils/auth";
+  import {ElMessage} from "element-plus";
+  import {likeQueryMethod} from "@/utils/likeQueryMethod";
 
 
-const ${businessName}List = ref([]);
-#if($table.sub)
-const ${subclassName}List = ref([]);
-#end
-const open = ref(false);
-const loading = ref(true);
-const showSearch = ref(true);
-const ids = ref([]);
-#if($table.sub)
-const checked${subClassName} = ref([]);
-#end
-const single = ref(true);
-const multiple = ref(true);
-const total = ref(0);
-const title = ref("");
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-const daterange${AttrName} = ref([]);
-#end
-#end
+  const {proxy} = getCurrentInstance();
+    #if(${dicts} != '')
+      #set($dictsNoSymbol=$dicts.replace("'", ""))
+    const { ${dictsNoSymbol} } = proxy.useDict(${dicts});
+    #end
 
 
-const data = reactive({
-  form: {},
-  queryParams: {
-    pageNum: 1,
-    pageSize: 10,
+  const ${className}List = ref([]);
+    #if($table.sub)
+    const ${subclassName}List = ref([]);
+    #end
+  const open = ref(false);
+  const loading = ref(true);
+  const showSearch = ref(true);
+  const ids = ref([]);
+    #if($table.sub)
+    const checked${subClassName} = ref([]);
+    #end
+  const single = ref(true);
+  const multiple = ref(true);
+  const total = ref(0);
+  const title = ref("");
     #foreach ($column in $columns)
     #foreach ($column in $columns)
-#if($column.query)
-    $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-  },
-  rules: {
-    #foreach ($column in $columns)
-#if($column.required)
-#set($parentheseIndex=$column.columnComment.indexOf("("))
-#if($parentheseIndex != -1)
-#set($comment=$column.columnComment.substring(0, $parentheseIndex))
-#else
-#set($comment=$column.columnComment)
-#end
-    $column.javaField: [
-      { required: true, message: "$comment不能为空", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end }
-    ]#if($foreach.count != $columns.size()),#end
-#end
-#end
-  }
-});
+      #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
+        #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+      const daterange${AttrName} = ref([]);
+      #end
+    #end
 
 
-const { queryParams, form, rules } = toRefs(data);
-
-/** 查询${functionName}列表 */
-function getList() {
-  loading.value = true;
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-  queryParams.value.params = {};
-#break
-#end
-#end
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-  if (null != daterange${AttrName} && '' != daterange${AttrName}) {
-    queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
-    queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
+  const upload = reactive({
+    // 是否显示弹出层(用户导入)
+    open: false,
+    // 弹出层标题(用户导入)
+    title: '',
+    // 是否禁用上传
+    isUploading: false,
+    // 设置上传的请求头部
+    headers: {Authorization: getToken()},
+    // 上传的地址
+    url: import.meta.env.VITE_APP_BASE_API + '/${className}/importData'
+  })
+  const handleFileSuccess = (e) => {
+    if (e.code == 200) {
+      ElMessage({
+        type: "success",
+        message: e.msg
+      })
+      getList()
+      proxy.$refs['uploadRef']?.clearFiles()
+    } else {
+      ElMessage({
+        type: "error",
+        message: e.msg
+      })
+      proxy.$refs['uploadRef']?.clearFiles()
+    }
   }
   }
-#end
-#end
-  list${BusinessName}(queryParams.value).then(response => {
-    ${businessName}List.value = response.rows;
-    total.value = response.total;
-    loading.value = false;
-  });
-}
-
-// 取消按钮
-function cancel() {
-  open.value = false;
-  reset();
-}
 
 
-// 表单重置
-function reset() {
-  form.value = {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-    $column.javaField: []#if($foreach.count != $columns.size()),#end
-#else
-    $column.javaField: null#if($foreach.count != $columns.size()),#end
-#end
-#end
-  };
-#if($table.sub)
-  ${subclassName}List.value = [];
-#end
-  proxy.resetForm("${businessName}Ref");
-}
+  function submitFileForm() {
+    proxy.$refs['uploadRef']?.submit();
+    upload.open = false;
+  }
 
 
-/** 搜索按钮操作 */
-function handleQuery() {
-  queryParams.value.pageNum = 1;
-  getList();
-}
+  function handleImport() {
+    upload.open = true
+  }
 
 
-/** 重置按钮操作 */
-function resetQuery() {
-#foreach ($column in $columns)
-#if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
-#set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
-  daterange${AttrName}.value = [];
-#end
-#end
-  proxy.resetForm("queryRef");
-  handleQuery();
-}
+  const data = reactive({
+    form: {},
+    queryParams: {
+      pageNum: 1,
+      pageSize: 20,
+      #foreach ($column in $columns)
+        #if($column.query)
+          #if($column.javaField == 'uniCode')
+              $column.javaField: ''#if($foreach.count != $columns.size()),#end
+          #else
+              $column.javaField: null#if($foreach.count != $columns.size()),#end
+          #end
+        #end
+      #end
+    },
+    rules: {
+      #foreach ($column in $columns)
+        #if($column.required)
+          #set($parentheseIndex=$column.columnComment.indexOf("("))
+          #if($parentheseIndex != -1)
+            #set($comment=$column.columnComment.substring(0, $parentheseIndex))
+          #else
+            #set($comment=$column.columnComment)
+          #end
+            $column.javaField: [
+            {
+              required: true, message: "$comment不能为空", trigger: #if($column.htmlType == "select")"change"
+              #else"blur"#end }
+          ]#if($foreach.count != $columns.size()),#end
+        #end
+      #end
+    }
+  });
 
 
-// 多选框选中数据
-function handleSelectionChange(selection) {
-  ids.value = selection.map(item => item.${pkColumn.javaField});
-  single.value = selection.length != 1;
-  multiple.value = !selection.length;
-}
+  const {queryParams, form, rules} = toRefs(data);
 
 
-/** 新增按钮操作 */
-function handleAdd() {
-  reset();
-  open.value = true;
-  title.value = "添加${functionName}";
-}
+  /** 查询${functionName}列表 */
+  function getList() {
+    loading.value = true;
+    ##    #foreach ($column in $columns)
+    ##      #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
+    ##        queryParams.value.params = {};
+    ##        #break
+    ##      #end
+    ##    #end
+    ##    #foreach ($column in $columns)
+    ##      #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
+    ##        #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+    ##        if (null != daterange${AttrName} && '' != daterange${AttrName}) {
+    ##          queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
+    ##          queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
+    ##        }
+    ##      #end
+    ##    #end
+    let toServerObj = likeQueryMethod('uni_code', queryParams.value.uniCode, queryParams.value.pageNum, queryParams.value.pageSize);
+    list${BusinessName}(toServerObj).then(response => {
+        ${className}List.value = response.records;
+      total.value = response.total;
+      loading.value = false;
+    });
+  }
 
 
-/** 修改按钮操作 */
-function handleUpdate(row) {
-  reset();
-  const _${pkColumn.javaField} = row.${pkColumn.javaField} || ids.value
-  get${BusinessName}(_${pkColumn.javaField}).then(response => {
-    form.value = response.data;
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-    form.value.$column.javaField = form.value.${column.javaField}.split(",");
-#end
-#end
-#if($table.sub)
-    ${subclassName}List.value = response.data.${subclassName}List;
-#end
-    open.value = true;
-    title.value = "修改${functionName}";
-  });
-}
 
 
-/** 提交按钮 */
-function submitForm() {
-  proxy.#[[$]]#refs["${businessName}Ref"].validate(valid => {
-    if (valid) {
-#foreach ($column in $columns)
-#if($column.htmlType == "checkbox")
-      form.value.$column.javaField = form.value.${column.javaField}.join(",");
-#end
-#end
-#if($table.sub)
-      form.value.${subclassName}List = ${subclassName}List.value;
-#end
-      if (form.value.${pkColumn.javaField} != null) {
-        update${BusinessName}(form.value).then(response => {
-          proxy.#[[$modal]]#.msgSuccess("修改成功");
-          open.value = false;
-          getList();
-        });
-      } else {
-        add${BusinessName}(form.value).then(response => {
-          proxy.#[[$modal]]#.msgSuccess("新增成功");
-          open.value = false;
-          getList();
-        });
-      }
-    }
-  });
-}
+  // 表单重置
+  function reset() {
+    form.value = {
+      #foreach ($column in $columns)
+        #if($column.htmlType == "radio")
+          $column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0
+          #else"0"#end#if($foreach.count != $columns.size()),#end
+        #elseif($column.htmlType == "checkbox")
+            $column.javaField: []#if($foreach.count != $columns.size()),#end
+        #else
+          #if($column.javaField == 'uniCode')
+              $column.javaField: ''#if($foreach.count != $columns.size()),#end
+          #else
+              $column.javaField: null#if($foreach.count != $columns.size()),#end
+          #end
+        #end
+      #end
+    };
+    #if($table.sub)
+        ${subclassName}List.value = [];
+    #end
+    proxy.resetForm("${className}Ref");
+  }
 
 
-/** 删除按钮操作 */
-function handleDelete(row) {
-  const _${pkColumn.javaField}s = row.${pkColumn.javaField} || ids.value;
-  proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + _${pkColumn.javaField}s + '"的数据项?').then(function() {
-    return del${BusinessName}(_${pkColumn.javaField}s);
-  }).then(() => {
+  /** 搜索按钮操作 */
+  function handleQuery() {
+    queryParams.value.pageNum = 1;
     getList();
     getList();
-    proxy.#[[$modal]]#.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
-#if($table.sub)
-/** ${subTable.functionName}序号 */
-function row${subClassName}Index({ row, rowIndex }) {
-  row.index = rowIndex + 1;
-}
+  }
 
 
-/** ${subTable.functionName}添加按钮操作 */
-function handleAdd${subClassName}() {
-  let obj = {};
-#foreach($column in $subTable.columns)
-#if($column.pk || $column.javaField == ${subTableFkclassName})
-#elseif($column.list && "" != $javaField)
-  obj.$column.javaField = "";
-#end
-#end
-  ${subclassName}List.value.push(obj);
-}
+  /** 重置按钮操作 */
+  function resetQuery() {
+    #foreach ($column in $columns)
+      #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
+        #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
+        daterange${AttrName}.value = [];
+      #end
+    #end
+    proxy.resetForm("queryRef");
+    handleQuery();
+  }
 
 
-/** ${subTable.functionName}删除按钮操作 */
-function handleDelete${subClassName}() {
-  if (checked${subClassName}.value.length == 0) {
-    proxy.#[[$modal]]#.msgError("请先选择要删除的${subTable.functionName}数据");
-  } else {
-    const ${subclassName}s = ${subclassName}List.value;
-    const checked${subClassName}s = checked${subClassName}.value;
-    ${subclassName}List.value = ${subclassName}s.filter(function(item) {
-      return checked${subClassName}s.indexOf(item.index) == -1
-    });
+  // 多选框选中数据
+  function handleSelectionChange(selection) {
+    ids.value = selection.map(item => item.${pkColumn.javaField});
+    single.value = selection.length != 1;
+    multiple.value = !selection.length;
   }
   }
-}
 
 
-/** 复选框选中数据 */
-function handle${subClassName}SelectionChange(selection) {
-  checked${subClassName}.value = selection.map(item => item.index)
-}
 
 
-#end
-/** 导出按钮操作 */
-function handleExport() {
-  proxy.download('${moduleName}/${businessName}/export', {
-    ...queryParams.value
-  }, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`)
-}
+  /** 删除按钮操作 */
+  async function handleDelete(row) {
+    const res = await del${BusinessName}();
+    if(res.code == 200){
+      ElMessage({
+        type:'success',
+        message:'删除成功'
+      })
+      getList();
+    }
+  }
+  /** 批量删除*/
+  const batchDelete = (row)=>{
+    const idsToS = row.xhCodeId || ids.value;
+    (proxy.$modal).confirm('是否确认删除这' + idsToS.length+'条的数据项?').then(function() {
+      return del${BusinessName}Batch(toRaw(idsToS));
+    }).then(() => {
+      getList();
+      proxy.$modal.msgSuccess("删除成功");
+    }).catch(() => {});
+  }
+
+  /** 导出按钮操作 */
+  function handleExport() {
+    proxy.download('${moduleName}/${className}/export', {
+      ...queryParams.value
+    }, `${functionName}_#[[${new Date().getTime()}]]#.xlsx`)
+  }
 
 
-getList();
+  getList();
 </script>
 </script>

+ 51 - 3
background-service/zksy-generator/src/main/resources/vm/vue/v3/index.vue.vm

@@ -78,10 +78,56 @@
         >导出
         >导出
         </el-button>
         </el-button>
       </el-col>
       </el-col>
+      <el-col :span="1.5">
+        <el-button
+            type="info"
+            plain
+            icon="Upload"
+            @click="handleImport"
+            v-hasPermi="['${moduleName}:${className}:import']"
+        >导入
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+            type="danger"
+            plain
+            icon="Delete"
+            @click="batchDelete"
+            v-hasPermi="['${moduleName}:${className}:delete']"
+            :disabled="ids.length === 0"
+        >批量删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-popconfirm
+            title="你确定清除所有数据?"
+            confirm-button-text="是的"
+            cancel-button-text="不是"
+            :icon="InfoFilled"
+            icon-color="#626AEF"
+            @confirm="handleDelete"
+        >
+          <template #reference>
+            <el-button
+                type="danger"
+                plain
+                icon="Delete"
+                v-hasPermi="['${moduleName}:${businessName}:delete']"
+            >清除全表
+            </el-button>
+          </template>
+        </el-popconfirm>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="success" plain icon="Download" @click="downloadTemplate">
+          下载导入模板
+        </el-button>
+      </el-col>
     </el-row>
     </el-row>
 
 
     <el-table v-loading="loading" :data="${className}List" height="650" @selection-change="handleSelectionChange">
     <el-table v-loading="loading" :data="${className}List" height="650" @selection-change="handleSelectionChange">
-##      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column type="selection" width="55" align="center"/>
         <el-table-column label="统一社会信用代码" align="center" prop="uniCode" width="200"/>
         <el-table-column label="统一社会信用代码" align="center" prop="uniCode" width="200"/>
         #foreach($column in $columns)
         #foreach($column in $columns)
             #set($javaField=$column.javaField)
             #set($javaField=$column.javaField)
@@ -210,7 +256,7 @@
     // 设置上传的请求头部
     // 设置上传的请求头部
     headers: {Authorization: getToken()},
     headers: {Authorization: getToken()},
     // 上传的地址
     // 上传的地址
-    url: import.meta.env.VITE_APP_BASE_API + '/${className}/importData'
+    url: import.meta.env.VITE_APP_BASE_API + '/${moduleName}/${className}/importData'
   })
   })
   const handleFileSuccess = (e) => {
   const handleFileSuccess = (e) => {
     if (e.code == 200) {
     if (e.code == 200) {
@@ -379,6 +425,8 @@
       ...queryParams.value
       ...queryParams.value
     }, `${functionName}_#[[${new Date().getTime()}]]#.xlsx`)
     }, `${functionName}_#[[${new Date().getTime()}]]#.xlsx`)
   }
   }
-
+  const downloadTemplate = ()=>{
+    proxy.download('${moduleName}/${className}/getUploadTemplate',{}, `${functionName}模板.xlsx`)
+  }
   getList();
   getList();
 </script>
 </script>

+ 6 - 0
background-service/zksy-system/pom.xml

@@ -39,6 +39,12 @@
             <artifactId>junit</artifactId>
             <artifactId>junit</artifactId>
             <scope>test</scope>
             <scope>test</scope>
         </dependency>
         </dependency>
+        <dependency>
+            <groupId>com.itextpdf</groupId>
+            <artifactId>itextpdf</artifactId>
+            <version>5.5.13.1</version>
+            <scope>compile</scope>
+        </dependency>
 
 
     </dependencies>
     </dependencies>
 
 

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrCompanyInfoService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrCompanyInfo;
 import com.zksy.basicData.domain.XcrCompanyInfo;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 企业基本信息(天眼查)Service接口
  * 企业基本信息(天眼查)Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 public interface IXcrCompanyInfoService extends IService<XcrCompanyInfo> {
 public interface IXcrCompanyInfoService extends IService<XcrCompanyInfo> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrFoodInspectionDetailsService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrFoodInspectionDetails;
 import com.zksy.basicData.domain.XcrFoodInspectionDetails;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 流通抽样检验工作汇总Service接口
  * 流通抽样检验工作汇总Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 public interface IXcrFoodInspectionDetailsService extends IService<XcrFoodInspectionDetails> {
 public interface IXcrFoodInspectionDetailsService extends IService<XcrFoodInspectionDetails> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrFoodInspectionService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrFoodInspection;
 import com.zksy.basicData.domain.XcrFoodInspection;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 食品及食用农产品监督抽检情况汇总Service接口
  * 食品及食用农产品监督抽检情况汇总Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 public interface IXcrFoodInspectionService extends IService<XcrFoodInspection> {
 public interface IXcrFoodInspectionService extends IService<XcrFoodInspection> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrFoodSamplingInspectionService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrFoodSamplingInspection;
 import com.zksy.basicData.domain.XcrFoodSamplingInspection;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 流通、餐饮抽样检验工作汇总Service接口
  * 流通、餐饮抽样检验工作汇总Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 public interface IXcrFoodSamplingInspectionService extends IService<XcrFoodSamplingInspection> {
 public interface IXcrFoodSamplingInspectionService extends IService<XcrFoodSamplingInspection> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrPatentService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrPatent;
 import com.zksy.basicData.domain.XcrPatent;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 专利Service接口
  * 专利Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 public interface IXcrPatentService extends IService<XcrPatent> {
 public interface IXcrPatentService extends IService<XcrPatent> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrPublicCreditEvaluationService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrPublicCreditEvaluation;
 import com.zksy.basicData.domain.XcrPublicCreditEvaluation;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 公共信用综合评价结果Service接口
  * 公共信用综合评价结果Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 public interface IXcrPublicCreditEvaluationService extends IService<XcrPublicCreditEvaluation> {
 public interface IXcrPublicCreditEvaluationService extends IService<XcrPublicCreditEvaluation> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrQualificationCertificateService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrQualificationCertificate;
 import com.zksy.basicData.domain.XcrQualificationCertificate;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 资质证书信息Service接口
  * 资质证书信息Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 public interface IXcrQualificationCertificateService extends IService<XcrQualificationCertificate> {
 public interface IXcrQualificationCertificateService extends IService<XcrQualificationCertificate> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrSoftWorksService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrSoftWorks;
 import com.zksy.basicData.domain.XcrSoftWorks;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 软件著作权Service接口
  * 软件著作权Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-26
+ * @date 2024-12-12
  */
  */
 public interface IXcrSoftWorksService extends IService<XcrSoftWorks> {
 public interface IXcrSoftWorksService extends IService<XcrSoftWorks> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/IXcrTrademarkService.java

@@ -2,13 +2,14 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zksy.basicData.domain.XcrTrademark;
 import com.zksy.basicData.domain.XcrTrademark;
+import com.zksy.common.core.domain.AjaxResult;
 
 
 /**
 /**
  * 商标Service接口
  * 商标Service接口
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 public interface IXcrTrademarkService extends IService<XcrTrademark> {
 public interface IXcrTrademarkService extends IService<XcrTrademark> {
-
+    AjaxResult deleteAll();
 }
 }

+ 3 - 4
background-service/zksy-system/src/main/java/com/zksy/basicData/service/InformationService.java

@@ -2,8 +2,6 @@ package com.zksy.basicData.service;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zksy.basicData.domain.XcrAdministrativeLicensing;
-import com.zksy.basicData.domain.XcrBranchOfficesInfo;
 import com.zksy.basicData.mapper.*;
 import com.zksy.basicData.mapper.*;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -13,8 +11,7 @@ import org.springframework.stereotype.Service;
 
 
 import javax.annotation.PostConstruct;
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
+import javax.servlet.http.HttpServletResponse;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -124,4 +121,6 @@ public class InformationService {
         }
         }
         return obj.getClass().getSimpleName();
         return obj.getClass().getSimpleName();
     }
     }
+
+
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrCompanyInfoServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrCompanyInfo;
 import com.zksy.basicData.domain.XcrCompanyInfo;
 import com.zksy.basicData.mapper.XcrCompanyInfoMapper;
 import com.zksy.basicData.mapper.XcrCompanyInfoMapper;
 import com.zksy.basicData.service.IXcrCompanyInfoService;
 import com.zksy.basicData.service.IXcrCompanyInfoService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 企业基本信息(天眼查)Service业务层处理
  * 企业基本信息(天眼查)Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrCompanyInfoServiceImpl extends ServiceImpl<XcrCompanyInfoMapper, XcrCompanyInfo> implements IXcrCompanyInfoService {
 public class XcrCompanyInfoServiceImpl extends ServiceImpl<XcrCompanyInfoMapper, XcrCompanyInfo> implements IXcrCompanyInfoService {
 
 
+    @Resource
+    private XcrCompanyInfoMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrCompanyInfo> utils = new DeleteTableUtils<>();
+        utils.del(XcrCompanyInfo::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrFoodInspectionDetailsServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrFoodInspectionDetails;
 import com.zksy.basicData.domain.XcrFoodInspectionDetails;
 import com.zksy.basicData.mapper.XcrFoodInspectionDetailsMapper;
 import com.zksy.basicData.mapper.XcrFoodInspectionDetailsMapper;
 import com.zksy.basicData.service.IXcrFoodInspectionDetailsService;
 import com.zksy.basicData.service.IXcrFoodInspectionDetailsService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 流通抽样检验工作汇总Service业务层处理
  * 流通抽样检验工作汇总Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrFoodInspectionDetailsServiceImpl extends ServiceImpl<XcrFoodInspectionDetailsMapper, XcrFoodInspectionDetails> implements IXcrFoodInspectionDetailsService {
 public class XcrFoodInspectionDetailsServiceImpl extends ServiceImpl<XcrFoodInspectionDetailsMapper, XcrFoodInspectionDetails> implements IXcrFoodInspectionDetailsService {
 
 
+    @Resource
+    private XcrFoodInspectionDetailsMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrFoodInspectionDetails> utils = new DeleteTableUtils<>();
+        utils.del(XcrFoodInspectionDetails::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrFoodInspectionServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrFoodInspection;
 import com.zksy.basicData.domain.XcrFoodInspection;
 import com.zksy.basicData.mapper.XcrFoodInspectionMapper;
 import com.zksy.basicData.mapper.XcrFoodInspectionMapper;
 import com.zksy.basicData.service.IXcrFoodInspectionService;
 import com.zksy.basicData.service.IXcrFoodInspectionService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 食品及食用农产品监督抽检情况汇总Service业务层处理
  * 食品及食用农产品监督抽检情况汇总Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrFoodInspectionServiceImpl extends ServiceImpl<XcrFoodInspectionMapper, XcrFoodInspection> implements IXcrFoodInspectionService {
 public class XcrFoodInspectionServiceImpl extends ServiceImpl<XcrFoodInspectionMapper, XcrFoodInspection> implements IXcrFoodInspectionService {
 
 
+    @Resource
+    private XcrFoodInspectionMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrFoodInspection> utils = new DeleteTableUtils<>();
+        utils.del(XcrFoodInspection::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrFoodSamplingInspectionServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrFoodSamplingInspection;
 import com.zksy.basicData.domain.XcrFoodSamplingInspection;
 import com.zksy.basicData.mapper.XcrFoodSamplingInspectionMapper;
 import com.zksy.basicData.mapper.XcrFoodSamplingInspectionMapper;
 import com.zksy.basicData.service.IXcrFoodSamplingInspectionService;
 import com.zksy.basicData.service.IXcrFoodSamplingInspectionService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 流通、餐饮抽样检验工作汇总Service业务层处理
  * 流通、餐饮抽样检验工作汇总Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrFoodSamplingInspectionServiceImpl extends ServiceImpl<XcrFoodSamplingInspectionMapper, XcrFoodSamplingInspection> implements IXcrFoodSamplingInspectionService {
 public class XcrFoodSamplingInspectionServiceImpl extends ServiceImpl<XcrFoodSamplingInspectionMapper, XcrFoodSamplingInspection> implements IXcrFoodSamplingInspectionService {
 
 
+    @Resource
+    private XcrFoodSamplingInspectionMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrFoodSamplingInspection> utils = new DeleteTableUtils<>();
+        utils.del(XcrFoodSamplingInspection::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrPatentServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrPatent;
 import com.zksy.basicData.domain.XcrPatent;
 import com.zksy.basicData.mapper.XcrPatentMapper;
 import com.zksy.basicData.mapper.XcrPatentMapper;
 import com.zksy.basicData.service.IXcrPatentService;
 import com.zksy.basicData.service.IXcrPatentService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 专利Service业务层处理
  * 专利Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrPatentServiceImpl extends ServiceImpl<XcrPatentMapper, XcrPatent> implements IXcrPatentService {
 public class XcrPatentServiceImpl extends ServiceImpl<XcrPatentMapper, XcrPatent> implements IXcrPatentService {
 
 
+    @Resource
+    private XcrPatentMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrPatent> utils = new DeleteTableUtils<>();
+        utils.del(XcrPatent::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrPublicCreditEvaluationServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrPublicCreditEvaluation;
 import com.zksy.basicData.domain.XcrPublicCreditEvaluation;
 import com.zksy.basicData.mapper.XcrPublicCreditEvaluationMapper;
 import com.zksy.basicData.mapper.XcrPublicCreditEvaluationMapper;
 import com.zksy.basicData.service.IXcrPublicCreditEvaluationService;
 import com.zksy.basicData.service.IXcrPublicCreditEvaluationService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 公共信用综合评价结果Service业务层处理
  * 公共信用综合评价结果Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-12-10
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrPublicCreditEvaluationServiceImpl extends ServiceImpl<XcrPublicCreditEvaluationMapper, XcrPublicCreditEvaluation> implements IXcrPublicCreditEvaluationService {
 public class XcrPublicCreditEvaluationServiceImpl extends ServiceImpl<XcrPublicCreditEvaluationMapper, XcrPublicCreditEvaluation> implements IXcrPublicCreditEvaluationService {
 
 
+    @Resource
+    private XcrPublicCreditEvaluationMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrPublicCreditEvaluation> utils = new DeleteTableUtils<>();
+        utils.del(XcrPublicCreditEvaluation::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrQualificationCertificateServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrQualificationCertificate;
 import com.zksy.basicData.domain.XcrQualificationCertificate;
 import com.zksy.basicData.mapper.XcrQualificationCertificateMapper;
 import com.zksy.basicData.mapper.XcrQualificationCertificateMapper;
 import com.zksy.basicData.service.IXcrQualificationCertificateService;
 import com.zksy.basicData.service.IXcrQualificationCertificateService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 资质证书信息Service业务层处理
  * 资质证书信息Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrQualificationCertificateServiceImpl extends ServiceImpl<XcrQualificationCertificateMapper, XcrQualificationCertificate> implements IXcrQualificationCertificateService {
 public class XcrQualificationCertificateServiceImpl extends ServiceImpl<XcrQualificationCertificateMapper, XcrQualificationCertificate> implements IXcrQualificationCertificateService {
 
 
+    @Resource
+    private XcrQualificationCertificateMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrQualificationCertificate> utils = new DeleteTableUtils<>();
+        utils.del(XcrQualificationCertificate::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrSoftWorksServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrSoftWorks;
 import com.zksy.basicData.domain.XcrSoftWorks;
 import com.zksy.basicData.mapper.XcrSoftWorksMapper;
 import com.zksy.basicData.mapper.XcrSoftWorksMapper;
 import com.zksy.basicData.service.IXcrSoftWorksService;
 import com.zksy.basicData.service.IXcrSoftWorksService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 软件著作权Service业务层处理
  * 软件著作权Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-26
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrSoftWorksServiceImpl extends ServiceImpl<XcrSoftWorksMapper, XcrSoftWorks> implements IXcrSoftWorksService {
 public class XcrSoftWorksServiceImpl extends ServiceImpl<XcrSoftWorksMapper, XcrSoftWorks> implements IXcrSoftWorksService {
 
 
+    @Resource
+    private XcrSoftWorksMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrSoftWorks> utils = new DeleteTableUtils<>();
+        utils.del(XcrSoftWorks::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 17 - 2
background-service/zksy-system/src/main/java/com/zksy/basicData/service/impl/XcrTrademarkServiceImpl.java

@@ -1,18 +1,33 @@
 package com.zksy.basicData.service.impl;
 package com.zksy.basicData.service.impl;
+
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zksy.basicData.domain.XcrTrademark;
 import com.zksy.basicData.domain.XcrTrademark;
 import com.zksy.basicData.mapper.XcrTrademarkMapper;
 import com.zksy.basicData.mapper.XcrTrademarkMapper;
 import com.zksy.basicData.service.IXcrTrademarkService;
 import com.zksy.basicData.service.IXcrTrademarkService;
-
+import com.zksy.common.core.domain.AjaxResult;
+import com.zksy.common.utils.DeleteTableUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
 
 
 /**
 /**
  * 商标Service业务层处理
  * 商标Service业务层处理
  *
  *
  * @author nahida
  * @author nahida
- * @date 2024-11-27
+ * @date 2024-12-12
  */
  */
 @Service
 @Service
 public class XcrTrademarkServiceImpl extends ServiceImpl<XcrTrademarkMapper, XcrTrademark> implements IXcrTrademarkService {
 public class XcrTrademarkServiceImpl extends ServiceImpl<XcrTrademarkMapper, XcrTrademark> implements IXcrTrademarkService {
 
 
+    @Resource
+    private XcrTrademarkMapper mapper;
+
+    @Override
+    @Transactional
+    public AjaxResult deleteAll() {
+        DeleteTableUtils<XcrTrademark> utils = new DeleteTableUtils<>();
+        utils.del(XcrTrademark::getXhCodeId,mapper);
+        return AjaxResult.success("全部删除成功");
+    }
 }
 }

+ 45 - 0
background-service/zksy-system/src/main/java/com/zksy/report/domain/CreditReportVo.java

@@ -13,6 +13,11 @@ public class CreditReportVo {
     private List<A> a;
     private List<A> a;
     private B b;
     private B b;
     private C c;
     private C c;
+    private List<D> d;
+    private List<E> e;
+    private List<F> f;
+    private List<G> g;
+    private List<H> h;
 
 
     @Data
     @Data
     @AllArgsConstructor
     @AllArgsConstructor
@@ -49,4 +54,44 @@ public class CreditReportVo {
         private String registrationAuthority;
         private String registrationAuthority;
         private String businessScope;
         private String businessScope;
     }
     }
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class D{
+        private String shareholderName;
+        private String ownershipInterest;
+        private String subscribedCapital;
+        private String subscribedCapitalDate;
+    }
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class E{
+        private String changeProject;
+        private String beforeChangeContent;
+        private String afterChangeContent;
+        private String changeDate;
+    }
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class F{
+        private String branchName;
+        private String head;
+        private String regStatus;
+    }
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class G{
+        private String investedEnterprise;
+        private String investedUniCode;
+    }
+    @Data
+    @AllArgsConstructor
+    @NoArgsConstructor
+    public static class H{
+        private String investedEnterprise;
+        private String investedUniCode;
+    }
 }
 }

+ 4 - 0
background-service/zksy-system/src/main/java/com/zksy/report/service/CreditReportService.java

@@ -3,7 +3,11 @@ package com.zksy.report.service;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import javax.servlet.http.HttpServletResponse;
+
 @Service
 @Service
 public interface CreditReportService {
 public interface CreditReportService {
     AjaxResult queryByUniCode(String uniCode);
     AjaxResult queryByUniCode(String uniCode);
+
+    void downloadReport(String unicode, HttpServletResponse response);
 }
 }

+ 219 - 18
background-service/zksy-system/src/main/java/com/zksy/report/service/Impl/CreditReportServiceImpl.java

@@ -1,55 +1,143 @@
 package com.zksy.report.service.Impl;
 package com.zksy.report.service.Impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zksy.basicData.domain.XcrAnnualReportBaseInfo;
-import com.zksy.basicData.domain.XcrEBaseinfo;
-import com.zksy.basicData.domain.XcrEnterpriseAnnualReportWebsite;
-import com.zksy.basicData.mapper.XcrAnnualReportBaseInfoMapper;
-import com.zksy.basicData.mapper.XcrEBaseinfoMapper;
-import com.zksy.basicData.mapper.XcrEnterpriseAnnualReportWebsiteMapper;
+import com.github.xiaoymin.knife4j.core.util.StrUtil;
+import com.zksy.basicData.domain.*;
+import com.zksy.basicData.mapper.*;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.report.domain.CreditReportVo;
 import com.zksy.report.domain.CreditReportVo;
 import com.zksy.report.service.CreditReportService;
 import com.zksy.report.service.CreditReportService;
+import lombok.SneakyThrows;
+import org.apache.poi.xwpf.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Optional;
 import java.util.Optional;
+import java.util.function.Consumer;
 
 
 @Service
 @Service
 public class CreditReportServiceImpl implements CreditReportService {
 public class CreditReportServiceImpl implements CreditReportService {
-    
-    private final String DEFAULT_VALUE = "暂无";
+
+    private final String DEFAULT_VALUE = "-";
     private String uniCode;
     private String uniCode;
+
     @Override
     @Override
     public AjaxResult queryByUniCode(String uniCode) {
     public AjaxResult queryByUniCode(String uniCode) {
         this.uniCode = uniCode;
         this.uniCode = uniCode;
         CreditReportVo creditReportVo = new CreditReportVo();
         CreditReportVo creditReportVo = new CreditReportVo();
-        processCreditReportVoA(creditReportVo);
-        processCreditReportVoB(creditReportVo);
-        processCreditReportVoC(creditReportVo);
+        List<Consumer<CreditReportVo>> list = new ArrayList<>();
+        list.add(this::processCreditReportVoA);
+        list.add(this::processCreditReportVoB);
+        list.add(this::processCreditReportVoC);
+        list.add(this::processCreditReportVoD);
+        list.add(this::processCreditReportVoE);
+        list.add(this::processCreditReportVoF);
+        list.add(this::processCreditReportVoG);
+        list.add(this::processCreditReportVoH);
+        list.parallelStream().forEach(q -> {
+            q.accept(creditReportVo);
+        });
         return AjaxResult.success(creditReportVo);
         return AjaxResult.success(creditReportVo);
     }
     }
+
+    @Override
+    @SneakyThrows
+    public void downloadReport(String unicode, HttpServletResponse response) {
+        try (XWPFDocument document = new XWPFDocument()) {
+            // 添加标题段落
+            XWPFParagraph titleParagraph = document.createParagraph();
+            titleParagraph.setAlignment(ParagraphAlignment.CENTER);
+            XWPFRun titleRun = titleParagraph.createRun();
+            titleRun.setFontSize(24);
+            titleRun.setColor("000000");
+            titleRun.setText("性与暴力企业综合信用报告");
+
+            // 添加公司名称段落
+            XWPFParagraph companyParagraph = document.createParagraph();
+            companyParagraph.setAlignment(ParagraphAlignment.CENTER);
+            XWPFRun companyRun = companyParagraph.createRun();
+            companyRun.setFontSize(18);
+            companyRun.setColor("000000");
+            companyRun.setText("湖南性与暴力有限公司");
+
+            // 添加信用等级和评分情况段落
+            XWPFParagraph creditParagraph = document.createParagraph();
+            creditParagraph.setAlignment(ParagraphAlignment.CENTER);
+            XWPFRun creditRun = creditParagraph.createRun();
+            creditRun.setFontSize(16);
+            creditRun.setColor("000000");
+            creditRun.setText("企业信用等级:ZZZ级\n信用评分情况:0分");
+
+            ByteArrayOutputStream out = new ByteArrayOutputStream();
+            document.write(out);
+            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
+            response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=credit_report.docx");
+            response.getOutputStream().write(out.toByteArray());
+            response.getOutputStream().flush();
+        } catch (IOException e) {
+            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "下载失败");
+        }
+    }
+
+
+
+
+
+
     @Autowired
     @Autowired
     private XcrEBaseinfoMapper xcrEBaseinfoMapper;
     private XcrEBaseinfoMapper xcrEBaseinfoMapper;
     @Autowired
     @Autowired
+    private XcrMajorMembersMapper xcrMajorMembersMapper;
+    @Autowired
     private XcrAnnualReportBaseInfoMapper xcrAnnualReportBaseInfoMapper;
     private XcrAnnualReportBaseInfoMapper xcrAnnualReportBaseInfoMapper;
     @Autowired
     @Autowired
     private XcrEnterpriseAnnualReportWebsiteMapper xcrEnterpriseAnnualReportWebsiteMapper;
     private XcrEnterpriseAnnualReportWebsiteMapper xcrEnterpriseAnnualReportWebsiteMapper;
+    @Autowired
+    private XcrEnterpriseAnnualReportShareholderMapper xcrEnterpriseAnnualReportShareholderMapper;
+    @Autowired
+    private XcrChangeFilingMapper xcrChangeFilingMapper;
+    @Autowired
+    private XcrBranchOfficesInfoMapper xcrBranchOfficesInfoMapper;
+    @Autowired
+    private XcrAnnualReportExternalInvestmentMapper xcrAnnualReportExternalInvestmentMapper;
+    @Autowired
+    private XcrAdministrativeLicensingMapper xcrAdministrativeLicensingMapper;
+
     private void processCreditReportVoA(CreditReportVo vo) {
     private void processCreditReportVoA(CreditReportVo vo) {
         LambdaQueryWrapper<XcrEBaseinfo> wrapper = new LambdaQueryWrapper<>();
         LambdaQueryWrapper<XcrEBaseinfo> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(XcrEBaseinfo::getUniCode, uniCode);
         wrapper.eq(XcrEBaseinfo::getUniCode, uniCode);
         XcrEBaseinfo one = xcrEBaseinfoMapper.selectOne(wrapper);
         XcrEBaseinfo one = xcrEBaseinfoMapper.selectOne(wrapper);
         CreditReportVo.A a1 = new CreditReportVo.A("法定代表人", DEFAULT_VALUE, DEFAULT_VALUE);
         CreditReportVo.A a1 = new CreditReportVo.A("法定代表人", DEFAULT_VALUE, DEFAULT_VALUE);
-        CreditReportVo.A a2 = new CreditReportVo.A("董事长", DEFAULT_VALUE, DEFAULT_VALUE);
-        CreditReportVo.A a3 = new CreditReportVo.A("总经理", DEFAULT_VALUE, DEFAULT_VALUE);
-        CreditReportVo.A a4 = new CreditReportVo.A("财务负责人", DEFAULT_VALUE, DEFAULT_VALUE);
-        CreditReportVo.A a5 = new CreditReportVo.A("信用专干", DEFAULT_VALUE, DEFAULT_VALUE);
         a1 = Optional.ofNullable(one)
         a1 = Optional.ofNullable(one)
                 .map(q -> new CreditReportVo.A("法定代表人", Optional.ofNullable(q.getNAME()).orElse(DEFAULT_VALUE), DEFAULT_VALUE))
                 .map(q -> new CreditReportVo.A("法定代表人", Optional.ofNullable(q.getNAME()).orElse(DEFAULT_VALUE), DEFAULT_VALUE))
                 .orElse(a1);
                 .orElse(a1);
-        vo.setA(List.of(a1, a2, a3, a4, a5));
+        LambdaQueryWrapper<XcrMajorMembers> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(XcrMajorMembers::getUniCode, uniCode);
+        List<XcrMajorMembers> list = xcrMajorMembersMapper.selectList(queryWrapper);
+        ArrayList<CreditReportVo.A> resList2 = new ArrayList<>();
+        list.forEach(w -> {
+            Optional.ofNullable(w.getPositionCn()).filter(StrUtil::isNotBlank).ifPresent(position -> {
+                CreditReportVo.A a = new CreditReportVo.A();
+                //设置职位
+                a.setPosition(position);
+                //设置姓名
+                a.setName(Optional.ofNullable(w.getNAME()).filter(StrUtil::isNotBlank).orElse(DEFAULT_VALUE));
+                //设置电话号码
+                a.setPhone(Optional.ofNullable(w.getTEL()).filter(StrUtil::isNotBlank).orElse(DEFAULT_VALUE));
+                resList2.add(a);
+            });
+        });
+        resList2.add(0, a1);
+        vo.setA(resList2);
     }
     }
 
 
     private void processCreditReportVoB(CreditReportVo vo) {
     private void processCreditReportVoB(CreditReportVo vo) {
@@ -115,7 +203,7 @@ public class CreditReportServiceImpl implements CreditReportService {
         // 设置成立日期
         // 设置成立日期
         c.setEstablishedTime(Optional.ofNullable(one)
         c.setEstablishedTime(Optional.ofNullable(one)
                 .map(q -> Optional.ofNullable(q.getESTDATE())
                 .map(q -> Optional.ofNullable(q.getESTDATE())
-                        .map(w->{
+                        .map(w -> {
                             SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
                             SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
                             return f.format(w);
                             return f.format(w);
                         })
                         })
@@ -124,7 +212,7 @@ public class CreditReportServiceImpl implements CreditReportService {
         // 设置营业期限
         // 设置营业期限
         c.setBusinessTerm(Optional.ofNullable(one)
         c.setBusinessTerm(Optional.ofNullable(one)
                 .map(q -> Optional.ofNullable(q.getOPTO())
                 .map(q -> Optional.ofNullable(q.getOPTO())
-                        .map(w->{
+                        .map(w -> {
                             SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
                             SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
                             return f.format(w);
                             return f.format(w);
                         })
                         })
@@ -152,4 +240,117 @@ public class CreditReportServiceImpl implements CreditReportService {
                 .orElse(DEFAULT_VALUE));
                 .orElse(DEFAULT_VALUE));
         creditReportVo.setC(c);
         creditReportVo.setC(c);
     }
     }
+
+    private void processCreditReportVoD(CreditReportVo vo) {
+        ArrayList<CreditReportVo.D> resList = new ArrayList<>();
+        LambdaQueryWrapper<XcrEnterpriseAnnualReportShareholder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(XcrEnterpriseAnnualReportShareholder::getUniCode, uniCode);
+        List<XcrEnterpriseAnnualReportShareholder> list = xcrEnterpriseAnnualReportShareholderMapper.selectList(wrapper);
+        list.forEach(one -> {
+            CreditReportVo.D d = new CreditReportVo.D();
+            //设置股东名称
+            d.setShareholderName(Optional.ofNullable(one)
+                    .map(XcrEnterpriseAnnualReportShareholder::getINVNAME)
+                    .orElse(DEFAULT_VALUE));
+            //设置股份比例
+            d.setOwnershipInterest(DEFAULT_VALUE);
+            //设置认缴出资额
+            d.setSubscribedCapital(Optional.ofNullable(one)
+                    .map(q -> Optional.ofNullable(q.getLISUBCONAM())
+                            .map(BigDecimal::toString)
+                            .orElse(DEFAULT_VALUE))
+                    .orElse(DEFAULT_VALUE));
+            //设置认缴出资日期
+            d.setSubscribedCapitalDate(Optional.ofNullable(one)
+                    .map(q -> Optional.ofNullable(q.getSUBCONDATE())
+                            .map(w -> {
+                                SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+                                return f.format(w);
+                            })
+                            .orElse(DEFAULT_VALUE))
+                    .orElse(DEFAULT_VALUE));
+            resList.add(d);
+        });
+        vo.setD(resList);
+    }
+
+    private void processCreditReportVoE(CreditReportVo vo) {
+        LambdaQueryWrapper<XcrChangeFiling> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(XcrChangeFiling::getUniCode, uniCode);
+        List<XcrChangeFiling> list = xcrChangeFilingMapper.selectList(wrapper);
+        ArrayList<CreditReportVo.E> resList = new ArrayList<>();
+        list.forEach(one -> {
+            CreditReportVo.E e = new CreditReportVo.E();
+            //设置变更内容
+            e.setChangeProject(Optional.ofNullable(one)
+                    .map(XcrChangeFiling::getAltitemCn)
+                    .orElse(DEFAULT_VALUE));
+            //设置变更前内容
+            e.setBeforeChangeContent(Optional.ofNullable(one)
+                    .map(XcrChangeFiling::getALTBE)
+                    .orElse(DEFAULT_VALUE));
+            //设置变更后内容
+            e.setAfterChangeContent(Optional.ofNullable(one)
+                    .map(XcrChangeFiling::getALTAF)
+                    .orElse(DEFAULT_VALUE));
+            //设置变更日期
+            e.setChangeDate(Optional.ofNullable(one)
+                    .map(q -> Optional.ofNullable(q.getALTDATE())
+                            .map(w -> {
+                                SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+                                return f.format(w);
+                            })
+                            .orElse(DEFAULT_VALUE))
+                    .orElse(DEFAULT_VALUE));
+            resList.add(e);
+        });
+        vo.setE(resList);
+    }
+
+    private void processCreditReportVoF(CreditReportVo vo) {
+        LambdaQueryWrapper<XcrBranchOfficesInfo> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(XcrBranchOfficesInfo::getUniCode, uniCode);
+        List<XcrBranchOfficesInfo> list = xcrBranchOfficesInfoMapper.selectList(wrapper);
+        ArrayList<CreditReportVo.F> resList = new ArrayList<>();
+        list.forEach(one -> {
+            CreditReportVo.F f = new CreditReportVo.F();
+            //设置分支机构名称
+            f.setBranchName(Optional.ofNullable(one)
+                    .map(XcrBranchOfficesInfo::getBRNAME)
+                    .orElse(DEFAULT_VALUE));
+            //设置负责人
+            f.setHead(DEFAULT_VALUE);
+            //设置登记状态
+            f.setRegStatus(DEFAULT_VALUE);
+            resList.add(f);
+        });
+        vo.setF(resList);
+    }
+
+    private void processCreditReportVoG(CreditReportVo vo) {
+        LambdaQueryWrapper<XcrAnnualReportExternalInvestment> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(XcrAnnualReportExternalInvestment::getUniCode, uniCode);
+        List<XcrAnnualReportExternalInvestment> list = xcrAnnualReportExternalInvestmentMapper.selectList(wrapper);
+        ArrayList<CreditReportVo.G> resList = new ArrayList<>();
+        list.forEach(one -> {
+            CreditReportVo.G g = new CreditReportVo.G();
+            //设置被投资企业名称
+            g.setInvestedEnterprise(Optional.ofNullable(one)
+                    .map(XcrAnnualReportExternalInvestment::getENTNAME)
+                    .orElse(DEFAULT_VALUE));
+            //设置被投资企业统一社会信用代码
+            g.setInvestedUniCode(Optional.ofNullable(one)
+                    .map(XcrAnnualReportExternalInvestment::getUNISCID)
+                    .orElse(DEFAULT_VALUE));
+            resList.add(g);
+        });
+        vo.setG(resList);
+    }
+
+    private void processCreditReportVoH(CreditReportVo vo) {
+        LambdaQueryWrapper<XcrAdministrativeLicensing> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(XcrAdministrativeLicensing::getUniCode, uniCode);
+        List<XcrAdministrativeLicensing> list = xcrAdministrativeLicensingMapper.selectList(wrapper);
+
+    }
 }
 }