Преглед изворни кода

Merge branch 'feat-220825-latlng'

shc пре 2 година
родитељ
комит
da072b7193

+ 1 - 30
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDistributionController.java

@@ -296,38 +296,9 @@ public class WmDaDistributionController {
 	 */
 	@GetMapping("/parseAddress")
 	public R parseAddress() {
-		LambdaQueryWrapper<WmDaDistribution> wmDaHospitalLambdaQueryWrapper = Wrappers.lambdaQuery();
 
-		wmDaHospitalLambdaQueryWrapper.isNull(WmDaDistribution::getLatitude);
+		wmDaDistributionService.parseAddress();
 
-		List<WmDaDistribution> wmDaDistributionList = wmDaDistributionService.list(wmDaHospitalLambdaQueryWrapper);
-
-		if (wmDaDistributionList.size() > 0) {
-			for (WmDaDistribution wmDaDistribution : wmDaDistributionList) {
-				JSONObject jsonObject = MapUtil.getLatAndLogByName(wmDaDistribution.getAddress());
-				if (null == jsonObject) {
-					continue;
-				}
-				wmDaDistribution.setProvince(jsonObject.getString("province"));
-				wmDaDistribution.setCity(jsonObject.getString("city"));
-				wmDaDistribution.setArea(jsonObject.getString("district"));
-				String sygsdz = jsonObject.getString("province");
-				if(StringUtils.isNotEmpty(jsonObject.getString("city"))){
-					sygsdz = sygsdz + jsonObject.getString("city");
-				}
-				if(StringUtils.isNotEmpty(jsonObject.getString("district"))){
-					sygsdz = sygsdz + jsonObject.getString("district");
-				}
-				wmDaDistribution.setSygsdz(sygsdz);
-				String location = jsonObject.getString("location");
-				if (null != location && location.split(",").length > 0) {
-					wmDaDistribution.setLongitude(location.split(",")[0]);
-					wmDaDistribution.setLatitude(location.split(",")[1]);
-				}
-
-				wmDaDistributionService.saveOrUpdate(wmDaDistribution);
-			}
-		}
 
 		return R.ok();
 	}

+ 1 - 28
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaHospitalController.java

@@ -290,34 +290,7 @@ public class WmDaHospitalController {
 	 */
 	@GetMapping("/parseAddress")
 	public R parseAddress() {
-		LambdaQueryWrapper<WmDaHospital> wmDaHospitalLambdaQueryWrapper=Wrappers.lambdaQuery();
-
-		wmDaHospitalLambdaQueryWrapper.isNull(WmDaHospital::getLatitude);
-
-		List<WmDaHospital> wmDaHospitalList=wmDaHospitalService.list(wmDaHospitalLambdaQueryWrapper);
-
-		if(wmDaHospitalList.size()>0)
-		{
-			for (WmDaHospital wmDaHospital:wmDaHospitalList) {
-				JSONObject jsonObject= MapUtil.getLatAndLogByName(wmDaHospital.getAddress());
-				if(null==jsonObject)
-				{
-					continue;
-				}
-				wmDaHospital.setProvince(jsonObject.getString("province"));
-				wmDaHospital.setCity(jsonObject.getString("city"));
-				wmDaHospital.setArea(jsonObject.getString("district"));
-				String location=jsonObject.getString("location");
-				if(null!=location&&location.split(",").length>0)
-				{
-					wmDaHospital.setLongitude(location.split(",")[0]);
-					wmDaHospital.setLatitude(location.split(",")[1]);
-				}
-
-				wmDaHospitalService.saveOrUpdate(wmDaHospital);
-			}
-		}
-
+		wmDaHospitalService.parseAddress();
 		return R.ok();
 	}
 }

+ 5 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskController.java

@@ -62,6 +62,7 @@ import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDistributionService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
+import com.qunzhixinxi.hnqz.admin.service.WmDaPharmacyService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskRuleService;
@@ -122,6 +123,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -165,6 +167,8 @@ public class WmTaskController {
 
 	private final ReportExportService reportExportService;
 
+	private final WmDaPharmacyService wmDaPharmacyService;
+
 	private final SysFileService sysFileService;
 
 	private final RabbitMqClient rabbitMqClient;
@@ -1162,7 +1166,7 @@ public class WmTaskController {
 		R result = wmTaskService.approvalTask(wmTask);
 
 
-		// 释放图片
+		// 释放图片 和 初始化经纬度
 		if (result.getCode() == CommonConstants.SUCCESS){
 
 			List<String> idList = StrUtil.split(wmTask.getId(), StrUtil.COMMA);
@@ -1230,7 +1234,6 @@ public class WmTaskController {
 
 			}
 
-
 		}
 
 

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmDaDistributionService.java

@@ -40,4 +40,10 @@ public interface WmDaDistributionService extends IService<WmDaDistribution> {
 	public R approvalDistribution(String taskId);
 
 	public R updateByApproval(Map<String,String> map);
+
+	/**
+	 * 解析商业公司地址
+	 */
+    void parseAddress();
+
 }

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmDaHospitalService.java

@@ -45,4 +45,9 @@ public interface WmDaHospitalService extends IService<WmDaHospital> {
 
 	public Map<String,String> compareDictItem(String name, String str1, String str2, String param);
 
+	/**
+	 * 初始化获取经纬度
+	 */
+	void parseAddress();
+
 }

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

@@ -18,11 +18,14 @@ package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDistribution;
+import com.qunzhixinxi.hnqz.admin.entity.WmDaHospital;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
 import com.qunzhixinxi.hnqz.admin.entity.WmTask;
@@ -35,6 +38,7 @@ import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
+import com.qunzhixinxi.hnqz.admin.util.MapUtil;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
@@ -151,9 +155,18 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 			}
 		}
 
+		// 获取商业公司经纬度
+		WmDaDistribution latAndLng = this.getLatAndLng(wmTaskContent.getTemp4().replace("-","") + wmTaskContent.getTemp7());
+		if (latAndLng != null){
+			wmDaDistribution.setLatitude(latAndLng.getLatitude());
+			wmDaDistribution.setLongitude(latAndLng.getLongitude());
+		}
+
 		//Temp29对应医院ID
 		if(exist){
 			newinfo.setId(wmDaDistribution.getId());
+			newinfo.setLatitude(wmDaDistribution.getLatitude());
+			newinfo.setLongitude(wmDaDistribution.getLongitude());
 			compareList=compareData(wmDaDistribution,wmTaskContent,newinfo);
 			if(null!=compareList&&compareList.size()>0){
 				wmTask.setCompareResult("2");//信息不一致
@@ -481,6 +494,67 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 		return R.ok();
 	}
 
+	/**
+	 * 解析商业公司地址
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void parseAddress() {
+		LambdaQueryWrapper<WmDaDistribution> wmDaHospitalLambdaQueryWrapper = Wrappers.lambdaQuery();
+
+		wmDaHospitalLambdaQueryWrapper.isNull(WmDaDistribution::getLatitude);
+
+		List<WmDaDistribution> wmDaDistributionList = this.list(wmDaHospitalLambdaQueryWrapper);
+
+		if (wmDaDistributionList.size() > 0) {
+			for (WmDaDistribution wmDaDistribution : wmDaDistributionList) {
+				WmDaDistribution daDistribution = this.getLatAndLng(wmDaDistribution.getAddress());
+				if (null == daDistribution) {
+					continue;
+				}
+				wmDaDistribution.setProvince(daDistribution.getProvince());
+				wmDaDistribution.setCity(daDistribution.getCity());
+				wmDaDistribution.setArea(daDistribution.getArea());
+				wmDaDistribution.setSygsdz(daDistribution.getSygsdz());
+				wmDaDistribution.setLongitude(daDistribution.getLongitude());
+				wmDaDistribution.setLatitude(daDistribution.getLatitude());
+
+
+				this.saveOrUpdate(wmDaDistribution);
+			}
+		}
+	}
+
+	/**
+	 * 根据地址获取商业公司经纬度
+	 * @param address 地址
+	 * @return 商业公司信息
+	 */
+	private WmDaDistribution getLatAndLng(String address){
+
+		JSONObject jsonObject = MapUtil.getLatAndLogByName(address);
+		if (null == jsonObject) {
+			return null;
+		}
+		WmDaDistribution wmDaDistribution = new WmDaDistribution();
+		wmDaDistribution.setProvince(jsonObject.getString("province"));
+		wmDaDistribution.setCity(jsonObject.getString("city"));
+		wmDaDistribution.setArea(jsonObject.getString("district"));
+		String sygsdz = jsonObject.getString("province");
+		if(StringUtils.isNotEmpty(jsonObject.getString("city"))){
+			sygsdz = sygsdz + jsonObject.getString("city");
+		}
+		if(StringUtils.isNotEmpty(jsonObject.getString("district"))){
+			sygsdz = sygsdz + jsonObject.getString("district");
+		}
+		wmDaDistribution.setSygsdz(sygsdz);
+		String location = jsonObject.getString("location");
+		if (null != location && location.split(",").length > 0) {
+			wmDaDistribution.setLongitude(location.split(",")[0]);
+			wmDaDistribution.setLatitude(location.split(",")[1]);
+		}
+		return wmDaDistribution;
+	}
 
 
 	public WmDaDistribution generateDistribution(Map<String,String> map){
@@ -512,8 +586,8 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 //		wmDaDistribution.setMedicineTraceability(StringUtils.isEmpty(map.get("medicineTraceability")) ? null : map.get("medicineTraceability"));
 //		wmDaDistribution.setMedicineTraceabilityOther(StringUtils.isEmpty(map.get("medicineTraceabilityOther")) ? null : map.get("medicineTraceabilityOther"));
 //
-//		wmDaDistribution.setLongitude(StringUtil.isEmpty(map.get("longitude"))?null:map.get("longitude"));//经度
-//		wmDaDistribution.setLatitude(StringUtil.isEmpty(map.get("latitude"))?null:map.get("latitude"));//纬度
+		wmDaDistribution.setLongitude(StringUtil.isEmpty(map.get("longitude"))?null:map.get("longitude"));//经度
+		wmDaDistribution.setLatitude(StringUtil.isEmpty(map.get("latitude"))?null:map.get("latitude"));//纬度
 
 		return wmDaDistribution;
 	}

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

@@ -17,6 +17,8 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import com.alibaba.csp.sentinel.util.StringUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -34,6 +36,7 @@ import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
+import com.qunzhixinxi.hnqz.admin.util.MapUtil;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
@@ -154,9 +157,18 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 			}
 		}
 
+		// 获取医院经纬度
+		WmDaHospital latAndLng = this.getLatAndLng(wmTaskContent.getTemp4().replace("-","") + wmTaskContent.getTemp16());
+		if (latAndLng != null){
+			wmDaHospital.setLatitude(latAndLng.getLatitude());
+			wmDaHospital.setLongitude(latAndLng.getLongitude());
+		}
+
 		if (exist) {
 			//对比系统信息和调研数据
 			newinfo.setId(wmDaHospital.getId());
+			newinfo.setLongitude(wmDaHospital.getLongitude());
+			newinfo.setLatitude(wmDaHospital.getLatitude());
 			compareList = compareData(wmDaHospital, wmTaskContent, newinfo);
 			if (null != compareList && compareList.size() > 0) {
 				wmTask.setCompareResult("2");//信息不一致
@@ -411,6 +423,63 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 		return null;
 	}
 
+	/**
+	 * 初始化获取经纬度
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void parseAddress() {
+		LambdaQueryWrapper<WmDaHospital> wmDaHospitalLambdaQueryWrapper=Wrappers.lambdaQuery();
+
+		wmDaHospitalLambdaQueryWrapper.isNull(WmDaHospital::getLatitude);
+
+		List<WmDaHospital> wmDaHospitalList=this.list(wmDaHospitalLambdaQueryWrapper);
+
+		if(wmDaHospitalList.size()>0)
+		{
+			for (WmDaHospital wmDaHospital:wmDaHospitalList) {
+				WmDaHospital hospital = this.getLatAndLng(wmDaHospital.getAddress());
+				if(null==hospital)
+				{
+					continue;
+				}
+
+				wmDaHospital.setProvince(hospital.getProvince());
+				wmDaHospital.setCity(hospital.getCity());
+				wmDaHospital.setArea(hospital.getArea());
+				wmDaHospital.setLongitude(hospital.getLongitude());
+				wmDaHospital.setLatitude(hospital.getLatitude());
+
+				this.saveOrUpdate(wmDaHospital);
+			}
+		}
+	}
+
+	/**
+	 * 根据地址获取医院经纬度
+	 * @param address 医院地址
+	 * @return 医院实体
+	 */
+	private WmDaHospital getLatAndLng(String address){
+		JSONObject jsonObject= MapUtil.getLatAndLogByName(address);
+		if(null==jsonObject)
+		{
+			return null;
+		}
+
+		WmDaHospital hospital = new WmDaHospital();
+		hospital.setProvince(jsonObject.getString("province"));
+		hospital.setCity(jsonObject.getString("city"));
+		hospital.setArea(jsonObject.getString("district"));
+		String location=jsonObject.getString("location");
+		if(null!=location&&location.split(",").length>0)
+		{
+			hospital.setLongitude(location.split(",")[0]);
+			hospital.setLatitude(location.split(",")[1]);
+		}
+		return hospital;
+	}
+
 
 	public Map<String, String> generateMap(String name, String oldData, String newData) {
 		Map map = new HashMap();
@@ -463,6 +532,8 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 				//新增
 				wmDaHospital.setCreateTime(now);
 				wmDaHospital.setCreateUser(userId);
+				wmDaHospital.setLongitude(map.get("longitude"));
+				wmDaHospital.setLatitude(map.get("latitude"));
 				this.save(wmDaHospital);
 			} else if ("2".equals(compareResult)) {//信息不一致
 				wmDaHospital.setUpdateTime(now);

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

@@ -108,6 +108,13 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 		} else {
 			wmTask.setCompareResult("1");//新增
 		}
+
+		// 获取经纬度
+		this.convertToLatAndLong(query);
+		wmDaPharmacy.setLatitude(query.getLatitude());
+		wmDaPharmacy.setLongitude(query.getLongitude());
+
+
 		Map<String,Object> result = new HashMap();
 		result.put("info", wmDaPharmacy);//数据
 		result.put("_wmTask", wmTask);