From 3c18ab6cd51082eefdc1e3ef28751dd46db3faab Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 01 Jul 2022 10:22:18 +0800
Subject: [PATCH] 采收修改,农事记录设置租户id,溯源信息返回为二维码图片

---
 src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java |   41 +++++++++++++
 src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java    |   12 ++++
 src/main/java/org/springblade/modules/traceability/dto/TraceabilityDTO.java                  |   27 +++++++++
 src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java          |    8 ++
 src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java            |    1 
 src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.java            |    9 +++
 src/main/java/org/springblade/common/config/TraceabilityCodeConfig.java                      |   22 +++++++
 src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml             |   11 +++
 8 files changed, 131 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/common/config/TraceabilityCodeConfig.java b/src/main/java/org/springblade/common/config/TraceabilityCodeConfig.java
new file mode 100644
index 0000000..8cebc68
--- /dev/null
+++ b/src/main/java/org/springblade/common/config/TraceabilityCodeConfig.java
@@ -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;
+	}
+}
diff --git a/src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java b/src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java
index b502f55..6c2d515 100644
--- a/src/main/java/org/springblade/modules/recovery/controller/RecoveryController.java
+++ b/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());
diff --git a/src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java b/src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
index fc2d017..c8d8cad 100644
--- a/src/main/java/org/springblade/modules/traceability/controller/TraceabilityController.java
+++ b/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);
+	}
+
 }
diff --git a/src/main/java/org/springblade/modules/traceability/dto/TraceabilityDTO.java b/src/main/java/org/springblade/modules/traceability/dto/TraceabilityDTO.java
new file mode 100644
index 0000000..d16947b
--- /dev/null
+++ b/src/main/java/org/springblade/modules/traceability/dto/TraceabilityDTO.java
@@ -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;
+}
diff --git a/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.java b/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.java
index 4516f2e..59592e4 100644
--- a/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.java
+++ b/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);
 }
diff --git a/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml b/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml
index cb95225..25c25ed 100644
--- a/src/main/java/org/springblade/modules/traceability/mapper/TraceabilityMapper.xml
+++ b/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>
diff --git a/src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java b/src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java
index ce42dff..57172f8 100644
--- a/src/main/java/org/springblade/modules/traceability/service/TraceabilityService.java
+++ b/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);
 }
diff --git a/src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java b/src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java
index d6a445c..cdc6902 100644
--- a/src/main/java/org/springblade/modules/traceability/service/impl/TraceabilityServiceImpl.java
+++ b/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;
+	}
 }

--
Gitblit v1.9.3