Newspaper 1 rok temu
rodzic
commit
5c029698f1

+ 9 - 0
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/service/impl/FeedEggDetailServiceImpl.java

@@ -14,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.List;
 import java.util.Map;
 
@@ -37,6 +39,13 @@ public class FeedEggDetailServiceImpl extends ServiceImpl<FeedEggDetailMapper, F
         String endDate = map.get("endDate");
         List<FeedEggVo> feedEggVos = feedEggDetailMapper.listPrint(startDate,endDate);
         for (FeedEggVo feedEggVo : feedEggVos) {
+            BigDecimal totalEggWeight = feedEggVo.getTotalEggWeight();
+            BigDecimal totalFeedConsume = feedEggVo.getTotalFeedConsume();
+            BigDecimal rate = BigDecimal.ZERO;
+            if (totalEggWeight.compareTo(BigDecimal.ZERO) != 0){
+                rate = totalFeedConsume.divide(totalEggWeight,2, RoundingMode.HALF_UP);
+            }
+            feedEggVo.setTotalFeedEggRate(rate);
             List<FeedEggDetail> feedEggDetails = feedEggDetailMapper.selectList(new QueryWrapper<FeedEggDetail>().lambda().eq(FeedEggDetail::getDate, feedEggVo.getDate()).orderByAsc(FeedEggDetail::getUnitName));
             feedEggVo.setList(feedEggDetails);
         }

+ 7 - 7
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/java/com/huimv/admin/system/util/Print.java

@@ -37,7 +37,7 @@ public class Print {
             feedEggPrintVo.setEggWeight1(list1.get(0).getEggWeight()+"吨");
             feedEggPrintVo.setAvgWeight1(list1.get(0).getAvgWeight()+"克");
             feedEggPrintVo.setFeedConsume1(list1.get(0).getFeedConsume()+"Kg");
-            feedEggPrintVo.setFeedEggRatio1(list1.get(0).getFeedEggRatio()+":1");
+            feedEggPrintVo.setFeedEggRatio1(list1.get(0).getFeedEggRatio()+"g:1");
 
             feedEggPrintVo.setStock2(list1.get(1).getStock());
             feedEggPrintVo.setEggProduction2(list1.get(1).getEggProduction());
@@ -45,7 +45,7 @@ public class Print {
             feedEggPrintVo.setEggWeight2(list1.get(1).getEggWeight()+"吨");
             feedEggPrintVo.setAvgWeight2(list1.get(1).getAvgWeight()+"克");
             feedEggPrintVo.setFeedConsume2(list1.get(1).getFeedConsume()+"Kg");
-            feedEggPrintVo.setFeedEggRatio2(list1.get(1).getFeedEggRatio()+":1");
+            feedEggPrintVo.setFeedEggRatio2(list1.get(1).getFeedEggRatio()+"g:1");
 
             feedEggPrintVo.setStock3(list1.get(2).getStock());
             feedEggPrintVo.setEggProduction3(list1.get(2).getEggProduction());
@@ -53,7 +53,7 @@ public class Print {
             feedEggPrintVo.setEggWeight3(list1.get(2).getEggWeight()+"吨");
             feedEggPrintVo.setAvgWeight3(list1.get(2).getAvgWeight()+"克");
             feedEggPrintVo.setFeedConsume3(list1.get(2).getFeedConsume()+"Kg");
-            feedEggPrintVo.setFeedEggRatio3(list1.get(2).getFeedEggRatio()+":1");
+            feedEggPrintVo.setFeedEggRatio3(list1.get(2).getFeedEggRatio()+"g:1");
 
             feedEggPrintVo.setStock4(list1.get(3).getStock());
             feedEggPrintVo.setEggProduction4(list1.get(3).getEggProduction());
@@ -61,7 +61,7 @@ public class Print {
             feedEggPrintVo.setEggWeight4(list1.get(3).getEggWeight()+"吨");
             feedEggPrintVo.setAvgWeight4(list1.get(3).getAvgWeight()+"克");
             feedEggPrintVo.setFeedConsume4(list1.get(3).getFeedConsume()+"Kg");
-            feedEggPrintVo.setFeedEggRatio4(list1.get(3).getFeedEggRatio()+":1");
+            feedEggPrintVo.setFeedEggRatio4(list1.get(3).getFeedEggRatio()+"g:1");
 
             feedEggPrintVo.setStock5(list1.get(4).getStock());
             feedEggPrintVo.setEggProduction5(list1.get(4).getEggProduction());
@@ -69,7 +69,7 @@ public class Print {
             feedEggPrintVo.setEggWeight5(list1.get(4).getEggWeight()+"吨");
             feedEggPrintVo.setAvgWeight5(list1.get(4).getAvgWeight()+"克");
             feedEggPrintVo.setFeedConsume5(list1.get(4).getFeedConsume()+"Kg");
-            feedEggPrintVo.setFeedEggRatio5(list1.get(4).getFeedEggRatio()+":1");
+            feedEggPrintVo.setFeedEggRatio5(list1.get(4).getFeedEggRatio()+"g:1");
 
             feedEggPrintVo.setStock6(list1.get(5).getStock());
             feedEggPrintVo.setEggProduction6(list1.get(5).getEggProduction());
@@ -77,7 +77,7 @@ public class Print {
             feedEggPrintVo.setEggWeight6(list1.get(5).getEggWeight()+"吨");
             feedEggPrintVo.setAvgWeight6(list1.get(5).getAvgWeight()+"克");
             feedEggPrintVo.setFeedConsume6(list1.get(5).getFeedConsume()+"Kg");
-            feedEggPrintVo.setFeedEggRatio6(list1.get(5).getFeedEggRatio()+":1");
+            feedEggPrintVo.setFeedEggRatio6(list1.get(5).getFeedEggRatio()+"g:1");
 
             feedEggPrintVo.setStock7(list1.get(6).getStock());
             feedEggPrintVo.setEggProduction7(list1.get(6).getEggProduction());
@@ -85,7 +85,7 @@ public class Print {
             feedEggPrintVo.setEggWeight7(list1.get(6).getEggWeight()+"吨");
             feedEggPrintVo.setAvgWeight7(list1.get(6).getAvgWeight()+"克");
             feedEggPrintVo.setFeedConsume7(list1.get(6).getFeedConsume()+"Kg");
-            feedEggPrintVo.setFeedEggRatio7(list1.get(6).getFeedEggRatio()+":1");
+            feedEggPrintVo.setFeedEggRatio7(list1.get(6).getFeedEggRatio()+"g:1");
 
             list.add(feedEggPrintVo);
         }

+ 1 - 2
huimv-farm-datacenter-egg/huimv-farm-admin/src/main/resources/com/huimv/admin/system/mapper/FeedEggDetailMapper.xml

@@ -10,8 +10,7 @@
         SELECT
             e.date,
             e.total_egg_weight AS 'totalEggWeight',
-            COALESCE(ROUND(u.total_feed_consume / 1000, 2), 0) AS 'totalFeedConsume',
-            ROUND(CASE WHEN e.egg_production = 0 THEN 0 ELSE u.total_feed_consume / e.egg_production END, 2) AS 'totalFeedEggRate'
+            COALESCE(ROUND(u.total_feed_consume / 1000, 2), 0) AS 'totalFeedConsume'
         FROM
             (SELECT
                 DATE AS DATE,

+ 42 - 0
huimv-farm-datacenter-egg/huimv-farm-environ/src/main/java/com/huimv/environ/eco/controller/LayEggController.java

@@ -11,8 +11,11 @@ import com.graphbuilder.curve.LagrangeCurve;
 import com.huimv.common.utils.Result;
 import com.huimv.environ.eco.entity.FeedEggDetail;
 import com.huimv.environ.eco.entity.FeedMaterial;
+import com.huimv.environ.eco.entity.FeedUsage;
 import com.huimv.environ.eco.entity.LayEgg;
 import com.huimv.environ.eco.entity.eggvo.LayEggVo;
+import com.huimv.environ.eco.mapper.FeedEggDetailMapper;
+import com.huimv.environ.eco.mapper.FeedUsageMapper;
 import com.huimv.environ.eco.service.IFeedEggDetailService;
 import com.huimv.environ.eco.service.ILayEggService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +48,10 @@ public class LayEggController {
     private ILayEggService layEggService;
     @Autowired
     private IFeedEggDetailService feedEggDetailService;
+    @Autowired
+    private FeedUsageMapper feedUsageMapper;
+    @Autowired
+    private FeedEggDetailMapper feedEggDetailMapper;
 
     @PostMapping("/add")
     @Transactional
@@ -82,6 +89,41 @@ public class LayEggController {
             layEggService.remove(new QueryWrapper<LayEgg>().lambda().eq(LayEgg::getDate, date));
         }
         layEggService.saveBatch(list);
+
+        feedEggDetailMapper.delete(new QueryWrapper<FeedEggDetail>().lambda().eq(FeedEggDetail::getDate,date));
+
+        for (LayEgg layEgg : list) {
+            FeedEggDetail feedEggDetail = new FeedEggDetail();
+            feedEggDetail.setDate(date);
+            feedEggDetail.setUnitName(layEgg.getUnitName());
+            String[] split = layEgg.getUnitName().split("舍");
+            String updatedNumber = String.valueOf(Integer.parseInt(split[0]) + 2);
+            String newUnitName = updatedNumber + "舍";
+            FeedUsage feedUsage = feedUsageMapper.selectOne(new QueryWrapper<FeedUsage>().lambda().eq(FeedUsage::getUsedDate, date).eq(FeedUsage::getUnitName, newUnitName));
+            if (ObjectUtil.isEmpty(feedUsage)){
+                continue;
+            }
+            feedEggDetail.setStock(feedUsage.getStock());
+            feedEggDetail.setEggProduction(layEgg.getEggProduction().toString());
+            BigDecimal rate = BigDecimal.ZERO;
+            BigDecimal stock = new BigDecimal(feedUsage.getStock());
+            BigDecimal eggProduction = new BigDecimal(layEgg.getEggProduction());
+            if (!feedUsage.getStock().equals("0")){
+                rate =  eggProduction.divide(stock,4,RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2);
+            }
+            feedEggDetail.setLayEggRate(rate);
+            feedEggDetail.setEggWeight(layEgg.getTotalWeight());
+            feedEggDetail.setAvgWeight(layEgg.getAvgWeight());
+            feedEggDetail.setFeedConsume(feedUsage.getTotalConsume());
+
+            BigDecimal ratio = BigDecimal.ZERO;
+            BigDecimal feedConsume = feedUsage.getTotalConsume();
+            if (eggProduction.compareTo(BigDecimal.ZERO) != 0){
+                ratio =  feedConsume.divide(eggProduction,5,RoundingMode.HALF_UP).multiply(new BigDecimal(1000));
+            }
+            feedEggDetail.setFeedEggRatio(ratio);
+            feedEggDetailMapper.insert(feedEggDetail);
+        }
         return Result.SUCCESS();
     }
 

+ 9 - 0
huimv-farm-datacenter-egg/huimv-farm-environ/src/main/java/com/huimv/environ/eco/service/impl/FeedEggDetailServiceImpl.java

@@ -16,6 +16,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -47,6 +49,13 @@ public class FeedEggDetailServiceImpl extends ServiceImpl<FeedEggDetailMapper, F
         Iterator<FeedEggVo> iterator = records.iterator();
         while (iterator.hasNext()){
             FeedEggVo feedEggVo = iterator.next();
+            BigDecimal totalEggWeight = feedEggVo.getTotalEggWeight();
+            BigDecimal totalFeedConsume = feedEggVo.getTotalFeedConsume();
+            BigDecimal rate = BigDecimal.ZERO;
+            if (totalEggWeight.compareTo(BigDecimal.ZERO) != 0){
+                rate = totalFeedConsume.divide(totalEggWeight,2, RoundingMode.HALF_UP);
+            }
+            feedEggVo.setTotalFeedEggRate(rate);
             List<FeedEggDetail> feedEggDetails = feedEggDetailMapper.selectList(new QueryWrapper<FeedEggDetail>().lambda().eq(FeedEggDetail::getDate, feedEggVo.getDate()).orderByAsc(FeedEggDetail::getUnitName));
             if (ObjectUtil.isNotEmpty(feedEggDetails)){
                 feedEggVo.setList(feedEggDetails);

+ 63 - 63
huimv-farm-datacenter-egg/huimv-farm-environ/src/main/java/com/huimv/environ/eco/timer/LayEggTimer.java

@@ -28,69 +28,69 @@ public class LayEggTimer {
     @Autowired
     private FeedUsageMapper feedUsageMapper;
 
-    @Scheduled(cron = "0 5 0 * * ?")
-//@Scheduled(cron = "0/10 * * * * ?")
-    @Transactional
-    public void saveLayEgg(){
-        LocalDate localDate = LocalDate.now();
-        LocalDate yesterday = localDate.minusDays(1);
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
-        String date = yesterday.format(formatter);
-        Integer count = layEggMapper.selectCount(new QueryWrapper<LayEgg>().lambda().eq(LayEgg::getDate, date));
-        if (count == 0){
-            for (int i = 1; i <= 7; i++){
-                LayEgg layEgg = new LayEgg();
-                layEgg.setDate(date);
-                layEgg.setUnitName(i+"舍");
-                layEgg.setAvgWeight(BigDecimal.ZERO);
-                layEgg.setEggProduction(0);
-                layEgg.setTotalWeight(BigDecimal.ZERO);
-                layEggMapper.insert(layEgg);
-            }
-        }
-    }
-
-    @Scheduled(cron = "0 10 0 * * ?")
-//    @Scheduled(cron = "0/10 * * * * ?")
-    @Transactional
-    public void saveDetail(){
-        LocalDate localDate = LocalDate.now();
-        LocalDate yesterday = localDate.minusDays(1);
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
-        String date = yesterday.format(formatter);
-        List<LayEgg> layEggs = layEggMapper.selectList(new QueryWrapper<LayEgg>().lambda().eq(LayEgg::getDate, date).orderByAsc(LayEgg::getUnitName));
-        for (LayEgg layEgg : layEggs) {
-            FeedEggDetail feedEggDetail = new FeedEggDetail();
-            feedEggDetail.setDate(date);
-            feedEggDetail.setUnitName(layEgg.getUnitName());
-            String[] split = layEgg.getUnitName().split("舍");
-            String updatedNumber = String.valueOf(Integer.parseInt(split[0]) + 2);
-            String newUnitName = updatedNumber + "舍";
-            FeedUsage feedUsage = feedUsageMapper.selectOne(new QueryWrapper<FeedUsage>().lambda().eq(FeedUsage::getUsedDate, date).eq(FeedUsage::getUnitName, newUnitName));
-
-            feedEggDetail.setStock(feedUsage.getStock());
-            feedEggDetail.setEggProduction(layEgg.getEggProduction().toString());
-            BigDecimal rate = BigDecimal.ZERO;
-            BigDecimal stock = new BigDecimal(feedUsage.getStock());
-            BigDecimal eggProduction = new BigDecimal(layEgg.getEggProduction());
-            if (!feedUsage.getStock().equals("0")){
-                rate =  eggProduction.divide(stock,4,RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2);
-            }
-            feedEggDetail.setLayEggRate(rate);
-            feedEggDetail.setEggWeight(layEgg.getTotalWeight());
-            feedEggDetail.setAvgWeight(layEgg.getAvgWeight());
-            feedEggDetail.setFeedConsume(feedUsage.getTotalConsume());
-
-            BigDecimal ratio = BigDecimal.ZERO;
-            BigDecimal feedConsume = feedUsage.getTotalConsume();
-            if (eggProduction.compareTo(BigDecimal.ZERO) != 0){
-                ratio =  feedConsume.divide(eggProduction).setScale(2,RoundingMode.HALF_UP);
-            }
-            feedEggDetail.setFeedEggRatio(ratio);
-            feedEggDetailMapper.insert(feedEggDetail);
-        }
-
-    }
+//    @Scheduled(cron = "0 5 0 * * ?")
+////@Scheduled(cron = "0/10 * * * * ?")
+//    @Transactional
+//    public void saveLayEgg(){
+//        LocalDate localDate = LocalDate.now();
+//        LocalDate yesterday = localDate.minusDays(1);
+//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
+//        String date = yesterday.format(formatter);
+//        Integer count = layEggMapper.selectCount(new QueryWrapper<LayEgg>().lambda().eq(LayEgg::getDate, date));
+//        if (count == 0){
+//            for (int i = 1; i <= 7; i++){
+//                LayEgg layEgg = new LayEgg();
+//                layEgg.setDate(date);
+//                layEgg.setUnitName(i+"舍");
+//                layEgg.setAvgWeight(BigDecimal.ZERO);
+//                layEgg.setEggProduction(0);
+//                layEgg.setTotalWeight(BigDecimal.ZERO);
+//                layEggMapper.insert(layEgg);
+//            }
+//        }
+//    }
+//
+//    @Scheduled(cron = "0 10 0 * * ?")
+////    @Scheduled(cron = "0/10 * * * * ?")
+//    @Transactional
+//    public void saveDetail(){
+//        LocalDate localDate = LocalDate.now();
+//        LocalDate yesterday = localDate.minusDays(1);
+//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
+//        String date = yesterday.format(formatter);
+//        List<LayEgg> layEggs = layEggMapper.selectList(new QueryWrapper<LayEgg>().lambda().eq(LayEgg::getDate, date).orderByAsc(LayEgg::getUnitName));
+//        for (LayEgg layEgg : layEggs) {
+//            FeedEggDetail feedEggDetail = new FeedEggDetail();
+//            feedEggDetail.setDate(date);
+//            feedEggDetail.setUnitName(layEgg.getUnitName());
+//            String[] split = layEgg.getUnitName().split("舍");
+//            String updatedNumber = String.valueOf(Integer.parseInt(split[0]) + 2);
+//            String newUnitName = updatedNumber + "舍";
+//            FeedUsage feedUsage = feedUsageMapper.selectOne(new QueryWrapper<FeedUsage>().lambda().eq(FeedUsage::getUsedDate, date).eq(FeedUsage::getUnitName, newUnitName));
+//
+//            feedEggDetail.setStock(feedUsage.getStock());
+//            feedEggDetail.setEggProduction(layEgg.getEggProduction().toString());
+//            BigDecimal rate = BigDecimal.ZERO;
+//            BigDecimal stock = new BigDecimal(feedUsage.getStock());
+//            BigDecimal eggProduction = new BigDecimal(layEgg.getEggProduction());
+//            if (!feedUsage.getStock().equals("0")){
+//                rate =  eggProduction.divide(stock,4,RoundingMode.HALF_UP).multiply(new BigDecimal(100)).setScale(2);
+//            }
+//            feedEggDetail.setLayEggRate(rate);
+//            feedEggDetail.setEggWeight(layEgg.getTotalWeight());
+//            feedEggDetail.setAvgWeight(layEgg.getAvgWeight());
+//            feedEggDetail.setFeedConsume(feedUsage.getTotalConsume());
+//
+//            BigDecimal ratio = BigDecimal.ZERO;
+//            BigDecimal feedConsume = feedUsage.getTotalConsume();
+//            if (eggProduction.compareTo(BigDecimal.ZERO) != 0){
+//                ratio =  feedConsume.divide(eggProduction).setScale(2,RoundingMode.HALF_UP);
+//            }
+//            feedEggDetail.setFeedEggRatio(ratio);
+//            feedEggDetailMapper.insert(feedEggDetail);
+//        }
+//
+//    }
 
     public static void main(String[] args) {
         LocalDate localDate = LocalDate.now();

+ 1 - 2
huimv-farm-datacenter-egg/huimv-farm-environ/src/main/resources/mapper/FeedEggDetailMapper.xml

@@ -10,8 +10,7 @@
         SELECT
             e.date,
             e.total_egg_weight AS 'totalEggWeight',
-            COALESCE(ROUND(u.total_feed_consume / 1000, 2), 0) AS 'totalFeedConsume',
-            ROUND(CASE WHEN e.egg_production = 0 THEN 0 ELSE u.total_feed_consume / e.egg_production END, 2) AS 'totalFeedEggRate'
+            COALESCE(ROUND(u.total_feed_consume / 1000, 2), 0) AS 'totalFeedConsume'
         FROM
             (SELECT
                 DATE AS DATE,