Explorar o código

1、社区统计

slowslo %!s(int64=4) %!d(string=hai) anos
pai
achega
7cc131da5b

+ 15 - 0
blade-service-api/person-api/src/main/java/org/springblade/person/feign/HouseUserClientFallback.java

@@ -95,4 +95,19 @@ public class HouseUserClientFallback implements IHouseUserClient {
 		return null;
 	}
 
+	@Override
+	public Integer houseUserCount(HouseUser staff) {
+		return null;
+	}
+
+	@Override
+	public Integer yxfCount(List<Long> ids) {
+		return null;
+	}
+
+	@Override
+	public Integer count(String tenantId) {
+		return null;
+	}
+
 }

+ 21 - 0
blade-service-api/person-api/src/main/java/org/springblade/person/feign/IHouseUserClient.java

@@ -98,4 +98,25 @@ public interface IHouseUserClient {
 	@PostMapping("/applySave")
 	HouseUser applySave(@Valid @RequestBody HouseUser houseUser);
 
+	/***
+	 * 住户数量
+	 * @param staff
+	 * @return
+	 */
+	@PostMapping("/houseUserCount")
+	Integer houseUserCount(@RequestBody HouseUser houseUser);
+
+	/***
+	 * 【web端 人脸权限】获取常住人员人脸权限已下发的数量
+	 * @param ids
+	 * @return
+	 */
+	@PostMapping("/yxfCount")
+	Integer yxfCount(@RequestBody List<Long> ids);
+
+	/**
+	 * 数量
+	 */
+	@GetMapping("/count")
+	Integer count(@RequestParam(value = "tenantId", required = false) String tenantId);
 }

+ 9 - 6
blade-service/community/src/main/java/org/springblade/community/controller/statistic/controller/StatisticsController.java

@@ -907,18 +907,20 @@ public class StatisticsController extends BladeController {
 
 
 	/**
-	 * 	园区车辆出入趋势
+	 * 	园区/社区数据统计
 	 * */
 	@GetMapping("/dataStat")
-	@ApiOperation("园区数据统计")
-	public R<DataStaticVO> dataStat(BladeUser bladeUser){
-		List<Agency> agencyList = agencyService.list(new LambdaQueryWrapper<Agency>().eq(Agency::getAgencyType, 2));
+	@ApiOperation("园区/社区数据统计")
+	public R<DataStaticVO> dataStat(@RequestParam(value = "agencyType", required = false) Integer agencyType, BladeUser bladeUser){
+		List<Agency> agencyList = agencyService.list(new LambdaQueryWrapper<Agency>().eq(Agency::getAgencyType, agencyType));
 		int agencyCount = agencyList.size();
-		int residentialCount = residentialService.count(new LambdaQueryWrapper<Residential>().in(Residential::getAgencyId, agencyList));
-		int buildingCount = buildingService.count(new LambdaQueryWrapper<Building>().in(Building::getAgencyId, agencyList));
+		List<Long> agencyIdList = agencyList.stream().map(Agency::getId).collect(Collectors.toList());
+		int residentialCount = residentialService.count(new LambdaQueryWrapper<Residential>().in(agencyList.size() > 0, Residential::getAgencyId, agencyIdList));
+		int buildingCount = buildingService.count(new LambdaQueryWrapper<Building>().in(Building::getAgencyId, agencyIdList));
 		Integer enterpriseCount = enterpriseClient.count(bladeUser.getTenantId());
 		Integer staffCount = staffClient.count(bladeUser.getTenantId());
 		Integer serverUserCount = serverUserClient.count(bladeUser.getTenantId());
+		Integer houseUserCount = houseUserClient.count(bladeUser.getTenantId());
 		return R.data(DataStaticVO.builder()
 			.agencyList(agencyList)
 			.agencyCount(agencyCount)
@@ -927,6 +929,7 @@ public class StatisticsController extends BladeController {
 			.enterpriseCount(enterpriseCount)
 			.staffCount(staffCount)
 			.serverUserCount(serverUserCount)
+			.houseUserCount(houseUserCount)
 			.build());
 	}
 

+ 2 - 0
blade-service/community/src/main/java/org/springblade/community/controller/statistic/vo/DataStaticVO.java

@@ -36,6 +36,8 @@ public class DataStaticVO implements Serializable {
 
 	@ApiModelProperty("服务员总数")
 	private Integer serverUserCount;
+	@ApiModelProperty("住户总数")
+	private Integer houseUserCount;
 
 	private  Integer roomCount;
 

+ 39 - 3
blade-service/estate/src/main/java/org/springblade/estate/controller/UserFacePermissionsController.java

@@ -48,6 +48,8 @@ import org.springblade.estate.service.IUserAccessPermissionsService;
 import org.springblade.estate.vo.UserAccessPermissionsVO;
 import org.springblade.estate.vo.UserFacePermissionsStatisticsVO;
 import org.springblade.estate.wrapper.UserAccessPermissionsWrapper;
+import org.springblade.person.entity.HouseUser;
+import org.springblade.person.feign.IHouseUserClient;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.web.bind.annotation.*;
 
@@ -71,6 +73,7 @@ import java.util.stream.Collectors;
 public class UserFacePermissionsController extends BladeController {
 
 	private final IStaffClient staffClient;
+	private final IHouseUserClient houseUserClient;
 	private final IUserAccessPermissionsService userAccessPermissionsService;
 	private final IGuestRecordService guestRecordService;
 	private final IServerUserService serverUserService;
@@ -83,11 +86,16 @@ public class UserFacePermissionsController extends BladeController {
 	@GetMapping("/statistics")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入userAccessPermissions")
-	public R statistics(@RequestParam Integer type) {
+	public R statistics(@RequestParam Integer tenantType, @RequestParam Integer type) {
 		UserFacePermissionsStatisticsVO vo = null;
 		if (type.equals(0)) {
-			//获取常驻人员的数据统计
-			vo = getStaffUserStatisticsVO();
+			if(tenantType == 0){
+				//获取常驻人员的数据统计
+				vo = getHouseUserStatisticsVO();
+			}else{
+				//获取常驻人员的数据统计
+				vo = getStaffUserStatisticsVO();
+			}
 		} else if (type.equals(1)) {
 			//获取来访人员的数据统计
 			vo = getGuestUserStatisticsVO();
@@ -151,6 +159,34 @@ public class UserFacePermissionsController extends BladeController {
 		return statisticsVO;
 	}
 
+	/**
+	 * 【web端】人脸权限==>获取常驻人员的数据统计
+	 *
+	 * @return
+	 */
+	private UserFacePermissionsStatisticsVO getHouseUserStatisticsVO() {
+		//获取已下发的id列表
+		List<Long> ids = userAccessPermissionsService.getUserIdsByUserType(CommonConstant.UserFlag.HOUSE_USER_FLAG.getValue());
+		//待审核
+		HouseUser houseUser = new HouseUser();
+		houseUser.setAuditStatus(CommonConstant.UserAuditStatus.wait.getValue());
+		Integer waitCount = houseUserClient.houseUserCount(houseUser);
+		//已审核
+		houseUser.setAuditStatus(CommonConstant.UserAuditStatus.pass.getValue());
+		Integer passCount = houseUserClient.houseUserCount(houseUser);
+		//已下发
+		Integer yxfCount = houseUserClient.yxfCount(ids);
+		//待下发【已审核数量-已下发数量】
+		int dxfCount = passCount - yxfCount;
+
+		UserFacePermissionsStatisticsVO statisticsVO = UserFacePermissionsStatisticsVO.builder()
+			.waitCount(waitCount)
+			.passCount(passCount)
+			.dxfCount(dxfCount)
+			.yxfCount(yxfCount).build();
+		return statisticsVO;
+	}
+
 	/**
 	 * 【web端】人脸权限==>获取拜访人员的数据统计
 	 *

+ 20 - 0
blade-service/person/src/main/java/org/springblade/person/feign/HouseUserClient.java

@@ -1,5 +1,6 @@
 package org.springblade.person.feign;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,6 +14,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.enterprise.entity.Staff;
 import org.springblade.person.dto.HouseUserDTO;
 import org.springblade.person.entity.HouseUser;
 import org.springblade.person.service.HouseUserService;
@@ -154,5 +156,23 @@ public class HouseUserClient implements IHouseUserClient {
 		return houseUser;
 	}
 
+	@Override
+	@PostMapping("/houseUserCount")
+	public Integer houseUserCount(@RequestBody HouseUser houseUser) {
+		return houseUserService.count(Condition.getQueryWrapper(houseUser));
+	}
+
+	@Override
+	@PostMapping("/yxfCount")
+	public Integer yxfCount(@RequestBody List<Long> ids) {
+		return houseUserService.count(Condition.getQueryWrapper(new HouseUser()).lambda().in(CollUtil.isNotEmpty(ids),HouseUser::getId, ids));
+	}
+
+	@Override
+	@GetMapping("/count")
+	public Integer count(@RequestParam(value = "tenantId", required = false) String tenantId) {
+		return houseUserService.count();
+	}
+
 
 }

+ 2 - 2
blade-service/third/src/main/java/org/springblade/datamigration/controller/PersonDataMigrationController.java

@@ -114,9 +114,9 @@ public class PersonDataMigrationController {
 		houseUser.setBuildingName(jsonObject.get("buildingName") != null ? jsonObject.getStr("buildingName"): null);
 		houseUser.setFloorId(jsonObject.get("floorId") != null ? jsonObject.getLong("floorId") : null);
 		houseUser.setFloorName(jsonObject.get("floorName") != null ? jsonObject.getStr("floorName"): null);
-		houseUser.setCheckState(jsonObject.get("checkState") != null ? jsonObject.getInt("checkState"): null);
+		houseUser.setAuditStatus(jsonObject.get("checkState") != null ? jsonObject.getInt("checkState"): null);
 		houseUser.setCheckOpinion(jsonObject.get("checkOpinion") != null ? jsonObject.getStr("checkOpinion") : null);
-		houseUser.setImageUri(jsonObject.get("imageUri") != null ? jsonObject.getStr("imageUri") : null);
+		houseUser.setFaceUrl(jsonObject.get("imageUri") != null ? jsonObject.getStr("imageUri") : null);
 		try {
 			if (null != jsonObject.get("faceBeginDate"))
 				houseUser.setFaceBeginDate(sdf.parse(jsonObject.getStr("faceBeginDate")));