Browse Source

导出修改+更新移动电子秤

wwh 1 year ago
parent
commit
00ab5549a8

+ 1 - 1
huimv-admin/src/main/java/com/huimv/guowei/admin/controller/BaseDuckInfoController.java

@@ -172,7 +172,7 @@ public class BaseDuckInfoController {
         Map<String, String> map = new HashMap<>();
         map.put("duckCode", duckCode);
         duckInfoService.printDuck(response, map);
-        String path = "/opt/guowei/duck.xls";
+        String path = "/opt/guowei/duckTest.xls";
         PdfUtil.returnPdfStream3(response, path, "鸭只档案列表");
     }
 

+ 7 - 5
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/PrintEntrty.java

@@ -14,16 +14,18 @@ import java.util.List;
 
 /**
  * <p>
- * 
+ *
  * </p>
  *
  * @author author
  * @since 2023-06-14
  */
 @Data
-public class PrintEntrty  {
+public class PrintEntrty {
     private BaseDuckInfo baseDuckInfo;
+    private String feeding;
+    private String egging;
+    private String eggNum;
+    private String avgWeiht;
     private List<EnvMoveCall> envMoveCalls;
-    private List<DuckHealthInfo> duckHealthInfos;
-    private List<DuckImmunityInfo> duckImmunityInfos;
- }
+}

+ 49 - 11
huimv-admin/src/main/java/com/huimv/guowei/admin/entity/PrintEntrtyVo.java

@@ -14,18 +14,56 @@ import java.util.List;
  */
 @Data
 public class PrintEntrtyVo {
-    private String duckCode;
-    private String duckType;
+    /*翅号*/
+    private String chiNum;
+    /*脚号*/
+    private String jiaoNum;
+    /*代次号*/
+    private String batchNum;
+    /*品种*/
+    private String duckBreed;
+    /*性别*/
     private String duckSex;
-    private String duckDate;
+    /*来源*/
     private String address;
-    private String father;
-    private String father2;
-    private String mother;
-    private String mother2;
-    private String weight;
+    /*基因型*/
+    private String genotype;
+    /*出生日期*/
+    private String duckDate;
+    /*当前体重*/
+    private String nowWeight;
+    /*位置*/
+    private String unitName;
+    /*饲养环境*/
+    private String breedingEnv;
+    /*特殊需求*/
     private String need;
-    private String env;
-    private String record;
-    private String record2;
+    /*总采食*/
+    private String feeding;
+    /*总采蛋*/
+    private String egg;
+    /*总蛋重*/
+    private String eggWeight;
+    /*平均蛋重*/
+    private String avgWeight;
+    /*10日龄*/
+    private String weight1;
+    /*20日龄*/
+    private String weight2;
+    /*30日龄*/
+    private String weight3;
+    /*40日龄*/
+    private String weight4;
+    /*40日龄*/
+    private String weight5;
+    /*40日龄*/
+    private String weight6;
+    /*40日龄*/
+    private String weight7;
+    /*40日龄*/
+    private String weight8;
+    /*40日龄*/
+    private String weight9;
+    /*40日龄*/
+    private String weight10;
  }

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

@@ -24,4 +24,6 @@ public interface EnvMoveCallMapper extends BaseMapper<EnvMoveCall> {
     List<EnvMoveCallVo> listScreen2(@Param(Constants.WRAPPER) QueryWrapper<EnvMoveCall> queryWrapper);
 
     String listScreen3(QueryWrapper<EnvMoveCall> queryWrapper);
+
+    List<EnvMoveCall> listPrint(@Param(Constants.WRAPPER) QueryWrapper<EnvMoveCall> queryWrapper);
 }

+ 37 - 16
huimv-admin/src/main/java/com/huimv/guowei/admin/service/impl/BaseDuckInfoServiceImpl.java

@@ -60,10 +60,7 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
     private EnvRegularCallFeedingMapper feedingMapper;
     @Autowired
     private EnvRegularCallEggMapper eggMapper;
-    @Autowired
-    private DuckHealthInfoMapper healthInfoMapper;
-    @Autowired
-    private DuckImmunityInfoMapper infoMapper;
+
     @Autowired
     private UploadImage uploadImage;
     @Autowired
@@ -80,6 +77,7 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
     public Result listDuck(HttpServletRequest httpServletRequest, Map<String, String> paramsMap) {
         String chiNum = paramsMap.get("chiNum");//前端传来的是编号
         String location = paramsMap.get("location");
+        String batchNum = paramsMap.get("batchNum");
         String farmId = paramsMap.get("farmId");//场的编码
         String pageNum = paramsMap.get("pageNum");
         String pageSize = paramsMap.get("pageSize");
@@ -91,7 +89,8 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
         }
         QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("farm_id", farmId);
-        queryWrapper.like(StringUtils.isNotBlank(location),"unit_name",location)
+        queryWrapper.like(StringUtils.isNotBlank(batchNum), "batch_num", batchNum)
+                .like(StringUtils.isNotBlank(location), "unit_name", location)
                 .like(StringUtils.isNotBlank(chiNum), "chi_num", chiNum)
                 .or().like(StringUtils.isNotBlank(chiNum), "jiao_num", chiNum)
                 .orderByDesc("id");
@@ -339,9 +338,13 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
     @Override
     public void printDuck(HttpServletResponse response, Map<String, String> paramsMap) throws Exception {
         String duckCodes = paramsMap.get("duckCode");
+        String startTime = paramsMap.get("startTime");
+        String endTime = paramsMap.get("endTime");
         String[] split = duckCodes.split(",");
 
         List<PrintEntrty> list = new ArrayList<>();
+        DecimalFormat def = new DecimalFormat("0.00");
+
         for (String duckCode : split) {
             PrintEntrty printEntrty = new PrintEntrty();
             QueryWrapper<BaseDuckInfo> queryWrapper = new QueryWrapper<>();
@@ -349,21 +352,39 @@ public class BaseDuckInfoServiceImpl extends ServiceImpl<BaseDuckInfoMapper, Bas
             BaseDuckInfo baseDuckInfo = duckInfoMapper.selectOne(queryWrapper);//鸭只档案
 
             QueryWrapper<EnvMoveCall> queryWrapper1 = new QueryWrapper<>();
-            queryWrapper1.eq("duck_num", duckCode);
-            List<EnvMoveCall> envMoveCalls = moveCallMapper.selectList(queryWrapper1);//日龄体重
-
-            QueryWrapper<DuckHealthInfo> healthInfoQueryWrapper = new QueryWrapper<>();
-            healthInfoQueryWrapper.eq("duck_num", duckCode);
-            List<DuckHealthInfo> duckHealthInfos = healthInfoMapper.selectList(healthInfoQueryWrapper);//健康状况
+            queryWrapper1.eq("chi_num", baseDuckInfo.getChiNum()).
+                    between(StringUtils.isNotBlank(startTime), "call_date", startTime, endTime);
+            List<EnvMoveCall> envMoveCalls = moveCallMapper.listPrint(queryWrapper1);//日龄体重
 
-            QueryWrapper<DuckImmunityInfo> queryWrapper2 = new QueryWrapper<>();
-            queryWrapper2.eq("duck_num", duckCode);
-            List<DuckImmunityInfo> duckImmunityInfos = infoMapper.selectList(queryWrapper2);//免疫记录
+            QueryWrapper<EnvRegularCallFeeding> queryWrapper2 = new QueryWrapper<>();
+            queryWrapper2.eq("chi_num", baseDuckInfo.getChiNum()).
+                    between(StringUtils.isNotBlank(startTime), "call_date", startTime, endTime);
+            List<EnvRegularCallFeeding> feedings = feedingMapper.selectList(queryWrapper2);//采食
+            double count = 0;
+            for (EnvRegularCallFeeding feeding : feedings) {
+                count = count + feeding.getDuckWeight();
+            }
+            QueryWrapper<EnvRegularCallEgg> queryWrapper3 = new QueryWrapper<>();
+            queryWrapper3.eq("chi_num", baseDuckInfo.getChiNum()).
+                    between(StringUtils.isNotBlank(startTime), "call_date", startTime, endTime);
+            List<EnvRegularCallEgg> eggs = eggMapper.selectList(queryWrapper3);//产蛋
+            double count1 = 0;
+            Integer eggNum = 0;
+            double avgWeight = 0;
+            for (EnvRegularCallEgg egg : eggs) {
+                count1 = count1 + egg.getDuckWeight();
+                eggNum = eggNum + egg.getEggNum();
+                if (baseDuckInfo.getDayAge() > 298) {
+                    avgWeight = egg.getDuckWeight();
+                }
+            }
 
             printEntrty.setBaseDuckInfo(baseDuckInfo);
-            printEntrty.setDuckHealthInfos(duckHealthInfos);
+            printEntrty.setEggNum(String.valueOf(eggNum));
+            printEntrty.setFeeding(def.format(count));
+            printEntrty.setEgging(def.format(count1));
+            printEntrty.setAvgWeiht(def.format(avgWeight));
             printEntrty.setEnvMoveCalls(envMoveCalls);
-            printEntrty.setDuckImmunityInfos(duckImmunityInfos);
             list.add(printEntrty);
         }
 

+ 26 - 4
huimv-admin/src/main/java/com/huimv/guowei/admin/timer/DeviceTimer.java

@@ -5,11 +5,9 @@ import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.guowei.admin.entity.EnvDevice;
 import com.huimv.guowei.admin.entity.EnvDeviceOnline;
+import com.huimv.guowei.admin.entity.EnvMoveCall;
 import com.huimv.guowei.admin.entity.RawData;
-import com.huimv.guowei.admin.service.IBaseDuckInfoService;
-import com.huimv.guowei.admin.service.IEnvDeviceOnlineService;
-import com.huimv.guowei.admin.service.IEnvDeviceService;
-import com.huimv.guowei.admin.service.IRawDataService;
+import com.huimv.guowei.admin.service.*;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -19,6 +17,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.Date;
 import java.util.List;
 
@@ -35,6 +34,8 @@ public class DeviceTimer {
 
     @Resource
     private IRawDataService rawDataService;
+    @Resource
+    private IEnvMoveCallService callService;
 
 
 //    @Scheduled(cron = "*/5 * * * * ?")
@@ -89,4 +90,25 @@ public class DeviceTimer {
         }
         System.out.println("--->更新固定称在线状态结束");
     }
+
+    @Scheduled(cron = "0 */1 * * * ?")
+    private void updateDevice(){
+        List<EnvDevice> envDevices = envDeviceService.list(new QueryWrapper<EnvDevice>().eq("device_type", 2));
+        int minutes = 2;
+        LocalDateTime now = LocalDateTime.now();
+        LocalDateTime time = now.minusMinutes(minutes);
+        DateTimeFormatter def = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String format = time.format(def);
+        for (EnvDevice envDevice : envDevices) {
+            QueryWrapper<EnvMoveCall> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("call_code", envDevice.getDeviceCode()).ge("call_date", format);
+            int count = callService.count(queryWrapper);
+            if (count > 0) {
+                envDevice.setDeviceStatus(1);
+            } else {
+                envDevice.setDeviceStatus(0);
+            }
+            envDeviceService.updateById(envDevice);
+        }
+    }
 }

+ 55 - 57
huimv-admin/src/main/java/com/huimv/guowei/admin/utils/Print.java

@@ -33,9 +33,9 @@ public class Print {
     public static void printDuck(List<PrintEntrty> printEntrties) throws Exception {
 
         //准备数据
-        String path = "/opt/guowei/duck.xls";
+        String path = "/opt/guowei/duckTest.xls";
         //获取模板文件,你自己当前模板的位置  我这里为当前项目下
-        InputStream is = new FileInputStream("/opt/guowei/duck.xlsx");
+        InputStream is = new FileInputStream("/opt/guowei/duckTest.xlsx");
         //根据模板生成的文件保存路径  我这里保存在本地D盘
         OutputStream os = new FileOutputStream(path);
         //绑定数据
@@ -44,32 +44,33 @@ public class Print {
         for (PrintEntrty printEntrty : printEntrties) {
             PrintEntrtyVo printEntrtyVo = new PrintEntrtyVo();
             BaseDuckInfo duckInfo = printEntrty.getBaseDuckInfo();
-            printEntrtyVo.setDuckCode(duckInfo.getChiNum() + "、" + duckInfo.getJiaoNum());
+            printEntrtyVo.setChiNum(duckInfo.getChiNum());
+            printEntrtyVo.setJiaoNum(duckInfo.getJiaoNum());
 
             if (duckInfo.getDuckBreed() == 1) {
-                printEntrtyVo.setDuckType("北京鸭");
+                printEntrtyVo.setDuckBreed("北京鸭");
             } else if (duckInfo.getDuckBreed() == 2) {
-                printEntrtyVo.setDuckType("连城白鸭");
+                printEntrtyVo.setDuckBreed("连城白鸭");
             } else if (duckInfo.getDuckBreed() == 3) {
-                printEntrtyVo.setDuckType("山麻鸭");
+                printEntrtyVo.setDuckBreed("山麻鸭");
 
             } else if (duckInfo.getDuckBreed() == 4) {
-                printEntrtyVo.setDuckType("攸县麻鸭");
+                printEntrtyVo.setDuckBreed("攸县麻鸭");
 
             } else if (duckInfo.getDuckBreed() == 5) {
-                printEntrtyVo.setDuckType("白改鸭");
+                printEntrtyVo.setDuckBreed("白改鸭");
 
             } else if (duckInfo.getDuckBreed() == 6) {
-                printEntrtyVo.setDuckType("缙云麻鸭");
+                printEntrtyVo.setDuckBreed("缙云麻鸭");
 
             } else if (duckInfo.getDuckBreed() == 7) {
-                printEntrtyVo.setDuckType("绍兴鸭(带圈白翼梢)");
+                printEntrtyVo.setDuckBreed("绍兴鸭(带圈白翼梢)");
 
             } else if (duckInfo.getDuckBreed() == 8) {
-                printEntrtyVo.setDuckType("绍兴鸭(红毛绿翼梢)");
+                printEntrtyVo.setDuckBreed("绍兴鸭(红毛绿翼梢)");
 
             } else if (duckInfo.getDuckBreed() == 9) {
-                printEntrtyVo.setDuckType("绍兴鸭(白羽绍鸭)");
+                printEntrtyVo.setDuckBreed("绍兴鸭(白羽绍鸭)");
 
             }
 
@@ -81,56 +82,53 @@ public class Print {
 
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             printEntrtyVo.setDuckDate(sdf.format(duckInfo.getDuckBirthday()));
-
             printEntrtyVo.setAddress(duckInfo.getDuckBirthplace());
+            printEntrtyVo.setGenotype(duckInfo.getGenotype());
+            printEntrtyVo.setNeed(duckInfo.getSpecialNeeds());
+            printEntrtyVo.setBreedingEnv(duckInfo.getBreedingEnv());
+            printEntrtyVo.setNowWeight(duckInfo.getNowWeight().toString());
+            printEntrtyVo.setUnitName(duckInfo.getUnitName());
+            printEntrtyVo.setBatchNum(duckInfo.getBatchNum());
+            printEntrtyVo.setFeeding(printEntrty.getFeeding());
+            printEntrtyVo.setEgg(printEntrty.getEggNum());
+            printEntrtyVo.setEggWeight(printEntrty.getEgging());
+            printEntrtyVo.setAvgWeight(printEntrty.getAvgWeiht());
 
-            printEntrtyVo.setFather(duckInfo.getFatherNum());
-
-            printEntrtyVo.setFather2(duckInfo.getFatherGenotype());
-
-            printEntrtyVo.setMother(duckInfo.getMotherNum());
-
-            printEntrtyVo.setMother2(duckInfo.getMotherGenotype());
-
-
-            String s = "";
-            String s1 = "";
-            String s2 = "";
-            List<DuckHealthInfo> healthInfos = printEntrty.getDuckHealthInfos();
-            //健康状况
-            for (DuckHealthInfo healthInfo : healthInfos) {
-                if ("".equals(healthInfo.getDiseaseName()) || null == healthInfo.getDiseaseName()) {
-                    s1 = sdf.format(healthInfo.getHealthDate()) + "无" + ";" + "\n" + s1;
-                } else {
-                    s1 = sdf.format(healthInfo.getHealthDate()) + " " + healthInfo.getDiseaseName() + ";" + "\n" + s1;
-                }
-            }
             List<EnvMoveCall> envMoveCalls = printEntrty.getEnvMoveCalls();
-            //日龄体重
-            for (EnvMoveCall envMoveCall : envMoveCalls) {
-                if ("".equals(envMoveCall.getDayage()) || null == envMoveCall.getDayage()) {
-                    s = "0" + "日龄 体重" + ":" + envMoveCall.getDuckWeight() + "KG;" + "\n" + s;
-                } else {
-                    s = envMoveCall.getDayage() + "日龄 体重" + ":" + envMoveCall.getDuckWeight() + "KG;" + "\n" + s;
+            if (envMoveCalls.size() > 0) {
+                for (int i = 0; i < envMoveCalls.size(); i++) {
+                    if (i == 0) {
+                        printEntrtyVo.setWeight1(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 1) {
+                        printEntrtyVo.setWeight2(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 2) {
+                        printEntrtyVo.setWeight3(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 3) {
+                        printEntrtyVo.setWeight4(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 4) {
+                        printEntrtyVo.setWeight5(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 5) {
+                        printEntrtyVo.setWeight6(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 6) {
+                        printEntrtyVo.setWeight7(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 7) {
+                        printEntrtyVo.setWeight8(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 8) {
+                        printEntrtyVo.setWeight9(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
+                    if (i == 9) {
+                        printEntrtyVo.setWeight10(envMoveCalls.get(i).getDuckWeight().toString());
+                    }
                 }
-
             }
-            List<DuckImmunityInfo> immunityInfos = printEntrty.getDuckImmunityInfos();
-            //免疫记录
-            for (DuckImmunityInfo immunityInfo : immunityInfos) {
-                if (("").equals(immunityInfo.getVaccination()) || null == immunityInfo.getVaccination()) {
-                    s2 = sdf.format(immunityInfo.getHealthDate()) + "  无;" + "\n" + s2;
-                } else {
-                    s2 = sdf.format(immunityInfo.getHealthDate()) + " " + immunityInfo.getVaccination() + ";" + "\n" + s2;
-                }
-
-            }
-
-            printEntrtyVo.setWeight(s);
-            printEntrtyVo.setNeed(duckInfo.getSpecialNeeds());
-            printEntrtyVo.setEnv(duckInfo.getBreedingEnv());
-            printEntrtyVo.setRecord(s1);
-            printEntrtyVo.setRecord2(s2);
             list.add(printEntrtyVo);
         }
 

+ 7 - 0
huimv-admin/src/main/resources/com/huimv/guowei/admin/mapper/EnvMoveCallMapper.xml

@@ -42,4 +42,11 @@
          SELECT (IFNULL(SUM(duck_weight),'0')) 'duckWeight'  FROM `env_move_call`
    ${ew.customSqlSegment}
     </select>
+
+    <select id="listPrint" resultType="com.huimv.guowei.admin.entity.EnvMoveCall">
+        SELECT * FROM `env_move_call`
+         ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(call_date,'%Y-%m-%d')
+        ORDER BY call_date ASC
+    </select>
 </mapper>

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

@@ -154,4 +154,11 @@ ORDER BY b.callDate DESC
         GROUP BY DATE_FORMAT(call_date,'%Y-%m-%d')
         ORDER BY call_date DESC
     </select>
+
+    <select id="printElectricity" resultType="com.huimv.guowei.admin.entity.vo.EnergyWaterVo">
+        SELECT electricity_value 'waterValue',unit_id 'chipName',create_date 'createDate' FROM `energy_electricity`
+         ${ew.customSqlSegment}
+        GROUP BY DATE_FORMAT(create_date,'%Y-%m-%d')
+        ORDER BY create_date ASC
+    </select>
 </mapper>