智慧农业后台管理
zengh
2022-07-15 fabe7ee6a486b08d07b681f0e081c87c828878f2
src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java
@@ -14,12 +14,17 @@
import org.springblade.modules.farm.vo.FarmPaperVO;
import org.springblade.modules.farm.vo.FarmVO;
import org.springblade.modules.farm.vo.FarmingRecordVO;
import org.springblade.modules.lang.entity.Land;
import org.springblade.modules.lang.service.ILandService;
import org.springblade.modules.lang.vo.LandVO;
import org.springblade.modules.recovery.service.RecoveryService;
import org.springblade.modules.recovery.vo.RecoveryVO;
import org.springblade.modules.traceability.dto.TraceabilityDTO;
import org.springblade.modules.traceability.dto.TraceabilityDetailDTO;
import org.springblade.modules.traceability.entity.SweepRecord;
import org.springblade.modules.traceability.entity.Traceability;
import org.springblade.modules.traceability.mapper.TraceabilityMapper;
import org.springblade.modules.traceability.service.SweepRecordService;
import org.springblade.modules.traceability.service.TraceabilityService;
import org.springblade.modules.traceability.vo.TraceabilityVO;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +35,7 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;
/**
@@ -51,6 +57,12 @@
   @Autowired
   private FarmPaperService farmPaperService;
   @Autowired
   private ILandService landService;
   @Autowired
   private SweepRecordService sweepRecordService;
   /**
    * 自定义分页
@@ -108,15 +120,29 @@
    */
   @Override
   public TraceabilityDetailDTO getTraceabilityDetailInfo(Traceability traceability) {
      TraceabilityDetailDTO dto = new TraceabilityDetailDTO();
      int count = 0;
      //根据溯源码编号查询溯源信息
      Traceability traceability1 = baseMapper.selectOne(new QueryWrapper<>(traceability));
      //记录扫描记录
      if (null!=traceability.getBind() && traceability.equals("0")){
         //插入扫描记录
         SweepRecord sweepRecord = new SweepRecord();
         sweepRecord.setCreateTime(new Date());
         sweepRecord.setCode(traceability1.getId().toString());
         sweepRecord.setDeptId(traceability1.getDeptId());
         //新增
         sweepRecordService.save(sweepRecord);
      }
      //1. 查询农产品采收记录信息
      RecoveryVO recoveryVO = recoveryService.getRecoveryDetail(traceability1.getRecoveryId());
      //2. 查询相关检测信息
      List<FarmPaperVO> farmPaperList = farmPaperService.getFarmPaperList(traceability1.getDeptId());
      //3. 查询产地(地块)信息
      LandVO land = new LandVO();
      land.setId(Long.parseLong(recoveryVO.getLandId()));
      LandVO landInfo = (LandVO)landService.getLandInfo(land);
      //4. 查询农事记录信息(种植开始起)
      List<FarmingRecordVO> farmingRecordVOList = farmingRecordService.getFarmingRecordByFarmPlantId(recoveryVO);
      //5. 查询企业信息
@@ -128,7 +154,77 @@
      dto.setFarm(farmVO);
      dto.setRecordVOList(farmingRecordVOList);
      dto.setPaperVOList(farmPaperList);
      dto.setLandVO(landInfo);
      //计算百分比
      if (null!=recoveryVO){
         count = count + 20;
      }
      if (null!=farmVO){
         count = count + 20;
      }
      if (null==landInfo){
         count = count + 20;
      }
      if (farmingRecordVOList.size()>0){
         count = count + 20;
      }
      if (farmPaperList.size()>0){
         count = count + 20;
      }
      dto.setNum(count);
      //返回数据
      return dto;
   }
   /**
    * 自定义查询,不分页
    * @param traceability
    * @return
    */
   @Override
   public List<TraceabilityVO> getTraceabilityList(TraceabilityVO traceability) {
      return baseMapper.getTraceabilityList(traceability);
   }
   /**
    * 获取溯源详情信息(包含农产品信息,认证检测信息,产地(地块信息),农事记录,企业信息)扫码
    * @param traceability
    * @return
    */
   @Override
   public TraceabilityDetailDTO getTraceabilityDetailInfos(Traceability traceability) {
      TraceabilityDetailDTO dto = new TraceabilityDetailDTO();
      int count = 0;
      //根据溯源码编号查询溯源信息
      Traceability traceability1 = baseMapper.selectOne(new QueryWrapper<>(traceability));
      //记录扫描记录
      SweepRecord sweepRecord = new SweepRecord();
      sweepRecord.setCreateTime(new Date());
      sweepRecord.setCode(traceability1.getId().toString());
      sweepRecord.setDeptId(traceability1.getDeptId());
      //新增
      sweepRecordService.save(sweepRecord);
      //1. 查询农产品采收记录信息
      RecoveryVO recoveryVO = recoveryService.getRecoveryDetail(traceability1.getRecoveryId());
      //2. 查询相关检测信息
      List<FarmPaperVO> farmPaperList = farmPaperService.getFarmPaperList(traceability1.getDeptId());
      //3. 查询产地(地块)信息
      LandVO land = new LandVO();
      land.setId(Long.parseLong(recoveryVO.getLandId()));
      LandVO landInfo = (LandVO)landService.getLandInfo(land);
      //4. 查询农事记录信息(种植开始起)
      List<FarmingRecordVO> farmingRecordVOList = farmingRecordService.getFarmingRecordByFarmPlantId(recoveryVO);
      //5. 查询企业信息
      Farm farm = new Farm();
      farm.setDeptId(traceability1.getDeptId());
      Farm farmVO = farmService.getOne(new QueryWrapper<>(farm));
      //6. 数据封装
      dto.setRecoveryVO(recoveryVO);
      dto.setFarm(farmVO);
      dto.setRecordVOList(farmingRecordVOList);
      dto.setPaperVOList(farmPaperList);
      dto.setLandVO(landInfo);
      //返回
      return dto;
   }
}