ソースを参照

大屏弹窗修改

wwh 1 年間 前
コミット
f5208b8cf9

+ 1 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/mapper/EnvMoveCallMapper.java

@@ -21,4 +21,5 @@ import java.util.List;
 public interface EnvMoveCallMapper extends BaseMapper<EnvMoveCall> {
     List<EnvMoveCall> listDay(@Param(Constants.WRAPPER) QueryWrapper<EnvMoveCall> queryWrapper);
     List<EnvMoveCallVo> listScreen(@Param(Constants.WRAPPER) QueryWrapper<EnvMoveCall> queryWrapper);
+    List<EnvMoveCallVo> listScreen2(@Param(Constants.WRAPPER) QueryWrapper<EnvMoveCall> queryWrapper);
 }

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

@@ -13,6 +13,7 @@ import com.huimv.guowei.admin.entity.vo.EnvRegularCallFeedingVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -35,9 +36,12 @@ public interface EnvRegularCallFeedingMapper extends BaseMapper<EnvRegularCallFe
     List<EnvRegularCallFeeding> listSevenDayFeed(String farmId,String units);
 
     List<EnvRegularCallFeedingVo> listScreen(@Param(Constants.WRAPPER) QueryWrapper<EnvRegularCallFeeding> queryWrapper);
+    List<EnvRegularCallFeedingVo> listScreen2(@Param(Constants.WRAPPER) QueryWrapper<EnvRegularCallFeeding> queryWrapper);
 
     List<EnvRegularCallFeeding> listDayDesc(@Param(Constants.WRAPPER) QueryWrapper<EnvRegularCallFeeding> queryWrapper);
 
     List<EnvRegularCallEggVo> listCount(String duckNum);
 
+    IPage<EnvRegularCallFeeding> listSelect(Page<EnvRegularCallFeeding> page, Date date,String farmId);
+
 }

+ 89 - 13
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BaseDuckInfoServiceImpl.java

@@ -392,22 +392,98 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
     public Result listDuckByScreen2(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String farmId = paramsMap.get("farmId");
         String duckNum = paramsMap.get("duckNum");
-       /* Calendar calendar = Calendar.getInstance();
-        calendar.set(Calendar.DATE, calendar.get(Calendar.DATE - 7));*/
-        QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("farm_id", farmId).eq("duck_num", duckNum)
-        /*.ge("call_date", calendar.getTime())*/;
-        List<EnvMoveCallVo> envMoveCallVos = moveCallMapper.listScreen(queryWrapper);
+        DateTime dateTime = DateUtil.offsetDay(DateUtil.beginOfDay(new Date()), -7);
 
-        QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
-        queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum).eq("event_type", 0)
-        /*.ge("call_date", calendar.getTime())*/;
+        JSONObject jsonObject = new JSONObject();
+        List<EnvMoveCallVo> envMoveCallVoList = new ArrayList<>();
+        QueryWrapper<EnvMoveCall> callQueryWrapper = new QueryWrapper<>();
+        callQueryWrapper.eq("farm_id", farmId).eq("duck_num", duckNum);
+        List<EnvMoveCall> moveCalls = moveCallMapper.selectList(callQueryWrapper);
+        if (moveCalls.size() == 0) {
+            QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId);
+            List<EnvMoveCallVo> envMoveCallVos = moveCallMapper.listScreen2(queryWrapper);
+            for (EnvMoveCallVo envMoveCallVo : envMoveCallVos) {
+                EnvMoveCallVo moveCallVo = new EnvMoveCallVo();
+                moveCallVo.setCallDate(envMoveCallVo.getCallDate());
+                moveCallVo.setDuckWeight(BigDecimal.ZERO);
+                moveCallVo.setAvgWeight(envMoveCallVo.getAvgWeight());
+                envMoveCallVoList.add(moveCallVo);
+            }
+            jsonObject.put("weight", envMoveCallVoList);
+        } else {
+            QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).ge("call_date",dateTime);
+            List<EnvMoveCallVo> envMoveCallVos = moveCallMapper.listScreen2(queryWrapper);
+            int i = 0;
+            for (EnvMoveCallVo envMoveCallVo : envMoveCallVos) {
+                EnvMoveCallVo moveCallVo = new EnvMoveCallVo();
+                QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
+                Date callDate = envMoveCallVo.getCallDate();
+                queryWrapper1.eq("farm_id", farmId).eq("duck_num", duckNum).between("call_date",DateUtil.offsetDay(dateTime,i),DateUtil.offsetDay(dateTime,i+1)).orderByDesc("id").last(" limit 1");
+                EnvMoveCall envMoveCall = moveCallMapper.selectOne(queryWrapper1);
+                if (ObjectUtil.isEmpty(envMoveCall)) {
+                    moveCallVo.setDuckWeight(BigDecimal.ZERO);
+                    moveCallVo.setCallDate(callDate);
+                } else {
+                    moveCallVo.setDuckWeight(envMoveCall.getDuckWeight());
+                    moveCallVo.setCallDate(envMoveCall.getCallDate());
+                }
+                moveCallVo.setAvgWeight(envMoveCallVo.getAvgWeight());
+                envMoveCallVoList.add(moveCallVo);
+                 i++;
+            }
+            jsonObject.put("weight", envMoveCallVoList);
+        }
 
-        List<EnvRegularCallFeedingVo> envRegularCallFeedingVos = feedingMapper.listScreen(queryWrapper1);
 
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("weight", envMoveCallVos);
-        jsonObject.put("feed", envRegularCallFeedingVos);
+        List<EnvRegularCallFeedingVo> feedingVoList = new ArrayList<>();
+        QueryWrapper<EnvRegularCallFeeding> feedingQueryWrapper = new QueryWrapper<>();
+        feedingQueryWrapper.eq("farm_id", farmId).eq("duck_num", duckNum);
+        List<EnvRegularCallFeeding> feedings = feedingMapper.selectList(feedingQueryWrapper);
+        if (feedings.size() == 0) {
+            QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("farm_id", farmId).eq("event_type", 0);
+            List<EnvRegularCallFeedingVo> envRegularCallFeedingVos = feedingMapper.listScreen2(queryWrapper1);
+            queryWrapper1.groupBy("duck_num");
+            List<EnvRegularCallFeeding> list = feedingMapper.selectList(queryWrapper1);
+            for (EnvRegularCallFeedingVo envRegularCallFeedingVo : envRegularCallFeedingVos) {
+                EnvRegularCallFeedingVo feedingVo = new EnvRegularCallFeedingVo();
+                BigDecimal value = BigDecimal.valueOf(envRegularCallFeedingVo.getDuckWeight());
+                BigDecimal decimal = BigDecimal.valueOf(list.size());
+                BigDecimal decimal1 = value.divide(decimal, 2);//pingjun
+                feedingVo.setAvgWeight(decimal1);
+                feedingVo.setDuckWeight(0);
+                feedingVo.setCallDate(envRegularCallFeedingVo.getCallDate());
+                feedingVoList.add(feedingVo);
+            }
+            jsonObject.put("feed", feedingVoList);
+        } else {
+            QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("farm_id", farmId).eq("event_type", 0).ge("call_date",dateTime);
+            Integer integer = feedingMapper.selectCount(queryWrapper1);
+            queryWrapper1.eq("duck_num", duckNum);
+            List<EnvRegularCallFeedingVo> feedingVoList1 = feedingMapper.listScreen2(queryWrapper1);//某只鸭子的总采食量
+            int i = 0;
+            for (EnvRegularCallFeedingVo envRegularCallFeedingVo : feedingVoList1) {
+                Date callDate = envRegularCallFeedingVo.getCallDate();
+                QueryWrapper<EnvRegularCallFeeding> callFeedingQueryWrapper = new QueryWrapper<>();
+                callFeedingQueryWrapper.eq("farm_id", farmId).eq("event_type", 0).between("call_date", DateUtil.offsetDay(dateTime,i), DateUtil.offsetDay(dateTime, i));
+                callFeedingQueryWrapper.select("IFNULL(SUM(duck_weight),0) duckWeight");
+                EnvRegularCallFeeding feeding = feedingMapper.selectOne(callFeedingQueryWrapper);
+                EnvRegularCallFeedingVo feedingVo = new EnvRegularCallFeedingVo();
+                BigDecimal value = BigDecimal.valueOf(feeding.getDuckWeight());
+                BigDecimal decimal = BigDecimal.valueOf(integer);
+                BigDecimal decimal1 = value.divide(decimal, 2);//pingjun
+                feedingVo.setAvgWeight(decimal1);
+                feedingVo.setDuckWeight(envRegularCallFeedingVo.getDuckWeight());
+                feedingVo.setCallDate(envRegularCallFeedingVo.getCallDate());
+                feedingVoList.add(feedingVo);
+                i++;
+            }
+            jsonObject.put("feed", feedingVoList);
+        }
+
         return new Result(ResultCode.SUCCESS, jsonObject);
     }
 

+ 12 - 24
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/EnvRegularCallFeedingServiceImpl.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.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.huimv.guowei.admin.common.utils.DataUill;
@@ -113,34 +114,21 @@ public class EnvRegularCallFeedingServiceImpl extends ServiceImpl<EnvRegularCall
         if (pageSize == null || "".equals(pageSize)) {
             pageSize = "10";
         }
-        QueryWrapper<EnvRegularCallFeeding> queryWrapper1 = new QueryWrapper<>();
-        queryWrapper1.eq("farm_id", farmId).groupBy("duck_id");
-        List<EnvRegularCallFeeding> feedings = feedingMapper.selectList(queryWrapper1);
-        List<Integer> list = new ArrayList<>();
-        if (feedings.size() != 0) {
-            for (EnvRegularCallFeeding feeding : feedings) {
-                QueryWrapper<BaseDuckInfo> infoQueryWrapper = new QueryWrapper<>();
-                infoQueryWrapper.eq("farm_id", farmId).eq("id", feeding.getDuckId());
-                BaseDuckInfo baseDuckInfo = infoMapper.selectOne(infoQueryWrapper);
-                if (ObjectUtil.isNotEmpty(baseDuckInfo)) {
-                    list.add(feeding.getDuckId());
-                }
-
-            }
-        }
-
         Date timesMonthmorning = DataUill.getTimesmorning();
-        QueryWrapper<EnvRegularCallFeeding> queryWrapper = new QueryWrapper<>();
-        if (list.size() != 0) {
-            queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(unitName), "unit_name", unitName).in("duck_id", list)
-                    .select("SUM(duck_weight) duckWeight,duck_num duckNum,call_date callDate,unit_name unitName,duck_id duckId")
+        Page<EnvRegularCallFeeding> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
+        if ("".equals(unitName) || null == unitName) {
+            return new Result(ResultCode.SUCCESS, feedingMapper.listSelect(page, timesMonthmorning,farmId));
+        } else {
+
+            QueryWrapper<EnvRegularCallFeeding> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("farm_id", farmId).like(StringUtils.isNotBlank(unitName), "unit_name", unitName)
+                    .select("IFNULL(SUM(duck_weight),0) duckWeight,duck_num duckNum,call_date callDate,unit_name unitName,duck_id duckId")
                     .ge("call_date", timesMonthmorning)
                     .orderByDesc("call_date");
-        } else {
-            return new Result(ResultCode.SUCCESS, null);
+
+            return new Result(ResultCode.SUCCESS, feedingMapper.selectPage(page, queryWrapper));
         }
-        Page<EnvRegularCallFeeding> page = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
-        return new Result(ResultCode.SUCCESS, feedingMapper.selectPage(page, queryWrapper));
+
     }
 
     @Override

+ 8 - 1
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvMoveCallMapper.xml

@@ -25,7 +25,14 @@
     </select>
 
     <select id="listScreen" resultType="com.huimv.guowei.admin.entity.vo.EnvMoveCallVo">
-        SELECT (IFNUll(sum(duck_weight),'0')) 'duckWeight',ROUND(avg(duck_weight),2) avgWeight,call_date callDate FROM `env_move_call`
+        SELECT duck_weight 'duckWeight',ROUND(avg(duck_weight),2) avgWeight,call_date callDate FROM `env_move_call`
+         ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(call_date,'%Y-%m-%d')
+        ORDER BY dayage ASC
+    </select>
+
+    <select id="listScreen2" resultType="com.huimv.guowei.admin.entity.vo.EnvMoveCallVo">
+        SELECT ROUND(avg(duck_weight),2) avgWeight,call_date callDate FROM `env_move_call`
          ${ew.customSqlSegment}
         GROUP BY DATE_FORMAT(call_date,'%Y-%m-%d')
         ORDER BY dayage ASC

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

@@ -68,6 +68,12 @@
         GROUP BY DATE_FORMAT(call_date,'%Y-%m-%d')
         ORDER BY call_date ASC
     </select>
+    <select id="listScreen2" resultType="com.huimv.guowei.admin.entity.vo.EnvRegularCallFeedingVo">
+        SELECT duck_num 'duckNum',call_date 'callDate',(IFNUll(sum(duck_weight),'0')) 'duckWeight'  FROM `env_regular_call_feeding`
+         ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(call_date,'%Y-%m-%d')
+        ORDER BY call_date ASC
+    </select>
 
     <select id="listCount" resultType="com.huimv.guowei.admin.entity.vo.EnvRegularCallEggVo">
  SELECT t1.duck_num AS duckCode,IFNULL(t1.duckWeight, 0) AS feed, IFNULL(t2.eggNum, 0) AS eggNum,
@@ -87,4 +93,11 @@ LEFT JOIN (
 ON DATE_FORMAT(t1.call_date,"%Y-%m-%d") = DATE_FORMAT(t2.call_date,"%Y-%m-%d")
 ORDER BY t1.call_date Desc;
     </select>
+    <select id="listSelect" resultType="com.huimv.guowei.admin.entity.EnvRegularCallFeeding">
+SELECT a.duck_num duckNum,a.unit_name unitName,a.id duckId,IFNULL(b.duckWeight,'0') duckWeight,IFNULL(b.callDate,#{date}) callDate
+from base_duck_info a LEFT JOIN
+(select IFNULL(SUM(duck_weight),0) duckWeight,duck_num duckNum,duck_id duckId,call_date callDate from env_regular_call_feeding where call_date>#{date} and farm_id=#{farmId}) b ON a.id=b.duckId
+where farm_id=#{farmId} and a.is_cage='0'
+ORDER BY b.callDate DESC
+    </select>
 </mapper>