From c4fb77c78f0617abdf117ca135dfee519f0bca51 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 03 Jan 2024 18:13:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java          |   41 ++++++++-----
 src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml |   31 ++++++++--
 src/main/java/org/springblade/modules/grid/excel/GridmanExcel.java                       |   18 ++----
 src/main/java/org/springblade/modules/house/controller/HouseholdController.java          |   25 ++++++++
 src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml                   |    1 
 src/main/java/org/springblade/modules/grid/entity/GridWorkLogEntity.java                 |   22 +++---
 src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java           |    6 +
 src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java                  |    9 +++
 src/main/java/org/springblade/modules/grid/vo/GridWorkLogVO.java                         |   16 +++++
 9 files changed, 120 insertions(+), 49 deletions(-)

diff --git a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
index 8fbe960..aa4de06 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
+++ b/src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -179,17 +179,32 @@
         )
     </select>
 
+    <!--户室map-->
+    <resultMap id="houseFuncNodeMap" type="org.springblade.modules.doorplateAddress.vo.FuncNode" autoMapping="true" >
+        <id column="id" property="id"/>
+        <collection property="householdLabelList" javaType="java.util.List"
+                    ofType="org.springblade.modules.house.vo.HouseholdLabelVO" autoMapping="true">
+            <id property="id" column="cid"/>
+        </collection>
+    </resultMap>
+
     <!--查询户室及住户相关信息,单元中包含住户-->
-    <select id="getUnitHouseholdList" resultType="org.springblade.modules.doorplateAddress.vo.FuncNode" >
+    <select id="getUnitHouseholdList" resultMap="houseFuncNodeMap" >
         (
             select
-            ifnull(jda.unit_name,"未知单元") unitName,jda.unit_code unitCode,jda.floor,jda.house_name as houseNo,
+            jda.id,ifnull(jda.unit_name,"未知单元") unitName,jda.unit_code unitCode,jda.floor,jda.house_name as houseNo,
             jda.address_code addressCode,
-            jh.name as realName,jh.role_type as roleType,1 as addressType
+            jh.name as realName,jh.relationship as roleType,1 as addressType,
+            juhl.id as cid,juhl.house_code,juhl.label_id,juhl.label_name,juhl.color,juhl.household_id
             from jczz_doorplate_address jda
             left join
-                (select house_code,name,role_type from jczz_household where role_type = 1) jh
+            (
+                SELECT house_code, NAME, relationship FROM jczz_household WHERE id in(
+                    SELECT max(id) FROM jczz_household where relationship = 1 GROUP BY house_code
+                )
+            ) jh
             on jda.address_code = jh.house_code
+            left join jczz_user_house_label juhl on juhl.house_code = jda.address_code and lable_type=1
             where 1=1
             and floor != ''
             and house_name != ''
@@ -202,9 +217,11 @@
         )
         union all
         (
-            select '' as unitName,address_code as unitCode,doorplate_name as floor,'' as houseNo,address_code as addressCode,
-            '' as realName,'' as roleType,2 as addressType
-            from jczz_doorplate_address
+            select jda2.id,'' as unitName,address_code as unitCode,doorplate_name as floor,'' as houseNo,address_code as addressCode,
+            '' as realName,'' as roleType,2 as addressType,
+            juhl.id as cid,juhl.house_code,juhl.label_id,juhl.label_name,juhl.color,juhl.household_id
+            from jczz_doorplate_address jda2
+            left join jczz_user_house_label juhl on juhl.house_code = jda2.address_code and lable_type=1
             where 1=1
             and building_code = #{houseParam.code}
             and building_name != ''
diff --git a/src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java b/src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java
index 4d2b9e2..4a187e1 100644
--- a/src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java
+++ b/src/main/java/org/springblade/modules/doorplateAddress/vo/FuncNode.java
@@ -1,12 +1,16 @@
 package org.springblade.modules.doorplateAddress.vo;
 
 import lombok.Data;
+import org.springblade.modules.house.vo.HouseholdLabelVO;
+
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
 @Data
 public class FuncNode implements Serializable {
+
+	private Long id;
 
 	/**
 	 * 单元编号
@@ -63,4 +67,9 @@
 	 */
 	private List<FuncNode> children = new ArrayList<>();
 
+	/**
+	 * 标签
+	 */
+	private List<HouseholdLabelVO> householdLabelList = new ArrayList<>();
+
 }
diff --git a/src/main/java/org/springblade/modules/grid/entity/GridWorkLogEntity.java b/src/main/java/org/springblade/modules/grid/entity/GridWorkLogEntity.java
index fff1ab0..66e4b8b 100644
--- a/src/main/java/org/springblade/modules/grid/entity/GridWorkLogEntity.java
+++ b/src/main/java/org/springblade/modules/grid/entity/GridWorkLogEntity.java
@@ -74,17 +74,17 @@
 	 */
 	@ApiModelProperty(value = "被访人用户id")
 	private Long householdId;
-
-	/**
-	 * 被访人姓名
-	 */
-	@ApiModelProperty(value = "被访人姓名")
-	private String name;
-	/**
-	 * 被访人电话
-	 */
-	@ApiModelProperty(value = "被访人电话")
-	private String phone;
+//
+//	/**
+//	 * 被访人姓名
+//	 */
+//	@ApiModelProperty(value = "被访人姓名")
+//	private String name;
+//	/**
+//	 * 被访人电话
+//	 */
+//	@ApiModelProperty(value = "被访人电话")
+//	private String phone;
 	/**
 	 * 内容
 	 */
diff --git a/src/main/java/org/springblade/modules/grid/excel/GridmanExcel.java b/src/main/java/org/springblade/modules/grid/excel/GridmanExcel.java
index 1129db8..de5891c 100644
--- a/src/main/java/org/springblade/modules/grid/excel/GridmanExcel.java
+++ b/src/main/java/org/springblade/modules/grid/excel/GridmanExcel.java
@@ -23,30 +23,24 @@
 	private static final long serialVersionUID = 1L;
 
 	@ColumnWidth(15)
-	@ExcelProperty("社区名称")
+	@ExcelProperty("社区网格名称")
 	private String communityName;
 
 
 	@ColumnWidth(15)
-	@ExcelProperty("网格名称")
-	private String gridName;
+	@ExcelProperty("网格编号")
+	private String gridCode;
 
 	/**
 	 * 网格员名称
 	 */
 	@ApiModelProperty(value = "网格员姓名")
 	private String gridmanName;
-	/**
-	 * 手机号
-	 */
-	@ApiModelProperty(value = "联系电话")
-	private String mobile;
 
 	/**
-	 * 备注
+	 * 网格员电话
 	 */
-	@ColumnWidth(50)
-	@ExcelProperty("备注")
-	private String remark;
+	@ApiModelProperty(value = "网格员电话")
+	private String mobile;
 
 }
diff --git a/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java b/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
index d078bda..e277f60 100644
--- a/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
+++ b/src/main/java/org/springblade/modules/grid/service/impl/GridmanServiceImpl.java
@@ -19,6 +19,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.logging.log4j.util.Strings;
 import org.flowable.idm.engine.impl.persistence.entity.UserEntity;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.BeanUtil;
@@ -105,11 +106,26 @@
 				}
 				//插入网格员信息
 				gridman.setUserId(user.getId());
-				flag = save(gridman);
+				//匹配
+				QueryWrapper<GridmanEntity> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("is_deleted",0)
+					.eq("grid_id",gridman.getGridId())
+					.eq("user_id",gridman.getUserId());
+				GridmanEntity one = getOne(queryWrapper);
+				if (null==one){
+					flag = save(gridman);
+				}
 			} else {
 				saveUser(gridman);
-				// 插入网格员信息
-				flag = save(gridman);
+				//匹配
+				QueryWrapper<GridmanEntity> queryWrapper = new QueryWrapper<>();
+				queryWrapper.eq("is_deleted",0)
+					.eq("grid_id",gridman.getGridId())
+					.eq("user_id",gridman.getUserId());
+				GridmanEntity one = getOne(queryWrapper);
+				if (null==one){
+					flag = save(gridman);
+				}
 			}
 		}
 		// 返回
@@ -149,31 +165,22 @@
 	 * @param isCovered
 	 */
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void importGridman(List<GridmanExcel> data, Boolean isCovered) {
 		// 遍历
 		for (GridmanExcel gridmanExcel : data) {
 			GridmanEntity gridmanEntity = Objects.requireNonNull(BeanUtil.copy(gridmanExcel, GridmanEntity.class));
-			// 先查询当前网格社区对应的机构id
-			QueryWrapper<Region> regionWrapper = new QueryWrapper<>();
-			regionWrapper.eq("name",gridmanExcel.getCommunityName());
-			Region region = regionService.getOne(regionWrapper);
 			// 通过社区名称和网格名称获取网格id
 			QueryWrapper<GridEntity> queryWrapper = new QueryWrapper<>();
 			queryWrapper.eq("is_deleted",0)
-				.eq("community_code",region.getCode())
-				.eq("grid_name",gridmanExcel.getGridName());
+				.eq("grid_code",gridmanExcel.getGridCode());
 			GridEntity gridEntity = gridService.getOne(queryWrapper);
 			// 设置网格id
 			gridmanEntity.setGridId(gridEntity.getId());
-			// 通过手机号查询网格员id
-			QueryWrapper<GridmanEntity> wrapper = new QueryWrapper<>();
-			wrapper.eq("is_deleted",0).eq("mobile",gridmanEntity.getMobile());
-			GridmanEntity one = getOne(wrapper);
-			if (one!=null){
-				gridmanEntity.setId(one.getId());
-			}
 			// 插入网格员
-			saveOrUpdateGridman(gridmanEntity);
+			if (!Strings.isBlank(gridmanExcel.getMobile())) {
+				saveOrUpdateGridman(gridmanEntity);
+			}
 		}
 	}
 
diff --git a/src/main/java/org/springblade/modules/grid/vo/GridWorkLogVO.java b/src/main/java/org/springblade/modules/grid/vo/GridWorkLogVO.java
index fc8ab5d..6aaa0df 100644
--- a/src/main/java/org/springblade/modules/grid/vo/GridWorkLogVO.java
+++ b/src/main/java/org/springblade/modules/grid/vo/GridWorkLogVO.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.grid.vo;
 
+import io.swagger.annotations.ApiModelProperty;
 import org.springblade.modules.grid.entity.GridWorkLogEntity;
 import org.springblade.core.tool.node.INode;
 import lombok.Data;
@@ -31,5 +32,20 @@
 @EqualsAndHashCode(callSuper = true)
 public class GridWorkLogVO extends GridWorkLogEntity {
 	private static final long serialVersionUID = 1L;
+	/**
+	 * 被访人姓名
+	 */
+	@ApiModelProperty(value = "被访人姓名")
+	private String name;
+	/**
+	 * 被访人电话
+	 */
+	@ApiModelProperty(value = "被访人电话")
+	private String phone;
+	/**
+	 * 被访人地址
+	 */
+	@ApiModelProperty(value = "被访人地址")
+	private String address;
 
 }
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 cc8111f..1c5c1ff 100644
--- a/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
+++ b/src/main/java/org/springblade/modules/house/controller/HouseholdController.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.house.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -31,11 +32,14 @@
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.house.entity.HouseholdEntity;
+import org.springblade.modules.house.entity.UserHouseLabelEntity;
 import org.springblade.modules.house.excel.HouseHoldExcel;
 import org.springblade.modules.house.excel.HouseHoldImporter;
 import org.springblade.modules.house.service.IHouseholdService;
+import org.springblade.modules.house.service.IUserHouseLabelService;
 import org.springblade.modules.house.vo.HouseholdVO;
 import org.springblade.modules.house.wrapper.HouseholdWrapper;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -56,6 +60,7 @@
 public class HouseholdController extends BladeController {
 
 	private final IHouseholdService householdService;
+	private final IUserHouseLabelService userHouseLabelService;
 
 	/**
 	 * 住户 详情
@@ -147,8 +152,26 @@
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
 	@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)));
+		List<Long> idList = Func.toLongList(ids);
+		boolean removeByIds = householdService.removeByIds(idList);
+		// 同时删除当前住户对应的标签
+		removeHouseholdLabel(idList);
+		// 返回
+		return R.status(removeByIds);
+	}
+
+	/**
+	 * 删除住户标签信息
+	 * @param idList
+	 */
+	public void removeHouseholdLabel(List<Long> idList) {
+		for (Long id : idList) {
+			QueryWrapper<UserHouseLabelEntity> wrapper = new QueryWrapper<>();
+			wrapper.eq("household_id",id);
+			userHouseLabelService.remove(wrapper);
+		}
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
index 8db0ab6..5614cc5 100644
--- a/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
+++ b/src/main/java/org/springblade/modules/house/mapper/HouseholdMapper.xml
@@ -238,6 +238,7 @@
         left join jczz_user_house_label jhl on jh.id = jhl.household_id
         where 1=1 and jh.is_deleted = 0
         and jh.house_code = #{code}
+        order by jh.relationship asc,jh.id desc
     </select>
 
     <!--查询房屋集合信息-按id-->
diff --git a/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java b/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
index e5e3ab7..df473b1 100644
--- a/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
+++ b/src/main/java/org/springblade/modules/house/service/impl/HouseServiceImpl.java
@@ -423,6 +423,8 @@
 						UserHouseLabelEntity userHouseLabelEntity = new UserHouseLabelEntity();
 						userHouseLabelEntity.setLabelId(BigDecimal.valueOf(one1.getId()).longValue());
 						userHouseLabelEntity.setHouseholdId(householdEntity.getId());
+						// 设置默认的绿色
+						userHouseLabelEntity.setColor("#30D17C");
 						userHouseLabelEntity.setLableType(1);
 						userHouseLabelEntity.setLabelName(s);
 						userHouseLabelEntity.setHouseCode(houseAndHoldExcel.getHouseCode());
@@ -475,7 +477,7 @@
 			}
 			// 户籍类型
 			if (!Strings.isBlank(houseAndHoldExcel.getResidentType())){
-				one.setResidentType(Integer.parseInt(houseAndHoldExcel.getResidentType()));
+				one.setResidentType(Integer.parseInt(houseAndHoldExcel.getResidentType().trim()));
 			}
 			// 户籍地区县
 			if (!Strings.isBlank(houseAndHoldExcel.getResidentAdcode())){
@@ -553,6 +555,8 @@
 						userHouseLabelEntity.setHouseholdId(one.getId());
 						userHouseLabelEntity.setLableType(1);
 						userHouseLabelEntity.setLabelName(s);
+						// 设置默认的绿色
+						userHouseLabelEntity.setColor("#30D17C");
 						userHouseLabelEntity.setHouseCode(houseAndHoldExcel.getHouseCode());
 						bean.save(userHouseLabelEntity);
 					}

--
Gitblit v1.9.3