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