Explorar o código

feat:打卡经纬度

shc %!s(int64=2) %!d(string=hai) anos
pai
achega
be4a4db0ae

+ 0 - 10
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmTaskController.java

@@ -1234,16 +1234,6 @@ public class WmTaskController {
 
 			}
 
-			CompletableFuture<Void> hospitalFuture = CompletableFuture.runAsync(wmDaHospitalService::parseAddress);
-
-			CompletableFuture<Void> distributionFuture = CompletableFuture.runAsync(wmDaDistributionService::parseAddress);
-
-			CompletableFuture<Void> pharmacyFuture = CompletableFuture.runAsync(wmDaPharmacyService::parseAddress);
-
-			CompletableFuture<Void> all = CompletableFuture.allOf(hospitalFuture, distributionFuture, pharmacyFuture);
-
-			all.join();
-
 		}
 
 

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

@@ -25,6 +25,7 @@ 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;
@@ -214,6 +215,12 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 			wmDaDistribution.setMedicineTraceability(wmTaskContent.getTemp22()); // 药品信息化追溯体系
 			wmDaDistribution.setMedicineTraceabilityOther(wmTaskContent.getTemp25()); // 追溯体系介绍
 			wmDaDistribution.setCreateTime(LocalDateTime.now());
+			// 获取商业公司经纬度
+			WmDaDistribution latAndLng = this.getLatAndLng(wmDaDistribution.getProvince() + wmDaDistribution.getCity() + wmDaDistribution.getArea() + wmDaDistribution.getAddress());
+			if (latAndLng != null){
+				wmDaDistribution.setLatitude(latAndLng.getLatitude());
+				wmDaDistribution.setLongitude(latAndLng.getLongitude());
+			}
 			newinfo=wmDaDistribution;
 
 		}
@@ -498,32 +505,54 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 
 		if (wmDaDistributionList.size() > 0) {
 			for (WmDaDistribution wmDaDistribution : wmDaDistributionList) {
-				JSONObject jsonObject = MapUtil.getLatAndLogByName(wmDaDistribution.getAddress());
-				if (null == jsonObject) {
+				WmDaDistribution daDistribution = this.getLatAndLng(wmDaDistribution.getAddress());
+				if (null == daDistribution) {
 					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]);
-				}
+				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){
 		WmDaDistribution wmDaDistribution= BeanUtil.copyProperties(map,WmDaDistribution.class);
@@ -554,8 +583,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;
 	}

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

@@ -233,6 +233,13 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 //			wmDaHospital.setYjkzrlsfs(wmTaskContent.getTemp21());//联系方式
 //			wmDaHospital.setYbczs(wmTaskContent.getTemp22());//院病床总数(张)
 //			wmDaHospital.setZlghsy(wmTaskContent.getTemp23());//主流供货商业
+
+			// 获取医院经纬度
+			WmDaHospital latAndLng = this.getLatAndLng(wmDaHospital.getProvince() + wmDaHospital.getCity() + wmDaHospital.getArea() + wmDaHospital.getAddress());
+			if (latAndLng != null){
+				wmDaHospital.setLatitude(latAndLng.getLatitude());
+				wmDaHospital.setLongitude(latAndLng.getLongitude());
+			}
 			wmDaHospital.setCreateTime(LocalDateTime.now());
 			newinfo = wmDaHospital;
 		}
@@ -429,26 +436,48 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 		if(wmDaHospitalList.size()>0)
 		{
 			for (WmDaHospital wmDaHospital:wmDaHospitalList) {
-				JSONObject jsonObject= MapUtil.getLatAndLogByName(wmDaHospital.getAddress());
-				if(null==jsonObject)
+				WmDaHospital hospital = this.getLatAndLng(wmDaHospital.getAddress());
+				if(null==hospital)
 				{
 					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]);
-				}
+
+				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();
@@ -501,6 +530,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);