Newspaper hace 1 año
padre
commit
30fcb6773e

+ 2 - 2
huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/EnvRegularCallFeedingMapper.java

@@ -29,9 +29,9 @@ public interface EnvRegularCallFeedingMapper extends BaseMapper<EnvRegularCallFe
 
     BigDecimal getFeed(@Param(Constants.WRAPPER) QueryWrapper<EnvRegularCallFeeding> queryWrapper);
 
-    List<EnvRegularCallFeeding> listSixMonthFeed(String farmId,String unitId);
+    List<EnvRegularCallFeeding> listSixMonthFeed(String farmId,String units);
 
-    List<EnvRegularCallFeeding> listSevenDayFeed(String farmId,String unitId);
+    List<EnvRegularCallFeeding> listSevenDayFeed(String farmId,String units);
 
     List<EnvRegularCallFeedingVo> listScreen(@Param(Constants.WRAPPER) QueryWrapper<EnvRegularCallFeeding> queryWrapper);
 

+ 22 - 6
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallFeedingServiceImpl.java

@@ -7,12 +7,14 @@ import com.huimv.guowei.admin.common.utils.DataUill;
 import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.common.utils.ResultCode;
 import com.huimv.guowei.admin.entity.*;
+import com.huimv.guowei.admin.mapper.BaseBuildingMapper;
 import com.huimv.guowei.admin.mapper.EnvRegularCallFeedingMapper;
 import com.huimv.guowei.admin.service.IEnvRegularCallFeedingService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -34,6 +36,8 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
 
     @Autowired
     private EnvRegularCallFeedingMapper feedingMapper;
+    @Resource
+    private BaseBuildingMapper baseBuildingMapper;
 
     @Override
     public Result listById(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
@@ -134,16 +138,21 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
         Date timesMonthmorning = DataUill.getTimesMonthmorning();
         BigDecimal dayGap,monthGap;
         Map resultMap = new HashMap();
+        List<Integer> unitList = new ArrayList<>();
+        List<BaseBuilding> baseBuildingList = baseBuildingMapper.selectList(new QueryWrapper<BaseBuilding>().eq("parent_id", unitId));
+        for (BaseBuilding building : baseBuildingList) {
+            unitList.add(building.getId());
+        }
         //今日
         QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
-        queryWrapper1.eq("d.unit_id",unitId).eq("f.farm_id",farmId).eq("f.event_type",0).ge("f.call_date",timesmorning);
+        queryWrapper1.in("d.unit_id",unitList).eq("f.farm_id",farmId).eq("f.event_type",0).ge("f.call_date",timesmorning);
         BigDecimal dayFeed = feedingMapper.getFeed(queryWrapper1);
         //昨日
         LocalDate yesterday = LocalDate.now().minusDays(1);
         LocalDateTime startOfDay = yesterday.atStartOfDay();
         LocalDateTime endOfDay = yesterday.atTime(LocalTime.MAX);
         QueryWrapper<EnvRegularCallFeeding> queryWrapper2 = new QueryWrapper<>();
-        queryWrapper2.eq("d.unit_id",unitId).eq("f.farm_id",farmId).eq("f.event_type",0).between("f.call_date",startOfDay,endOfDay);
+        queryWrapper2.in("d.unit_id",unitList).eq("f.farm_id",farmId).eq("f.event_type",0).between("f.call_date",startOfDay,endOfDay);
         BigDecimal lastDayFeed = feedingMapper.getFeed(queryWrapper2);
         //日环比
         if (lastDayFeed.toString().equals("0.00")){
@@ -156,13 +165,13 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
         }
         //本月
         QueryWrapper<EnvRegularCallFeeding> queryWrapper3 = new QueryWrapper<>();
-        queryWrapper3.eq("d.unit_id",unitId).eq("f.farm_id",farmId).eq("f.event_type",0).ge("f.call_date",timesMonthmorning);
+        queryWrapper3.in("d.unit_id",unitList).eq("f.farm_id",farmId).eq("f.event_type",0).ge("f.call_date",timesMonthmorning);
         BigDecimal monthFeed = feedingMapper.getFeed(queryWrapper3);
         //上月
         Date lastMonthStartMorning = DataUill.getLastMonthStartMorning();
         Date lastMonthEndNight = DataUill.getLastMonthEndNight();
         QueryWrapper<EnvRegularCallFeeding> queryWrapper4 = new QueryWrapper<>();
-        queryWrapper4.eq("d.unit_id",unitId).eq("f.farm_id",farmId).eq("f.event_type",0).between("f.call_date",lastMonthStartMorning,lastMonthEndNight);
+        queryWrapper4.in("d.unit_id",unitList).eq("f.farm_id",farmId).eq("f.event_type",0).between("f.call_date",lastMonthStartMorning,lastMonthEndNight);
         BigDecimal lastMonthFeed = feedingMapper.getFeed(queryWrapper4);
         //月环比
         if (lastMonthFeed.toString().equals("0.00")){
@@ -191,13 +200,20 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
         String farmId = paramsMap.get("farmId");
         String type = paramsMap.get("type");
         List<EnvRegularCallFeeding> envRegularCallFeedingList;
+        List<String> unitList = new ArrayList<>();
+        List<BaseBuilding> baseBuildingList = baseBuildingMapper.selectList(new QueryWrapper<BaseBuilding>().eq("parent_id", unitId));
+        for (BaseBuilding building : baseBuildingList) {
+            unitList.add(building.getId().toString());
+        }
+        String units = String.join(",",unitList);
+        units = "("+units+")";
         //六个月
         if ("1".equals(type)){
-            envRegularCallFeedingList = feedingMapper.listSixMonthFeed(farmId, unitId);
+            envRegularCallFeedingList = feedingMapper.listSixMonthFeed(farmId, units);
         }
         //七天
         else {
-            envRegularCallFeedingList = feedingMapper.listSevenDayFeed(farmId, unitId);
+            envRegularCallFeedingList = feedingMapper.listSevenDayFeed(farmId, units);
         }
         return new Result(ResultCode.SUCCESS,envRegularCallFeedingList);
     }

+ 2 - 2
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvRegularCallFeedingMapper.xml

@@ -40,7 +40,7 @@
     <select id="listSixMonthFeed" resultType="com.huimv.guowei.admin.entity.EnvRegularCallFeeding">
         SELECT IFNUll(ROUND(SUM(f.duck_weight),2),0) 'duckWeight', f.call_date FROM `env_regular_call_feeding` f
         LEFT JOIN `base_duck_info` d ON f.duck_id = d.id
-        WHERE f.farm_id = #{farmId} and d.unit_id = #{unitId}
+        WHERE f.farm_id = #{farmId} and d.unit_id in ${units}
         AND f.call_date &gt;= DATE_SUB(NOW(), INTERVAL 6 MONTH)
         And f.event_type = 0
         GROUP BY DATE_FORMAT(f.call_date,"%Y-%m")
@@ -50,7 +50,7 @@
         SELECT IFNULL(ROUND(SUM(f.duck_weight), 2), 0) AS duckWeight, f.call_date
         FROM env_regular_call_feeding f
         LEFT JOIN base_duck_info d ON f.duck_id = d.id
-        WHERE f.farm_id = #{farmId} and d.unit_id = #{unitId}
+        WHERE f.farm_id = #{farmId} and d.unit_id in ${units}
         AND f.call_date &gt;= DATE_SUB(CURDATE(), INTERVAL 6 DAY)
         And f.event_type = 0
         GROUP BY DATE_FORMAT(f.call_date,"%Y-%m-%d")