瀏覽代碼

精准饲喂移动端接口

wwh 1 年之前
父節點
當前提交
0dd3428d12

+ 29 - 4
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/controller/FeedingFatController.java

@@ -28,11 +28,10 @@ import vip.xiaonuo.common.annotation.CommonLog;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.common.pojo.CommonValidList;
 import vip.xiaonuo.modular.feed.feedingfat.entity.FeedingFat;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatAddParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatEditParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatIdParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatPageParam;
+import vip.xiaonuo.modular.feed.feedingfat.param.*;
 import vip.xiaonuo.modular.feed.feedingfat.service.FeedingFatService;
+import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatMoveVo;
+import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatMoveVo2;
 import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo;
 import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2;
 import vip.xiaonuo.modular.feed.feedinglist.vo.FeedingListVo2;
@@ -98,4 +97,30 @@ public class FeedingFatController {
         return CommonResult.data(feedingFatService.listDetail(feedingFatEditParam));
     }
 
+    /**
+     * 采食曲线
+     *
+     * @author wang
+     * @date  2023/12/27 15:34
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("精准饲喂全场监测")
+    @PostMapping("/feed/feedinglist/listFatMove")
+    public CommonResult<FeedingFatMoveVo> listFatMove(@RequestBody @Valid FeedingFatMoveParam feedingFatEditParam) {
+        return CommonResult.data(feedingFatService.listFatMove(feedingFatEditParam));
+    }
+
+
+    /**
+     * 采食曲线
+     *
+     * @author wang
+     * @date  2023/12/27 15:34
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("精准饲喂移动端栋舍")
+    @PostMapping("/feed/feedinglist/listFatByUnitId")
+    public CommonResult<FeedingFatMoveVo2> listFatByUnitId(@RequestBody @Valid FeedingFatMove2Param fatMove2Param) {
+        return CommonResult.data(feedingFatService.listFatByUnitId(fatMove2Param));
+    }
 }

+ 17 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/mapper/FeedingFatMapper.java

@@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import vip.xiaonuo.modular.feed.feedingfat.entity.FeedingFat;
+import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatMoveVo;
 import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo;
 import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2;
 
@@ -40,4 +41,20 @@ public interface FeedingFatMapper extends BaseMapper<FeedingFat> {
     List<FeedingFatVo2> listTempDetail(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
     List<FeedingFatVo2> listActDetail(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
     List<FeedingFatVo2> listWeightDetail(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
+
+    FeedingFatMoveVo listFatMove(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
+
+    /*移动端采食曲线*/
+    List<FeedingFatVo2> listFeeding(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
+    /*移动端饮水曲线*/
+    List<FeedingFatVo2> listWater(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
+    /*移动端料肉比曲线*/
+    List<FeedingFatVo2> listweigth(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
+
+    /*移动端月采食曲线*/
+    List<FeedingFatVo2> listMonthFeeding(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
+    /*移动端月饮水曲线*/
+    List<FeedingFatVo2> listMonthWater(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
+    /*移动端月料肉比曲线*/
+    List<FeedingFatVo2> listMonthweigth(@Param(Constants.WRAPPER) QueryWrapper<FeedingFat> queryWrapper);
 }

+ 50 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/mapper/mapping/FeedingFatMapper.xml

@@ -59,4 +59,54 @@
         group BY DATE_FORMAT(create_time,'%Y-%m-%d')
         ORDER BY create_time ASC
     </select>
+
+    <select id="listFatMove" resultType="vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatMoveVo">
+        select IFNULL(SUM(feed_value),'0') todayFeed,IFNULL(SUM(water_value),'0') todayWater
+        FROM feeding_fat
+        ${ew.customSqlSegment}
+    </select>
+
+    <select id="listFeeding" resultType="vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2">
+        select IFNULL(SUM(feed_value),'0') value,create_time createDate
+        FROM feeding_fat
+        ${ew.customSqlSegment}
+        group BY DATE_FORMAT(create_time,'%Y-%m-%d %H')
+        ORDER BY create_time ASC
+    </select>
+    <select id="listWater" resultType="vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2">
+        select IFNULL(SUM(water_value),'0') value,create_time createDate
+        FROM feeding_fat
+        ${ew.customSqlSegment}
+        group BY DATE_FORMAT(create_time,'%Y-%m-%d %H')
+        ORDER BY create_time ASC
+    </select>
+    <select id="listweigth" resultType="vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2">
+        select IFNULL(SUM(weigth_value),'0') value,create_time createDate
+        FROM feeding_fat
+        ${ew.customSqlSegment}
+        group BY DATE_FORMAT(create_time,'%Y-%m-%d %H')
+        ORDER BY create_time ASC
+    </select>
+
+    <select id="listMonthFeeding" resultType="vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2">
+        select IFNULL(SUM(feed_value),'0') value,create_time createDate
+        FROM feeding_fat
+        ${ew.customSqlSegment}
+        group BY DATE_FORMAT(create_time,'%Y-%m-%d')
+        ORDER BY create_time ASC
+    </select>
+    <select id="listMonthWater" resultType="vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2">
+        select IFNULL(SUM(water_value),'0') value,create_time createDate
+        FROM feeding_fat
+        ${ew.customSqlSegment}
+        group BY DATE_FORMAT(create_time,'%Y-%m-%d')
+        ORDER BY create_time ASC
+    </select>
+    <select id="listMonthweigth" resultType="vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2">
+        select IFNULL(SUM(weigth_value),'0') value,create_time createDate
+        FROM feeding_fat
+        ${ew.customSqlSegment}
+        group BY DATE_FORMAT(create_time,'%Y-%m-%d')
+        ORDER BY create_time ASC
+    </select>
 </mapper>

+ 41 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/param/FeedingFatMove2Param.java

@@ -0,0 +1,41 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.feed.feedingfat.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 精准饲喂母猪采食编辑参数
+ *
+ * @author wang
+ * @date  2023/12/28 09:22
+ **/
+@Getter
+@Setter
+public class FeedingFatMove2Param {
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id",required = true)
+    private String orgId;
+
+    /** 栋舍id */
+    @ApiModelProperty(value = "栋舍id",required = true)
+    private String unitId;
+
+    /** 查询类型 */
+    @ApiModelProperty(value = "查询类型 1为日 2为月",required = true)
+    private String type;
+
+}

+ 33 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/param/FeedingFatMoveParam.java

@@ -0,0 +1,33 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.modular.feed.feedingfat.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 精准饲喂母猪采食编辑参数
+ *
+ * @author wang
+ * @date  2023/12/28 09:22
+ **/
+@Getter
+@Setter
+public class FeedingFatMoveParam {
+
+    /** 组织id */
+    @ApiModelProperty(value = "组织id",required = true)
+    private String orgId;
+
+}

+ 11 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/param/FeedingFatPageParam.java

@@ -62,4 +62,15 @@ public class FeedingFatPageParam {
     @ApiModelProperty(value = "母猪耳标号", required = false)
     private String eartagNum;
 
+    /**
+     * 排序方式
+     */
+    @ApiModelProperty(value = "起始时间 不带时分秒")
+    private String startDate;
+
+    /**
+     * 排序方式
+     */
+    @ApiModelProperty(value = "截至时间 不带时分秒")
+    private String endDate;
 }

+ 9 - 4
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/service/FeedingFatService.java

@@ -16,10 +16,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.modular.feed.feedingfat.entity.FeedingFat;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatAddParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatEditParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatIdParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatPageParam;
+import vip.xiaonuo.modular.feed.feedingfat.param.*;
+import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatMoveVo;
+import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatMoveVo2;
 import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo;
 import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2;
 
@@ -39,4 +38,10 @@ public interface FeedingFatService extends IService<FeedingFat> {
     IPage<FeedingFatVo> fatPage(FeedingFatPageParam feedingFatPageParam);
 
     List<FeedingFatVo2> listDetail(FeedingFatEditParam feedingFatEditParam);
+
+    /*移动端全场实时监测*/
+    FeedingFatMoveVo listFatMove(FeedingFatMoveParam fatMoveParam);
+
+    /*移动端栋舍监测*/
+    FeedingFatMoveVo2 listFatByUnitId(FeedingFatMove2Param fatMove2Param);
 }

+ 105 - 38
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/service/impl/FeedingFatServiceImpl.java

@@ -18,6 +18,8 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -37,14 +39,15 @@ import vip.xiaonuo.modular.feed.feedingenv.entity.FeedingEnv;
 import vip.xiaonuo.modular.feed.feedingenv.mapper.FeedingEnvMapper;
 import vip.xiaonuo.modular.feed.feedingfat.entity.FeedingFat;
 import vip.xiaonuo.modular.feed.feedingfat.mapper.FeedingFatMapper;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatAddParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatEditParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatIdParam;
-import vip.xiaonuo.modular.feed.feedingfat.param.FeedingFatPageParam;
+import vip.xiaonuo.modular.feed.feedingfat.param.*;
 import vip.xiaonuo.modular.feed.feedingfat.service.FeedingFatService;
+import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatMoveVo;
+import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatMoveVo2;
 import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo;
 import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2;
 import vip.xiaonuo.modular.feed.feedinglist.entity.FeedingList;
+import vip.xiaonuo.modular.feed.feedinglist.mapper.FeedingListMapper;
+import vip.xiaonuo.modular.feed.feedinglist.vo.FeedingListVo;
 import vip.xiaonuo.modular.feed.feedinglist.vo.FeedingListVo2;
 
 
@@ -58,7 +61,7 @@ import java.util.Map;
  * 精准饲喂母猪采食Service接口实现类
  *
  * @author wang
- * @date  2023/12/28 09:22
+ * @date 2023/12/28 09:22
  **/
 @Service
 public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, FeedingFat> implements FeedingFatService {
@@ -68,6 +71,8 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
     private FeedingEnvMapper envMapper;
     @Autowired
     private BasePigpenMapper pigpenMapper;
+    @Autowired
+    private FeedingListMapper feedingListMapper;
 
 
     @Override
@@ -79,7 +84,7 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
         List<BasePigpen> basePigpens = pigpenMapper.selectList(queryWrapper);
         List<String> idList = new ArrayList<>();
         if (basePigpens.size() != 0) {
-            basePigpens.forEach(item->{
+            basePigpens.forEach(item -> {
                 idList.add(item.getId());
             });
         }
@@ -109,13 +114,14 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
 
     @Override
     public IPage<FeedingFatVo> fatPage(FeedingFatPageParam feedingFatPageParam) {
-        String orgId =feedingFatPageParam.getOrgId();
+        String orgId = feedingFatPageParam.getOrgId();
         Integer pageNum = feedingFatPageParam.getCurrent();
         Integer pageSize = feedingFatPageParam.getSize();
         String eartagNum = feedingFatPageParam.getEartagNum();
         QueryWrapper<FeedingFat> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("org_id", orgId).eq(StringUtils.isNotBlank(eartagNum), "eartag_num", eartagNum);
-        Page<FeedingFat> page = new Page<>(pageNum,pageSize);
+        queryWrapper.eq("org_id", orgId)
+                .eq(StringUtils.isNotBlank(eartagNum), "eartag_num", eartagNum);
+        Page<FeedingFat> page = new Page<>(pageNum, pageSize);
         IPage<FeedingFatVo> fatVoIPage = fatMapper.listFeedPage(page, queryWrapper);
         return fatVoIPage;
     }
@@ -123,7 +129,7 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
     @Override
     public List<FeedingFatVo2> listDetail(FeedingFatEditParam feedingFatEditParam) {
         String orgId = feedingFatEditParam.getOrgId();
-        String eartagNum =feedingFatEditParam.getEartagNum();
+        String eartagNum = feedingFatEditParam.getEartagNum();
         String dataType = feedingFatEditParam.getDataType();//数据类型 1为采食 2为体温 3为活跃量 4为膘体
         String timeType = feedingFatEditParam.getTimeType();//时间类型 1为今日 2为本周 3为本月 4为自定义
         if ("".equals(timeType) || null == timeType) {
@@ -137,7 +143,7 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
         Date monthmorning = DataUill.getTimesMonthmorning();
         if ("1".equals(dataType)) {
             if ("1".equals(timeType)) {
-                queryWrapper.ge("create_time",timesmorning).orderByAsc("create_time");
+                queryWrapper.ge("create_time", timesmorning).orderByAsc("create_time");
                 List<FeedingFat> fats = fatMapper.selectList(queryWrapper);
                 for (FeedingFat fat : fats) {
                     FeedingFatVo2 fatVo2 = new FeedingFatVo2();
@@ -145,24 +151,22 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
                     fatVo2.setCreateDate(fat.getCreateTime());
                     list.add(fatVo2);
                 }
-            }else if ("2".equals(timeType)){
+            } else if ("2".equals(timeType)) {
                 queryWrapper.ge("create_time", dateTime);
                 list = fatMapper.listFeedDetail(queryWrapper);
-            }
-            else if ("3".equals(timeType)){
+            } else if ("3".equals(timeType)) {
                 queryWrapper.ge("create_time", monthmorning);
                 list = fatMapper.listFeedDetail(queryWrapper);
-            }
-            else if ("4".equals(timeType)){
+            } else if ("4".equals(timeType)) {
                 String startTime = feedingFatEditParam.getStartTime() + " 00:00:00";
                 String endTime = feedingFatEditParam.getEndTime() + " 23:59:59";
-                queryWrapper.between("create_time", startTime,endTime);
+                queryWrapper.between("create_time", startTime, endTime);
                 list = fatMapper.listFeedDetail(queryWrapper);
             }
         }
         if ("2".equals(dataType)) {
             if ("1".equals(timeType)) {
-                queryWrapper.ge("create_time",timesmorning).orderByAsc("create_time");
+                queryWrapper.ge("create_time", timesmorning).orderByAsc("create_time");
                 List<FeedingFat> fats = fatMapper.selectList(queryWrapper);
                 for (FeedingFat fat : fats) {
                     FeedingFatVo2 fatVo2 = new FeedingFatVo2();
@@ -170,24 +174,22 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
                     fatVo2.setCreateDate(fat.getCreateTime());
                     list.add(fatVo2);
                 }
-            }else if ("2".equals(timeType)){
+            } else if ("2".equals(timeType)) {
                 queryWrapper.ge("create_time", dateTime);
                 list = fatMapper.listTempDetail(queryWrapper);
-            }
-            else if ("3".equals(timeType)){
+            } else if ("3".equals(timeType)) {
                 queryWrapper.ge("create_time", monthmorning);
                 list = fatMapper.listTempDetail(queryWrapper);
-            }
-            else if ("4".equals(timeType)){
+            } else if ("4".equals(timeType)) {
                 String startTime = feedingFatEditParam.getStartTime() + " 00:00:00";
                 String endTime = feedingFatEditParam.getEndTime() + " 23:59:59";
-                queryWrapper.between("create_time", startTime,endTime);
+                queryWrapper.between("create_time", startTime, endTime);
                 list = fatMapper.listTempDetail(queryWrapper);
             }
         }
         if ("3".equals(dataType)) {
             if ("1".equals(timeType)) {
-                queryWrapper.ge("create_time",timesmorning).orderByAsc("create_time");
+                queryWrapper.ge("create_time", timesmorning).orderByAsc("create_time");
                 List<FeedingFat> fats = fatMapper.selectList(queryWrapper);
                 for (FeedingFat fat : fats) {
                     FeedingFatVo2 fatVo2 = new FeedingFatVo2();
@@ -195,24 +197,22 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
                     fatVo2.setCreateDate(fat.getCreateTime());
                     list.add(fatVo2);
                 }
-            }else if ("2".equals(timeType)){
+            } else if ("2".equals(timeType)) {
                 queryWrapper.ge("create_time", dateTime);
                 list = fatMapper.listActDetail(queryWrapper);
-            }
-            else if ("3".equals(timeType)){
+            } else if ("3".equals(timeType)) {
                 queryWrapper.ge("create_time", monthmorning);
                 list = fatMapper.listActDetail(queryWrapper);
-            }
-            else if ("4".equals(timeType)){
+            } else if ("4".equals(timeType)) {
                 String startTime = feedingFatEditParam.getStartTime() + " 00:00:00";
                 String endTime = feedingFatEditParam.getEndTime() + " 23:59:59";
-                queryWrapper.between("create_time", startTime,endTime);
+                queryWrapper.between("create_time", startTime, endTime);
                 list = fatMapper.listActDetail(queryWrapper);
             }
         }
         if ("4".equals(dataType)) {
             if ("1".equals(timeType)) {
-                queryWrapper.ge("create_time",timesmorning).orderByAsc("create_time");
+                queryWrapper.ge("create_time", timesmorning).orderByAsc("create_time");
                 List<FeedingFat> fats = fatMapper.selectList(queryWrapper);
                 for (FeedingFat fat : fats) {
                     FeedingFatVo2 fatVo2 = new FeedingFatVo2();
@@ -220,23 +220,90 @@ public class FeedingFatServiceImpl extends ServiceImpl<FeedingFatMapper, Feeding
                     fatVo2.setCreateDate(fat.getCreateTime());
                     list.add(fatVo2);
                 }
-            }else if ("2".equals(timeType)){
+            } else if ("2".equals(timeType)) {
                 queryWrapper.ge("create_time", dateTime);
                 list = fatMapper.listWeightDetail(queryWrapper);
-            }
-            else if ("3".equals(timeType)){
+            } else if ("3".equals(timeType)) {
                 queryWrapper.ge("create_time", monthmorning);
                 list = fatMapper.listWeightDetail(queryWrapper);
-            }
-            else if ("4".equals(timeType)){
+            } else if ("4".equals(timeType)) {
                 String startTime = feedingFatEditParam.getStartTime() + " 00:00:00";
                 String endTime = feedingFatEditParam.getEndTime() + " 23:59:59";
-                queryWrapper.between("create_time", startTime,endTime);
+                queryWrapper.between("create_time", startTime, endTime);
                 list = fatMapper.listWeightDetail(queryWrapper);
             }
         }
         return list;
     }
 
+    @Override
+    public FeedingFatMoveVo listFatMove(FeedingFatMoveParam fatMoveParam) {
+        Date timesmorning = DataUill.getTimesmorning();
+        QueryWrapper<FeedingFat> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("org_id", fatMoveParam.getOrgId());
+        //全场
+        FeedingFatMoveVo feedingFatMoveVo = fatMapper.listFatMove(queryWrapper);
+        List<FeedingListVo> feedingListVos = feedingListMapper.listFeed(new QueryWrapper<FeedingList>()
+                .eq("org_id", fatMoveParam.getOrgId()));
+        feedingFatMoveVo.setFeedingName(feedingListVos);
+        JSONArray jsonArray = new JSONArray();
+        for (FeedingListVo feedingListVo : feedingListVos) {
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("feedName", feedingListVo.getUnitName());
+            List<FeedingFatVo2> list = feedingListMapper.feedMove(new QueryWrapper<FeedingList>()
+                    .eq("org_id", fatMoveParam.getOrgId()).
+                    eq("unit_id", feedingListVo.getUnitId()).ge("create_time", timesmorning));
+            jsonObject.put("value", list);
+            jsonArray.add(jsonObject);
+        }
+        feedingFatMoveVo.setJsonArray(jsonArray);
+        return feedingFatMoveVo;
+    }
+
+    @Override
+    public FeedingFatMoveVo2 listFatByUnitId(FeedingFatMove2Param fatMove2Param) {
+        Date timesmorning = DataUill.getTimesmorning();
+        QueryWrapper<BasePigpen> basePigpenQueryWrapper = new QueryWrapper<>();
+        basePigpenQueryWrapper.eq("org_id", fatMove2Param.getOrgId())
+                .like("pids", fatMove2Param.getUnitId()).eq("type", 2);
+        List<BasePigpen> basePigpens = pigpenMapper.selectList(basePigpenQueryWrapper);
+        List<String> idList = new ArrayList<>();
+        basePigpens.forEach(item->{
+            idList.add(item.getId());
+        });
+
+        FeedingFatMoveVo2 vo2 = new FeedingFatMoveVo2();
+        QueryWrapper<FeedingFat> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("org_id", fatMove2Param.getOrgId()).in("unit_id", idList)
+                .ge("create_time", timesmorning);
+        if ("1".equals(fatMove2Param.getType())) {
+            FeedingFatMoveVo feedingFatMoveVo = fatMapper.listFatMove(queryWrapper);//今日采食和饮水
+            List<FeedingFatVo2> list = fatMapper.listFeeding(queryWrapper);//采食
+            List<FeedingFatVo2> list1 = fatMapper.listFeeding(queryWrapper);//饮水
+            List<FeedingFatVo2> list2 = fatMapper.listFeeding(queryWrapper);//料肉比
+            vo2.setTodayFeed(feedingFatMoveVo.getTodayFeed());
+            vo2.setTodayWater(feedingFatMoveVo.getTodayWater());
+            vo2.setFeedingList(list);
+            vo2.setWaterList(list1);
+            vo2.setBodyList(list2);
+        }
+        if ("2".equals(fatMove2Param.getType())) {
+            FeedingFatMoveVo feedingFatMoveVo = fatMapper.listFatMove(queryWrapper);//今日采食和饮水
+            Date monthmorning = DataUill.getTimesMonthmorning();
+            QueryWrapper<FeedingFat> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq("org_id", fatMove2Param.getOrgId()).in("unit_id", idList)
+                    .ge("create_time", monthmorning);
+            List<FeedingFatVo2> list = fatMapper.listMonthFeeding(queryWrapper1);
+            List<FeedingFatVo2> list1 = fatMapper.listMonthWater(queryWrapper1);
+            List<FeedingFatVo2> list2 = fatMapper.listMonthweigth(queryWrapper1);
+            vo2.setTodayFeed(feedingFatMoveVo.getTodayFeed());
+            vo2.setTodayWater(feedingFatMoveVo.getTodayWater());
+            vo2.setFeedingList(list);
+            vo2.setWaterList(list1);
+            vo2.setBodyList(list2);
+        }
+        return vo2;
+    }
+
 
 }

+ 29 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/vo/FeedingFatMoveVo.java

@@ -0,0 +1,29 @@
+package vip.xiaonuo.modular.feed.feedingfat.vo;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import vip.xiaonuo.modular.feed.feedinglist.vo.FeedingListVo;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class FeedingFatMoveVo {
+
+
+
+    @ApiModelProperty(value = "饲料消耗")
+    private String todayFeed;
+
+    @ApiModelProperty(value = "饮水消耗")
+    private String todayWater;
+
+    @ApiModelProperty(value = "料塔余量")
+    private List<FeedingListVo> feedingName;
+
+    @ApiModelProperty(value = "料塔曲线")
+    private JSONArray jsonArray;
+
+}

+ 30 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedingfat/vo/FeedingFatMoveVo2.java

@@ -0,0 +1,30 @@
+package vip.xiaonuo.modular.feed.feedingfat.vo;
+
+import com.alibaba.fastjson.JSONArray;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import vip.xiaonuo.modular.feed.feedinglist.vo.FeedingListVo;
+
+import java.util.List;
+
+@Data
+public class FeedingFatMoveVo2 {
+
+
+
+    @ApiModelProperty(value = "今日总采食")
+    private String todayFeed;
+
+    @ApiModelProperty(value = "今日总饮水")
+    private String todayWater;
+
+    @ApiModelProperty(value = "采食曲线")
+    private List<FeedingFatVo2> feedingList;
+
+    @ApiModelProperty(value = "饮水曲线")
+    private List<FeedingFatVo2> waterList;
+
+    @ApiModelProperty(value = "料肉比")
+    private List<FeedingFatVo2> bodyList;
+
+}

+ 3 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedinglist/mapper/FeedingListMapper.java

@@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import io.netty.util.Constant;
 import org.apache.ibatis.annotations.Param;
+import vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2;
 import vip.xiaonuo.modular.feed.feedinglist.entity.FeedingList;
 import vip.xiaonuo.modular.feed.feedinglist.vo.FeedingListVo;
 import vip.xiaonuo.modular.feed.feedinglist.vo.FeedingListVo2;
@@ -33,4 +34,6 @@ public interface FeedingListMapper extends BaseMapper<FeedingList> {
     List<FeedingListVo> listFeed(@Param(Constants.WRAPPER) QueryWrapper<FeedingList> queryWrapper);
 
     List<FeedingListVo2> feedList(@Param(Constants.WRAPPER) QueryWrapper<FeedingList> queryWrapper);
+
+    List<FeedingFatVo2> feedMove(@Param(Constants.WRAPPER) QueryWrapper<FeedingList> queryWrapper);
 }

+ 8 - 0
snowy-web-app/src/main/java/vip/xiaonuo/modular/feed/feedinglist/mapper/mapping/FeedingListMapper.xml

@@ -18,4 +18,12 @@ ON a.upload_time=b.upload_time
     group BY DATE_FORMAT(create_time,'%Y-%m-%d')
     ORDER BY create_time ASC
 </select>
+
+    <select id="feedMove" resultType="vip.xiaonuo.modular.feed.feedingfat.vo.FeedingFatVo2">
+        select IFNULL(SUM(margin_value),'0') 'value', create_time 'createDate'
+        from
+        feeding_list
+        ${ew.customSqlSegment}
+        ORDER BY create_time ASC
+    </select>
 </mapper>