智慧农业后台管理
Administrator
2022-07-01 0ea162c9bbd4e2ac337aae567005369fbc911032
新增查询溯源详情接口,采收新增修改
19 files modified
1 files added
257 ■■■■■ changed files
src/main/java/org/springblade/modules/farm/mapper/FarmPaperMapper.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/mapper/FarmPaperMapper.xml 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/mapper/FarmingRecordMapper.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/mapper/FarmingRecordMapper.xml 24 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/service/FarmPaperService.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/service/FarmingRecordService.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/service/impl/FarmPaperServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/service/impl/FarmRecordServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/vo/FarmingRecordVO.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml 14 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/service/RecoveryService.java 7 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/service/impl/RecoveryServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/vo/RecoveryVO.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/dto/TraceabilityDetailDTO.java 42 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java 57 ●●●●● patch | view | raw | blame | history
src/main/resources/application.yml 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/farm/mapper/FarmPaperMapper.java
@@ -24,4 +24,10 @@
     */
    List<FarmPaperVO> selectFarmPaperPage(@Param("page") IPage page, @Param("farmPaper") FarmPaperVO farmPaper);
    /**
     * 查询相关检测信息
     * @param deptId
     * @return
     */
    List<FarmPaperVO> getFarmPaperList(@Param("deptId")String deptId);
}
src/main/java/org/springblade/modules/farm/mapper/FarmPaperMapper.xml
@@ -16,4 +16,9 @@
        </if>
    </select>
    <!--查询相关检测信息-->
    <select id="getFarmPaperList" resultType="org.springblade.modules.farm.vo.FarmPaperVO">
        select * from sys_farm_paper sfp where dept_id = #{deptId}
    </select>
</mapper>
src/main/java/org/springblade/modules/farm/mapper/FarmingRecordMapper.java
@@ -22,6 +22,7 @@
import org.springblade.modules.farm.entity.FarmingRecord;
import org.springblade.modules.farm.vo.FarmingRecordVO;
import org.springblade.modules.farm.vo.FarmingStatisVO;
import org.springblade.modules.recovery.vo.RecoveryVO;
import java.util.List;
@@ -59,4 +60,11 @@
    Double selectQyCount(String deptId);
    //本月农资使用量
    Double selectByCount(String deptId);
    /**
     * 查询农事记录信息(种植开始起)
     * @param recoveryVO 采收信息
     * @return
     */
    List<FarmingRecordVO> getFarmingRecordByFarmPlantId(@Param("recovery") RecoveryVO recoveryVO);
}
src/main/java/org/springblade/modules/farm/mapper/FarmingRecordMapper.xml
@@ -123,4 +123,28 @@
        WHERE DATE_FORMAT(time, '%Y%m') = DATE_FORMAT(CURDATE(), '%Y%m')
          and dept_id = #{deptId}
    </select>
    <!--查询农事记录信息(种植开始起)-->
    <select id="getFarmingRecordByFarmPlantId" resultType="org.springblade.modules.farm.vo.FarmingRecordVO">
        select bu.real_name realName,sfr.time,case
                   when type = 0 then '施肥'
                   when type = 1 then '翻耕'
                   when type = 2 then '灌溉'
                   when type = 3 then '起垄'
                   when type = 4 then '用药'
                   when type = 5 then '追肥'
                   when type = 6 then '除草'
                   when type = 7 then '修剪'
                   when type = 8 then '浸种'
                   when type = 9 then '拌种'
                   when type = 10 then '移栽'
                   when type = 11 then '直播'
                   when type = 12 then '采收'
                   else '其他' end as typeName
        from sys_farming_record sfr
        left join blade_user bu on bu.id = sfr.operator
        where land_id = #{recovery.landId}
        and strain_id = #{recovery.strainId}
        order by sfr.time desc,sfr.create_time desc
    </select>
</mapper>
src/main/java/org/springblade/modules/farm/service/FarmPaperService.java
@@ -6,6 +6,8 @@
import org.springblade.modules.farm.entity.FarmPaper;
import org.springblade.modules.farm.vo.FarmPaperVO;
import java.util.List;
/**
 * 农场检测报告/证书服务类
 * @since 2022-05-10
@@ -23,4 +25,10 @@
    IPage<FarmPaperVO> selectFarmPaperPage(IPage<FarmPaperVO> page, FarmPaperVO farmPaper);
    /**
     * 查询相关检测信息
     * @param deptId
     * @return
     */
    List<FarmPaperVO> getFarmPaperList(String deptId);
}
src/main/java/org/springblade/modules/farm/service/FarmingRecordService.java
@@ -6,6 +6,8 @@
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.farm.entity.FarmingRecord;
import org.springblade.modules.farm.vo.FarmingRecordVO;
import org.springblade.modules.recovery.vo.RecoveryVO;
import org.springblade.modules.traceability.entity.Traceability;
import java.util.List;
@@ -42,4 +44,11 @@
    Double selectQyCount(String deptId);
    //本月农资使用量
    Double selectByCount(String deptId);
    /**
     * 查询农事记录信息(种植开始起)
     * @param recoveryVO 采收信息
     * @return
     */
    List<FarmingRecordVO> getFarmingRecordByFarmPlantId(RecoveryVO recoveryVO);
}
src/main/java/org/springblade/modules/farm/service/impl/FarmPaperServiceImpl.java
@@ -8,6 +8,8 @@
import org.springframework.stereotype.Service;
import org.springblade.modules.farm.service.FarmPaperService;
import java.util.List;
/**
 * 农场检测报告/证书服务实现类
 * @since 2022-05-10
@@ -27,4 +29,13 @@
        return page.setRecords(baseMapper.selectFarmPaperPage(page, farm));
    }
    /**
     * 查询相关检测信息
     * @param deptId
     * @return
     */
    @Override
    public List<FarmPaperVO> getFarmPaperList(String deptId) {
        return baseMapper.getFarmPaperList(deptId);
    }
}
src/main/java/org/springblade/modules/farm/service/impl/FarmRecordServiceImpl.java
@@ -6,6 +6,7 @@
import org.springblade.modules.farm.mapper.FarmingRecordMapper;
import org.springblade.modules.farm.service.FarmingRecordService;
import org.springblade.modules.farm.vo.FarmingRecordVO;
import org.springblade.modules.recovery.vo.RecoveryVO;
import org.springblade.modules.system.entity.DictBiz;
import org.springblade.modules.system.service.IDictBizService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -95,4 +96,14 @@
    public Double selectByCount(String deptId) {
        return baseMapper.selectByCount(deptId);
    }
    /**
     * 查询农事记录信息(种植开始起)
     * @param recoveryVO 采收信息
     * @return
     */
    @Override
    public List<FarmingRecordVO> getFarmingRecordByFarmPlantId(RecoveryVO recoveryVO) {
        return baseMapper.getFarmingRecordByFarmPlantId(recoveryVO);
    }
}
src/main/java/org/springblade/modules/farm/vo/FarmingRecordVO.java
@@ -22,5 +22,14 @@
     * 操作类型名称
     */
    private String typeName;
    /**
     * 数量
     */
    private Integer snum;
    /**
     * 操作人信息
     */
    private String realName;
}
src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java
@@ -114,7 +114,7 @@
            //库存
            //先查询是否有该农产品的库存
            FarmProductStock stock = new FarmProductStock();
            stock.setFarmPlantId(recovery.getFarmPlantId());
//            stock.setFarmPlantId(recovery.getFarmPlantId());
            stock.setStrainId(recovery.getStrainId());
            FarmProductStock stock1 = farmProductStockService.getOne(new QueryWrapper<>(stock));
            if (null != stock1) {
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.java
@@ -31,4 +31,11 @@
     * @return
     */
    int getCodePreCount(@Param("pre") String pre);
    /**
     * 查询农产品采收记录信息
     * @param recoveryId
     * @return
     */
    RecoveryVO getRecoveryDetail(@Param("recoveryId") Integer recoveryId);
}
src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
@@ -36,4 +36,18 @@
        select ifnull(max(0+RIGHT(code,7)),0) from sys_traceability
        where code like concat('%', #{pre},'%')
    </select>
    <!--查询农产品采收记录信息-->
    <select id="getRecoveryDetail" resultType="org.springblade.modules.recovery.vo.RecoveryVO">
        select sr.id,sr.strain_id strainId,sr.land_id landId,sr.time,ss.strain_name strainName,ss.url,
        case
           when sfp.plant = '0' then '有机'
           when sfp.plant = 1 then '绿色'
           when sfp.plant = 2 then '无公害'
           else '普通' end as lx
        from sys_recovery sr
        left join sys_strain ss on sr.strain_id = ss.id
        left join sys_farm_plant sfp on sfp.id = sr.farm_plant_id
        where sr.id = #{recoveryId}
    </select>
</mapper>
src/main/java/org/springblade/modules/recovery/service/RecoveryService.java
@@ -28,4 +28,11 @@
     * @return
     */
    int getCodePreCount(String pre);
    /**
     * 查询农产品采收记录信息
     * @param recoveryId
     * @return
     */
    RecoveryVO getRecoveryDetail(Integer recoveryId);
}
src/main/java/org/springblade/modules/recovery/service/impl/RecoveryServiceImpl.java
@@ -35,4 +35,14 @@
    public int getCodePreCount(String pre) {
        return baseMapper.getCodePreCount(pre);
    }
    /**
     * 查询农产品采收记录信息
     * @param recoveryId
     * @return
     */
    @Override
    public RecoveryVO getRecoveryDetail(Integer recoveryId) {
        return baseMapper.getRecoveryDetail(recoveryId);
    }
}
src/main/java/org/springblade/modules/recovery/vo/RecoveryVO.java
@@ -25,4 +25,9 @@
     * 类型
     */
    private String lx;
    /**
     * url
     */
    private String url;
}
src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
@@ -13,6 +13,7 @@
import org.springblade.modules.recovery.entity.Recovery;
import org.springblade.modules.recovery.service.RecoveryService;
import org.springblade.modules.traceability.dto.TraceabilityDTO;
import org.springblade.modules.traceability.dto.TraceabilityDetailDTO;
import org.springblade.modules.traceability.entity.Traceability;
import org.springblade.modules.traceability.service.TraceabilityService;
import org.springblade.modules.traceability.vo.TraceabilityVO;
@@ -154,4 +155,15 @@
        return R.data(traceabilityDTO);
    }
    /**
     * 获取溯源详情信息(包含农产品信息,认证检测信息,产地(地块信息),农事记录,企业信息)
     * @param traceability
     * @return
     */
    @GetMapping("/getTraceabilityDetailInfo")
    public R<TraceabilityDetailDTO> getTraceabilityDetailInfo(Traceability traceability) {
        TraceabilityDetailDTO traceabilityDTO = traceabilityService.getTraceabilityDetailInfo(traceability);
        return R.data(traceabilityDTO);
    }
}
src/main/java/org/springblade/modules/traceability/dto/TraceabilityDetailDTO.java
New file
@@ -0,0 +1,42 @@
package org.springblade.modules.traceability.dto;
import lombok.Data;
import org.springblade.modules.farm.entity.Farm;
import org.springblade.modules.farm.vo.FarmPaperVO;
import org.springblade.modules.farm.vo.FarmingRecordVO;
import org.springblade.modules.lang.vo.LandVO;
import org.springblade.modules.recovery.vo.RecoveryVO;
import java.util.List;
/**
 * @author zhongrj
 * @since 2022-07-01
 */
@Data
public class TraceabilityDetailDTO {
    /**
     * 采收产品相关信息
     */
    private RecoveryVO recoveryVO;
    /**
     * 检查证书等信息
     */
    private List<FarmPaperVO> paperVOList;
    /**
     * 地块信息
     */
    private LandVO landVO;
    /**
     * 农事记录信息
     */
    private List<FarmingRecordVO> recordVOList;
    /**
     * 企业信息
     */
    private Farm farm;
}
src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.traceability.dto.TraceabilityDTO;
import org.springblade.modules.traceability.dto.TraceabilityDetailDTO;
import org.springblade.modules.traceability.entity.Traceability;
import org.springblade.modules.traceability.vo.TraceabilityVO;
@@ -30,4 +31,11 @@
     * @return
     */
    TraceabilityDTO getSimpleInfo(Traceability traceability);
    /**
     * 获取溯源详情信息(包含农产品信息,认证检测信息,产地(地块信息),农事记录,企业信息)
     * @param traceability
     * @return
     */
    TraceabilityDetailDTO getTraceabilityDetailInfo(Traceability traceability);
}
src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java
@@ -5,14 +5,28 @@
import com.google.zxing.WriterException;
import org.springblade.common.config.TraceabilityCodeConfig;
import org.springblade.common.utils.QRCodeUtil;
import org.springblade.modules.farm.entity.Farm;
import org.springblade.modules.farm.entity.FarmPaper;
import org.springblade.modules.farm.entity.FarmingRecord;
import org.springblade.modules.farm.service.FarmPaperService;
import org.springblade.modules.farm.service.FarmService;
import org.springblade.modules.farm.service.FarmingRecordService;
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.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.Traceability;
import org.springblade.modules.traceability.mapper.TraceabilityMapper;
import org.springblade.modules.traceability.service.TraceabilityService;
import org.springblade.modules.traceability.vo.TraceabilityVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import sun.misc.BASE64Encoder;
import javax.sound.midi.Receiver;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
@@ -25,6 +39,18 @@
 */
@Service
public class TraceabilityServiceImpl extends ServiceImpl<TraceabilityMapper, Traceability> implements TraceabilityService {
    @Autowired
    private RecoveryService recoveryService;
    @Autowired
    private FarmingRecordService farmingRecordService;
    @Autowired
    private FarmService farmService;
    @Autowired
    private FarmPaperService farmPaperService;
    /**
     * 自定义分页
@@ -74,4 +100,35 @@
        //返回
        return simpleInfo;
    }
    /**
     * 获取溯源详情信息(包含农产品信息,认证检测信息,产地(地块信息),农事记录,企业信息)
     * @param traceability
     * @return
     */
    @Override
    public TraceabilityDetailDTO getTraceabilityDetailInfo(Traceability traceability) {
        TraceabilityDetailDTO dto = new TraceabilityDetailDTO();
        //根据溯源码编号查询溯源信息
        Traceability traceability1 = baseMapper.selectOne(new QueryWrapper<>(traceability));
        //1. 查询农产品采收记录信息
        RecoveryVO recoveryVO = recoveryService.getRecoveryDetail(traceability1.getRecoveryId());
        //2. 查询相关检测信息
        List<FarmPaperVO> farmPaperList = farmPaperService.getFarmPaperList(traceability1.getDeptId());
        //3. 查询产地(地块)信息
        //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);
        //返回数据
        return dto;
    }
}
src/main/resources/application.yml
@@ -205,6 +205,8 @@
      - /farmPlant/**
      - /farmProductStock/**
      - /strain/**
      - /blade-user/**
      - /traceability/**
    #授权认证配置
    auth:
      - method: ALL