智慧农业后台管理
zengh
2022-07-01 e37630cbd344bd3e9b95964df31e7c23338c0924
Merge remote-tracking branch 'origin/master'
6 files modified
2 files added
131 ■■■■■ changed files
src/main/java/org/springblade/common/config/TraceabilityCodeConfig.java 22 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java 1 ●●●● 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/TraceabilityDTO.java 27 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml 11 ●●●●● 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 41 ●●●●● patch | view | raw | blame | history
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;
    }
}