src/main/java/org/springblade/common/config/TraceabilityCodeConfig.java
New file @@ -0,0 +1,22 @@ package org.springblade.common.config; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * 项目基础路径配置 */ @Component @ConfigurationProperties(prefix = "zhny") public class TraceabilityCodeConfig { private static String codeUrl; public void setCodeUrl(String codeUrl) { TraceabilityCodeConfig.codeUrl = codeUrl; } public static String getCodeUrl() { return codeUrl; } } src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java
@@ -103,6 +103,7 @@ record.setType("12"); record.setLandId(recovery.getLandId()); record.setDeptId(recovery.getDeptId()); record.setTenantId(recovery.getTenantId()); record.setStrainId(recovery.getStrainId()); record.setOperator(recovery.getOperator()); Strain strain = strainService.getById(recovery.getStrainId()); src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
@@ -12,6 +12,7 @@ import org.springblade.core.tool.utils.Func; 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.entity.Traceability; import org.springblade.modules.traceability.service.TraceabilityService; import org.springblade.modules.traceability.vo.TraceabilityVO; @@ -142,4 +143,15 @@ return R.status(traceabilityService.removeByIds(Func.toLongList(ids))); } /** * 获取溯源简介信息 * @param traceability * @return */ @GetMapping("/getSimpleInfo") public R<TraceabilityDTO> getSimpleInfo(Traceability traceability) { TraceabilityDTO traceabilityDTO = traceabilityService.getSimpleInfo(traceability); return R.data(traceabilityDTO); } } src/main/java/org/springblade/modules/traceability/dto/TraceabilityDTO.java
New file @@ -0,0 +1,27 @@ package org.springblade.modules.traceability.dto; import lombok.Data; /** * 溯源信息 * @author zhongrj * @since 2022-06-30 */ @Data public class TraceabilityDTO { /** * 溯源码编号 */ private String code; /** * 溯源详情信息 */ private String remark; /** * 溯源二维码 */ private String qrcode; } src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.java
@@ -1,8 +1,10 @@ package org.springblade.modules.traceability.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import org.springblade.modules.traceability.dto.TraceabilityDTO; import org.springblade.modules.traceability.entity.Traceability; import org.springblade.modules.traceability.vo.TraceabilityVO; @@ -24,4 +26,11 @@ */ List<TraceabilityVO> selectTraceabilityPage(@Param("page") IPage page, @Param("traceability") TraceabilityVO traceability); String selectRevorid(String code); /** * 获取溯源简介信息 * @param traceability * @return */ TraceabilityDTO getSimpleInfo(@Param("traceability") Traceability traceability); } src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml
@@ -21,4 +21,15 @@ <select id="selectRevorid" resultType="java.lang.String"> select recovery_id from sys_traceability where code=#{code} </select> <!--获取溯源简介信息--> <select id="getSimpleInfo" resultType="org.springblade.modules.traceability.dto.TraceabilityDTO"> SELECT concat(sf.farm_name,'-',ifnull(sl.land_name,'-'),'-',ss.strain_name,'-',sr.time,' 采收') remark FROM `sys_traceability` st left join blade_dept bd on bd.id = st.dept_id left join sys_recovery sr on sr.id = st.recovery_id left join sys_land sl on sl.id = sr.land_id left join sys_strain ss on ss.id = sr.strain_id left join sys_farm sf on sf.dept_id = bd.id where st.code = #{traceability.code} </select> </mapper> src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java
@@ -3,6 +3,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.entity.Traceability; import org.springblade.modules.traceability.vo.TraceabilityVO; @@ -22,4 +23,11 @@ */ IPage<TraceabilityVO> selectTraceabilityPage(IPage<TraceabilityVO> page, TraceabilityVO traceability); String selectRevorid(String code); /** * 获取溯源简介信息 * @param traceability * @return */ TraceabilityDTO getSimpleInfo(Traceability traceability); } src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java
@@ -1,12 +1,21 @@ package org.springblade.modules.traceability.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.zxing.WriterException; import org.springblade.common.config.TraceabilityCodeConfig; import org.springblade.common.utils.QRCodeUtil; import org.springblade.modules.traceability.dto.TraceabilityDTO; 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.stereotype.Service; import sun.misc.BASE64Encoder; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.List; /** @@ -33,4 +42,36 @@ public String selectRevorid(String code) { return baseMapper.selectRevorid(code); } /** * 获取溯源简介信息 * @param traceability * @return */ @Override public TraceabilityDTO getSimpleInfo(Traceability traceability) { TraceabilityDTO simpleInfo = baseMapper.getSimpleInfo(traceability); simpleInfo.setCode(traceability.getCode()); //获取二维码信息 String url = TraceabilityCodeConfig.getCodeUrl(); String encoded = null; try { encoded = URLEncoder.encode(traceability.getCode(),"UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } String content = url + "?code=" + encoded; byte[] qrCodeImage = new byte[0]; try { qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350); } catch (WriterException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } String encode = new BASE64Encoder().encode(qrCodeImage); simpleInfo.setQrcode("data:image/png;base64,"+encode); //返回 return simpleInfo; } }