Browse Source

新增生物资产统计接口。

zhuoning 2 years ago
parent
commit
59da9aa677

+ 5 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/FarmerAssetMapper.java

@@ -4,6 +4,7 @@ import com.huimv.eartag2.manage2.pojo.FarmerAsset;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -17,4 +18,8 @@ import java.util.List;
 public interface FarmerAssetMapper extends BaseMapper<FarmerAsset> {
 
     List<FarmerAsset> getLastManyMonthAssets(@Param("farmCode") String farmCode,@Param("manyMonth") String manyMonth);
+
+    BigDecimal getPigWeightByDayage(@Param("days") long days);
+
+    List<FarmerAsset> getAssetByMonth(@Param("months") int months);
 }

+ 6 - 0
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/mapper/xml/FarmerAssetMapper.xml

@@ -19,5 +19,11 @@
     <select id="getLastManyMonthAssets" resultType="com.huimv.eartag2.manage2.pojo.FarmerAsset">
         SELECT * FROM farmer_asset WHERE farm_code = #{farmCode} ORDER BY year desc,month desc;
     </select>
+    <select id="getPigWeightByDayage" resultType="java.math.BigDecimal" parameterType="long">
+        SELECT weight FROM farmer_dayage_weight WHERE start_dayage &lt;= #{days} AND #{days} &lt;= end_dayage
+    </select>
+    <select id="getAssetByMonth" resultType="com.huimv.eartag2.manage2.pojo.FarmerAsset" parameterType="int">
+        SELECT * FROM farmer_asset ORDER BY YEAR DESC,MONTH DESC LIMIT #{months}
+    </select>
 
 </mapper>

+ 2 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/FarmerAssetService.java

@@ -4,6 +4,7 @@ import com.huimv.eartag2.common.utils.Result;
 import com.huimv.eartag2.manage2.pojo.FarmerAsset;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -19,5 +20,5 @@ public interface FarmerAssetService extends IService<FarmerAsset> {
 
     List<FarmerAsset> getLastManyMonthAssets(String farmCode, String manyMonth);
 
-    Result getAssetStatistics(Map<String, Object> paramsMap);
+    Result getAssetStatistics(Map<String, Object> paramsMap) throws ParseException;
 }

+ 46 - 16
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/java/com/huimv/eartag2/manage2/service/impl/FarmerAssetServiceImpl.java

@@ -1,5 +1,6 @@
 package com.huimv.eartag2.manage2.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.eartag2.common.utils.DateUtil;
@@ -16,8 +17,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.huimv.eartag2.manage2.service.IEartagEartagRegister2Service;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -41,7 +46,8 @@ public class FarmerAssetServiceImpl extends ServiceImpl<FarmerAssetMapper, Farme
     private EartagEartagRegister2Mapper eartagEartagRegister2Mapper;
     @Autowired
     private EartagDeviceRegisterMapper eartagDeviceRegisterMapper;
-
+    @Value("${farmer.pig.price}")
+    private String pigPrice;
 
     @Override
     public List<FarmerAsset> getLastManyMonthAssets(String farmCode, String manyMonth) {
@@ -50,17 +56,11 @@ public class FarmerAssetServiceImpl extends ServiceImpl<FarmerAssetMapper, Farme
     }
 
     @Override
-    public Result getAssetStatistics(Map<String, Object> paramsMap) {
-        DateUtil dateUtil = new DateUtil();
-//        String farmCode = paramsMap.get("areaId")+"";
-        java.sql.Date todayDate = new java.sql.Date(new java.util.Date().getTime());
-//        QueryWrapper<EartagAbnormalAlarm> queryWrapper = new QueryWrapper();
-//        queryWrapper.eq("farm_code",farmCode);
+    public Result getAssetStatistics(Map<String, Object> paramsMap) throws ParseException {
+        //--农户
         String farmerId = paramsMap.get("farmerId")+"";
         System.out.println("farmerId="+farmerId);
 
-        JSONObject outJo = new JSONObject();
-
         //{根据农户读取采集器}
         String deviceCode = eartagDeviceRegisterMapper.getDeviceIdByFarmerId(farmerId);
         System.out.println("deviceCode="+deviceCode);
@@ -68,25 +68,55 @@ public class FarmerAssetServiceImpl extends ServiceImpl<FarmerAssetMapper, Farme
         JSONObject lastBatchJo = _getlastBatchAdoptPig(deviceCode);
         System.out.println("lastBatchJo="+lastBatchJo);
         //读取资产信息
+        List<FarmerAsset> farmerAssetList = farmerAssetMapper.getAssetByMonth(6);
+        System.out.println("farmerAssetList.size="+farmerAssetList.size());
+        List reverseList = new ArrayList();
+        //--反转排序
+        for(int a=farmerAssetList.size()-1;a>=0;a--){
+            reverseList.add(farmerAssetList.get(a));
+        }
+        if(lastBatchJo != null){
+            lastBatchJo.put("estimated",reverseList);
+            return new Result(ResultCode.SUCCESS,lastBatchJo);
+        }else{
+            return new Result(ResultCode.SUCCESS,lastBatchJo);
+        }
 
-
-        return new Result(ResultCode.SUCCESS,outJo);
     }
 
     //{读取最后一批猪信息}
-    private JSONObject _getlastBatchAdoptPig(String deviceCode) {
+    private JSONObject _getlastBatchAdoptPig(String deviceCode) throws ParseException {
         //{获取最后一条记录create_date日期}
         Date createDate = eartagEartagRegister2Mapper.getLastBatchCreateDate(deviceCode);
-
         System.out.println("createDate="+createDate);
         if(createDate == null){
             log.error("该采集器["+deviceCode+"]没有耳标注册数据.");
             return null;
         }else{
+            DateUtil dateUtil = new DateUtil();
             List<EartagEartagRegister2> eartagEartagRegister2List = eartagEartagRegister2Mapper.getLastBatchPig(deviceCode,createDate);
-            System.out.println("eartagEartagRegister2List.size="+eartagEartagRegister2List.size());
+            if(eartagEartagRegister2List.size()>0){
+                long diff = dateUtil.getTodayDate().getTime()-createDate.getTime();
+                long days = diff / (1000 * 60 * 60 * 24);
+                System.out.println("days="+days);
+                //读取重量
+                BigDecimal weightBd = farmerAssetMapper.getPigWeightByDayage(days);
+                BigDecimal planValue = weightBd.multiply(new BigDecimal(pigPrice)).multiply(new BigDecimal(eartagEartagRegister2List.size())).setScale(2,BigDecimal.ROUND_HALF_UP);
+                System.out.println("planValue="+planValue);
+                JSONObject outJo = new JSONObject();
+                outJo.put("adoptTime",dateUtil.formatDateText(createDate));
+                outJo.put("husbandryTime",days);
+                outJo.put("currentPrices",pigPrice);
+                outJo.put("expectedEarning",planValue.toString());
+                return outJo;
+            }else{
+                JSONObject outJo = new JSONObject();
+                outJo.put("adoptTime",null);
+                outJo.put("husbandryTime",null);
+                outJo.put("currentPrices",0);
+                outJo.put("expectedEarning",0);
+                return outJo;
+            }
         }
-
-        return null;
     }
 }

+ 1 - 1
huimv-eartag2-platform/huimv-eartag2-manage2/src/main/resources/application.properties

@@ -24,7 +24,7 @@ server.undertow.worker-threads=
 # ���� HTTP POST ���ݵ���󳤶ȣ�Ĭ�ϲ�������
 server.undertow.max-http-post-size=0
 
-
+farmer.pig.price=11.84
 
 
 

+ 2 - 2
huimv-eartag2-platform/huimv-eartag2-manage2/src/test/java/com/huimv/eartag2/manage2/service/IEartagServiceTest.java

@@ -34,10 +34,10 @@ public class IEartagServiceTest {
     }
 
     @Test
-    public void test2(){
+    public void test2() throws ParseException {
         Map map = new HashMap<>();
 //        map.put("areaId","330112002");
-        map.put("farmerId","1");
+        map.put("farmerId","6");
         farmerAssetService.getAssetStatistics(map);
     }
 }