Browse Source

更新了分页问题

lwh 1 month ago
parent
commit
cd015a1e0c

+ 25 - 32
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/MuseumInfoController.java

@@ -105,7 +105,32 @@ public class MuseumInfoController {
         return CommonResult.success(result1);
     }
 
+    @GetMapping("/get-import-sample")
+    @Operation(summary = "获得导入标本模板")
+    public void importSample(HttpServletResponse response) throws IOException {
+        List<MuseuminfoImportExcelVO> list = Arrays.asList(
+                MuseuminfoImportExcelVO.builder().sampleId("1111").sampleTypeC("陨石").place("1C").chineseName("15601691300")
+                        .build(),
+                MuseuminfoImportExcelVO.builder().sampleId("1112").sampleTypeC("矿石").place("2C").chineseName("15601701300")
+                        .build()
+        );
+
+        ExcelUtils.write(response, "标本导入模板.xls", "标本列表", MuseuminfoImportExcelVO.class, list);
+    }
 
+    @PostMapping("/import")
+    @Operation(summary = "导入标本")
+    @Parameters({
+            @Parameter(name = "file", description = "Excel 文件", required = true),
+            @Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true")
+    })
+    public CommonResult<MuseuminfoImportRespVO> importExcel(@RequestParam("file") MultipartFile file,
+                                                            @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception {
+        List<MuseuminfoImportExcelVO> list = ExcelUtils.read(file, MuseuminfoImportExcelVO.class);
+        return success(museumInfoService.importSampleList(list, updateSupport));
+    }
+
+//    工作台
     @GetMapping("/page")
     @Operation(summary = "获取分页")
     public PageResult<MuseumInfoRespVO> getPage(@Valid MuseumInfoPageReqVO pageReqVO){
@@ -113,12 +138,6 @@ public class MuseumInfoController {
         return BeanUtils.toBean(PageResult, MuseumInfoRespVO.class);
     }
 
-
-    //TODO LIST Map
-//    TODO     1.2.3.代表哪种标本类型
-//            返回某种标本类型的List数组
-//            Integer
-
     @GetMapping("/sampleTypeCount")
     @Operation(summary = "标本类型计数")
     public CommonResult<Map<String,Integer>> getMap() {
@@ -211,7 +230,6 @@ public class MuseumInfoController {
                     map.put(year,innerMap);
                     result.add(map);
                 }
-
         return CommonResult.success(result);
     }
 
@@ -262,31 +280,6 @@ public class MuseumInfoController {
         return CommonResult.success(result);
     }
 
-    @GetMapping("/get-import-sample")
-    @Operation(summary = "获得导入标本模板")
-    public void importSample(HttpServletResponse response) throws IOException {
-        List<MuseuminfoImportExcelVO> list = Arrays.asList(
-                MuseuminfoImportExcelVO.builder().sampleId("1111").sampleTypeC("陨石").place("1C").chineseName("15601691300")
-                        .build(),
-                MuseuminfoImportExcelVO.builder().sampleId("1112").sampleTypeC("矿石").place("2C").chineseName("15601701300")
-                        .build()
-        );
-
-        ExcelUtils.write(response, "标本导入模板.xls", "标本列表", MuseuminfoImportExcelVO.class, list);
-    }
 
-    @PostMapping("/import")
-    @Operation(summary = "导入标本")
-    @Parameters({
-            @Parameter(name = "file", description = "Excel 文件", required = true),
-            @Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true")
-    })
-    public CommonResult<MuseuminfoImportRespVO> importExcel(@RequestParam("file") MultipartFile file,
-                                                             @RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception {
-        List<MuseuminfoImportExcelVO> list = ExcelUtils.read(file, MuseuminfoImportExcelVO.class);
-        return success(museumInfoService.importSampleList(list, updateSupport));
-    }
 
-    //TODO 有空可以研究一下Excel导出
-    // 参考yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java文件下的exportUserList接口方法
 }

+ 14 - 4
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseumInfoPageReqVO.java

@@ -5,9 +5,16 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.ToString;
+import org.apache.poi.hpsf.Decimal;
+import org.springframework.format.annotation.DateTimeFormat;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+
+
 @Schema(description = "博物馆-标本信息-分页 pageReq VO")
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -45,19 +52,21 @@ public class MuseumInfoPageReqVO extends PageParam {
     private String  local;
 
     @Schema(description = "时代")
-    private LocalDateTime bronTime ;
+    private String bronTime ;
 
     @Schema(description = "保存地层")
     private String stratum;
 
     @Schema(description = "发现时间")
-    private LocalDateTime findTime;
+//    @DateTimeFormat(pattern = "yyyy/MM/dd HH:mm:ss")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDateTime[] findTime;
 
     @Schema(description = "尺寸")
     private String size;
 
     @Schema(description = "重量")
-    private Long weight;
+    private BigDecimal weight;
 
     @Schema(description = "来源")
     private String origin;
@@ -69,7 +78,8 @@ public class MuseumInfoPageReqVO extends PageParam {
     private Integer store;
 
     @Schema(description = "入库时间")
-    private LocalDateTime storeTime;
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDateTime[] storeTime;
 
     @Schema(description = "用途")
     private String way;

+ 15 - 5
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseumInfoRespVO.java

@@ -3,13 +3,19 @@ package cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.apache.poi.hpsf.Decimal;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+
 @Schema(description = "博物馆-标本信息 Resp VO")
 @Data
 @ExcelIgnoreUnannotated
@@ -48,19 +54,21 @@ public class MuseumInfoRespVO {
     private String  local;
 
     @Schema(description = "时代")
-    private LocalDateTime bronTime ;
+    private String bronTime ;
 
     @Schema(description = "保存地层")
     private String stratum;
 
     @Schema(description = "发现时间")
-    private LocalDateTime findTime;
+//    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDateTime[] findTime;
 
     @Schema(description = "尺寸")
     private String size;
 
     @Schema(description = "重量")
-    private Long weight;
+    private BigDecimal weight;
 
     @Schema(description = "来源")
     private String origin;
@@ -72,7 +80,9 @@ public class MuseumInfoRespVO {
     private Integer store;
 
     @Schema(description = "入库时间")
-    private LocalDateTime storeTime;
+//    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDateTime[] storeTime;
 
     @Schema(description = "用途")
     private String way;
@@ -84,7 +94,7 @@ public class MuseumInfoRespVO {
     private String reason;
 
     @Schema(description = "标本图片")
-    private List<String> picture;
+    private String picture;
 
     @Schema(description = "备注")
     private String sampleTip;

+ 14 - 4
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseumInfoSaveVO.java

@@ -2,10 +2,16 @@ package cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.apache.poi.hpsf.Decimal;
+import org.springframework.format.annotation.DateTimeFormat;
 
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+
 @Schema(description = "博物馆-标本信息 save VO")
 @Data
 public class MuseumInfoSaveVO {
@@ -42,19 +48,21 @@ public class MuseumInfoSaveVO {
     private String  local;
 
     @Schema(description = "时代")
-    private LocalDateTime bronTime ;
+    private String bronTime ;
 
     @Schema(description = "保存地层")
     private String stratum;
 
     @Schema(description = "发现时间")
-    private LocalDateTime findTime;
+//    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDateTime[] findTime;
 
     @Schema(description = "尺寸")
     private String size;
 
     @Schema(description = "重量")
-    private Long weight;
+    private BigDecimal weight;
 
     @Schema(description = "来源")
     private String origin;
@@ -66,7 +74,9 @@ public class MuseumInfoSaveVO {
     private Integer store;
 
     @Schema(description = "入库时间")
-    private LocalDateTime storeTime;
+//    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    private LocalDateTime[] storeTime;
 
     @Schema(description = "用途")
     private String way;

+ 22 - 8
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseuminfoImportExcelVO.java

@@ -8,10 +8,16 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
+import org.apache.poi.hpsf.Decimal;
+import org.springframework.format.annotation.DateTimeFormat;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+
 /**
  * 标本 Excel 导入 VO
  */
@@ -28,23 +34,23 @@ public class MuseuminfoImportExcelVO {
     @ExcelProperty("标本类型")
     private String sampleTypeC;
 
+    private Integer sampleType;
+
     @ExcelProperty("存放位置")
     private String place;
 
     @ExcelProperty("中文名称")
     private String chineseName;
 
-//    @Ignore
-    private Integer sampleType;
-
     @ExcelProperty("英文名称")
     private String englishName;
 
     @ExcelProperty("国际名称")
     private String internationName;
 
-
     @ExcelProperty("保存类型")
+    private String keepTypeC;
+
     private Integer keepType;
 
     @ExcelProperty("成份")
@@ -54,30 +60,38 @@ public class MuseuminfoImportExcelVO {
     private String  local;
 
     @ExcelProperty("时代")
-    private LocalDateTime bronTime ;
+    private String bronTime ;
 
     @ExcelProperty("保存地层")
     private String stratum;
 
     @ExcelProperty("发现时间")
+//    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
     private LocalDateTime findTime;
 
     @ExcelProperty("尺寸")
     private String size;
 
     @ExcelProperty("重量")
-    private Long weight;
+    private BigDecimal weight;
 
     @ExcelProperty("来源")
-    private String origin;
+    private String originC;
+
+    private Integer origin;
 
     @ExcelProperty("描述")
     private String bewrite;
 
     @ExcelProperty("馆藏状态")
+    private String storeC;
+
     private Integer store;
 
     @ExcelProperty("入库时间")
+//    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
     private LocalDateTime storeTime;
 
     @ExcelProperty("用途")
@@ -90,7 +104,7 @@ public class MuseuminfoImportExcelVO {
     private String reason;
 
     @ExcelProperty("标本图片")
-    private List<String> picture;
+    private String picture;
 
     @ExcelProperty("备注")
     private String sampleTip;

+ 5 - 3
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/database/museuminfo/MuseumInfoDO.java

@@ -4,7 +4,9 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
+import org.apache.poi.hpsf.Decimal;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 /**
@@ -63,7 +65,7 @@ public class MuseumInfoDO extends BaseDO {
     /**
      * 时代
      */
-    private LocalDateTime bronTime ;
+    private String bronTime ;
     /**
      * 保存地层
      */
@@ -79,11 +81,11 @@ public class MuseumInfoDO extends BaseDO {
     /**
      * 重量
      */
-    private Long weight;
+    private BigDecimal weight;
     /**
      * 来源
      */
-    private String origin;
+    private Integer origin;
     /**
      * 描述
      */

+ 20 - 0
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/mysql/museuminfo/MuseumInfoMapper.java

@@ -150,6 +150,26 @@ public interface MuseumInfoMapper extends BaseMapperX<MuseumInfoDO> {
                 .likeIfPresent(MuseumInfoDO::getSampleId, pageReqVO.getSampleId())
                 .eqIfPresent(MuseumInfoDO::getSampleType, pageReqVO.getSampleType())
                 .likeIfPresent(MuseumInfoDO::getPlace, pageReqVO.getPlace())
+                .likeIfPresent(MuseumInfoDO::getChineseName, pageReqVO.getChineseName())
+                .likeIfPresent(MuseumInfoDO::getEnglishName, pageReqVO.getEnglishName())
+                .likeIfPresent(MuseumInfoDO::getInternationName, pageReqVO.getInternationName())
+                .eqIfPresent(MuseumInfoDO::getKeepType, pageReqVO.getKeepType())
+                .likeIfPresent(MuseumInfoDO::getElement, pageReqVO.getElement())
+                .likeIfPresent(MuseumInfoDO::getLocal, pageReqVO.getLocal())
+                .likeIfPresent(MuseumInfoDO::getBronTime, pageReqVO.getBronTime())
+                .likeIfPresent(MuseumInfoDO::getStratum, pageReqVO.getStratum())
+                .betweenIfPresent(MuseumInfoDO::getFindTime, pageReqVO.getFindTime())
+                .likeIfPresent(MuseumInfoDO::getSize, pageReqVO.getSize())
+                .eqIfPresent(MuseumInfoDO::getWeight, pageReqVO.getWeight())
+                .likeIfPresent(MuseumInfoDO::getOrigin, pageReqVO.getOrigin())
+                .likeIfPresent(MuseumInfoDO::getBewrite, pageReqVO.getBewrite())
+                .eqIfPresent(MuseumInfoDO::getStore, pageReqVO.getStore())
+                .betweenIfPresent(MuseumInfoDO::getStoreTime, pageReqVO.getStoreTime())
+                .likeIfPresent(MuseumInfoDO::getWay, pageReqVO.getWay())
+                .likeIfPresent(MuseumInfoDO::getFundId, pageReqVO.getFundId())
+                .likeIfPresent(MuseumInfoDO::getReason, pageReqVO.getReason())
+                .likeIfPresent(MuseumInfoDO::getPicture, pageReqVO.getPicture())
+                .likeIfPresent(MuseumInfoDO::getSampleTip, pageReqVO.getSampleTip())
                 .orderByDesc(MuseumInfoDO::getId));
     }
     /**

+ 87 - 15
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museuminfo/MuseumInfoServiceImpl.java

@@ -188,20 +188,7 @@ public  class  MuseumInfoServiceImpl implements MuseumInfoService {
    public Integer MuseumInfoByOrigin(Integer year, Integer origin) {
       return museumInfoMapper.countMuseumInfoByOrigin(year,origin);
    }
-   private Integer  transformSampleType(String sampleType) {
-      if (sampleType==null){
-         return null;
-      }else if (sampleType.equals("矿石")){
-         return 1;
-      }else if (sampleType.equals("岩石")){
-         return 2;
-      }else if (sampleType.equals("矿物")){
-         return 3;
-      }else if (sampleType.equals("陨石")){
-         return 4;
-      }
-      throw new IllegalArgumentException("无效的标本类型: " + sampleType);
-   }
+
    /**
     * 批量导入用户
     *
@@ -225,8 +212,17 @@ public  class  MuseumInfoServiceImpl implements MuseumInfoService {
                // 2.2.1 判断如果不存在,在进行插入
                MuseumInfoDO existSample = museumInfoMapper.selectMuseumInfoBySampleId(importSample.getSampleId());
                if (existSample == null) {
+                  //改变模式
+
                   Integer SampleType = transformSampleType(importSample.getSampleTypeC());
                   importSample.setSampleType(SampleType);
+                  Integer KeepType = transformKeepType(importSample.getKeepTypeC());
+                  importSample.setKeepType(KeepType);
+                  Integer Store = transformStore(importSample.getStoreC());
+                  importSample.setKeepType(Store);
+                  Integer Origin = transformOrigin(importSample.getOriginC());
+                  importSample.setKeepType(Origin);
+
                   MuseumInfoDO newSample = BeanUtils.toBean(importSample, MuseumInfoDO.class);
                   museumInfoMapper.insert(newSample);
                   respVO.getCreateSampleIds().add(importSample.getSampleId());
@@ -244,12 +240,23 @@ public  class  MuseumInfoServiceImpl implements MuseumInfoService {
 //               } catch (ServiceException ex) {
 //                  respVO.getFailureSampleIds().put(importSample.getSampleId(), ex.getMessage());
 //               }
-
+               //改变模式
                Integer SampleType = transformSampleType(importSample.getSampleTypeC());
                importSample.setSampleType(SampleType);
+               Integer KeepType = transformKeepType(importSample.getKeepTypeC());
+               importSample.setKeepType(KeepType);
+               Integer Store = transformStore(importSample.getStoreC());
+               importSample.setKeepType(Store);
+               Integer Origin = transformOrigin(importSample.getOriginC());
+               importSample.setKeepType(Origin);
+
+
                MuseumInfoDO updateSample = BeanUtils.toBean(importSample, MuseumInfoDO.class);
                updateSample.setId(existSample.getId());
                updateSample.setSampleType(SampleType);
+               updateSample.setKeepType(KeepType);
+               updateSample.setStore(Store);
+               updateSample.setOrigin(Origin);
                museumInfoMapper.updateById(updateSample);
                respVO.getUpdateSampleIds().add(importSample.getSampleId());
       });
@@ -297,6 +304,71 @@ public  class  MuseumInfoServiceImpl implements MuseumInfoService {
          }
       }
 
+   private MuseuminfoImportExcelVO  transform(MuseuminfoImportExcelVO importSample){
+      Integer SampleType = transformSampleType(importSample.getSampleTypeC());
+      importSample.setSampleType(SampleType);
+      Integer KeepType = transformKeepType(importSample.getKeepTypeC());
+      importSample.setKeepType(KeepType);
+      Integer Store = transformStore(importSample.getStoreC());
+      importSample.setKeepType(Store);
+      Integer Origin = transformOrigin(importSample.getOriginC());
+      importSample.setKeepType(Origin);
+      return importSample;
+   }
+
+   private Integer  transformSampleType(String sampleType) {
+      if (sampleType==null){
+         return null;
+      }else if (sampleType.equals("矿石")){
+         return 1;
+      }else if (sampleType.equals("岩石")){
+         return 2;
+      }else if (sampleType.equals("矿物")){
+         return 3;
+      }else if (sampleType.equals("陨石")){
+         return 4;
+      }
+      throw new IllegalArgumentException("无效的标本类型: " + sampleType);
+   }
+//   标本-1 光片-2 薄片-3 其他-4
+   private Integer transformKeepType(String keepType) {
+      if (keepType == null) {
+         return null;
+      } else if (keepType.equals("标本")) {
+         return 1;
+      } else if (keepType.equals("光片")) {
+         return 2;
+      } else if (keepType.equals("薄片")) {
+         return 3;
+      } else if (keepType.equals("其他")) {
+         return 4;
+      }
+      throw new IllegalArgumentException("无效的保存类型: " + keepType);
+   }
+//   采购-1 捐赠-2 采集-3
+   private Integer transformOrigin(String origin) {
+      if (origin == null) {
+         return null;
+      } else if (origin.equals("采购")) {
+         return 1;
+      } else if (origin.equals("捐赠")) {
+         return 2;
+      } else if (origin.equals("采集")) {
+         return 3;
+      }
+      throw new IllegalArgumentException("无效的标本来源: " + origin);
+   }
+
+   private Integer transformStore(String store) {
+      if (store == null) {
+         return null;
+      } else if (store.equals("在库")) {
+         return 1;
+      } else if (store.equals("出库")) {
+         return 0;
+      }
+      throw new IllegalArgumentException("无效的标本状态: " + store);
+   }
 }