Browse Source

fix: /api/getPointSignInfo WmDaDistribution SQL ERROR

QuTong 1 year ago
parent
commit
c77c12ea41

+ 4 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmDaDistributionMapper.java

@@ -17,6 +17,9 @@ import java.util.List;
  */
 @Mapper
 public interface WmDaDistributionMapper extends BaseMapper<WmDaDistribution> {
-	public List<WmDaDistribution> listByPoint(@Param("query")WmDaDistribution wmDaDistribution);
+
+	List<WmDaDistribution> listByPoint(@Param("query")WmDaDistribution wmDaDistribution);
+
+	List<WmDaDistribution> listByPointForDM(@Param("query") WmDaDistribution wmDaHospital);
 
 }

+ 13 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaDistributionServiceImpl.java

@@ -31,9 +31,11 @@ import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -52,7 +54,7 @@ import java.util.stream.Collectors;
  */
 @Slf4j
 @Service
-@AllArgsConstructor
+@RequiredArgsConstructor
 public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMapper, WmDaDistribution> implements WmDaDistributionService {
 
 	private final WmTaskContentMapper wmTaskContentMapper;
@@ -64,6 +66,9 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 	private final WmScorePackageService packageService;
 	private final WmScorePackageStatusService packageStatusService;
 
+	@Value("${spring.datasource.druid.driver-class-name}")
+	private String driverClassName;
+
 	@Override
 	public boolean saveOrUpdateDistributionlByTask(WmTask wmTask) {
 		WmTaskContent wmTaskContent = wmTaskContentMapper.selectById(wmTask);
@@ -101,7 +106,13 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 
 	@Override
 	public List<WmDaDistribution> listByPoint(WmDaDistribution wmDaDistribution) {
-		return wmDaDistributionMapper.listByPoint(wmDaDistribution);
+
+		log.info("数据库类型:{}", driverClassName);
+		return "dm.jdbc.driver.DmDriver".equals(driverClassName)
+				? wmDaDistributionMapper.listByPointForDM(wmDaDistribution)
+				: wmDaDistributionMapper.listByPoint(wmDaDistribution);
+
+		// return wmDaDistributionMapper.listByPoint(wmDaDistribution);
 	}
 
 	@Override

+ 1 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaHospitalServiceImpl.java

@@ -105,6 +105,7 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
     @Override
     public List<WmDaHospital> listByPoint(WmDaHospital wmDaHospital) {
 
+        log.info("数据库类型:{}", driverClassName);
         return "dm.jdbc.driver.DmDriver".equals(driverClassName)
 				? wmDaHospitalMapper.listByPointForDM(wmDaHospital)
 				: wmDaHospitalMapper.listByPoint(wmDaHospital);

+ 17 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmDaDistributionMapper.xml

@@ -55,4 +55,21 @@
 			&lt;= (SELECT value from sys_dict_item WHERE type='point_jwd' limit 1) / 1000
 		ORDER BY distance asc
 	</select>
+
+	<!-- DM -->
+	<select id="listByPointForDM" resultMap="wmDaDistributionMap">
+		SELECT * from (SELECT s.*,
+							  (dmgeo.st_distance(
+									   dmgeo.st_pointfromtext(CONCAT('point(',s.longitude,' ', s.latitude,')'),0),
+									   dmgeo.st_pointfromtext(CONCAT('point(', #{query.longitude}, ' ', #{query.latitude}, ')'), 0)) / 0.0111) AS distance
+					   FROM wm_da_distribution s
+					   WHERE (s.longitude IS NOT NULL and TRIM(s.longitude) != '')
+						 AND (s.latitude IS NOT NULL and TRIM(s.latitude) != '')
+						 AND s.del_flag = 0
+						 AND s.enable_flag = 0) temp
+		WHERE distance &lt;= 1
+		ORDER BY distance ASC
+	</select>
+
+
 </mapper>

+ 4 - 6
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmDaHospitalMapper.xml

@@ -55,18 +55,16 @@
     </select>
 
     <select id="listByPointForDM" resultMap="wmDaHospitalMap">
-        SELECT * from (
-        SELECT s.*,
+        SELECT * from (SELECT s.*,
         (dmgeo.st_distance(
-            dmgeo.st_pointfromtext(CONCAT('point(',s.longitude,' ', s.latitude,')'),0),
-            dmgeo.st_pointfromtext('point('#{query.longitude}' '#{query.latitude}')',0)
-        ) / 0.0111) AS distance
+                 dmgeo.st_pointfromtext(CONCAT('point(',s.longitude,' ', s.latitude,')'),0),
+                 dmgeo.st_pointfromtext(CONCAT('point(', #{query.longitude}, ' ', #{query.latitude}, ')'), 0)) / 0.0111) AS distance
         FROM wm_da_hospital s
         WHERE (s.longitude IS NOT NULL and TRIM(s.longitude) != '')
             AND (s.latitude IS NOT NULL and TRIM(s.latitude) != '')
             AND s.del_flag = 0
             AND s.enable_flag = 0) temp
         WHERE distance &lt;= 1
-        ORDER BY distance ASC;
+        ORDER BY distance ASC
     </select>
 </mapper>