Просмотр исходного кода

1、导入bug调整
2、导出功能调整

dzx 1 год назад
Родитель
Сommit
d006b2e442

+ 46 - 17
src/main/java/com/xjrsoft/module/dataexpert/controller/DataExpertTemplateController.java

@@ -2,12 +2,18 @@ package com.xjrsoft.module.dataexpert.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
 import com.xjrsoft.common.model.result.RT;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
@@ -23,6 +29,8 @@ import com.xjrsoft.module.dataexpert.service.IDataExpertTemplateService;
 import com.xjrsoft.module.dataexpert.vo.DataExpertTemplateFieldVo;
 import com.xjrsoft.module.dataexpert.vo.DataExpertTemplatePageVo;
 import com.xjrsoft.module.dataexpert.vo.DataExpertTemplateVo;
+import com.xjrsoft.module.student.entity.BaseStudent;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -64,11 +72,13 @@ public class DataExpertTemplateController {
     @SaCheckPermission("dataexperttemplate:detail")
     public RT<PageOutput<DataExpertTemplatePageVo>> page(@Valid DataExpertTemplatePageDto dto){
 
-        LambdaQueryWrapper<DataExpertTemplate> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper
-                    .orderByDesc(DataExpertTemplate::getId)
-                .select(DataExpertTemplate.class,x -> VoToColumnUtil.fieldsToColumns(DataExpertTemplatePageVo.class).contains(x.getProperty()));
-        IPage<DataExpertTemplate> page = dataExpertTemplateService.page(ConventPage.getPage(dto), queryWrapper);
+        MPJLambdaWrapper<DataExpertTemplate> select = new MPJLambdaWrapper<DataExpertTemplate>()
+                .leftJoin(DataExpertSource.class, DataExpertSource::getId, DataExpertTemplate::getDataExpertSourceId)
+                .orderByDesc(DataExpertTemplate::getId)
+                .like(StrUtil.isNotEmpty(dto.getName()), DataExpertTemplate::getName, dto.getName())
+                .selectAs(DataExpertSource::getName, DataExpertTemplatePageVo::getDataExpertSourceName)
+                .select(DataExpertTemplate.class, x -> VoToColumnUtil.fieldsToColumns(DataExpertTemplatePageVo.class).contains(x.getProperty()));
+        IPage<DataExpertTemplatePageVo> page = dataExpertTemplateService.selectJoinListPage(ConventPage.getPage(dto), DataExpertTemplatePageVo.class, select);
         PageOutput<DataExpertTemplatePageVo> pageOutput = ConventPage.getPageOutput(page, DataExpertTemplatePageVo.class);
         return RT.ok(pageOutput);
     }
@@ -122,24 +132,43 @@ public class DataExpertTemplateController {
     @GetMapping("/export")
     @ApiOperation(value = "导出")
     public ResponseEntity<byte[]> exportData(@Valid DataExpertDto dto) {
-        //查出想要的数据
-        DataExpertTemplate template = dataExpertTemplateService.getById(dto.getDataExpertTemplateId());
-        DataExpertSource expertSource = dataExpertSourceService.getById(template.getDataExpertSourceId());
-
         //拼接字段
         String fields = "";
         Map<Integer, String> showNameMap = new HashMap<>();
         List<String> titleList = new ArrayList<>();
         List<DataExpertTemplateFieldVo> fieldList = dto.getFieldList();
-        for (int i = 0; i < fieldList.size(); i ++){
-            DataExpertTemplateFieldVo fieldVo = fieldList.get(i);
-            showNameMap.put(i, fieldVo.getShowName());
-            if(i > 0){
-                fields += ",";
+        DataExpertSource expertSource;
+        if(dto.getDataExpertSourceId() != null){
+            expertSource = dataExpertSourceService.getById(dto.getDataExpertSourceId());
+            for (int i = 0; i < fieldList.size(); i ++){
+                DataExpertTemplateFieldVo fieldVo = fieldList.get(i);
+                showNameMap.put(i, fieldVo.getShowName());
+                if(i > 0){
+                    fields += ",";
+                }
+                fields += fieldVo.getFieldName();
+                titleList.add(fieldVo.getShowName());
+            }
+        }else{
+            //查出想要的数据
+            DataExpertTemplate template = dataExpertTemplateService.getById(dto.getDataExpertTemplateId());
+            expertSource = dataExpertSourceService.getById(template.getDataExpertSourceId());
+            String fieldJsonStr = template.getFieldJson();
+            JsonParser parser = new JsonParser();
+            JsonArray fieldJson = parser.parse(fieldJsonStr).getAsJsonArray();
+            int i = 0;
+            for (JsonElement jsonElement : fieldJson) {
+                JsonObject jsonObject = jsonElement.getAsJsonObject();
+                showNameMap.put(i, jsonObject.get("name").getAsString());
+                if(i > 0){
+                    fields += ",";
+                }
+                fields += jsonObject.get("field").getAsString();
+                titleList.add(jsonObject.get("name").getAsString());
+                i ++;
             }
-            fields += fieldVo.getFieldName();
-            titleList.add(fieldVo.getShowName());
         }
+
         //查出导出的数据并进行组装
         List<String[]> dataList = dataExpertTemplateService.getDataList(fields, expertSource.getViewName());
 
@@ -148,7 +177,7 @@ public class DataExpertTemplateController {
         allDataList.addAll(dataList);
 
         String sheetName = "数据";
-        String fileName = template.getName() + ExcelTypeEnum.XLSX.getValue();
+        String fileName = "导出结果" + ExcelTypeEnum.XLSX.getValue();
         ByteArrayOutputStream bot = new ByteArrayOutputStream();
 
         ExcelWriter excelWriter = EasyExcel.write(bot).excelType(ExcelTypeEnum.XLSX).build();

+ 3 - 0
src/main/java/com/xjrsoft/module/dataexpert/dto/DataExpertDto.java

@@ -22,4 +22,7 @@ public class DataExpertDto {
     @ApiModelProperty("数据字段")
     private List<DataExpertTemplateFieldVo> fieldList;
 
+    @ApiModelProperty("数据源(data_expert_source)")
+    private Long dataExpertSourceId;
+
 }

+ 3 - 1
src/main/java/com/xjrsoft/module/dataexpert/dto/DataExpertTemplatePageDto.java

@@ -1,6 +1,7 @@
 package com.xjrsoft.module.dataexpert.dto;
 
 import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -15,5 +16,6 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = false)
 public class DataExpertTemplatePageDto extends PageInput {
 
-
+    @ApiModelProperty("模板名称")
+    private String name;
 }

+ 3 - 0
src/main/java/com/xjrsoft/module/dataexpert/vo/DataExpertTemplatePageVo.java

@@ -70,4 +70,7 @@ public class DataExpertTemplatePageVo {
     @ApiModelProperty("字段配置")
     private String fieldJson;
 
+    @ApiModelProperty("数据源名称")
+    private String dataExpertSourceName;
+
 }

+ 1 - 1
src/main/java/com/xjrsoft/module/student/service/impl/StudentManagerServiceImpl.java

@@ -919,7 +919,7 @@ public class StudentManagerServiceImpl extends MPJBaseServiceImpl<BaseStudentUse
                     try {
                         time = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern("yyyyMMdd"));
                     }catch (DateTimeParseException e4){
-                        throw new MyException("日期格式不争取");
+                        throw new MyException("日期格式不正确");
                     }
                 }
             }