From f1f69523524e578e8016a50bc7e9af88323670b8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=95=B8=E9=9D=9E?= <8153694@qq.com>
Date: Wed, 24 Jul 2024 15:21:47 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=84=E4=BB=B7=E7=BB=9F?=
 =?UTF-8?q?=E8=AE=A1=E6=9B=B4=E6=96=B0=E4=B8=8E=E7=BB=84=E5=90=88=E6=9F=A5?=
 =?UTF-8?q?=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../service/impl/PhQueueStatServiceImpl.java  |  29 +-
 .../impl/PjEvaluateStatServiceImpl.java       | 248 +++++++-----------
 .../httpclient/ph/PhQueueStatController.http  |  33 +++
 .../java/com/mortals/httpclient/system.http   |   4 +-
 4 files changed, 149 insertions(+), 165 deletions(-)

diff --git a/bill-manager/src/main/java/com/mortals/xhx/module/ph/service/impl/PhQueueStatServiceImpl.java b/bill-manager/src/main/java/com/mortals/xhx/module/ph/service/impl/PhQueueStatServiceImpl.java
index 1ffa636..cf21111 100644
--- a/bill-manager/src/main/java/com/mortals/xhx/module/ph/service/impl/PhQueueStatServiceImpl.java
+++ b/bill-manager/src/main/java/com/mortals/xhx/module/ph/service/impl/PhQueueStatServiceImpl.java
@@ -6,15 +6,11 @@ import com.mortals.framework.exception.AppException;
 import com.mortals.framework.model.OrderCol;
 import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.model.Result;
-import com.mortals.xhx.common.code.TimeUnitEnum;
 import com.mortals.xhx.common.utils.BeanUtil;
 import com.mortals.xhx.module.ph.model.PhQueueEntity;
 import com.mortals.xhx.module.ph.model.PhQueueQuery;
 import com.mortals.xhx.module.ph.model.PhQueueStatQuery;
 import com.mortals.xhx.module.ph.service.PhQueueService;
-import com.mortals.xhx.module.pj.model.PjEvaluateEntity;
-import com.mortals.xhx.module.pj.model.PjEvaluateStatEntity;
-import com.mortals.xhx.module.pj.model.PjEvaluateStatQuery;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -110,7 +106,7 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
             return phQueueStatEntity;
         }).filter(f -> f != null).collect(Collectors.toList());
 
-        saveUpdatePhqueueStatList(saveAndUpdatelist);
+        saveUpdatePjStatList(saveAndUpdatelist);
 
     }
 
@@ -129,7 +125,7 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
             phQueueStatEntity.setHallName(hallName);
             return phQueueStatEntity;
         }).filter(f -> f != null).collect(Collectors.toList());
-        saveUpdatePhqueueStatList(saveAndUpdatelist);
+        saveUpdatePjStatList(saveAndUpdatelist);
     }
 
 
@@ -147,7 +143,7 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
             phQueueStatEntity.setBusiness(bussiness);
             return phQueueStatEntity;
         }).filter(f -> f != null).collect(Collectors.toList());
-        saveUpdatePhqueueStatList(saveAndUpdatelist);
+        saveUpdatePjStatList(saveAndUpdatelist);
     }
 
     private void updateSiteWindowPhCount(String currentDate, PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
@@ -165,7 +161,7 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
             phQueueStatEntity.setWindowFromnum(window);
             return phQueueStatEntity;
         }).filter(f -> f != null).collect(Collectors.toList());
-        saveUpdatePhqueueStatList(saveAndUpdatelist);
+        saveUpdatePjStatList(saveAndUpdatelist);
     }
 
 
@@ -231,7 +227,7 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
             phQueueStatEntity.setSectionName(split[1]);
             return phQueueStatEntity;
         }).filter(f -> f != null).collect(Collectors.toList());
-        saveUpdatePhqueueStatList(saveAndUpdatelist);
+        saveUpdatePjStatList(saveAndUpdatelist);
     }
 
 
@@ -252,7 +248,7 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
             phQueueStatEntity.setWindowFromnum(split[1]);
             return phQueueStatEntity;
         }).filter(f -> f != null).collect(Collectors.toList());
-        saveUpdatePhqueueStatList(saveAndUpdatelist);
+        saveUpdatePjStatList(saveAndUpdatelist);
     }
 
 
@@ -273,7 +269,7 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
             phQueueStatEntity.setWindowFromnum(split[1]);
             return phQueueStatEntity;
         }).filter(f -> f != null).collect(Collectors.toList());
-        saveUpdatePhqueueStatList(saveAndUpdatelist);
+        saveUpdatePjStatList(saveAndUpdatelist);
     }
 
     private void updateBusinessAndSectionNameAndWindow(PhQueueStatEntity entity, List<PhQueueEntity> phQueueEntities) {
@@ -296,10 +292,10 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
             phQueueStatEntity.setWindowFromnum(split[2]);
             return phQueueStatEntity;
         }).filter(f -> f != null).collect(Collectors.toList());
-        saveUpdatePhqueueStatList(saveAndUpdatelist);
+        saveUpdatePjStatList(saveAndUpdatelist);
     }
 
-    private static PhQueueStatQuery getPhQueueStatQuery(PhQueueStatEntity entity) {
+    private  PhQueueStatQuery getPhQueueStatQuery(PhQueueStatEntity entity) {
         PhQueueStatQuery phQueueStatQuery = new PhQueueStatQuery().siteId(entity.getSiteId())
                 .year(entity.getYear())
                 .month(entity.getMonth())
@@ -336,19 +332,18 @@ public class PhQueueStatServiceImpl extends AbstractCRUDServiceImpl<PhQueueStatD
     }
 
 
-    private void saveUpdatePhqueueStatList(List<PhQueueStatEntity> saveAndUpdatelist) {
+    private void saveUpdatePjStatList(List<PhQueueStatEntity> saveAndUpdatelist) {
             if (!ObjectUtils.isEmpty(saveAndUpdatelist)) {
                 Map<Boolean, List<PhQueueStatEntity>> saveUpdateCollect = saveAndUpdatelist.parallelStream().collect(Collectors.partitioningBy(i -> i.newEntity()));
 
-                log.info("鏂板绔欑偣鎺掗槦閮ㄩ棬缁熻鏁版嵁锛屾暟閲忥細{}", saveUpdateCollect.get(true).size());
+                log.info("鏂板绔欑偣璇勪环缁熻鏁版嵁锛屾暟閲忥細{}", saveUpdateCollect.get(true).size());
                 if (!ObjectUtils.isEmpty(saveUpdateCollect.get(true))) {
                     //鏂板鍒楄〃
                     this.save(saveUpdateCollect.get(true));
                 }
-                log.info("鏇存柊绔欑偣鎺掗槦閮ㄩ棬缁熻鏁版嵁锛屾暟閲忥細{}", saveUpdateCollect.get(true).size());
+                log.info("鏇存柊绔欑偣璇勪环缁熻鏁版嵁锛屾暟閲忥細{}", saveUpdateCollect.get(true).size());
                 if (!ObjectUtils.isEmpty(saveUpdateCollect.get(false))) {
                     //鏇存柊鍒楄〃
-
                     this.update(saveUpdateCollect.get(true));
                 }
 
diff --git a/bill-manager/src/main/java/com/mortals/xhx/module/pj/service/impl/PjEvaluateStatServiceImpl.java b/bill-manager/src/main/java/com/mortals/xhx/module/pj/service/impl/PjEvaluateStatServiceImpl.java
index 6393464..8373b3a 100644
--- a/bill-manager/src/main/java/com/mortals/xhx/module/pj/service/impl/PjEvaluateStatServiceImpl.java
+++ b/bill-manager/src/main/java/com/mortals/xhx/module/pj/service/impl/PjEvaluateStatServiceImpl.java
@@ -6,6 +6,9 @@ import com.mortals.framework.model.PageInfo;
 import com.mortals.framework.model.Result;
 import com.mortals.xhx.common.code.TimeUnitEnum;
 import com.mortals.xhx.common.utils.BeanUtil;
+import com.mortals.xhx.module.ph.model.PhQueueEntity;
+import com.mortals.xhx.module.ph.model.PhQueueStatEntity;
+import com.mortals.xhx.module.ph.model.PhQueueStatQuery;
 import com.mortals.xhx.module.pj.model.PjEvaluateEntity;
 import com.mortals.xhx.module.pj.model.PjEvaluateQuery;
 import com.mortals.xhx.module.pj.model.PjEvaluateStatQuery;
@@ -81,6 +84,8 @@ public class PjEvaluateStatServiceImpl extends AbstractCRUDServiceImpl<PjEvaluat
 
         updateSiteOptionPjCount(currentDate, entity, pjEvaluateEntities);
 
+
+
         return Rest.ok();
     }
 
@@ -122,170 +127,92 @@ public class PjEvaluateStatServiceImpl extends AbstractCRUDServiceImpl<PjEvaluat
     private void updateSiteSectionNamePjCount(String currentDate, PjEvaluateStatEntity entity, List<PjEvaluateEntity> pjEvaluateEntities) {
 
         Map<String, Long> collect = pjEvaluateEntities.stream().collect(Collectors.groupingBy(x -> x.getSectionName(), Collectors.counting()));
-        collect.entrySet().stream().forEach(item -> {
+        List<PjEvaluateStatEntity> saveAndUpdatelist = collect.entrySet().stream().map(item -> {
             String sectionName = item.getKey();
-            if (ObjectUtils.isEmpty(sectionName)) return;
-            Long value = item.getValue();
-            log.info("鏇存柊绔欑偣璇勪环缁熻鏁版嵁锛岀珯鐐瑰悕绉帮細{}锛屾棩鏈燂細{}锛岄儴闂細{}锛岃瘎浠锋暟閲忥細{}", entity.getSiteName(), currentDate, entity.getSectionName(), pjEvaluateEntities.size());
-            PjEvaluateStatEntity pjEvaluateStatEntity = this.selectOne(new PjEvaluateStatQuery()
-                    .siteId(entity.getSiteId())
-                    .sectionName(sectionName)
-                    .year(entity.getYear())
-                    .month(entity.getMonth())
-                    .day(entity.getDay()));
-            if (ObjectUtils.isEmpty(pjEvaluateStatEntity)) {
-                //缁熻褰撳墠绔欑偣鏂板鎵€鏈夎瘎浠锋暟閲�
-                pjEvaluateStatEntity = new PjEvaluateStatEntity();
-                pjEvaluateStatEntity.initAttrValue();
-                pjEvaluateStatEntity.setSiteId(entity.getSiteId());
-                pjEvaluateStatEntity.setSiteCode(entity.getSiteCode());
-                pjEvaluateStatEntity.setSiteName(entity.getSiteName());
-                pjEvaluateStatEntity.setSectionName(sectionName);
-                pjEvaluateStatEntity.setPjCount(value.intValue());
-                pjEvaluateStatEntity.setYear(entity.getYear());
-                pjEvaluateStatEntity.setMonth(entity.getMonth());
-                pjEvaluateStatEntity.setDay(entity.getDay());
-                pjEvaluateStatEntity.setCreateTime(new Date());
-                pjEvaluateStatEntity.setCreateUserId(1L);
-                this.save(pjEvaluateStatEntity);
-            } else {
-                pjEvaluateStatEntity.setPjCount(value.intValue());
-                pjEvaluateStatEntity.setYear(entity.getYear());
-                pjEvaluateStatEntity.setMonth(entity.getMonth());
-                pjEvaluateStatEntity.setDay(entity.getDay());
-                pjEvaluateStatEntity.setUpdateTime(new Date());
-                pjEvaluateStatEntity.setUpdateUserId(1L);
-                this.update(pjEvaluateStatEntity);
-            }
-        });
+            if (ObjectUtils.isEmpty(sectionName)) return null;
+
+            PjEvaluateStatQuery pjEvaluateStatQuery = getPhQueueStatQuery(entity);
+            pjEvaluateStatQuery.setSectionName(sectionName);
+            PjEvaluateStatEntity pjEvaluateStatEntity = getPjEvaluateStatEntity(entity, item.getValue(), pjEvaluateStatQuery);
+            pjEvaluateStatEntity.setSectionName(sectionName);
+            return pjEvaluateStatEntity;
+        }).filter(f -> f != null).collect(Collectors.toList());
+        saveUpdatePhqueueStatList(saveAndUpdatelist);
     }
 
 
     private void updateSiteHallPjCount(String currentDate, PjEvaluateStatEntity entity, List<PjEvaluateEntity> pjEvaluateEntities) {
-
         Map<String, Long> collect = pjEvaluateEntities.stream().collect(Collectors.groupingBy(x -> x.getHallName(), Collectors.counting()));
-        collect.entrySet().stream().forEach(item -> {
+        List<PjEvaluateStatEntity> saveAndUpdatelist = collect.entrySet().stream().map(item -> {
             String hallName = item.getKey();
-
-            if (ObjectUtils.isEmpty(hallName)) return;
-
-            Long value = item.getValue();
-            log.info("鏇存柊绔欑偣璇勪环缁熻鏁版嵁锛岀珯鐐瑰悕绉帮細{}锛屾棩鏈燂細{}锛岄儴闂細{}锛岃瘎浠锋暟閲忥細{}", entity.getSiteName(), currentDate, entity.getSectionName(), pjEvaluateEntities.size());
-            PjEvaluateStatEntity pjEvaluateStatEntity = this.selectOne(new PjEvaluateStatQuery()
-                    .siteId(entity.getSiteId())
-                    .hallName(hallName)
-                    .year(entity.getYear())
-                    .month(entity.getMonth())
-                    .day(entity.getDay()));
-            if (ObjectUtils.isEmpty(pjEvaluateStatEntity)) {
-                //缁熻褰撳墠绔欑偣鏂板鎵€鏈夎瘎浠锋暟閲�
-                pjEvaluateStatEntity = new PjEvaluateStatEntity();
-                pjEvaluateStatEntity.initAttrValue();
-                pjEvaluateStatEntity.setSiteId(entity.getSiteId());
-                pjEvaluateStatEntity.setSiteCode(entity.getSiteCode());
-                pjEvaluateStatEntity.setSiteName(entity.getSiteName());
-                pjEvaluateStatEntity.setHallName(hallName);
-                pjEvaluateStatEntity.setPjCount(value.intValue());
-                pjEvaluateStatEntity.setYear(entity.getYear());
-                pjEvaluateStatEntity.setMonth(entity.getMonth());
-                pjEvaluateStatEntity.setDay(entity.getDay());
-                pjEvaluateStatEntity.setCreateTime(new Date());
-                pjEvaluateStatEntity.setCreateUserId(1L);
-                this.save(pjEvaluateStatEntity);
-            } else {
-                pjEvaluateStatEntity.setPjCount(value.intValue());
-                pjEvaluateStatEntity.setYear(entity.getYear());
-                pjEvaluateStatEntity.setMonth(entity.getMonth());
-                pjEvaluateStatEntity.setDay(entity.getDay());
-                pjEvaluateStatEntity.setUpdateTime(new Date());
-                pjEvaluateStatEntity.setUpdateUserId(1L);
-                this.update(pjEvaluateStatEntity);
-            }
-        });
+            if (ObjectUtils.isEmpty(hallName)) return null;
+            //log.info("鏇存柊绔欑偣璇勪环缁熻鏁版嵁锛岀珯鐐瑰悕绉帮細{}锛屾棩鏈燂細{}锛岄儴闂細{}锛岃瘎浠锋暟閲忥細{}", entity.getSiteName(), currentDate, entity.getSectionName(), pjEvaluateEntities.size());
+            PjEvaluateStatQuery pjEvaluateStatQuery = getPhQueueStatQuery(entity);
+            pjEvaluateStatQuery.setHallName(hallName);
+            PjEvaluateStatEntity pjEvaluateStatEntity = getPjEvaluateStatEntity(entity, item.getValue(), pjEvaluateStatQuery);
+            pjEvaluateStatEntity.setHallName(hallName);
+            return pjEvaluateStatEntity;
+        }).filter(f -> f != null).collect(Collectors.toList());
+        saveUpdatePhqueueStatList(saveAndUpdatelist);
     }
 
 
     private void updateSiteWindowPjCount(String currentDate, PjEvaluateStatEntity entity, List<PjEvaluateEntity> pjEvaluateEntities) {
-
-        Map<String, Long> collect = pjEvaluateEntities.stream().collect(Collectors.groupingBy(x -> x.getWindowFromnum(), Collectors.counting()));
-        collect.entrySet().stream().forEach(item -> {
+        Map<String, Long> collect = pjEvaluateEntities.parallelStream().collect(Collectors.groupingBy(x -> x.getWindowFromnum(), Collectors.counting()));
+        List<PjEvaluateStatEntity> saveAndUpdatelist = collect.entrySet().parallelStream().map(item -> {
             String windowFromnum = item.getKey();
-            if (ObjectUtils.isEmpty(windowFromnum)) return;
-            Long value = item.getValue();
-            log.info("鏇存柊绔欑偣璇勪环缁熻鏁版嵁锛岀珯鐐瑰悕绉帮細{}锛屾棩鏈燂細{}锛岀獥鍙o細{}锛岃瘎浠锋暟閲忥細{}", entity.getSiteName(), currentDate, entity.getWindowFromnum(), pjEvaluateEntities.size());
-            PjEvaluateStatEntity pjEvaluateStatEntity = this.selectOne(new PjEvaluateStatQuery()
-                    .siteId(entity.getSiteId())
-                    .windowFromnum(windowFromnum)
-                    .year(entity.getYear())
-                    .month(entity.getMonth())
-                    .day(entity.getDay()));
-            if (ObjectUtils.isEmpty(pjEvaluateStatEntity)) {
-                //缁熻褰撳墠绔欑偣鏂板鎵€鏈夎瘎浠锋暟閲�
-                pjEvaluateStatEntity = new PjEvaluateStatEntity();
-                pjEvaluateStatEntity.initAttrValue();
-                pjEvaluateStatEntity.setSiteId(entity.getSiteId());
-                pjEvaluateStatEntity.setSiteCode(entity.getSiteCode());
-                pjEvaluateStatEntity.setSiteName(entity.getSiteName());
-                pjEvaluateStatEntity.setWindowFromnum(windowFromnum);
-                pjEvaluateStatEntity.setPjCount(value.intValue());
-                pjEvaluateStatEntity.setYear(entity.getYear());
-                pjEvaluateStatEntity.setMonth(entity.getMonth());
-                pjEvaluateStatEntity.setDay(entity.getDay());
-                pjEvaluateStatEntity.setCreateTime(new Date());
-                pjEvaluateStatEntity.setCreateUserId(1L);
-                this.save(pjEvaluateStatEntity);
-            } else {
-                pjEvaluateStatEntity.setPjCount(value.intValue());
-                pjEvaluateStatEntity.setYear(entity.getYear());
-                pjEvaluateStatEntity.setMonth(entity.getMonth());
-                pjEvaluateStatEntity.setDay(entity.getDay());
-                pjEvaluateStatEntity.setUpdateTime(new Date());
-                pjEvaluateStatEntity.setUpdateUserId(1L);
-                this.update(pjEvaluateStatEntity);
-            }
-        });
+            if (ObjectUtils.isEmpty(windowFromnum)) return null;
+            PjEvaluateStatQuery pjEvaluateStatQuery = getPhQueueStatQuery(entity);
+            pjEvaluateStatQuery.setWindowFromnum(windowFromnum);
+            PjEvaluateStatEntity pjEvaluateStatEntity = getPjEvaluateStatEntity(entity, item.getValue(), pjEvaluateStatQuery);
+            pjEvaluateStatEntity.setWindowFromnum(windowFromnum);
+            return pjEvaluateStatEntity;
+        }).filter(f -> f != null).collect(Collectors.toList());
+        saveUpdatePhqueueStatList(saveAndUpdatelist);
     }
 
 
     private void updateSiteOptionPjCount(String currentDate, PjEvaluateStatEntity entity, List<PjEvaluateEntity> pjEvaluateEntities) {
-
-        Map<String, Long> collect = pjEvaluateEntities.stream().collect(Collectors.groupingBy(x -> x.getPjOption(), Collectors.counting()));
-        collect.entrySet().stream().forEach(item -> {
+        Map<String, Long> collect = pjEvaluateEntities.parallelStream().collect(Collectors.groupingBy(x -> x.getPjOption(), Collectors.counting()));
+        List<PjEvaluateStatEntity> saveAndUpdatelist = collect.entrySet().parallelStream().map(item -> {
             String pjOption = item.getKey();
-            if (ObjectUtils.isEmpty(pjOption)) return;
+            if (ObjectUtils.isEmpty(pjOption)) return null;
             Long value = item.getValue();
-            log.info("鏇存柊绔欑偣璇勪环缁熻鏁版嵁锛岀珯鐐瑰悕绉帮細{}锛屾棩鏈燂細{}锛岀獥鍙o細{}锛岃瘎浠锋暟閲忥細{}", entity.getSiteName(), currentDate, entity.getWindowFromnum(), pjEvaluateEntities.size());
-            PjEvaluateStatEntity pjEvaluateStatEntity = this.selectOne(new PjEvaluateStatQuery()
-                    .siteId(entity.getSiteId())
-                    .pjOption(pjOption)
-                    .year(entity.getYear())
-                    .month(entity.getMonth())
-                    .day(entity.getDay()));
-            if (ObjectUtils.isEmpty(pjEvaluateStatEntity)) {
-                //缁熻褰撳墠绔欑偣鏂板鎵€鏈夎瘎浠锋暟閲�
-                pjEvaluateStatEntity = new PjEvaluateStatEntity();
-                pjEvaluateStatEntity.initAttrValue();
-                pjEvaluateStatEntity.setSiteId(entity.getSiteId());
-                pjEvaluateStatEntity.setSiteCode(entity.getSiteCode());
-                pjEvaluateStatEntity.setSiteName(entity.getSiteName());
-                pjEvaluateStatEntity.setPjOption(pjOption);
-                pjEvaluateStatEntity.setPjCount(value.intValue());
-                pjEvaluateStatEntity.setYear(entity.getYear());
-                pjEvaluateStatEntity.setMonth(entity.getMonth());
-                pjEvaluateStatEntity.setDay(entity.getDay());
-                pjEvaluateStatEntity.setCreateTime(new Date());
-                pjEvaluateStatEntity.setCreateUserId(1L);
-                this.save(pjEvaluateStatEntity);
-            } else {
-                pjEvaluateStatEntity.setPjCount(value.intValue());
-                pjEvaluateStatEntity.setYear(entity.getYear());
-                pjEvaluateStatEntity.setMonth(entity.getMonth());
-                pjEvaluateStatEntity.setDay(entity.getDay());
-                pjEvaluateStatEntity.setUpdateTime(new Date());
-                pjEvaluateStatEntity.setUpdateUserId(1L);
-                this.update(pjEvaluateStatEntity);
-            }
-        });
+            //log.info("鏇存柊绔欑偣璇勪环缁熻鏁版嵁锛岀珯鐐瑰悕绉帮細{}锛屾棩鏈燂細{}锛岀獥鍙o細{}锛岃瘎浠锋暟閲忥細{}", entity.getSiteName(), currentDate, entity.getWindowFromnum(), pjEvaluateEntities.size());
+            PjEvaluateStatQuery pjEvaluateStatQuery = getPhQueueStatQuery(entity);
+            pjEvaluateStatQuery.setPjOption(pjOption);
+            PjEvaluateStatEntity pjEvaluateStatEntity = getPjEvaluateStatEntity(entity, value, pjEvaluateStatQuery);
+            pjEvaluateStatEntity.setPjOption(pjOption);
+            return pjEvaluateStatEntity;
+        }).filter(f -> f != null).collect(Collectors.toList());
+        saveUpdatePhqueueStatList(saveAndUpdatelist);
+
+    }
+
+    private PjEvaluateStatEntity getPjEvaluateStatEntity(PjEvaluateStatEntity entity, Long value, PjEvaluateStatQuery phQueueStatQuery) {
+        PjEvaluateStatEntity pjEvaluateStatEntity = this.selectOne(phQueueStatQuery);
+        if (ObjectUtils.isEmpty(pjEvaluateStatEntity)) {
+            //缁熻褰撳墠绔欑偣鏂板鎵€鏈夎瘎浠锋暟閲�
+            pjEvaluateStatEntity = new PjEvaluateStatEntity();
+            pjEvaluateStatEntity.initAttrValue();
+            pjEvaluateStatEntity.setSiteId(entity.getSiteId());
+            pjEvaluateStatEntity.setSiteCode(entity.getSiteCode());
+            pjEvaluateStatEntity.setSiteName(entity.getSiteName());
+            pjEvaluateStatEntity.setPjCount(value.intValue());
+            pjEvaluateStatEntity.setYear(entity.getYear());
+            pjEvaluateStatEntity.setMonth(entity.getMonth());
+            pjEvaluateStatEntity.setDay(entity.getDay());
+            pjEvaluateStatEntity.setCreateTime(new Date());
+            pjEvaluateStatEntity.setCreateUserId(1L);
+        } else {
+            pjEvaluateStatEntity.setPjCount(value.intValue());
+            pjEvaluateStatEntity.setYear(entity.getYear());
+            pjEvaluateStatEntity.setMonth(entity.getMonth());
+            pjEvaluateStatEntity.setDay(entity.getDay());
+            pjEvaluateStatEntity.setUpdateTime(new Date());
+            pjEvaluateStatEntity.setUpdateUserId(1L);
+        }
+        return pjEvaluateStatEntity;
     }
 
 
@@ -303,4 +230,33 @@ public class PjEvaluateStatServiceImpl extends AbstractCRUDServiceImpl<PjEvaluat
         }
         return this.getDao().getStatList(query, pageInfo);
     }
+
+
+    private PjEvaluateStatQuery getPhQueueStatQuery(PjEvaluateStatEntity entity) {
+        PjEvaluateStatQuery pjEvaluateStatQuery = new PjEvaluateStatQuery().siteId(entity.getSiteId())
+                .year(entity.getYear())
+                .month(entity.getMonth())
+                .day(entity.getDay());
+        return pjEvaluateStatQuery;
+    }
+
+    private void saveUpdatePhqueueStatList(List<PjEvaluateStatEntity> saveAndUpdatelist) {
+        if (!ObjectUtils.isEmpty(saveAndUpdatelist)) {
+            Map<Boolean, List<PjEvaluateStatEntity>> saveUpdateCollect = saveAndUpdatelist.parallelStream().collect(Collectors.partitioningBy(i -> i.newEntity()));
+
+            log.info("鏂板绔欑偣鎺掗槦閮ㄩ棬缁熻鏁版嵁锛屾暟閲忥細{}", saveUpdateCollect.get(true).size());
+            if (!ObjectUtils.isEmpty(saveUpdateCollect.get(true))) {
+                //鏂板鍒楄〃
+                this.save(saveUpdateCollect.get(true));
+            }
+            log.info("鏇存柊绔欑偣鎺掗槦閮ㄩ棬缁熻鏁版嵁锛屾暟閲忥細{}", saveUpdateCollect.get(true).size());
+            if (!ObjectUtils.isEmpty(saveUpdateCollect.get(false))) {
+                //鏇存柊鍒楄〃
+                this.update(saveUpdateCollect.get(true));
+            }
+
+        }
+    }
+
+
 }
\ No newline at end of file
diff --git a/bill-manager/src/test/java/com/mortals/httpclient/ph/PhQueueStatController.http b/bill-manager/src/test/java/com/mortals/httpclient/ph/PhQueueStatController.http
index def36d7..c569a4a 100644
--- a/bill-manager/src/test/java/com/mortals/httpclient/ph/PhQueueStatController.http
+++ b/bill-manager/src/test/java/com/mortals/httpclient/ph/PhQueueStatController.http
@@ -28,6 +28,39 @@ Content-Type: application/json
   "size": 10
 }
 
+###鎺掗槦鍙彿姹囨€荤粺璁″垪琛�2
+POST {{baseUrl}}/ph/queue/stat/interlist
+Content-Type: application/json
+
+{
+  "timeStart": "2024-06-24",
+  "timeEnd": "2024-06-24",
+  "siteId": 1,
+  "businessList": ["浜ら€氳繚娉曞鐞�"],
+
+  "sectionNameList": ["甯傚叕瀹夊眬"],
+
+  "groupList": ["year","month","day","business","sectionName"],
+  "page": 1,
+  "size": 10
+}
+
+
+###鎺掗槦鍙彿姹囨€荤粺璁″垪琛�3
+POST {{baseUrl}}/ph/queue/stat/interlist
+Content-Type: application/json
+
+{
+  "siteId": 1,
+  "month": 6,
+  "year": 2024,
+  "businessList": ["浜ら€氳繚娉曞鐞�"],
+  "sectionNameList": ["甯傚叕瀹夊眬"],
+
+  "groupList": ["year","month","business","sectionName"],
+  "page": 1,
+  "size": 10
+}
 
 
 ###鎺掗槦鍙彿姹囨€荤粺璁℃洿鏂颁笌淇濆瓨
diff --git a/bill-manager/src/test/java/com/mortals/httpclient/system.http b/bill-manager/src/test/java/com/mortals/httpclient/system.http
index b8d626f..0fe2ea5 100644
--- a/bill-manager/src/test/java/com/mortals/httpclient/system.http
+++ b/bill-manager/src/test/java/com/mortals/httpclient/system.http
@@ -56,8 +56,8 @@ POST {{baseUrl}}/ph/queue/stat/stat
 Content-Type: application/json
 
 {
-  "taketimeStart": "2024-06-24",
-  "taketimeEnd": "2024-06-24"
+  "taketimeStart": "2024-06-01",
+  "taketimeEnd": "2024-07-15"
 }
 
 
-- 
2.24.3