|
@@ -3,19 +3,19 @@ package com.huimv.environ.eco.service.impl;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.huimv.common.utils.Result;
|
|
|
import com.huimv.common.utils.ResultCode;
|
|
|
import com.huimv.environ.eco.entity.FeedConsume;
|
|
|
-import com.huimv.environ.eco.entity.eggvo.BuildEntity;
|
|
|
-import com.huimv.environ.eco.entity.eggvo.BuildVo;
|
|
|
-import com.huimv.environ.eco.entity.eggvo.HistoryEntity;
|
|
|
-import com.huimv.environ.eco.entity.eggvo.HistroyOne;
|
|
|
+import com.huimv.environ.eco.entity.FeedUsage;
|
|
|
+import com.huimv.environ.eco.entity.eggvo.*;
|
|
|
import com.huimv.environ.eco.entity.feedVo.*;
|
|
|
import com.huimv.environ.eco.mapper.FeedConsumeMapper;
|
|
|
import com.huimv.environ.eco.mapper.FeedUsageMapper;
|
|
|
import com.huimv.environ.eco.service.IFeedConsumeService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.huimv.environ.eco.service.IFeedUsageService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.http.HttpEntity;
|
|
|
import org.springframework.http.HttpHeaders;
|
|
@@ -41,6 +41,9 @@ import java.util.*;
|
|
|
@Service
|
|
|
public class FeedConsumeServiceImpl extends ServiceImpl<FeedConsumeMapper, FeedConsume> implements IFeedConsumeService {
|
|
|
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IFeedUsageService feedUsageService;
|
|
|
@Autowired
|
|
|
private FeedConsumeMapper feedConsumeMapper;
|
|
|
@Autowired
|
|
@@ -49,6 +52,7 @@ public class FeedConsumeServiceImpl extends ServiceImpl<FeedConsumeMapper, FeedC
|
|
|
private static final String BASE_URL= "https://iot1.bigherdsman.com/api/v2/";
|
|
|
private static final String TOKEN= "72438b180e9168fe90db126e3310cd0b20a7196d";
|
|
|
private static final String HISTORY_LIST= "history/list/?code=";
|
|
|
+ private static final String CURRENT_LIST= "current/list/?code=";
|
|
|
private static final String LIST_ORIGIN_HOUSE= "hardware/list-origin-house/?code=";
|
|
|
private static final String FARM_CODE = "2022011710";
|
|
|
|
|
@@ -165,6 +169,53 @@ public class FeedConsumeServiceImpl extends ServiceImpl<FeedConsumeMapper, FeedC
|
|
|
String startDate = map.get("startDate");
|
|
|
String endDate = map.get("endDate");
|
|
|
String unitName = map.get("unitName");
|
|
|
+
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.set("Authorization","Token "+TOKEN);
|
|
|
+ HttpEntity<JSONObject> httpEntity = new HttpEntity<>(headers);
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
|
|
|
+ Long start = DateUtil.beginOfDay(new Date()).getTime();
|
|
|
+ Long end = System.currentTimeMillis();
|
|
|
+
|
|
|
+ ResponseEntity<BaseResultEntity> forEntity = restTemplate.exchange(BASE_URL + CURRENT_LIST+FARM_CODE+"&position=all", HttpMethod.GET, httpEntity,BaseResultEntity.class );
|
|
|
+ List<HousVo> data = forEntity.getBody().getData();
|
|
|
+ for (HousVo datum : data) {
|
|
|
+ String stock = "0";
|
|
|
+ FeedUsage feedUsage = new FeedUsage();
|
|
|
+ ResponseEntity<HistoryEntity> todayForEntity = restTemplate.exchange(BASE_URL + HISTORY_LIST+FARM_CODE+"&i="+datum.getI()+"&start="+start+"&end="+end, HttpMethod.GET, httpEntity,HistoryEntity.class );
|
|
|
+ List<HistroyOne> todayData = todayForEntity.getBody().getData();
|
|
|
+ HistroyOne today = todayData.get(todayData.size() - 1);
|
|
|
+
|
|
|
+ Double totalConsume = today.getData().getFt_do_tal_tdy();
|
|
|
+ if (ObjectUtil.isNotEmpty(datum.getData().getQty_re())){
|
|
|
+ stock = datum.getData().getQty_re();
|
|
|
+ }
|
|
|
+ FeedUsage one = feedUsageService.getOne(new QueryWrapper<FeedUsage>().lambda().eq(FeedUsage::getUsedDate, sdf.format(new Date())).eq(FeedUsage::getUnitName, datum.getI() + "舍"));
|
|
|
+ if (ObjectUtil.isNotEmpty(one)){
|
|
|
+ one.setStock(stock);
|
|
|
+ one.setTotalConsume(BigDecimal.valueOf(totalConsume));
|
|
|
+ if ("0".equals(stock)){
|
|
|
+ one.setSingleConsume(BigDecimal.ZERO);
|
|
|
+ }else {
|
|
|
+ one.setSingleConsume(BigDecimal.valueOf(totalConsume).multiply(BigDecimal.valueOf(1000)).divide(BigDecimal.valueOf(Double.valueOf(stock)),2,RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ feedUsageService.updateById(one);
|
|
|
+ }else {
|
|
|
+ feedUsage.setUnitName(datum.getI()+"舍");
|
|
|
+ feedUsage.setAge(datum.getData().getAge());
|
|
|
+ feedUsage.setStock(stock);
|
|
|
+ feedUsage.setUsedDate(sdf.format(new Date()));
|
|
|
+ feedUsage.setTotalConsume(BigDecimal.valueOf(totalConsume));
|
|
|
+ if ("0".equals(stock)){
|
|
|
+ feedUsage.setSingleConsume(BigDecimal.ZERO);
|
|
|
+ }else {
|
|
|
+ feedUsage.setSingleConsume(BigDecimal.valueOf(totalConsume).multiply(BigDecimal.valueOf(1000)).divide(BigDecimal.valueOf(Double.valueOf(stock)),2,RoundingMode.HALF_UP));
|
|
|
+ }
|
|
|
+ feedUsageService.save(feedUsage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
FeedAnalysisVo feedAnalysisVo = new FeedAnalysisVo();
|
|
|
FeedConsumeChartVo feedConsumeChartVo= feedConsumeMapper.getTotal(startDate, endDate);
|
|
|
FeedUsedChartVo feedUsedChartVo = feedUsageMapper.getTotal(startDate, endDate,unitName);
|