wwh 3 місяців тому
батько
коміт
97d4babe76

Різницю між файлами не показано, бо вона завелика
+ 197 - 0
hs_err_pid32544.log


+ 3 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/group/entity/GroupRank.java

@@ -63,4 +63,7 @@ public class GroupRank implements Serializable {
 
     private String batchNum;
 
+    private Integer dayEgg;
+
+    private String dayEating;
 }

+ 1 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/group/entity/dto/ScreenProdVo.java

@@ -9,7 +9,7 @@ public class ScreenProdVo {
 
     private Integer eggCount;
 
-    private Integer feedingCount;
+    private String feedingCount;
 
     private String feedingAvg;
 

+ 36 - 15
huimv-admin/src/main/java/com/huimv/guowei/admin/group/service/impl/GroupDuckInfoServiceImpl.java

@@ -232,16 +232,37 @@ public class GroupDuckInfoServiceImpl extends ServiceImpl<GroupDuckInfoMapper, G
         GroupDuckInfoVo duckInfoVo = new GroupDuckInfoVo();
         duckInfoVo.setDuckInfo(duckInfo);
         DecimalFormat def = new DecimalFormat("0.00");
-        EggAndFeedingVo feedingVo = eatingMapper.getCount(duckInfo.getDeviceCode(),duckInfo.getBatchNum(), null);
-        duckInfoVo.setFeedingCount(feedingVo.getFeedingCount());
-        duckInfoVo.setEggCount(feedingVo.getEggCount());
-        if (feedingVo.getEggCount() == 0) {
-            duckInfoVo.setFeedEgg("0");
-        } else {
-            double v = Double.valueOf(feedingVo.getFeedingCount()) / 1000 / Double.valueOf(feedingVo.getEggCount()) * 0.07;
-            duckInfoVo.setFeedEgg(def.format(v));
+//        EggAndFeedingVo feedingVo = eatingMapper.getCount(duckInfo.getDeviceCode(),duckInfo.getBatchNum(), null);
+
+        QueryWrapper<GroupEgg> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("device_code", duckInfo.getDeviceCode()).eq("batch_num", duckInfo.getBatchNum());
+        queryWrapper.orderByDesc("id");
+        queryWrapper.last(" limit 1");
+        GroupEgg groupEgg = eggMapper.selectOne(queryWrapper);
+
+        QueryWrapper<GroupEating> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq("device_code", duckInfo.getDeviceCode()).eq("batch_num", duckInfo.getBatchNum());
+        queryWrapper1.select(" convert(IFNULL(sum(eating_value),'0'),decimal(10,2)) eatingValue");
+        GroupEating groupEating = eatingMapper.selectOne(queryWrapper1);
+
+
+        duckInfoVo.setFeedingCount(groupEating.getEatingValue());
+        if (ObjectUtil.isNotEmpty(groupEgg)) {
+            duckInfoVo.setEggCount(groupEgg.getEggCount());
+            if (groupEgg.getEggCount() == 0) {
+                duckInfoVo.setFeedEgg("0");
+            } else {
+                double v = Double.valueOf(groupEating.getEatingValue()) / 1000 / Double.valueOf(groupEgg.getEggCount()) * 0.07;
+                duckInfoVo.setFeedEgg(def.format(v));
+            }
+            duckInfoVo.setEggWeight(String.valueOf(groupEgg.getEggCount()*70));
+        }else {
+            duckInfoVo.setEggCount(0);
+            duckInfoVo.setEggWeight("0");
         }
-        duckInfoVo.setEggWeight(String.valueOf(feedingVo.getEggCount()*70));
+
+
+
         return new Result(ResultCode.SUCCESS, duckInfoVo);
     }
 
@@ -273,7 +294,7 @@ public class GroupDuckInfoServiceImpl extends ServiceImpl<GroupDuckInfoMapper, G
                     record.setFeedEgg("0");
                 } else {
                     Double aDouble = Double.valueOf(record.getFeedingCount());
-                    double v = aDouble / 1000 / record.getEggCount()*0.07;
+                    double v = aDouble / (record.getEggCount()*70);
                     DecimalFormat def = new DecimalFormat("0.00");
                     record.setFeedEgg(def.format(v));
                     record.setEggWeight(String.valueOf(record.getEggCount()*70));
@@ -294,12 +315,12 @@ public class GroupDuckInfoServiceImpl extends ServiceImpl<GroupDuckInfoMapper, G
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         BreedingVo breedingVo = duckInfoMapper.breedingList1(farmId, sdf.format(timesmorning), sdf.format(monthmorning), deviceCode,batchNum);
         if (ObjectUtil.isNotEmpty(breedingVo)) {
-            Double aDouble = Double.valueOf(breedingVo.getFeedingMonth());
+            Double aDouble = Double.valueOf(breedingVo.getFeedingCount());
             if (0 == breedingVo.getEggCount()) {
                 breedingVo.setFeedEgg("0");
                 breedingVo.setEggWeight("0");
             } else {
-                double v = aDouble / 1000 / breedingVo.getEggCount()*0.07;
+                double v = aDouble / (breedingVo.getEggCount()*70);
                 DecimalFormat def = new DecimalFormat("0.00");
                 breedingVo.setEggWeight(String.valueOf(breedingVo.getEggCount()*70));
                 breedingVo.setFeedEgg(def.format(v));
@@ -618,11 +639,11 @@ public class GroupDuckInfoServiceImpl extends ServiceImpl<GroupDuckInfoMapper, G
         List<GroupEating> groupEatings = eatingMapper.selectList(new QueryWrapper<GroupEating>()
                 .eq("unit_id",unitId).eq("farm_id", farmId)
                 .ge("eating_date", timesmorning));
-        Integer feedingCount = 0;
+        double feedingCount = 0;
         double feedingAvg=0.00;
         if (groupEatings.size() != 0) {
             for (GroupEating groupEating : groupEatings) {
-                feedingCount = feedingCount + Integer.valueOf(groupEating.getEatingValue());
+                feedingCount = feedingCount + Double.valueOf(groupEating.getEatingValue());
             }
              feedingAvg = feedingCount / groupEatings.size();
         }
@@ -645,7 +666,7 @@ public class GroupDuckInfoServiceImpl extends ServiceImpl<GroupDuckInfoMapper, G
         ScreenProdVo screenProdVo = new ScreenProdVo();
         screenProdVo.setDuckCount(count);
         screenProdVo.setFeedingAvg(def.format(feedingAvg));
-        screenProdVo.setFeedingCount(feedingCount);
+        screenProdVo.setFeedingCount(def.format(feedingCount));
         screenProdVo.setWaterAvg(def.format(waterAvg));
         screenProdVo.setEggCount(eggCount);
         screenProdVo.setLeaveCount(groupAdvises.size());

+ 8 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/group/service/impl/GroupEatingServiceImpl.java

@@ -1,5 +1,6 @@
 package com.huimv.guowei.admin.group.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -10,11 +11,13 @@ import com.huimv.guowei.admin.common.utils.Result;
 import com.huimv.guowei.admin.common.utils.ResultCode;
 import com.huimv.guowei.admin.group.entity.GroupDuckInfo;
 import com.huimv.guowei.admin.group.entity.GroupEating;
+import com.huimv.guowei.admin.group.entity.GroupEgg;
 import com.huimv.guowei.admin.group.entity.GroupRank;
 import com.huimv.guowei.admin.group.entity.vo.BreedEatingEgg;
 import com.huimv.guowei.admin.group.entity.vo.GroupEatingVo;
 import com.huimv.guowei.admin.group.mapper.GroupDuckInfoMapper;
 import com.huimv.guowei.admin.group.mapper.GroupEatingMapper;
+import com.huimv.guowei.admin.group.mapper.GroupEggMapper;
 import com.huimv.guowei.admin.group.mapper.GroupRankMapper;
 import com.huimv.guowei.admin.group.service.IGroupEatingService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -44,6 +47,9 @@ public class GroupEatingServiceImpl extends ServiceImpl<GroupEatingMapper, Group
     private GroupRankMapper rankMapper;
     @Autowired
     private GroupDuckInfoMapper infoMapper;
+    @Autowired
+    private GroupEggMapper eggMapper;
+
     @Override
     public Result listPage(Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
@@ -130,6 +136,7 @@ public class GroupEatingServiceImpl extends ServiceImpl<GroupEatingMapper, Group
         if ("1".equals(type)) {
             DateTime beginOfWeek = DateUtil.beginOfWeek(new Date());
             queryWrapper.ge("date_time", beginOfWeek);
+            queryWrapper.groupBy("DATE_FORMAT(date_time,'%Y-%m-%d')");
              list = rankMapper.selectList(queryWrapper);
         } else if ("2".equals(type)) {
             Date monthmorning = DataUill.getTimesMonthmorning();
@@ -153,4 +160,5 @@ public class GroupEatingServiceImpl extends ServiceImpl<GroupEatingMapper, Group
         return eatingMapper.getEating(deviceCode,batchNum);
     }
 
+
 }

+ 26 - 9
huimv-admin/src/main/java/com/huimv/guowei/admin/timer/GroupRankTimer.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.guowei.admin.common.utils.DataUill;
 import com.huimv.guowei.admin.entity.EnvDevice;
 import com.huimv.guowei.admin.entity.EnvDeviceOnline;
 import com.huimv.guowei.admin.entity.EnvMoveCall;
@@ -27,6 +28,8 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.DecimalFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
@@ -58,7 +61,8 @@ public class GroupRankTimer {
                 String deviceCode = duckInfo.getDeviceCode();
                 String batchNum = duckInfo.getBatchNum();
                 QueryWrapper<GroupEgg> eggQueryWrapper = new QueryWrapper<>();
-                eggQueryWrapper.eq("device_code", deviceCode).eq("batch_num",batchNum).orderByDesc("id")
+                eggQueryWrapper.eq("device_code", deviceCode).eq("batch_num", batchNum)
+                        .orderByDesc("id")
                         .last(" limit 1");
                 GroupEgg groupEgg = eggService.getOne(eggQueryWrapper);
                 GroupEatingVo eatingCount = eatingService.getEatingCount(deviceCode,batchNum);
@@ -68,23 +72,37 @@ public class GroupRankTimer {
                 groupRank.setDeviceCode(deviceCode);
                 groupRank.setDateTime(new Date());
                 groupRank.setFarmId(21);
-                if (ObjectUtil.isNotEmpty(groupEgg)) {
+
+                QueryWrapper<GroupEgg> queryWrapper1 = new QueryWrapper<>();
+                queryWrapper1.eq("device_code", deviceCode).eq("batch_num", batchNum).ge("create_time", DateUtil.beginOfDay(new Date()));
+                queryWrapper1.select(" IFNULL(sum(egg_num),'0') eggNum");
+                GroupEgg one = eggService.getOne(queryWrapper1);
+                groupRank.setDayEgg(one.getEggNum());
+
+                QueryWrapper<GroupEating> queryWrapper2 = new QueryWrapper<>();
+                queryWrapper2.eq("device_code", deviceCode).eq("batch_num", batchNum).ge("create_time", DateUtil.beginOfDay(new Date()));
+                queryWrapper2.select(" IFNULL(sum(eating_value),'0') eatingValue");
+                GroupEating one1 = eatingService.getOne(queryWrapper2);
+                groupRank.setDayEating(one1.getEatingValue());
+
+
+                if (ObjectUtil.isEmpty(groupEgg) || groupEgg.getCreateTime().compareTo(DateUtil.beginOfDay(new Date())) < 0) {
+                    groupRank.setEggNum(0);
+                    groupRank.setEatingValue("0");
+                    groupRank.setEggWeight("0");
+                    groupRank.setEatingEgg("0");
+                } else {
                     groupRank.setEggNum(groupEgg.getEggCount());
                     if (groupEgg.getEggCount() == 0) {
                         groupRank.setEatingValue("0");
                         groupRank.setEggWeight("0");
                         groupRank.setEatingEgg("0");
                     } else {
-                        double v = Double.valueOf(eatingCount.getValues()) / (groupEgg.getEggCount() * 70) ;
+                        double v = Double.valueOf(eatingCount.getValues()) / (groupEgg.getEggCount() * 70);
                         DecimalFormat def = new DecimalFormat("0.00");
                         groupRank.setEatingEgg(def.format(v));
                         groupRank.setEggWeight(String.valueOf(groupEgg.getEggCount() * 70));
                     }
-                } else {
-                    groupRank.setEggNum(0);
-                    groupRank.setEatingValue("0");
-                    groupRank.setEggWeight("0");
-                    groupRank.setEatingEgg("0");
                 }
 
                 groupRank.setEatingValue(eatingCount.getValues());
@@ -95,5 +113,4 @@ public class GroupRankTimer {
 
     }
 
-
 }

+ 185 - 77
huimv-admin/src/main/resources/mapper/GroupDuckInfoMapper.xml

@@ -3,61 +3,142 @@
 <mapper namespace="com.huimv.guowei.admin.group.mapper.GroupDuckInfoMapper">
 
     <select id="breedingList" resultType="com.huimv.guowei.admin.group.entity.vo.BreedingVo">
-      select a.id 'id',a.deviceCode 'deviceCode',a.dayAge 'dayAge',a.unitId 'unitId',a.unitName 'unitName',a.batchNum 'batchNum',IFNULL(g.egg_count,'0') 'eggCount'
-      ,CONVERT(IFNULL(sum(case when b.eating_date >= #{today} then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingDay',
-            CONVERT(IFNULL(sum(case when b.eating_date >= #{month} then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingMonth'
-            ,IFNULL(sum(case when g.egg_date >= #{today} then g.egg_num else 0 END),'0') as 'eggDay',
-            IFNULL(sum(case when g.egg_date >= #{month} then g.egg_num else 0 END),'0') as 'eggMonth',
-            IFNULL(sum(b.eating_value),'0') 'feedingCount'
-						FROM group_eating b RIGHT JOIN
-(select id 'id',device_code 'deviceCode',unit_id 'unitId',unit_name 'unitName',day_num 'dayAge',batch_num 'batchNum' FROM group_duck_info where farm_id=#{farmId}
+        select IFNULL(q.eggDay,'0') 'eggDay',IFNULL(w.feedingDay,'0') 'feedingDay',z.deviceCode
+        'deviceCode',IFNULL(q.eggCount,'0') 'eggCount',IFNULL(q.eggMonth,'0')
+        'eggMonth',
+        convert(IFNULL(w.feedingCount,'0'),decimal(10,2)) 'feedingCount',convert(IFNULL(w.feedingMonth,'0'),decimal(10,2)) 'feedingMonth'
+        ,z.dayAge 'dayAge',z.unitId 'unitId',z.unitName 'unitName',z.batchNum 'batchNum',z.id 'id' FROM
+
+        (select g.device_code 'deviceCode', max(g.egg_count) 'eggCount',
+        IFNULL(sum(case when g.egg_date >= #{today} then g.egg_num else 0 END),'0') as 'eggDay',
+        IFNULL(sum(case when g.egg_date >= #{month} then g.egg_num else 0 END),'0') as 'eggMonth' from
+        group_egg g where farm_id=#{farmId}
+        <if test="deviceCode!=null and deviceCode!=''">
+            and device_code like '%${deviceCode}'
+        </if>
+        GROUP BY device_code) q
+
+        RIGHT JOIN
+
+        (select b.device_code 'deviceCode',CONVERT(IFNULL(sum(case when b.eating_date >= #{today} then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingDay',
+        CONVERT(IFNULL(sum(case when b.eating_date >= #{month} then b.eating_value else 0
+        END),'0'),DECIMAL(10,2)) as 'feedingMonth'
+        ,IFNULL(sum(b.eating_value),'0') 'feedingCount'
+        FROM group_eating b WHERE farm_id=#{farmId}
+        <if test="deviceCode!=null and deviceCode!=''">
+            and device_code like '%${deviceCode}'
+        </if>
+        GROUP BY device_code) w
+        on q.deviceCode=w.deviceCode
+
+        RIGHT JOIN
+
+        (select id 'id', device_code 'deviceCode',unit_id 'unitId',unit_name 'unitName',day_num 'dayAge',batch_num
+        'batchNum' FROM group_duck_info where farm_id=#{farmId}
         <if test="deviceCode!=null and deviceCode!=''">
-            and device_code like '%${deviceCode}%'
+            and device_code like '%${deviceCode}'
         </if>
-        ) a ON a.deviceCode=b.device_code and a.batchNum=b.batch_num
-LEFT JOIN group_egg g ON a.deviceCode=g.device_code and a.batchNum=g.batch_num
-GROUP BY a.id
+        GROUP BY device_code) z
+
+        on w.deviceCode=z.deviceCode
+
     </select>
 
     <select id="breedingRank" resultType="com.huimv.guowei.admin.group.entity.vo.BreedingVo">
-        select a.id 'id',a.deviceCode 'deviceCode',a.dayAge 'dayAge',a.unitId 'unitId',a.unitName 'unitName',a.batchNum 'batchNum',IFNULL(g.egg_count,'0') 'eggCount'
-        ,CONVERT(IFNULL(sum(case when b.eating_date >= #{today} then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingDay',
-        CONVERT(IFNULL(sum(case when b.eating_date >= #{month} then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingMonth'
-        ,IFNULL(sum(case when g.egg_date >= #{today} then g.egg_num else 0 END),'0') as 'eggDay',
-        IFNULL(sum(case when g.egg_date >= #{month} then g.egg_num else 0 END),'0') as 'eggMonth',
-        IFNULL(sum(b.eating_value),'0') 'feedingCount'
-        FROM group_eating b RIGHT JOIN
-        (select id 'id',device_code 'deviceCode',unit_id 'unitId',unit_name 'unitName',day_num 'dayAge',batch_num 'batchNum' FROM group_duck_info
-        ) a ON a.deviceCode=b.device_code
-        LEFT JOIN group_egg g ON a.deviceCode=g.device_code
-        GROUP BY a.id
+        select IFNULL(q.eggDay,'0') 'eggDay',IFNULL(w.feedingDay,'0') 'feedingDay',z.deviceCode 'deviceCode',IFNULL(q.eggCount,'0') 'eggCount',IFNULL(q.eggMonth,'0')
+        'eggMonth',
+        convert(IFNULL(w.feedingCount,'0'),decimal(10,2)) 'feedingCount',convert(IFNULL(w.feedingMonth,'0'),decimal(10,2)) 'feedingMonth'
+        ,z.dayAge 'dayAge',z.unitId 'unitId',z.unitName 'unitName',z.batchNum 'batchNum',z.id 'id',z.deviceCode 'deviceCode' FROM
+
+        (select g.device_code 'deviceCode', max(g.egg_count) 'eggCount',
+        IFNULL(sum(case when g.egg_date >= #{today} then g.egg_num else 0 END),'0') as 'eggDay',
+        IFNULL(sum(case when g.egg_date >= #{month} then g.egg_num else 0 END),'0') as 'eggMonth' from
+        group_egg g where farm_id=#{farmId}
+        GROUP BY device_code) q
+
+        RIGHT JOIN
+
+        (select b.device_code 'deviceCode',CONVERT(IFNULL(sum(case when b.eating_date >= #{today} then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingDay',
+        CONVERT(IFNULL(sum(case when b.eating_date >= #{month} then b.eating_value else 0
+        END),'0'),DECIMAL(10,2)) as 'feedingMonth'
+        ,IFNULL(sum(b.eating_value),'0') 'feedingCount'
+        FROM group_eating b WHERE farm_id=#{farmId}
+        GROUP BY device_code) w
+        on q.deviceCode=w.deviceCode
+
+        RIGHT JOIN
+
+        (select id 'id', device_code 'deviceCode',unit_id 'unitId',unit_name 'unitName',day_num 'dayAge',batch_num
+        'batchNum' FROM group_duck_info where farm_id=#{farmId}  GROUP BY device_code) z
+
+        on w.deviceCode=z.deviceCode
+
     </select>
 
     <select id="breedingList1" resultType="com.huimv.guowei.admin.group.entity.vo.BreedingVo">
-     select a.id 'id',a.deviceCode 'deviceCode',a.dayAge 'dayAge',a.unitId 'unitId',a.unitName 'unitName',a.batchNum 'batchNum',IFNULL(g.egg_count,'0') 'eggCount'
-      ,CONVERT(IFNULL(sum(case when b.eating_date >= #{today} then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingDay',
-            CONVERT(IFNULL(sum(case when b.eating_date >= #{month} then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingMonth'
-            ,IFNULL(sum(case when g.egg_date >= #{today} then g.egg_num else 0 END),'0') as 'eggDay',
-            IFNULL(sum(case when g.egg_date >= #{month} then g.egg_num else 0 END),'0') as 'eggMonth',
-            IFNULL(sum(b.eating_value),'0') 'feedingCount'
-						FROM group_eating b RIGHT JOIN
-(select id 'id',device_code 'deviceCode',unit_id 'unitId',unit_name 'unitName',day_num 'dayAge',batch_num 'batchNum' FROM group_duck_info where farm_id=#{farmId}
-and device_code like '%${deviceCode}%') a ON a.deviceCode=b.device_code
-LEFT JOIN group_egg g ON a.deviceCode=g.device_code
-GROUP BY a.id
+        select IFNULL(q.eggDay,'0') 'eggDay',IFNULL(w.feedingDay,'0') 'feedingDay',z.deviceCode 'deviceCode',IFNULL(q.eggCount,'0') 'eggCount',IFNULL(q.eggMonth,'0')
+        'eggMonth',
+        convert(IFNULL(w.feedingCount,'0'),decimal(10,2)) 'feedingCount',convert(IFNULL(w.feedingMonth,'0'),decimal(10,2)) 'feedingMonth'
+        ,z.dayAge 'dayAge',z.unitId 'unitId',z.unitName 'unitName',z.batchNum 'batchNum',z.id 'id' FROM
+
+        (select g.device_code 'deviceCode', max(g.egg_count) 'eggCount',
+        IFNULL(sum(case when g.egg_date >= #{today} then g.egg_num else 0 END),'0') as 'eggDay',
+        IFNULL(sum(case when g.egg_date >= #{month} then g.egg_num else 0 END),'0') as 'eggMonth' from
+        group_egg g where farm_id=#{farmId} and device_code = '${deviceCode}'
+        GROUP BY device_code) q
+
+        RIGHT JOIN
+
+        (select b.device_code 'deviceCode',CONVERT(IFNULL(sum(case when b.eating_date >= #{today} then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingDay',
+        CONVERT(IFNULL(sum(case when b.eating_date >= #{month} then b.eating_value else 0
+        END),'0'),DECIMAL(10,2)) as 'feedingMonth'
+        ,IFNULL(sum(b.eating_value),'0') 'feedingCount'
+        FROM group_eating b WHERE farm_id=#{farmId} and device_code = '${deviceCode}'
+        GROUP BY device_code) w
+        on q.deviceCode=w.deviceCode
+
+        RIGHT JOIN
+
+        (select id 'id', device_code 'deviceCode',unit_id 'unitId',unit_name 'unitName',day_num 'dayAge',batch_num
+        'batchNum' FROM group_duck_info where farm_id=#{farmId} and device_code = '${deviceCode}' GROUP BY device_code) z
+
+        on w.deviceCode=z.deviceCode
+
     </select>
     <select id="breedingList2" resultType="com.huimv.guowei.admin.group.entity.vo.BreedingVo">
-     select a.id 'id',a.deviceCode 'deviceCode',a.dayAge 'dayAge',a.unitId 'unitId',a.unitName 'unitName',a.batchNum 'batchNum',IFNULL(g.egg_count,'0') 'eggCount'
-      ,CONVERT(IFNULL(sum(case when b.eating_date >= #{today} then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingDay',
-            CONVERT(IFNULL(sum(case when b.eating_date >= #{month} then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingMonth'
-            ,IFNULL(sum(case when g.egg_date >= #{today} then g.egg_num else 0 END),'0') as 'eggDay',
-            IFNULL(sum(case when g.egg_date >= #{month} then g.egg_num else 0 END),'0') as 'eggMonth',
-            IFNULL(sum(b.eating_value),'0') 'feedingCount'
-						FROM group_eating b RIGHT JOIN
-(select id 'id', device_code 'deviceCode',unit_id 'unitId',unit_name 'unitName',day_num 'dayAge',batch_num 'batchNum' FROM group_duck_info where farm_id=#{farmId}
-and device_code like '%${deviceCode}%') a ON a.deviceCode=b.device_code
-LEFT JOIN group_egg g ON a.deviceCode=g.device_code
-GROUP BY a.id
+        select IFNULL(q.eggDay,'0') 'eggDay',convert(IFNULL(w.feedingDay,'0'),decimal(10,2)) 'feedingDay',z.deviceCode 'deviceCode',IFNULL(q.eggCount,'0') 'eggCount',IFNULL(q.eggMonth,'0')
+        'eggMonth',
+        convert(IFNULL(w.feedingCount,'0'),decimal(10,2)) 'feedingCount',convert(IFNULL(w.feedingMonth,'0'),decimal(10,2)) 'feedingMonth'
+        ,z.dayAge 'dayAge',z.unitId 'unitId',z.unitName 'unitName',z.batchNum 'batchNum',z.id 'id' FROM
+
+        (select g.device_code 'deviceCode', max(g.egg_count) 'eggCount',
+        IFNULL(sum(case when g.egg_date >= #{today} then g.egg_num else 0 END),'0') as 'eggDay',
+        IFNULL(sum(case when g.egg_date >= #{month} then g.egg_num else 0 END),'0') as 'eggMonth' from
+        group_egg g where farm_id=#{farmId} and device_code = '${deviceCode}'
+        GROUP BY device_code) q
+
+        RIGHT JOIN
+
+        (select b.device_code 'deviceCode',CONVERT(IFNULL(sum(case when b.eating_date >= #{today} then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingDay',
+        CONVERT(IFNULL(sum(case when b.eating_date >= #{month} then b.eating_value else 0
+        END),'0'),DECIMAL(10,2)) as 'feedingMonth'
+        ,IFNULL(sum(b.eating_value),'0') 'feedingCount'
+        FROM group_eating b WHERE farm_id=#{farmId} and device_code = '${deviceCode}'
+        GROUP BY device_code) w
+        on q.deviceCode=w.deviceCode
+
+        RIGHT JOIN
+
+        (select id 'id', device_code 'deviceCode',unit_id 'unitId',unit_name 'unitName',day_num 'dayAge',batch_num
+        'batchNum' FROM group_duck_info where farm_id=#{farmId} and device_code = '${deviceCode}' GROUP BY device_code) z
+
+        on w.deviceCode=z.deviceCode
+
+
     </select>
 
     <update id="updateDayAge">
@@ -65,42 +146,69 @@ GROUP BY a.id
     </update>
 
     <select id="getOutDuckInfo" resultType="com.huimv.guowei.admin.group.entity.vo.GroupDuckInfoOutVo">
-        select a.deviceCode 'deviceCode',a.batchNum 'batchNum',a.duckBreed 'duckBreed',a.sex 'sex',a.birthDate 'birthDate'
-        ,a.weight 'weight',a.unitName 'unitName',CONVERT(IFNULL(sum(b.eating_value),'0'),decimal(10,2)) as 'feedingCount',
+        select a.deviceCode 'deviceCode',a.batchNum 'batchNum',a.duckBreed 'duckBreed',a.sex 'sex',a.birthDate
+        'birthDate'
+        ,a.weight 'weight',a.unitName 'unitName',CONVERT(IFNULL(sum(b.eating_value),'0'),decimal(10,2)) as
+        'feedingCount',
         IFNULL(sum(d.egg_num),'0') as 'eggCount',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month1}-01 00:00:00' and '${month1}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue1',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month2}-01 00:00:00' and '${month2}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue2',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month3}-01 00:00:00' and '${month3}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue3',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month4}-01 00:00:00' and '${month4}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue4',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month5}-01 00:00:00' and '${month5}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue5',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month6}-01 00:00:00' and '${month6}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue6',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month7}-01 00:00:00' and '${month7}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue7',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month8}-01 00:00:00' and '${month8}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue8',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month9}-01 00:00:00' and '${month9}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue9',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month10}-01 00:00:00' and '${month10}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue10',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month11}-01 00:00:00' and '${month11}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue11',
-        CONVERT(IFNULL(sum(case when b.eating_date between '${month12}-01 00:00:00' and '${month12}-31 23:59:59' then b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue12',
-        IFNULL(sum(case when d.egg_date between '${month1}-01 00:00:00' and '${month1}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue1',
-        IFNULL(sum(case when d.egg_date between '${month2}-01 00:00:00' and '${month2}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue2',
-        IFNULL(sum(case when d.egg_date between '${month3}-01 00:00:00' and '${month3}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue3',
-        IFNULL(sum(case when d.egg_date between '${month4}-01 00:00:00' and '${month4}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue4',
-        IFNULL(sum(case when d.egg_date between '${month5}-01 00:00:00' and '${month5}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue5',
-        IFNULL(sum(case when d.egg_date between '${month6}-01 00:00:00' and '${month6}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue6',
-        IFNULL(sum(case when d.egg_date between '${month7}-01 00:00:00' and '${month7}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue7',
-        IFNULL(sum(case when d.egg_date between '${month8}-01 00:00:00' and '${month8}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue8',
-        IFNULL(sum(case when d.egg_date between '${month9}-01 00:00:00' and '${month9}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue9',
-        IFNULL(sum(case when d.egg_date between '${month10}-01 00:00:00' and '${month10}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue10',
-        IFNULL(sum(case when d.egg_date between '${month11}-01 00:00:00' and '${month11}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue11',
-        IFNULL(sum(case when d.egg_date between '${month12}-01 00:00:00' and '${month12}-31 23:59:59' then d.egg_num else 0 END),'0') as 'eggValue12'
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month1}-01 00:00:00' and '${month1}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue1',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month2}-01 00:00:00' and '${month2}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue2',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month3}-01 00:00:00' and '${month3}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue3',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month4}-01 00:00:00' and '${month4}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue4',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month5}-01 00:00:00' and '${month5}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue5',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month6}-01 00:00:00' and '${month6}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue6',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month7}-01 00:00:00' and '${month7}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue7',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month8}-01 00:00:00' and '${month8}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue8',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month9}-01 00:00:00' and '${month9}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue9',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month10}-01 00:00:00' and '${month10}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue10',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month11}-01 00:00:00' and '${month11}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue11',
+        CONVERT(IFNULL(sum(case when b.eating_date between '${month12}-01 00:00:00' and '${month12}-31 23:59:59' then
+        b.eating_value else 0 END),'0'),DECIMAL(10,2)) as 'feedingValue12',
+        IFNULL(sum(case when d.egg_date between '${month1}-01 00:00:00' and '${month1}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue1',
+        IFNULL(sum(case when d.egg_date between '${month2}-01 00:00:00' and '${month2}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue2',
+        IFNULL(sum(case when d.egg_date between '${month3}-01 00:00:00' and '${month3}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue3',
+        IFNULL(sum(case when d.egg_date between '${month4}-01 00:00:00' and '${month4}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue4',
+        IFNULL(sum(case when d.egg_date between '${month5}-01 00:00:00' and '${month5}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue5',
+        IFNULL(sum(case when d.egg_date between '${month6}-01 00:00:00' and '${month6}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue6',
+        IFNULL(sum(case when d.egg_date between '${month7}-01 00:00:00' and '${month7}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue7',
+        IFNULL(sum(case when d.egg_date between '${month8}-01 00:00:00' and '${month8}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue8',
+        IFNULL(sum(case when d.egg_date between '${month9}-01 00:00:00' and '${month9}-31 23:59:59' then d.egg_num else
+        0 END),'0') as 'eggValue9',
+        IFNULL(sum(case when d.egg_date between '${month10}-01 00:00:00' and '${month10}-31 23:59:59' then d.egg_num
+        else 0 END),'0') as 'eggValue10',
+        IFNULL(sum(case when d.egg_date between '${month11}-01 00:00:00' and '${month11}-31 23:59:59' then d.egg_num
+        else 0 END),'0') as 'eggValue11',
+        IFNULL(sum(case when d.egg_date between '${month12}-01 00:00:00' and '${month12}-31 23:59:59' then d.egg_num
+        else 0 END),'0') as 'eggValue12'
         FROM group_eating b RIGHT JOIN
-(select device_code 'deviceCode',chi_code 'chiCode',batch_num 'batchNum',unit_name 'unitName',duck_breed 'duckBreed',sex 'sex',birth_date 'birthDate',weight 'weight'
-FROM group_duck_info
-where farm_id=#{farmId} and id IN
-        <foreach collection="deviceCode"   item="farmMenu"  open="(" separator=","   close=")">
+        (select device_code 'deviceCode',chi_code 'chiCode',batch_num 'batchNum',unit_name 'unitName',duck_breed
+        'duckBreed',sex 'sex',birth_date 'birthDate',weight 'weight'
+        FROM group_duck_info
+        where farm_id=#{farmId} and id IN
+        <foreach collection="deviceCode" item="farmMenu" open="(" separator="," close=")">
             #{farmMenu}
         </foreach>) a ON a.deviceCode=b.device_code
-LEFT JOIN group_egg d ON a.deviceCode=d.device_code
-GROUP BY a.deviceCode
+        LEFT JOIN group_egg d ON a.deviceCode=d.device_code
+        GROUP BY a.deviceCode
     </select>
 
 

+ 1 - 1
huimv-admin/src/main/resources/mapper/GroupRankMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.huimv.guowei.admin.group.mapper.GroupRankMapper">
 
     <select id="getList" resultType="com.huimv.guowei.admin.group.entity.GroupRank">
-     select device_code 'deviceCode',date_time 'dateTime',IFNULL(sum(egg_num),'0') 'eggNum',IFNULL(sum(egg_weight),'0') 'eggWeight',IFNULL(sum(eating_value),'0') 'eatingValue',
+     select device_code 'deviceCode',date_time 'dateTime',IFNULL(sum(day_egg),'0') 'eggNum',IFNULL(sum(egg_weight),'0') 'eggWeight',IFNULL(sum(day_eating),'0') 'eatingValue',
      farm_id 'farmId',eating_egg 'eatingEgg' from group_rank
        ${ew.customSqlSegment}
         GROUP BY DATE_FORMAT(date_time,'%Y-%m')