Browse Source

Merge remote-tracking branch 'origin/master'

hyy 7 months ago
parent
commit
5557b76c43

+ 0 - 1
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/controller/admin/photos/PhotosController.java

@@ -116,7 +116,6 @@ public class PhotosController {
     public CommonResult<List<Integer>> uploadPhotos(
             @NotNull @RequestParam("groupId") Integer groupId,
             @RequestParam("files") List<MultipartFile> files) {
-
         try {
             // 调用服务层批量上传照片
             List<Integer> photoIds = photosService.uploadPhotos(groupId, files);

+ 30 - 0
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/controller/admin/specimeninfo/SpecimenInfoController.java

@@ -233,14 +233,21 @@ public class SpecimenInfoController {
     @GetMapping("/statistics/entry/{year}")
     @Operation(summary = "统计本年标本每月入库数量")
     @Parameter(name = "year", description = "年份", required = true, example = "2024")
+    // TODO 工作台最好有一个独立的权限标识 ,工作台内部的统计可以共用
     @PreAuthorize("@ss.hasPermission('museums:specimen-info:query')")
     public CommonResult<Map<String, Object>> getMonthlyEntryStatistics(@PathVariable int year) {
         List<Map<String, Object>> entryStatistics = specimenInfoService.getMonthlyEntryStatistics(year);
 
+        // TODO 返回格式在CommonResult 里面已经封装了啊,不需要在构建一个
+
         // 构造返回格式
         Map<String, Object> result = new HashMap<>();
         result.put("code", 200);
+        //  TODO 统计的就是本年啊?所以这里是不需要的,
         result.put("year", String.valueOf(year));
+
+
+        //  TODO 直接返回这个就行 Map<String, String> monthData = new HashMap<>();
         result.put("data", entryStatistics.stream()
                 .map(stat -> {
                     Map<String, Object> monthData = new HashMap<>();
@@ -250,6 +257,12 @@ public class SpecimenInfoController {
                 })
                 .collect(Collectors.toList())
         );
+
+        //  TODO 这个msg完全没必要啊,同样在CommonResult里面封装了
+        //   result.code = GlobalErrorCodeConstants.SUCCESS.getCode();
+        //        result.data = data;
+        //        result.msg = "";
+
         result.put("msg", "统计本年标本入库数量");
 
         return success(result);
@@ -261,6 +274,7 @@ public class SpecimenInfoController {
     @Parameter(name = "specimen_type", description = "标本类型", required = true, example = "1")
     @PreAuthorize("@ss.hasPermission('museums:specimen-info:query')")
     public CommonResult<List<SpecimenInfoDO>> getSpecimenTypeStatistics(@PathVariable int specimen_type) {
+        // TODO 这个接口和我在page中写where有什么不同吗? 白写咯哈哈哈
         List<SpecimenInfoDO> specimenTypeStatistics = specimenInfoService.getSpecimenTypeStatistics(specimen_type);
         return success(specimenTypeStatistics);
     }
@@ -269,7 +283,21 @@ public class SpecimenInfoController {
     @Operation(summary = "按标本类别统计库存数")
     @PreAuthorize("@ss.hasPermission('museums:specimen-info:query')")
     public CommonResult<Map<String, Object>> getSpecimenTypeStatistics() {
+
         // 从服务层获取标本类别的统计数据
+        //  TODO 你第一段代码就已经得出结果了,剩下的其实可以交给前端处理,如果你需要处理,可以使用更简单的方式比如
+        //   @Select("""
+        //    SELECT
+        //        CASE
+        //            WHEN specimen_type = 0 THEN '矿物'
+        //            WHEN specimen_type = 1 THEN '岩石矿石'
+        //            WHEN specimen_type = 2 THEN '化石'
+        //            WHEN specimen_type = 3 THEN '陨石'
+        //            ELSE '未知'
+        //        END as specimen_type,
+        //        COUNT(*) as count
+        //    FROM specimen_info
+        //    GROUP BY specimen_type""") 直接得到结果,填入 return success(result);即可
         List<Map<String, Object>> specimenTypeStatistics = specimenInfoService.getAllSpecimenTypeStatistics();
         Map<String, Object> result = new HashMap<>();
 
@@ -298,6 +326,8 @@ public class SpecimenInfoController {
 
         // 将总数和样本统计信息放入结果中
         samples.put("标本总数", totalCount);
+
+        //  TODO 结果可以没必要封装这一层,没有实际的意义直接返回samples即可
         result.put("samples", samples); // 将样本统计信息放入结果的 data 中
 
         return success(result);

+ 2 - 0
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/dal/mysql/specimeninfo/SpecimenInfoMapper.java

@@ -113,6 +113,7 @@ public interface SpecimenInfoMapper extends BaseMapperX<SpecimenInfoDO> {
     //标本库管理
     //实现对标本操作记录进行追溯查看,包括入库记录、编辑记录、出库记录、回库记录等。
     default List<SpecimenInfoDO> getSpecimenRecords(Long id) {
+        // TODO 其实只需要写一行id = id  即可,下面的条件你没有传进来,全部是无效的,只有id生效,而且还是in,应该用eq
         MPJLambdaWrapper<SpecimenInfoDO> wrapper = new MPJLambdaWrapper<>();
         wrapper.selectAll(SpecimenInfoDO.class)
                 //出库申请记录
@@ -160,6 +161,7 @@ public interface SpecimenInfoMapper extends BaseMapperX<SpecimenInfoDO> {
      * @param id            编号
      * @param deletedReason 注销原因
      */
+
     void updateDeletedReasonById(@Param("id") Integer id, @Param("deletedReason") String deletedReason);
 
     boolean existsByNumber(String number);

+ 3 - 0
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/service/photogroup/PhotoGroupServiceImpl.java

@@ -84,6 +84,7 @@ public class PhotoGroupServiceImpl implements PhotoGroupService {
         photoGroupMapper.deleteById(id);
     }
 
+
     private void validatePhotoGroupExists(Integer id) {
         if (photoGroupMapper.selectById(id) == null) {
             throw exception(PHOTO_GROUP_NOT_EXISTS);
@@ -104,6 +105,8 @@ public class PhotoGroupServiceImpl implements PhotoGroupService {
     @Override
     @Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入
     public Integer importPhotoGroup(String groupName, String groupDescription, LocalDateTime groupDate, MultipartFile file) throws Exception {
+         //TODO 同一个类型的方法怎么写了两种,可以尝试封装成公共方法,这里没有判断图片类型,隔壁方法判断了
+
         // 校验文件类型
         if (!file.getOriginalFilename().endsWith(".zip")) {
             throw exception(PHOTO_GROUP_MUST_BE_COMPRESSED_PACKAGE);

+ 1 - 0
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/service/photos/PhotosServiceImpl.java

@@ -111,6 +111,7 @@ public class PhotosServiceImpl implements PhotosService {
                 ZipEntry zipEntry;
                 while ((zipEntry = zis.getNextEntry()) != null) {
                     // 检查文件类型,只处理图片
+                    //TODO 都存gif了怎么不考虑一下其他类型哈哈哈哈哈,图片类型太少了
                     if (zipEntry.getName().endsWith(".jpg") || zipEntry.getName().endsWith(".png") || zipEntry.getName().endsWith(".gif")) {
                         // 使用 ByteArrayOutputStream 读取文件内容
                         ByteArrayOutputStream bos = new ByteArrayOutputStream();

+ 10 - 0
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/service/specimeninfo/SpecimenInfoServiceImpl.java

@@ -118,6 +118,10 @@ public class SpecimenInfoServiceImpl implements SpecimenInfoService {
         String specimenNumber = specimenInfo.getSpecimenNumber(); // 获取标本编号
 
         // 更新注销原因
+        // TODO update 方法为啥还单独写一个,感觉没必要,你上面不是有吗?
+        //  写这两句就好了啊、
+        //  SpecimenInfoDO updateObj =  new SpecimenInfoDO().setXXX
+        //  specimenInfoMapper.updateById(updateObj);
         specimenInfoMapper.updateDeletedReasonById(id, deletedReason);
 
         // 进行逻辑删除
@@ -323,6 +327,9 @@ public class SpecimenInfoServiceImpl implements SpecimenInfoService {
     //根据出、回、入库登记统计标本历年增减情况
     @Override
     public Map<String, Object> getYearlySpecimenStatistics() {
+
+        // TODO 全部查出来然后循环,太慢了,属于偷懒写法了,这个最好改成数据库直查
+        //  ,并且返回的数据格式也不太合适,太容易出错了
         // 创建一个列表来存放每年的统计数据
         List<Map<String, Object>> yearlyStatisticsList = new ArrayList<>();
 
@@ -393,6 +400,9 @@ public class SpecimenInfoServiceImpl implements SpecimenInfoService {
 
     @Override
     public List<Map<String, Object>> getYearlySpecimenSourceStatistics() {
+
+        // TODO 同理
+
         // 年份与标本来源统计信息的映射
         Map<Integer, Map<String, Integer>> yearlySourceDataMap = new HashMap<>();
 

+ 1 - 0
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogMapper.java

@@ -33,6 +33,7 @@ public interface OperateLogMapper extends BaseMapperX<OperateLogDO> {
                 .orderByDesc(OperateLogDO::getId));
     }
 
+    //  TODO    这个其实直接调用他的方法就行了,不过这样也行 ,有点白写的感觉哈哈哈
     List<OperateLogDO> selectBySpecimenIdAndType(@Param("specimenId") Integer specimenId, @Param("moduleType") String moduleType);
 
 }