From 0852acae13603be95eaaa0b501f3441508ff3fe5 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 14 四月 2025 09:52:12 +0800
Subject: [PATCH] 大屏统计修改

---
 medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java |   39 ++++++++++++++++++++++++---------------
 1 files changed, 24 insertions(+), 15 deletions(-)

diff --git a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java
index 8706682..73a5847 100644
--- a/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java
+++ b/medicalWaste-system/src/main/java/com/sinata/system/service/impl/MwBoxServiceImpl.java
@@ -3,10 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.sinata.common.entity.PageDTO;
-import com.sinata.common.enums.BoxProcessEnum;
-import com.sinata.common.enums.BoxStatusEnum;
 import com.sinata.common.exception.ServiceException;
-import com.sinata.common.utils.BeanUtils;
 import com.sinata.common.utils.CollUtils;
 import com.sinata.common.utils.StringUtils;
 import com.sinata.system.domain.MwBox;
@@ -14,6 +11,8 @@
 import com.sinata.system.domain.query.MwBoxPageQuery;
 import com.sinata.system.domain.vo.BoxStatisticsVO;
 import com.sinata.system.domain.vo.MwBoxVO;
+import com.sinata.system.enums.BoxProcessEnum;
+import com.sinata.system.enums.BoxStatusEnum;
 import com.sinata.system.mapper.MwBoxMapper;
 import com.sinata.system.service.MwBoxService;
 import org.springframework.dao.DuplicateKeyException;
@@ -24,6 +23,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -48,9 +48,9 @@
             boxStatisticsVO.setTotal(boxList.size());
             boxStatisticsVO.setBrokenCount(boxList.stream().filter(box -> BoxStatusEnum.BROKEN.getCode().equals(box.getStatus())).count());
             boxStatisticsVO.setLostCount(boxList.stream().filter(box -> BoxStatusEnum.LOST.getCode().equals(box.getStatus())).count());
-            boxStatisticsVO.setDisposeCount(boxList.stream().filter(box -> BoxProcessEnum.DISPOSAL.getCode().equals(box.getStatus())).count());
-            boxStatisticsVO.setHospitalUsingCount(boxList.stream().filter(box -> BoxProcessEnum.HOSPITAL_USING.getCode().equals(box.getStatus())).count());
-            boxStatisticsVO.setTransitingCount(boxList.stream().filter(box -> BoxProcessEnum.TRANSITING.getCode().equals(box.getStatus())).count());
+            boxStatisticsVO.setDisposeCount(boxList.stream().filter(box -> BoxProcessEnum.DISPOSAL.getCode().equals(box.getLink())).count());
+            boxStatisticsVO.setHospitalUsingCount(boxList.stream().filter(box -> BoxProcessEnum.HOSPITAL_USING.getCode().equals(box.getLink())).count());
+            boxStatisticsVO.setTransitingCount(boxList.stream().filter(box -> BoxProcessEnum.TRANSITING.getCode().equals(box.getLink())).count());
         }
         return boxStatisticsVO;
     }
@@ -72,7 +72,7 @@
                 .between(Objects.nonNull(query.getLastUseTimeStart())
                                 && Objects.nonNull(query.getLastUseTimeEnd()),
                         MwBox::getLastUseTime, query.getLastUseTimeStart(), query.getLastUseTimeEnd())
-                .orderByDesc(MwBox::getBoxNumber)
+                .orderByDesc(MwBox::getCreateTime)
                 .page(new Page<>(query.getPageCurr(), query.getPageSize()));
         return PageDTO.of(page, MwBoxVO.class);
     }
@@ -87,10 +87,10 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void add(String boxNumberStart, String boxNumberEnd) {
-        String regx = "\\d+";
-        if (boxNumberStart.length() != 11 || boxNumberEnd.length() != 11 || !boxNumberStart.matches(regx) || !boxNumberEnd.matches(regx)) {
-            throw new ServiceException("请输入有效的11位数字编号!");
-        }
+        //String regx = "\\d+";
+        //if (boxNumberStart.length() != 11 || boxNumberEnd.length() != 11 || !boxNumberStart.matches(regx) || !boxNumberEnd.matches(regx)) {
+        //    throw new ServiceException("请输入有效的11位数字编号!");
+        //}
         BigDecimal start = new BigDecimal(boxNumberStart);
         BigDecimal end = new BigDecimal(boxNumberEnd);
         if (start.compareTo(end) > 0) {
@@ -99,7 +99,9 @@
         List<MwBox> boxList = new ArrayList<>();
         for (BigDecimal i = start; i.compareTo(end) <= 0; i = i.add(BigDecimal.ONE)) {
             MwBox mwBox = new MwBox();
-            mwBox.setBoxNumber(i.toString());
+            // 每次生成编号时,确保其为11位
+            String formattedBoxNumber = String.format("%011d", i.longValue());
+            mwBox.setBoxNumber(formattedBoxNumber);
             mwBox.setStatus(BoxStatusEnum.NORMAL.getCode());
             boxList.add(mwBox);
         }
@@ -118,8 +120,15 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void editBatch(List<MwBoxDTO> dtoList) {
-        List<MwBox> mwBoxes = BeanUtils.copyToList(dtoList, MwBox.class);
-        this.updateBatchById(mwBoxes);
+    public void editBatch(MwBoxDTO dto) {
+        List<Long> idList = dto.getIdList();
+        List<MwBox> boxList = idList.stream().map(id -> {
+            MwBox mwBox = new MwBox();
+            mwBox.setId(id);
+            mwBox.setStatus(dto.getStatus());
+            mwBox.setRemark(dto.getRemark());
+            return mwBox;
+        }).collect(Collectors.toList());
+        this.updateBatchById(boxList);
     }
 }

--
Gitblit v1.7.1