瀏覽代碼

Merge remote-tracking branch 'origin/master'

yqc 1 月之前
父節點
當前提交
1bb3b4ba49
共有 20 個文件被更改,包括 261 次插入173 次删除
  1. 45 25
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/MuseumFlowController.java
  2. 1 5
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowPageVO.java
  3. 0 4
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowRespVO.java
  4. 0 4
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowReturnVO.java
  5. 0 3
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowReviewVO.java
  6. 4 5
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowSaveVO.java
  7. 70 63
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/MuseumInfoController.java
  8. 1 1
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseumInfoRespVO.java
  9. 1 1
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseumInfoSaveVO.java
  10. 14 0
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseuminfoMonthSaveVO.java
  11. 16 0
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseuminfoOriginVO.java
  12. 14 0
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseuminfoTypeVO.java
  13. 0 3
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/database/museumflow/MuseumFlowDO.java
  14. 1 1
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/database/museuminfo/MuseumInfoDO.java
  15. 9 11
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/mysql/museumflow/MuseumFlowMapper.java
  16. 49 23
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/mysql/museuminfo/MuseumInfoMapper.java
  17. 1 1
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museumflow/MuseumFlowService.java
  18. 17 9
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museumflow/MuseumFlowServiceImpl.java
  19. 7 6
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museuminfo/MuseumInfoService.java
  20. 11 8
      yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museuminfo/MuseumInfoServiceImpl.java

+ 45 - 25
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/MuseumFlowController.java

@@ -4,15 +4,19 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.*;
+import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoPageReqVO;
 import cn.iocoder.yudao.module.museum.dal.database.museumflow.MuseumFlowDO;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
+import cn.iocoder.yudao.module.museum.dal.mysql.museumflow.MuseumFlowMapper;
 import cn.iocoder.yudao.module.museum.service.museumflow.MuseumFlowService;
+import cn.iocoder.yudao.module.museum.service.museuminfo.MuseumInfoService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
+import java.util.ArrayList;
 import java.util.List;
 
 @Tag(name = "博物馆-出回库管理")
@@ -22,6 +26,7 @@ public class MuseumFlowController {
 
     @Resource
     private MuseumFlowService museumFlowService;
+    private MuseumInfoService museumInfoService;
 
     @PostMapping("/create")
     @Operation(summary = "新增表单")
@@ -51,31 +56,46 @@ public class MuseumFlowController {
         return CommonResult.success(result1);
     }
 
-//    @PostMapping("/outbound")
-//    @Operation(summary = "添加出库单")
-//    public CommonResult<Boolean>  createMuseumFlowOutbound(@RequestBody MuseumFlowSaveVO saveVO){
-//        List<String>sample_ids=saveVO.getNumber();
-//        for (String sample_id :sample_ids){
-//            MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
-//            if (result==null){
-//                return CommonResult.error(200,sample_id+"标本不存在");
-//            }
-//            break;
-//        }
-//        if(result == null){
-//            return CommonResult.error(200,"样品不存在");
-//        }else if(result != null){
-//            int Save=result.getSave();
-//            if (Save == 0) {
-//                return CommonResult.error(200, "样品不在库中");
-//            } else {
-//                museumFlowService.createMuseumFlow(saveVO);
-//                museumFlowService.updateMuseumFlowStateOutbound2(saveVO);
-//                return CommonResult.success(true);
-//            }
-//        }
-//        return CommonResult.success(true);
-//    }
+    @PostMapping("/outbound")
+    @Operation(summary = "添加出库单")
+    public CommonResult<Boolean>  createMuseumFlowOutbound(@RequestBody MuseumFlowSaveVO saveVO) {
+        List<String> sample_ids = saveVO.getNumber();
+        List<String> errorList = new ArrayList<>();
+        List<String> sample_names = new ArrayList<>();
+        for (String sample_id : sample_ids) {
+            MuseumInfoDO result = museumFlowService.selectMuseumFlowSampleId(sample_id);
+            if (result == null) {
+                errorList.add(sample_id+"标本不存在");
+            }
+            else {
+                int save = result.getSave();
+                String name = result.getChineseName();
+                if (save == 0) {
+                    errorList.add(sample_id+"标本不在库中");
+                }else {
+                    sample_names.add(name);
+                }
+            }
+        }
+        if (errorList.isEmpty()) {
+            saveVO.setSampleName(sample_names);//设置标本名称
+            museumFlowService.createMuseumFlow(saveVO);//创建表单
+            museumFlowService.updateMuseumFlowStateOutbound2(saveVO);//更改标本状态为出库
+
+
+//            museumFlowService.selectPageS(respVO);
+            return CommonResult.success(true);
+        }else {
+            System.out.println(errorList);
+            return CommonResult.error(200, "标本存在错误");
+        }
+    }
+
+    @GetMapping("/selectPageS")
+    @Operation(summary = "获取关于标本信息的分页")
+    public PageResult<MuseumInfoDO> selectPageS(@Valid MuseumInfoPageReqVO pageVO){
+           return museumInfoService.getMuseumInfoPage(pageVO);
+    }
 
     @GetMapping("/pagePerson")
     @Operation(summary = "获取关于出库员的分页")

+ 1 - 5
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowPageVO.java

@@ -17,7 +17,6 @@ import java.time.LocalDateTime;
 @EqualsAndHashCode(callSuper = true)
 public class MuseumFlowPageVO extends PageParam {
 
-    @TableId
     @Schema(description = "样品ID")
     private Integer id;
 
@@ -31,7 +30,7 @@ public class MuseumFlowPageVO extends PageParam {
     private String outboundPerson;
 
     @Schema(description = "出库时间")
-    private LocalDateTime []outboundTime;
+    private LocalDateTime[] outboundTime;
 
     @Schema(description = "目的")
     private String purpose;
@@ -54,9 +53,6 @@ public class MuseumFlowPageVO extends PageParam {
     @Schema(description = "审批人")
     private String reviewPerson;
 
-    @Schema(description = "审批状态")
-    private Integer stateReview;
-
     @Schema(description = "审批时间")
     private LocalDateTime reviewTime;
 

+ 0 - 4
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowRespVO.java

@@ -10,7 +10,6 @@ import java.time.LocalDateTime;
 @Data
 public class MuseumFlowRespVO {
 
-    @TableId
     @Schema(description = "样品ID")
     private Integer id;
 
@@ -47,9 +46,6 @@ public class MuseumFlowRespVO {
     @Schema(description = "审批人")
     private String reviewPerson;
 
-    @Schema(description = "审批状态")
-    private Integer stateReview;
-
     @Schema(description = "审批时间")
     private LocalDateTime reviewTime;
 

+ 0 - 4
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowReturnVO.java

@@ -10,7 +10,6 @@ import java.time.LocalDateTime;
 @Data
 public class MuseumFlowReturnVO {
 
-    @TableId
     @Schema(description = "样品ID")
     private Integer id;
 
@@ -47,9 +46,6 @@ public class MuseumFlowReturnVO {
     @Schema(description = "审批人")
     private String reviewPerson;
 
-    @Schema(description = "审批状态")
-    private Integer stateReview;
-
     @Schema(description = "审批时间")
     private LocalDateTime reviewTime;
 

+ 0 - 3
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowReviewVO.java

@@ -47,9 +47,6 @@ public class MuseumFlowReviewVO {
     @Schema(description = "审批人")
     private String reviewPerson;
 
-    @Schema(description = "审批状态")
-    private Integer stateReview;
-
     @Schema(description = "审批时间")
     private LocalDateTime reviewTime;
 

+ 4 - 5
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museumflow/vo/MuseumFlowSaveVO.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo;
 
+import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
 import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
@@ -11,7 +12,6 @@ import java.util.List;
 @Data
 public class MuseumFlowSaveVO {
 
-    @TableId
     @Schema(description = "样品ID")
     private Integer id;
 
@@ -19,7 +19,7 @@ public class MuseumFlowSaveVO {
     private List<String> number;
 
     @Schema(description = "样品名称")
-    private String sampleName;
+    private List<String> sampleName;
 
     @Schema(description = "出库员")
     private String outboundPerson;
@@ -48,9 +48,6 @@ public class MuseumFlowSaveVO {
     @Schema(description = "审批人")
     private String reviewPerson;
 
-    @Schema(description = "审批状态")
-    private Integer stateReview;
-
     @Schema(description = "审批时间")
     private LocalDateTime reviewTime;
 
@@ -75,4 +72,6 @@ public class MuseumFlowSaveVO {
     @Schema(description = "状态")
     private Integer state;
 
+    @Schema(description = "关联标本信息分页")
+    private List<MuseumInfoDO> museumInfoVO;
 }

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

@@ -1,23 +1,18 @@
 package cn.iocoder.yudao.module.museum.controller.admin.museuminfo;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoPageReqVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoRespVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoSaveVO;
+import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.*;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
 import cn.iocoder.yudao.module.museum.service.museuminfo.MuseumInfoService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import java.time.LocalDateTime;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -82,8 +77,9 @@ public class MuseumInfoController {
 
     @GetMapping("/page")
     @Operation(summary = "获取分页")
-    public PageResult<MuseumInfoDO> getMuseumInfoPage(@Valid MuseumInfoPageReqVO pageReqVO){
-        return  museumInfoService.getMuseumInfoPage(pageReqVO);
+    public CommonResult<PageResult<MuseumInfoDO>> getPage(@Valid MuseumInfoPageReqVO pageReqVO){
+        PageResult<MuseumInfoDO> PageResult = museumInfoService.getMuseumInfoPage(pageReqVO);
+        return success(BeanUtils.toBean(PageResult, MuseumInfoDO.class));
     }
 
 
@@ -92,74 +88,85 @@ public class MuseumInfoController {
 //            返回某种标本类型的List数组
 //            Integer
 //    Map<> 键值对
-    @GetMapping("/sampleTypeCount")
-    @Operation(summary = "标本类型计数")
-    public CommonResult<HashMap<Integer,Integer>> getMap(@RequestParam("sampleType") Integer sampleType) {
-        Integer result = museumInfoService.MuseumInfoBySampleType(sampleType);
-//          标本类型:矿石-1 岩石-2 矿物-3 陨石-4>
-        HashMap<Integer, Integer> Sites = new HashMap<Integer, Integer>();
-        Integer Type = sampleType;
-        Sites.put(Type, result);
-        return CommonResult.success(Sites);
-
-    }
-//        1(初版)
-//    public CommonResult<Map<String,Integer>> getMap(@RequestParam("sampleType") Integer sampleType){
-//        Map<String,Integer> result =museumInfoService.MuseumInfoBySampleType(sampleType);
-//        Integer Type = sampleType;
-//         result.put("标本类型:",Type);
-//        return CommonResult.success(result);
-
-
-//    2
 //    @GetMapping("/sampleTypeCount")
 //    @Operation(summary = "标本类型计数")
-//    public CommonResult<HashMap<Integer,List<Integer>>> getMap(@RequestParam("sampleType") Integer sampleType){
-//    List<Integer> result =museumInfoService.MuseumInfoBySampleType(sampleType);
-//    HashMap<Integer,List<Integer>> Sites = new HashMap<Integer,List<Integer>>();
-//        Sites.put(1,result);
-//        Sites.put(2,result);
-//        Sites.put(3,result);
-//        Sites.put(4,result);
-//    return CommonResult.success(Sites);
+//    public CommonResult<HashMap<String,Integer>> getMap(@RequestParam("sampleType") Integer sampleType) {
+//        Integer result = museumInfoService.MuseumInfoBySampleType(1);
+//        Integer result2 = museumInfoService.MuseumInfoBySampleType(2);
+//        Integer result3 = museumInfoService.MuseumInfoBySampleType(3);
+//        Integer result4 = museumInfoService.MuseumInfoBySampleType(4);
 //
-//}
-//    3
-//@GetMapping("/sampleTypeCount")
-//@Operation(summary = "标本类型计数")
-//public CommonResult<HashMap<Integer,Integer>> getMap(@RequestParam("sampleType") Integer sampleType) {
-//    Integer result = museumInfoService.MuseumInfoBySampleType(sampleType);
 ////          标本类型:矿石-1 岩石-2 矿物-3 陨石-4>
-//    HashMap<Integer, Integer> Sites = new HashMap<Integer, Integer>();
-//    Integer Type = sampleType;
-//    Sites.put(Type, result);
-//    return CommonResult.success(Sites);
+//        HashMap<String, Integer> Sites = new HashMap<String, Integer>();
+//        Sites.put("矿石", result);
+//        Sites.put("岩石", result2);
+//        Sites.put("矿物", result3);
+//        Sites.put("陨石", result4);
+//        return CommonResult.success(Sites);
+//    }
 
+//    @GetMapping("/sampleTypeCount")
+//    @Operation(summary = "标本类型计数")
+//    public CommonResult<HashMap<String,List<MuseuminfoTypeVO>>> getMap(@RequestParam("sampleType") Integer sampleType) {
+//        List<MuseuminfoTypeVO> result = museumInfoService.MuseumInfoBySampleType(sampleType);
+////          标本类型:矿石-1 岩石-2 矿物-3 陨石-4>
+//        HashMap<String,List<MuseuminfoTypeVO>> Sites = new HashMap<String,List<MuseuminfoTypeVO>>();
+//        Sites.put("矿石", result);
+//        return CommonResult.success(Sites);
+//    }
 
+    @GetMapping("/sampleTypeCount")
+    @Operation(summary = "标本类型计数")
+    public CommonResult<List<MuseuminfoTypeVO>> getMap(@RequestParam("sampleType") Integer sampleType) {
+        List<MuseuminfoTypeVO> result = museumInfoService.MuseumInfoBySampleType(sampleType);
+//          标本类型:矿石-1 岩石-2 矿物-3 陨石-4>
+        return CommonResult.success(result);
+    }
 
 
-    @GetMapping("/saveCount")
-    @Operation(summary = "标本出入库状态计数")
-    public CommonResult<HashMap<Integer,Integer>> getSave(@RequestParam("save") Integer save){
-        Integer result1 =museumInfoService.MuseumInfoBySave(save);
+//    @GetMapping("/saveCount")
+//    @Operation(summary = "标本出入库状态计数(每月)")
+//    public CommonResult<HashMap<Integer,List<MuseuminfoMonthSaveVO>>> getSave(@RequestParam("save") Integer save){
+//        List<MuseuminfoMonthSaveVO> result1 =museumInfoService.MuseumInfoBySave(save);
+////        状态:在库-1 出库-0
+//        HashMap<Integer, List<MuseuminfoMonthSaveVO>> result2 = new HashMap<Integer,List<MuseuminfoMonthSaveVO>>();
+////        Integer Condition = save;
+//        result2.put(save,result1);
+//        return CommonResult.success(result2);
+//    }
+
+    @GetMapping("/joinSaveCount")
+    @Operation(summary = "标本出入库状态计数(每月)(入库)")
+    public CommonResult<List<MuseuminfoMonthSaveVO>> getJoinSave(@RequestParam("save") Integer save) {
+        List<MuseuminfoMonthSaveVO> result1 = museumInfoService.MuseumInfoBySaveJoin(save);
 //        状态:在库-1 出库-0
-        HashMap<Integer, Integer> result2 = new HashMap<Integer, Integer>();
-        Integer Condition = save;
-        result2.put(Condition,result1);
-        return CommonResult.success(result2);
+//          构造 12 个月的数据,确保每个月都有数据(即使为 0)
+//        List<MuseuminfoMonthSaveVO> result = new ArrayList<>();
+//        for (int month = 1 ; month <= 1 ; month++){
+//            String monthStr = String.format("%d-%2d",save, month);
+//            Optional<MuseuminfoMonthSaveVO> found = MonthSave.stream()
+//            filter(f ->f.getMonth().equals(monthStr))
+//                    .findFirst();
+//            MuseuminfoMonthSaveVO vo = new MuseuminfoMonthSaveVO();
+//            vo.setMonth(monthStr);
+//            vo.setCount(found.map(MuseuminfoMonthSaveVO::getSave).orElse( other: 0)).
+//            result.add(vo);
+        return CommonResult.success(result1);
+    }
+
+    @GetMapping("/outSaveCount")
+    @Operation(summary = "标本出入库状态计数(每月)(出库)")
+    public CommonResult<List<MuseuminfoMonthSaveVO>> getOutSave(@RequestParam("save") Integer save) {
+        List<MuseuminfoMonthSaveVO> result1 = museumInfoService.MuseumInfoBySaveOut(save);
+        return CommonResult.success(result1);
     }
 
     @GetMapping("/originCount")
     @Operation(summary = "标本来源计数")
-    public CommonResult<HashMap<Integer,Integer>> getOrigin(@RequestParam("origin") Integer origin){
-        Integer result1 =museumInfoService.MuseumInfoByOrigin(origin);
-//        来源:采购-1 捐赠-2 采集-3
-        HashMap<Integer, Integer> result2 = new HashMap<Integer, Integer>();
-        Integer Origin = origin;
-//        LocalDateTime SampleSaveTime = sampleSaveTime;
-        result2.put(Origin, result1);
-
-        return CommonResult.success(result2);
+    public CommonResult<List<MuseuminfoOriginVO>> getOrigin(@RequestParam("origin") Integer origin){
+        List<MuseuminfoOriginVO> result1 =museumInfoService.MuseumInfoByOrigin(origin);
+//        来源:采购-1 捐赠-2 采集-3 其他-4
+        return CommonResult.success(result1);
     }
 
 

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

@@ -66,7 +66,7 @@ public class MuseumInfoRespVO {
     @Schema(description = "馆藏状态")
     private Integer save;
 
-    @Schema(description = "入时间")
+    @Schema(description = "入时间")
     private LocalDateTime sampleSaveTime;
 
     @Schema(description = "用途")

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

@@ -63,7 +63,7 @@ public class MuseumInfoSaveVO {
     @Schema(description = "馆藏状态")
     private Integer save;
 
-    @Schema(description = "入时间")
+    @Schema(description = "入时间")
     private LocalDateTime sampleSaveTime;
 
     @Schema(description = "用途")

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

@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "博物馆-标本信息 month save VO")
+@Data
+public class MuseuminfoMonthSaveVO {
+    private Integer month;
+    private Long count;
+}

+ 16 - 0
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/controller/admin/museuminfo/vo/MuseuminfoOriginVO.java

@@ -0,0 +1,16 @@
+package cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "博物馆-标本信息 origin VO")
+@Data
+public class MuseuminfoOriginVO {
+    private String year;
+    private Integer origin;
+    private Long count;
+
+}

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

@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo;
+
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Schema(description = "博物馆-标本信息 type VO")
+@Data
+public class MuseuminfoTypeVO {
+    private Integer sampleType;
+    private Long count;
+}

+ 0 - 3
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/database/museumflow/MuseumFlowDO.java

@@ -58,9 +58,6 @@ public class MuseumFlowDO extends BaseDO {
     @Schema(description = "审批人")
     private String reviewPerson;
 
-    @Schema(description = "审批状态")
-    private Integer stateReview;
-
     @Schema(description = "审批时间")
     private LocalDateTime reviewTime;
 

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

@@ -94,7 +94,7 @@ public class MuseumInfoDO extends BaseDO {
      */
     private Integer save;
     /**
-     * 入时间
+     * 入时间
      */
     private LocalDateTime sampleSaveTime;
     /**

+ 9 - 11
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/dal/mysql/museumflow/MuseumFlowMapper.java

@@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowPageVO;
+import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowSaveVO;
 import cn.iocoder.yudao.module.museum.dal.database.museumflow.MuseumFlowDO;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -33,7 +34,7 @@ public interface MuseumFlowMapper extends BaseMapperX<MuseumFlowDO> {
     MuseumInfoDO selectMuseumFlowBySampleId(@Param("sample_id") String sample_id);
 
     /**根据编号在Flow库中进行查找*/
-    @Select("SELECT * FROM museum_outbound WHERE number = #{id} AND deleted = 0 ")
+    @Select("SELECT * FROM museum_outbound WHERE number = #{number} AND deleted = 0 ")
     MuseumFlowDO selectMuseumFlowByNumber(@Param("number")String number);
 
 
@@ -46,14 +47,13 @@ public interface MuseumFlowMapper extends BaseMapperX<MuseumFlowDO> {
 
 //   default MuseumFlowDO selectPageMuseumFlowByPage(String number){return selectOne(MuseumFlowDO::getNumber,number);}
 /**分页**/
-   default PageResult<MuseumFlowDO> selectPageS(MuseumFlowPageVO pageVO){
-       LambdaQueryWrapperX<MuseumFlowDO> queryWrapper = new LambdaQueryWrapperX<>();
-       queryWrapper .likeIfPresent(MuseumFlowDO::getNumber,pageVO.getNumber())
-               .betweenIfPresent(MuseumFlowDO::getOutboundTime, pageVO.getOutboundTime())
-               .eqIfPresent(MuseumFlowDO::getOutboundPerson,pageVO.getOutboundPerson())
-               .orderByDesc(MuseumFlowDO::getId);
 
-       return selectPage(pageVO, queryWrapper);
+//   default PageResult<MuseumInfoDO> selectPageS(MuseumFlowPageVO pageVO) {
+//       LambdaQueryWrapperX<MuseumInfoDO> queryWrapper = new LambdaQueryWrapperX<>();
+//       queryWrapper.inIfPresent(MuseumInfoDO::getSampleId, pageVO.getNumber())
+//               .orderByDesc(MuseumInfoDO::getId);
+//       return selectPage(pageVO, queryWrapper);
+//   }
 
 //       return selectPage(pageVO ,new LambdaQueryWrapperX<MuseumFlowDO>()
 //               .likeIfPresent(MuseumFlowDO::getNumber,pageVO.getNumber())
@@ -66,13 +66,11 @@ public interface MuseumFlowMapper extends BaseMapperX<MuseumFlowDO> {
 //        like 是模糊查询;
 //        order by 按照某个字段进行排序 ;加上 desc 表示降序排序(默认为升序 asc);
 //
-
-   }
     /**根据出库员进行分页查找*/
     default PageResult<MuseumFlowDO> selectPageMuseumFlowByOutboundPerson(MuseumFlowPageVO pageVO) {
 
        LambdaQueryWrapperX<MuseumFlowDO> queryWrapper = new LambdaQueryWrapperX<>();
-        queryWrapper .likeIfPresent(MuseumFlowDO::getNumber,pageVO.getNumber())
+        queryWrapper .inIfPresent(MuseumFlowDO::getNumber,pageVO.getNumber())
                 .betweenIfPresent(MuseumFlowDO::getOutboundTime, pageVO.getOutboundTime())
                 .eqIfPresent(MuseumFlowDO::getOutboundPerson,pageVO.getOutboundPerson())
                 .orderByDesc(MuseumFlowDO::getId);

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

@@ -3,8 +3,7 @@ package cn.iocoder.yudao.module.museum.dal.mysql.museuminfo;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoPageReqVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoRespVO;
+import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.*;
 import cn.iocoder.yudao.module.museum.dal.database.museumflow.MuseumFlowDO;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -29,11 +28,13 @@ public interface MuseumInfoMapper extends BaseMapperX<MuseumInfoDO> {
      * */
     @Update("UPDATE museum_info SET deleted=1,reason=#{reason}  WHERE id =#{id}")
     void deleteMuseumInfo(Integer id,String reason);
+
     /**
      * 查询标本
      * */
     @Select("SELECT * FROM museum_info WHERE id =#{id} AND deleted =0 ")
     MuseumInfoDO selectMuseumInfoById(@Param("id") Integer id);
+
     /**
      * 查询标本编号
      * */
@@ -42,25 +43,62 @@ public interface MuseumInfoMapper extends BaseMapperX<MuseumInfoDO> {
     /**
      * 查询标本类型
      */
-    @Select("SELECT * FROM museum_info WHERE sample_type  =#{sampleType} AND deleted =0")
+    @Select("SELECT * FROM museum_info WHERE sample_type =#{sampleType} AND deleted =0")
     List<MuseumInfoDO> selectMuseumInfoListBySampleType(@Param("sampleType") Integer sampleType);
+
     /**
      * 标本类型计数1
      * */
-    @Select("SELECT COUNT(*)  FROM museum_info WHERE sample_type =#{sampleType} AND deleted =0 AND save =1")
-    Integer countMuseumInfoBySampleType1(@Param("sampleType") Integer sampleType);
+//    @Select("SELECT COUNT(*)  FROM museum_info WHERE sample_type =#{sampleType} AND deleted =0 AND save =1")
+//    Integer countMuseumInfoBySampleType(@Param("sampleType") Integer sampleType);
+
+    @Select("SELECT sample_type ,COUNT(*)AS count FROM museum_info WHERE deleted =0 GROUP BY sample_type")
+    List<MuseuminfoTypeVO> countMuseumInfoBySampleType(@Param("sampleType") Integer sampleType);
+
     /**
      * 标本出入库状态计数
      * */
-    @Select("SELECT COUNT(*)  FROM museum_info  WHERE save =#{save} AND deleted =0")
-    Integer countMuseumInfoBySave(@Param("save") Integer save);
+//    @Select("SELECT COUNT(*)  FROM museum_info  WHERE save =#{save} AND deleted =0")
+//    List<MuseuminfoMonthSaveVO> countMuseumInfoBySave(@Param("save") Integer save);
+
+//    @Select("SELECT "+
+//            " DATE_FORMAT(sample_save_time,'%y-%m')AS month,"+
+//            " COUNT(*) AS count "+
+//            " FROM museum_info "+
+//            " WHERE YEAR(sample_save_time) = #{save} "+
+//            " GROUP BY DATE_FORMAT(sample_save_time,'%Y-%m')")
+////            "ORDER BY month")
+//    List<MuseuminfoMonthSaveVO> countMuseumInfoBySave(@Param("save") Integer save);
+
+    @Select("SELECT"+
+            " DATE_FORMAT(sample_save_time,'%m')AS month,"+
+            " COUNT(*) AS count "+
+            " FROM museum_info "+
+            " WHERE deleted =0 AND save =1"+
+            " GROUP BY DATE_FORMAT(sample_save_time,'%m')"+
+            " ORDER BY month")
+    List<MuseuminfoMonthSaveVO>countMuseumInfoBySaveJoin(@Param("save") Integer save);
+
+    @Select("SELECT"+
+            " DATE_FORMAT(sample_save_time,'%m')AS month,"+
+            " COUNT(*) AS count "+
+            " FROM museum_info "+
+            " WHERE deleted =0 AND save =1"+
+            " GROUP BY DATE_FORMAT(sample_save_time,'%m')"+
+            " ORDER BY month")
+    List<MuseuminfoMonthSaveVO>countMuseumInfoBySaveOut(@Param("save") Integer save);
+
     /**
      * 标本来源计数(年)
      * */
-    @Select("SELECT COUNT(*)  FROM museum_info  WHERE origin =#{origin} AND deleted =0 AND sample_save_time >=2024-02-09 22:07:31")
-    Integer countMuseumInfoByOrigin (@Param("origin") Integer origin);
-
+//    @Select("SELECT COUNT(*)  FROM museum_info  WHERE origin =#{origin} AND deleted =0 AND sample_save_time >=2025-02")
+//    Integer countMuseumInfoByOrigin (@Param("origin") Integer origin);
+    @Select("SELECT origin,DATE_FORMAT(sample_save_time,'%Y')AS year ,COUNT(*)AS count  FROM museum_info WHERE deleted =0 AND save =1 GROUP BY origin,DATE_FORMAT(sample_save_time,'%Y')")
+    List<MuseuminfoOriginVO> countMuseumInfoByOrigin(@Param("origin") Integer origin);
 
+    /**
+     * 分页
+     * */
     default PageResult<MuseumInfoDO> selectPage(MuseumInfoPageReqVO pageReqVO) {
         LambdaQueryWrapperX<MuseumInfoDO> queryWrapper = new LambdaQueryWrapperX<>();
         queryWrapper.likeIfPresent(MuseumInfoDO::getSampleId, pageReqVO.getSampleId())
@@ -70,19 +108,7 @@ public interface MuseumInfoMapper extends BaseMapperX<MuseumInfoDO> {
         return selectPage(pageReqVO, queryWrapper);
     }
 
-//    default PageResult<MuseumInfoDO> selectPage1(MuseumInfoPageReqVO reqVO) {
-//        return selectPage(reqVO, new LambdaQueryWrapperX<MuseumInfoDO>()
-//                .likeIfPresent(MuseumInfoDO::getSampleId,reqVO.getSampleId())
-//                .eqIfPresent(MuseumInfoDO::getSampleType,reqVO.getSampleType())
-//                .likeIfPresent(MuseumInfoDO::getPlace,reqVO.getPlace())
-//                .orderByDesc(reqVO.getId() != null,MuseumInfoDO::getId)); // 按照 id 倒序
-//    }
-//
-//    default PageResult<MuseumInfoDO> selectPage2(MuseumInfoPageReqVO reqVO) {
-//        return selectPage(reqVO, new LambdaQueryWrapperX<MuseumInfoDO>()
-//                .likeIfPresent(MuseumInfoDO::getPlace, reqVO.getPlace())
-//        );
-//    }
+
 
 
     }

+ 1 - 1
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museumflow/MuseumFlowService.java

@@ -52,7 +52,7 @@ public interface MuseumFlowService {
 /**分页功能
 
     /**根据分页长度进行排序**/
-    PageResult<MuseumFlowDO> selectPageS(MuseumFlowPageVO pageVO);
+//    PageResult<MuseumFlowDO> selectPageS(MuseumFlowPageVO pageVO);
 
     /**根据出库员进行分页查找*/
     PageResult<MuseumFlowDO> selectPageMuseumFlowOutboundPerson(MuseumFlowPageVO pageVO);

+ 17 - 9
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museumflow/MuseumFlowServiceImpl.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.museum.service.museumflow;
 
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.museum.controller.admin.museumflow.vo.MuseumFlowPageVO;
@@ -19,11 +20,11 @@ public class MuseumFlowServiceImpl implements MuseumFlowService {
     @Resource
     private MuseumFlowMapper museumFlowMapper;
 
-    @Override
-    public Integer createMuseumFlow(MuseumFlowSaveVO saveVO){
-        MuseumFlowDO result = BeanUtils.toBean(saveVO, MuseumFlowDO.class);
-        return museumFlowMapper.insert(result);
-    }
+//    @Override
+//    public Integer createMuseumFlow(MuseumFlowSaveVO saveVO){
+//        MuseumFlowDO result = BeanUtils.toBean(saveVO, MuseumFlowDO.class);
+//        return museumFlowMapper.insert(result);
+//    }
 
     @Override
     public void updateMuseumFlow(MuseumFlowSaveVO saveVO){
@@ -56,6 +57,13 @@ public class MuseumFlowServiceImpl implements MuseumFlowService {
 
 /**出库功能
 
+    /**创建出库单*/
+    @Override
+    public Integer createMuseumFlow(MuseumFlowSaveVO saveVO) {
+        MuseumFlowDO result = BeanUtils.toBean(saveVO, MuseumFlowDO.class);
+        return museumFlowMapper.insert(result);
+    }
+
     /**将主库中样品状态设置为1*/
     @Override
     public void updateMuseumFlowSave1(MuseumFlowSaveVO saveVO){
@@ -79,10 +87,10 @@ public class MuseumFlowServiceImpl implements MuseumFlowService {
 /**分页功能
 
     /**根据分页长度进行排序**/
-    @Override
-    public PageResult<MuseumFlowDO> selectPageS(MuseumFlowPageVO pageVO){
-        return  museumFlowMapper.selectPageS(pageVO);
-    }
+//    @Override
+//    public PageResult<MuseumFlowDO> selectPageS(MuseumFlowPageVO pageVO){
+//        return  museumFlowMapper.selectPageS(pageVO);
+//    }
 
 
 /**审批功能

+ 7 - 6
yudao-module-museum/yudao-module-museum-biz/src/main/java/cn/iocoder/yudao/module/museum/service/museuminfo/MuseumInfoService.java

@@ -1,9 +1,7 @@
 package cn.iocoder.yudao.module.museum.service.museuminfo;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoPageReqVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoRespVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoSaveVO;
+import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.*;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
@@ -51,13 +49,16 @@ public interface MuseumInfoService {
    /**
     * 标本类型计数
     * */
-   Integer MuseumInfoBySampleType(Integer sampleType);
+   List<MuseuminfoTypeVO> MuseumInfoBySampleType(Integer sampleType);
    /**
     * 标本出入库状态计数
     * */
-   Integer MuseumInfoBySave(Integer save);
+   List<MuseuminfoMonthSaveVO> MuseumInfoBySaveJoin(Integer save);
+
+   List<MuseuminfoMonthSaveVO> MuseumInfoBySaveOut(Integer save);
+
    /**
     * 标本来源计数(年)
     * */
-   Integer MuseumInfoByOrigin(Integer origin);
+   List<MuseuminfoOriginVO> MuseumInfoByOrigin(Integer origin);
 }

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

@@ -2,9 +2,7 @@ package cn.iocoder.yudao.module.museum.service.museuminfo;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoPageReqVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoRespVO;
-import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.MuseumInfoSaveVO;
+import cn.iocoder.yudao.module.museum.controller.admin.museuminfo.vo.*;
 import cn.iocoder.yudao.module.museum.dal.database.museuminfo.MuseumInfoDO;
 import cn.iocoder.yudao.module.museum.dal.mysql.museuminfo.MuseumInfoMapper;
 import org.springframework.stereotype.Service;
@@ -84,21 +82,26 @@ public  class  MuseumInfoServiceImpl implements MuseumInfoService {
     * 标本类型计数
     * */
    @Override
-   public Integer MuseumInfoBySampleType(Integer sampleType){
-      return museumInfoMapper.countMuseumInfoBySampleType1(sampleType);
+   public List<MuseuminfoTypeVO> MuseumInfoBySampleType(Integer sampleType){
+      return museumInfoMapper.countMuseumInfoBySampleType(sampleType);
    }
    /**
     * 标本出入库状态计数
     * */
    @Override
-   public Integer MuseumInfoBySave(Integer save) {
-      return museumInfoMapper.countMuseumInfoBySave(save);
+   public List<MuseuminfoMonthSaveVO> MuseumInfoBySaveJoin(Integer save) {
+      return museumInfoMapper.countMuseumInfoBySaveJoin(save);
+   }
+
+   @Override
+   public List<MuseuminfoMonthSaveVO> MuseumInfoBySaveOut(Integer save) {
+      return museumInfoMapper.countMuseumInfoBySaveOut(save);
    }
    /**
     * 标本来源计数(年)
     * */
    @Override
-   public Integer MuseumInfoByOrigin(Integer origin) {
+   public List<MuseuminfoOriginVO> MuseumInfoByOrigin(Integer origin) {
       return museumInfoMapper.countMuseumInfoByOrigin(origin);
    }
 }