From 8b7258c9427882bb1798f1502eaa35184c6e374e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Fri, 09 Aug 2024 14:29:18 +0800
Subject: [PATCH] 短信指定楼栋发送

---
 src/main/java/org/springblade/modules/house/controller/HouseholdController.java |  258 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 232 insertions(+), 26 deletions(-)

diff --git a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
index d8e7e7e..0836db5 100644
--- a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
+++ b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
@@ -16,33 +16,40 @@
  */
 package org.springblade.modules.house.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import liquibase.repackaged.org.apache.commons.lang3.StringUtils;
 import lombok.AllArgsConstructor;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-
+import org.springblade.common.node.TreeIntegerNode;
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.log.annotation.ApiLog;
+import org.springblade.core.log.logger.BladeLogger;
 import org.springblade.core.mp.support.Condition;
 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.jackson.JsonUtil;
 import org.springblade.core.tool.utils.DateUtil;
-import org.springblade.core.tool.utils.Func;
-import org.springblade.modules.house.excel.HouseHoldExcel;
-import org.springblade.modules.house.excel.HouseHoldImporter;
-import org.springframework.web.bind.annotation.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.modules.house.entity.HouseholdEntity;
+import org.springblade.modules.house.excel.ExportHouseholdExcel;
+import org.springblade.modules.house.excel.HouseTenantExcel;
+import org.springblade.modules.house.excel.ImportHouseholdExcel;
+import org.springblade.modules.house.excel.ImportTenantHouseholdExcel;
+import org.springblade.modules.house.service.IHouseholdService;
+import org.springblade.modules.house.vo.AddHouseholdVO;
 import org.springblade.modules.house.vo.HouseholdVO;
 import org.springblade.modules.house.wrapper.HouseholdWrapper;
-import org.springblade.modules.house.service.IHouseholdService;
-import org.springblade.core.boot.ctrl.BladeController;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -58,28 +65,35 @@
 public class HouseholdController extends BladeController {
 
 	private final IHouseholdService householdService;
+	private final BladeLogger bladeLogger;
 
 	/**
 	 * 住户 详情
 	 */
 	@GetMapping("/detail")
 	@ApiOperationSupport(order = 1)
+	@ApiLog("住户 详情")
 	@ApiOperation(value = "详情", notes = "传入household")
 	public R<HouseholdVO> detail(HouseholdEntity household) {
-		HouseholdEntity detail = householdService.getOne(Condition.getQueryWrapper(household));
+		bladeLogger.info("住户详情查询", JsonUtil.toJson(household));
+		HouseholdEntity detail = householdService.getOne(Condition.getQueryWrapper(household).last("limit 1"));
 		return R.data(HouseholdWrapper.build().entityVO(detail));
 	}
 
 	/**
 	 * 住户 自定义查询详情
+	 *
 	 * @param household
 	 * @return
 	 */
 	@GetMapping("/getDetail")
+	@ApiLog("住户 详情")
 	@ApiOperation(value = "详情", notes = "传入household")
 	public R getDetail(HouseholdEntity household) {
+		bladeLogger.info("住户详情查询", JsonUtil.toJson(household));
 		return R.data(householdService.getDetail(household));
 	}
+
 	/**
 	 * 住户 分页
 	 */
@@ -96,10 +110,52 @@
 	 */
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
+	@ApiLog("住户 自定义分页")
 	@ApiOperation(value = "分页", notes = "传入household")
 	public R<IPage<HouseholdVO>> page(HouseholdVO household, Query query) {
+		bladeLogger.info("住户列表信息查询", JsonUtil.toJson(household));
 		IPage<HouseholdVO> pages = householdService.selectHouseholdPage(Condition.getPage(query), household);
 		return R.data(pages);
+	}
+
+	/**
+	 * 住户 自定义分页
+	 */
+	@GetMapping("/getKeynotePersonnelPage")
+	@ApiOperationSupport(order = 3)
+	@ApiLog("住户 自定义分页")
+	@ApiOperation(value = "分页", notes = "传入household")
+	public R<IPage<HouseholdVO>> getKeynotePersonnelPage(HouseholdVO household, Query query) {
+		bladeLogger.info("住户列表信息查询", JsonUtil.toJson(household));
+		IPage<HouseholdVO> pages = householdService.getKeynotePersonnelPage(Condition.getPage(query), household);
+		return R.data(pages);
+	}
+
+	/**
+	 * 住户标签统计
+	 */
+	@GetMapping("/getlabelStatistics")
+	@ApiOperationSupport(order = 3)
+	@ApiLog("住户标签统计")
+	@ApiOperation(value = "住户标签统计", notes = "传入household")
+	public R<List<TreeIntegerNode>> getlabelStatistics(HouseholdVO household) {
+		bladeLogger.info("住户标签统计", JsonUtil.toJson(household));
+		List<TreeIntegerNode> pages  = householdService.getlabelStatistics(household);
+		return R.data(pages);
+	}
+
+
+	/**
+	 * 住户列表查询
+	 *
+	 * @param household
+	 * @return
+	 */
+	@GetMapping("/selectHouseholdList")
+	@ApiLog("住户列表查询")
+	public R selectHouseholdList(HouseholdVO household) {
+		bladeLogger.info("住户列表查询", JsonUtil.toJson(household));
+		return R.data(householdService.selectHouseholdList(household));
 	}
 
 	/**
@@ -134,13 +190,33 @@
 
 	/**
 	 * 住户 自定义新增或修改
+	 *
 	 * @param household
 	 * @return
 	 */
 	@PostMapping("/saveOrUpdateHousehold")
+	@ApiLog("住户 自定义新增或修改")
 	@ApiOperation(value = "自定义新增或修改", notes = "传入household")
-	public R saveOrUpdateHousehold(@Valid @RequestBody HouseholdEntity household) {
+	public R saveOrUpdateHousehold(@Valid @RequestBody HouseholdVO household) {
+		bladeLogger.info("住户信息新增或修改", JsonUtil.toJson(household));
 		return R.status(householdService.saveOrUpdateHousehold(household));
+	}
+
+
+	/**
+	 * 批量自定义新增或修改
+	 *
+	 * @param addHouseholdVO
+	 * @return
+	 */
+	@PostMapping("/saveOrUpdateHouseholdBatch")
+	@ApiLog("批量自定义新增或修改")
+	@ApiOperation(value = "批量自定义新增或修改", notes = "传入household")
+	public R saveOrUpdateHouseholdBatch(@Valid @RequestBody AddHouseholdVO addHouseholdVO) {
+		bladeLogger.info("住户信息新增或修改", JsonUtil.toJson(addHouseholdVO));
+		List<HouseholdVO> householdVOList = addHouseholdVO.getHouseholdVOList();
+		boolean result = householdService.saveOrUpdateHouseholdBatch(householdVOList);
+		return R.status(result);
 	}
 
 	/**
@@ -148,69 +224,199 @@
 	 */
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
+	@ApiLog("住户 删除")
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	@Transactional(rollbackFor = Exception.class)
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(householdService.removeByIds(Func.toLongList(ids)));
+		bladeLogger.info("住户信息删除", JsonUtil.toJson(ids));
+		// 返回
+		return R.status(householdService.removeHousehold(ids));
 	}
+
 
 	/**
 	 * 住户审核统计
 	 */
 	@PostMapping("/statistics")
 	@ApiOperationSupport(order = 7)
+	@ApiLog("住户审核统计")
 	@ApiOperation(value = "住户审核统计", notes = "网格员调用")
-	public R remove( ) {
-		return R.data(householdService.statistics(AuthUtil.getUserId()));
+	public R getStatistics() {
+		return R.data(householdService.statistics(AuthUtil.getUserId(), "",0));
 	}
 
 	/**
-	 * 导入用户
+	 * 导入住户
 	 */
 	@PostMapping("import-household")
 	@ApiOperationSupport(order = 12)
 	@ApiOperation(value = "导入住户", notes = "传入excel")
-	public R importUser(MultipartFile file, Integer isCovered) {
-		HouseHoldImporter houseHoldImporter = new HouseHoldImporter(householdService, isCovered == 1);
-		ExcelUtil.save(file, houseHoldImporter, HouseHoldExcel.class);
-		return R.success("操作成功");
+	public R importUser(MultipartFile file, Integer isCovered, @RequestParam(value = "isTenant", required = false) String isTenant) {
+		bladeLogger.info("住户信息导入", JsonUtil.toJson(isCovered));
+		String data = householdService.importUserHouseHold(ExcelUtil.read(file, ImportHouseholdExcel.class), isCovered == 1, isTenant);
+		return R.data(200, data, data);
 	}
 
 	/**
-	 * 导出用户
+	 * 导出住户
 	 */
 	@GetMapping("export-household")
 	@ApiOperationSupport(order = 13)
 	@ApiOperation(value = "导出住户", notes = "传入user")
 	public void exportUser(HouseholdVO household, HttpServletResponse response) {
-		List<HouseHoldExcel> list = householdService.export(household);
-		ExcelUtil.export(response, "住户户数据" + DateUtil.time(), "住户数据表", list, HouseHoldExcel.class);
+		List<ExportHouseholdExcel> list = householdService.export(household);
+		ExcelUtil.export(response, "租户户数据" + DateUtil.time(), "住户数据表", list, ExportHouseholdExcel.class);
+	}
+
+	/**
+	 * 模板下載
+	 */
+	@GetMapping("/export-template")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "模板下載", notes = "传入response")
+	public void exportUser(HttpServletResponse response, @RequestParam(value = "isTenant", required = false) String isTenant) {
+		List<ImportHouseholdExcel> list = new ArrayList<>();
+		ImportHouseholdExcel houseHoldExcel = new ImportHouseholdExcel();
+		// 设置模板数据
+		houseHoldExcel.setHouseCode("Afdsfdasf5421********411214");
+		houseHoldExcel.setName("张三");
+		houseHoldExcel.setGender("1");
+		houseHoldExcel.setPhoneNumber("13112341234");
+		houseHoldExcel.setBirthday("2001-01-01");
+		houseHoldExcel.setIdCard("360*************0001");
+		houseHoldExcel.setOtherContact("13112341234");
+		if (StringUtils.isBlank(isTenant)) {
+			houseHoldExcel.setRelationship("1");
+		} else {
+			houseHoldExcel.setRelationship("18");
+		}
+		houseHoldExcel.setIsPrimaryContact("1");
+		houseHoldExcel.setResidentialStatus("1");
+		houseHoldExcel.setEthnicity("1");
+		houseHoldExcel.setHukouRegistration("江西上饶****");
+		houseHoldExcel.setCurrentAddress("江西上饶****");
+		houseHoldExcel.setPartyEmber("2");
+		houseHoldExcel.setEducation("21");
+		houseHoldExcel.setOccupation("***");
+		houseHoldExcel.setEmployer("***单位");
+		houseHoldExcel.setCmpyRegAddr("江西上饶****");
+		houseHoldExcel.setWorkStatus("1");
+		houseHoldExcel.setMaritalStatus("1");
+		houseHoldExcel.setReligiousBelief("***");
+		houseHoldExcel.setHealthStatus("1");
+		houseHoldExcel.setGoOutWhere("去***");
+		houseHoldExcel.setGoOutAddr("回老家");
+		houseHoldExcel.setGoOutTime("2024-01-01");
+		houseHoldExcel.setGoOutAddr("江西上饶********");
+		houseHoldExcel.setCardNumber("赣*****");
+		houseHoldExcel.setVolunteerOrg("信州义警");
+		houseHoldExcel.setRemark("*****");
+		houseHoldExcel.setLabelName("普通群众");
+		list.add(houseHoldExcel);
+		ExcelUtil.export(response, "住户数据模板", "住户数据表", list, ImportHouseholdExcel.class);
 	}
 
 
 	/**
+	 * 导出住户
+	 */
+	@GetMapping("export-tenant-household")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "导出住户", notes = "传入user")
+	public void exporttenantUser(HouseholdVO household, HttpServletResponse response) {
+		List<HouseTenantExcel> list = householdService.exportTenant(household);
+		ExcelUtil.export(response, "住户户数据" + DateUtil.time(), "住户数据表", list, HouseTenantExcel.class);
+	}
+
+	/**
+	 * 模板下載
+	 */
+	@GetMapping("/export-tenant-template")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "模板下載", notes = "传入response")
+	public void exportTenantUser(HttpServletResponse response, @RequestParam(value = "isTenant", required = false) String isTenant) {
+		List<ImportTenantHouseholdExcel> list = new ArrayList<>();
+		ImportTenantHouseholdExcel houseHoldExcel = new ImportTenantHouseholdExcel();
+		// 设置模板数据
+		houseHoldExcel.setHouseCode("Afdsfdasf5421********411214");
+		houseHoldExcel.setName("张三");
+		houseHoldExcel.setGender("1");
+		houseHoldExcel.setPhoneNumber("13112341234");
+		houseHoldExcel.setBirthday("2001-01-01");
+		houseHoldExcel.setIdCard("360*************0001");
+		if (StringUtils.isBlank(isTenant)) {
+			houseHoldExcel.setRelationship("1");
+		} else {
+			houseHoldExcel.setRelationship("18");
+		}
+		houseHoldExcel.setEthnicity("1");
+		houseHoldExcel.setHukouRegistration("江西上饶****");
+		list.add(houseHoldExcel);
+		ExcelUtil.export(response, "租户数据模板", "租户数据表", list, ImportTenantHouseholdExcel.class);
+	}
+
+	/**
 	 * 住户对应物业,网格,公安负责人查询
+	 *
 	 * @param household
 	 * @return
 	 */
 	@GetMapping("/getHouseholdOtherInfo")
 	@ApiOperationSupport(order = 14)
+	@ApiLog("住户对应物业,网格,公安负责人查询")
 	@ApiOperation(value = "住户对应物业,网格,公安负责人查询", notes = "住户对应物业,网格,公安负责人查询")
 	public R getHouseholdOtherInfo(HouseholdVO household) {
+		bladeLogger.info("住户对应物业,网格,公安负责人查询", JsonUtil.toJson(household));
 		return R.data(householdService.getHouseholdOtherInfo(household));
 	}
 
 	/**
 	 * 用户信息统计
+	 *
 	 * @param code
 	 * @param roleType
 	 * @return
 	 */
 	@GetMapping("/getHouseHoldStatistics")
 	@ApiOperationSupport(order = 14)
+	@ApiLog("e呼即办表 详情")
 	@ApiOperation(value = "用户信息统计", notes = " ")
 	public R getHouseHoldStatistics(@RequestParam("code") String code, @RequestParam("roleType") String roleType) {
-		return R.data(householdService.getHouseHoldStatistics(code,roleType));
+		return R.data(householdService.getHouseHoldStatistics(code, roleType));
 	}
 
 
+	/**
+	 * 住户业主信息处理,将业主人员插入到用户表
+	 *
+	 * @return
+	 */
+	@GetMapping("/userHandle")
+	public R userHandle() {
+		return R.data(householdService.userHandle());
+	}
+
+	/**
+	 * 获取所有住户
+	 *
+	 * @return
+	 */
+	@GetMapping("/getAllHouseHold")
+	public R getAllHouseHold(HouseholdVO household) {
+		return R.data(householdService.getAllHouseHold(household));
+	}
+
+
+	/**
+	 * 通过小区id查询用户
+	 */
+	@GetMapping("/getUserInfoByDistrictIds")
+	@ApiOperation(value = "通过小区id查询用户")
+	@ApiLog("通过小区id查询用户")
+	public  R<IPage<HouseholdVO>> getUserInfoByDistrictIds(Query query,HouseholdVO householdVO) {
+		bladeLogger.info("通过小区id查询用户", JsonUtil.toJson(householdVO));
+		IPage<HouseholdVO> pages = householdService.getUserInfoByDistrictIds(householdVO, Condition.getPage(query));
+		return R.data(pages);
+	}
+
 }

--
Gitblit v1.9.3