From b7643654cc7ed5bbc6958f590fdadb7f7cf587e6 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 25 Nov 2023 11:23:11 +0800
Subject: [PATCH] 物业小区关联调整

---
 src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java         |   10 ++
 src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.xml                     |   21 ++++-
 src/main/java/org/springblade/modules/property/vo/PropertyCompanyDistrictVO.java                    |    2 
 src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.java            |    4 
 src/main/java/org/springblade/modules/property/service/IPropertyCompanyDistrictService.java         |    6 +
 src/main/java/org/springblade/modules/property/entity/PropertyCompanyDistrictEntity.java            |    6 +
 src/main/java/org/springblade/modules/property/entity/PropertyDistrictUserEntity.java               |   14 +--
 src/main/java/org/springblade/modules/property/controller/PropertyCompanyController.java            |    8 ++
 src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyDistrictServiceImpl.java |   69 +++++++++++++----
 src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.java                    |    8 ++
 src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.xml             |   19 ++++
 src/main/java/org/springblade/modules/property/controller/PropertyCompanyDistrictController.java    |   10 ++
 src/main/java/org/springblade/modules/property/entity/PropertyCompanyEntity.java                    |    7 +
 src/main/java/org/springblade/modules/property/service/IPropertyCompanyService.java                 |    5 +
 14 files changed, 154 insertions(+), 35 deletions(-)

diff --git a/src/main/java/org/springblade/modules/property/controller/PropertyCompanyController.java b/src/main/java/org/springblade/modules/property/controller/PropertyCompanyController.java
index b801321..9db056d 100644
--- a/src/main/java/org/springblade/modules/property/controller/PropertyCompanyController.java
+++ b/src/main/java/org/springblade/modules/property/controller/PropertyCompanyController.java
@@ -130,5 +130,13 @@
 		return R.status(propertyCompanyService.removeByIds(Func.toIntList(ids)));
 	}
 
+	/**
+	 * 物业公司查询对应的用户信息
+	 */
+	@GetMapping("/getUserByPropertyCompany")
+	public R getUserByPropertyCompany(PropertyCompanyVO propertyCompany) {
+		return R.data(propertyCompanyService.getUserByPropertyCompany(propertyCompany));
+	}
+
 
 }
diff --git a/src/main/java/org/springblade/modules/property/controller/PropertyCompanyDistrictController.java b/src/main/java/org/springblade/modules/property/controller/PropertyCompanyDistrictController.java
index 86c5c0a..b5f3191 100644
--- a/src/main/java/org/springblade/modules/property/controller/PropertyCompanyDistrictController.java
+++ b/src/main/java/org/springblade/modules/property/controller/PropertyCompanyDistrictController.java
@@ -113,6 +113,16 @@
 	}
 
 	/**
+	 * 物业派驻小区表 自定义新增或修改
+	 * @param propertyCompanyDistrict
+	 * @return
+	 */
+	@PostMapping("/saveOrUpdate")
+	public R saveOrUpdate(@Valid @RequestBody PropertyCompanyDistrictEntity propertyCompanyDistrict) {
+		return R.status(propertyCompanyDistrictService.saveOrUpdatePropertyCompanyDistrict(propertyCompanyDistrict));
+	}
+
+	/**
 	 * 物业派驻小区表 删除
 	 */
 	@PostMapping("/remove")
diff --git a/src/main/java/org/springblade/modules/property/entity/PropertyCompanyDistrictEntity.java b/src/main/java/org/springblade/modules/property/entity/PropertyCompanyDistrictEntity.java
index 5f9325a..4d88eb1 100644
--- a/src/main/java/org/springblade/modules/property/entity/PropertyCompanyDistrictEntity.java
+++ b/src/main/java/org/springblade/modules/property/entity/PropertyCompanyDistrictEntity.java
@@ -109,6 +109,12 @@
 	private String remark;
 
 	/**
+	 * 用户id
+	 */
+	@ApiModelProperty(value = "用户id")
+	private String userId;
+
+	/**
 	 * 创建人
 	 */
 	@JsonSerialize(using = ToStringSerializer.class)
diff --git a/src/main/java/org/springblade/modules/property/entity/PropertyCompanyEntity.java b/src/main/java/org/springblade/modules/property/entity/PropertyCompanyEntity.java
index e9a12a2..5abce9b 100644
--- a/src/main/java/org/springblade/modules/property/entity/PropertyCompanyEntity.java
+++ b/src/main/java/org/springblade/modules/property/entity/PropertyCompanyEntity.java
@@ -51,6 +51,13 @@
 	private Integer id;
 
 	/**
+	 * 组织机构id
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "组织机构id")
+	private Long deptId;
+
+	/**
 	 * 物业公司名称
 	 */
 	@ApiModelProperty(value = "物业公司名称")
diff --git a/src/main/java/org/springblade/modules/property/entity/PropertyDistrictUserEntity.java b/src/main/java/org/springblade/modules/property/entity/PropertyDistrictUserEntity.java
index 7a2bdf0..4185f5a 100644
--- a/src/main/java/org/springblade/modules/property/entity/PropertyDistrictUserEntity.java
+++ b/src/main/java/org/springblade/modules/property/entity/PropertyDistrictUserEntity.java
@@ -47,22 +47,18 @@
 	@JsonSerialize(using = ToStringSerializer.class)
 	@ApiModelProperty("主键id")
 	@TableId(value = "id", type = IdType.AUTO)
-	private Integer id;
+	private Long id;
 
 	/**
-	 * 物业公司id
+	 * 物业小区关联表id
 	 */
-	@ApiModelProperty(value = "物业公司id")
-	private Integer propertyCompanyId;
-	/**
-	 * 小区id
-	 */
-	@ApiModelProperty(value = "小区id")
-	private String districtId;
+	@ApiModelProperty(value = "物业小区关联表id")
+	private Integer propertyCompanyDistrictId;
 	/**
 	 * 用户id
 	 */
 	@ApiModelProperty(value = "用户id")
+	@JsonSerialize(using = ToStringSerializer.class)
 	private Long userId;
 
 }
diff --git a/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.java b/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.java
index a315ee5..d91501a 100644
--- a/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.java
+++ b/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.modules.property.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.property.entity.PropertyCompanyDistrictEntity;
 import org.springblade.modules.property.vo.PropertyCompanyDistrictVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -37,7 +38,8 @@
 	 * @param propertyCompanyDistrict
 	 * @return
 	 */
-	List<PropertyCompanyDistrictVO> selectPropertyCompanyDistrictPage(IPage page, PropertyCompanyDistrictVO propertyCompanyDistrict);
+	List<PropertyCompanyDistrictVO> selectPropertyCompanyDistrictPage(IPage page,
+																	  @Param("propertyCompanyDistrict") PropertyCompanyDistrictVO propertyCompanyDistrict);
 
 
 }
diff --git a/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.xml b/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.xml
index 64f27bc..06f98e1 100644
--- a/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.xml
+++ b/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyDistrictMapper.xml
@@ -23,9 +23,22 @@
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
 
-
-    <select id="selectPropertyCompanyDistrictPage" resultMap="propertyCompanyDistrictResultMap">
-        select * from jczz_property_company_district where is_deleted = 0
+    <!--自定义分页查询-->
+    <select id="selectPropertyCompanyDistrictPage" resultType="org.springblade.modules.property.vo.PropertyCompanyDistrictVO">
+        select * from jczz_property_company_district
+        where is_deleted = 0
+        <if test="propertyCompanyDistrict.propertyCompanyId!=null">
+            and property_company_id = #{propertyCompanyDistrict.propertyCompanyId}
+        </if>
+        <if test="propertyCompanyDistrict.districtId!=null">
+            and district_id = #{propertyCompanyDistrict.districtId}
+        </if>
+        <if test="propertyCompanyDistrict.propertyStage!=null">
+            and property_stage = #{propertyCompanyDistrict.propertyStage}
+        </if>
+        <if test="propertyCompanyDistrict.principal!=null and propertyCompanyDistrict.principal!=''">
+            and principal like concat('%',#{propertyCompanyDistrict.principal},'%')
+        </if>
     </select>
 
 
diff --git a/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.java b/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.java
index f763c69..42b4930 100644
--- a/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.java
+++ b/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.java
@@ -22,6 +22,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 物业公司 Mapper 接口
@@ -47,4 +48,11 @@
 	 * @return
 	 */
 	List<PropertyCompanyVO> getPropertyCompanyList(@Param("propertyCompany") PropertyCompanyVO propertyCompany);
+
+	/**
+	 * 物业公司查询对应的用户信息
+	 * @param propertyCompany
+	 * @return
+	 */
+	List<Map<Long,String>> getUserByPropertyCompany(@Param("propertyCompany") PropertyCompanyVO propertyCompany);
 }
diff --git a/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.xml b/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.xml
index 665ace0..4322bbf 100644
--- a/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.xml
+++ b/src/main/java/org/springblade/modules/property/mapper/PropertyCompanyMapper.xml
@@ -8,9 +8,9 @@
         <result column="name" property="name"/>
         <result column="address" property="address"/>
         <result column="social_credit_code" property="socialCreditCode"/>
-        <result column="province_code" property="provinceCode"/>
-        <result column="city_code" property="cityCode"/>
-        <result column="county_code" property="countyCode"/>
+        <result column="province" property="province"/>
+        <result column="city" property="city"/>
+        <result column="area" property="area"/>
         <result column="remark" property="remark"/>
         <result column="create_user" property="createUser"/>
         <result column="create_time" property="createTime"/>
@@ -20,7 +20,7 @@
     </resultMap>
 
     <!--自定义分页查询-->
-    <select id="selectPropertyCompanyPage" resultMap="propertyCompanyResultMap">
+    <select id="selectPropertyCompanyPage" resultType="org.springblade.modules.property.vo.PropertyCompanyVO">
         select * from jczz_property_company where is_deleted = 0
         <if test="propertyCompany.name!=null and propertyCompany.name!=''">
             and name like concat('%',#{propertyCompany.name},'%')
@@ -28,12 +28,23 @@
     </select>
 
     <!--物业公司列表查询(不分页)-->
-    <select id="getPropertyCompanyList" resultMap="propertyCompanyResultMap">
+    <select id="getPropertyCompanyList" resultType="org.springblade.modules.property.vo.PropertyCompanyVO">
         select * from jczz_property_company where is_deleted = 0
         <if test="propertyCompany.name!=null and propertyCompany.name!=''">
             and name like concat('%',#{propertyCompany.name},'%')
         </if>
     </select>
 
+    <!--物业公司列表查询(不分页)-->
+    <select id="getUserByPropertyCompany" resultType="java.util.Map">
+        select
+            bu.id,bu.real_name as name
+        from blade_user bu
+        left join blade_dept bd on bd.id = bu.dept_id and bd.is_deleted = 0
+        left join jczz_property_company jpc on jpc.dept_id = bd.id and jpc.is_deleted = 0
+        where bu.is_deleted = 0 and bu.real_name is not null
+        and jpc.id = #{propertyCompany.id}
+    </select>
+
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/property/service/IPropertyCompanyDistrictService.java b/src/main/java/org/springblade/modules/property/service/IPropertyCompanyDistrictService.java
index dce44dc..b429f76 100644
--- a/src/main/java/org/springblade/modules/property/service/IPropertyCompanyDistrictService.java
+++ b/src/main/java/org/springblade/modules/property/service/IPropertyCompanyDistrictService.java
@@ -40,4 +40,10 @@
 	IPage<PropertyCompanyDistrictVO> selectPropertyCompanyDistrictPage(IPage<PropertyCompanyDistrictVO> page, PropertyCompanyDistrictVO propertyCompanyDistrict);
 
 
+	/**
+	 * 物业派驻小区表 自定义新增或修改
+	 * @param propertyCompanyDistrict
+	 * @return
+	 */
+    boolean saveOrUpdatePropertyCompanyDistrict(PropertyCompanyDistrictEntity propertyCompanyDistrict);
 }
diff --git a/src/main/java/org/springblade/modules/property/service/IPropertyCompanyService.java b/src/main/java/org/springblade/modules/property/service/IPropertyCompanyService.java
index 56fbdcf..7ed1bed 100644
--- a/src/main/java/org/springblade/modules/property/service/IPropertyCompanyService.java
+++ b/src/main/java/org/springblade/modules/property/service/IPropertyCompanyService.java
@@ -46,4 +46,9 @@
 	 * @return
 	 */
 	Object getPropertyCompanyList(PropertyCompanyVO propertyCompany);
+
+	/**
+	 * 物业公司查询对应的用户信息
+	 */
+    Object getUserByPropertyCompany(PropertyCompanyVO propertyCompany);
 }
diff --git a/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyDistrictServiceImpl.java b/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyDistrictServiceImpl.java
index 9f39bed..9ad0329 100644
--- a/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyDistrictServiceImpl.java
+++ b/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyDistrictServiceImpl.java
@@ -1,29 +1,22 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 庄骞 (smallchill@163.com)
- */
 package org.springblade.modules.property.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.modules.property.entity.PropertyCompanyDistrictEntity;
+import org.springblade.modules.property.entity.PropertyDistrictUserEntity;
+import org.springblade.modules.property.service.IPropertyDistrictUserService;
 import org.springblade.modules.property.vo.PropertyCompanyDistrictVO;
 import org.springblade.modules.property.mapper.PropertyCompanyDistrictMapper;
 import org.springblade.modules.property.service.IPropertyCompanyDistrictService;
-import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.system.entity.UserDept;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 物业派驻小区表 服务实现类
@@ -34,10 +27,52 @@
 @Service
 public class PropertyCompanyDistrictServiceImpl extends ServiceImpl<PropertyCompanyDistrictMapper, PropertyCompanyDistrictEntity> implements IPropertyCompanyDistrictService {
 
+	@Autowired
+	private IPropertyDistrictUserService propertyDistrictUserService;
+
+	/**
+	 * 自定义分页查询
+	 * @param page
+	 * @param propertyCompanyDistrict
+	 * @return
+	 */
 	@Override
 	public IPage<PropertyCompanyDistrictVO> selectPropertyCompanyDistrictPage(IPage<PropertyCompanyDistrictVO> page, PropertyCompanyDistrictVO propertyCompanyDistrict) {
 		return page.setRecords(baseMapper.selectPropertyCompanyDistrictPage(page, propertyCompanyDistrict));
 	}
 
+	/**
+	 * 物业派驻小区表 自定义新增或修改
+	 * @param propertyCompanyDistrict
+	 * @return
+	 */
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean saveOrUpdatePropertyCompanyDistrict(PropertyCompanyDistrictEntity propertyCompanyDistrict) {
+		if (null != propertyCompanyDistrict.getId()) {
+			return updateById(propertyCompanyDistrict) && submitPropertyDistrictUser(propertyCompanyDistrict);
+		}else {
+			return save(propertyCompanyDistrict) && submitPropertyDistrictUser(propertyCompanyDistrict);
+		}
+	}
 
+	/**
+	 * 关联关系维护
+	 * @param propertyCompanyDistrict
+	 * @return
+	 */
+	private boolean submitPropertyDistrictUser(PropertyCompanyDistrictEntity propertyCompanyDistrict) {
+		List<Long> userIdList = Func.toLongList(propertyCompanyDistrict.getUserId());
+		List<PropertyDistrictUserEntity> propertyDistrictUserEntityList = new ArrayList<>();
+		userIdList.forEach(userId -> {
+			PropertyDistrictUserEntity propertyDistrictUserEntity = new PropertyDistrictUserEntity();
+			propertyDistrictUserEntity.setUserId(userId);
+			propertyDistrictUserEntity.setPropertyCompanyDistrictId(propertyCompanyDistrict.getId());
+			propertyDistrictUserEntityList.add(propertyDistrictUserEntity);
+		});
+		// 先删除
+		propertyDistrictUserService.remove(Wrappers.<PropertyDistrictUserEntity>update().lambda().eq(PropertyDistrictUserEntity::getPropertyCompanyDistrictId, propertyCompanyDistrict.getId()));
+		// 再新增
+		return propertyDistrictUserService.saveBatch(propertyDistrictUserEntityList);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java b/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java
index 5cbb1c8..1ab2d13 100644
--- a/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java
+++ b/src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyServiceImpl.java
@@ -57,4 +57,14 @@
 	public List<PropertyCompanyVO> getPropertyCompanyList(PropertyCompanyVO propertyCompany) {
 		return baseMapper.getPropertyCompanyList(propertyCompany);
 	}
+
+	/**
+	 * 物业公司查询对应的用户信息
+	 * @param propertyCompany
+	 * @return
+	 */
+	@Override
+	public Object getUserByPropertyCompany(PropertyCompanyVO propertyCompany) {
+		return baseMapper.getUserByPropertyCompany(propertyCompany);
+	}
 }
diff --git a/src/main/java/org/springblade/modules/property/vo/PropertyCompanyDistrictVO.java b/src/main/java/org/springblade/modules/property/vo/PropertyCompanyDistrictVO.java
index 0d865bf..f608037 100644
--- a/src/main/java/org/springblade/modules/property/vo/PropertyCompanyDistrictVO.java
+++ b/src/main/java/org/springblade/modules/property/vo/PropertyCompanyDistrictVO.java
@@ -30,6 +30,8 @@
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class PropertyCompanyDistrictVO extends PropertyCompanyDistrictEntity {
+
+
 	private static final long serialVersionUID = 1L;
 
 }

--
Gitblit v1.9.3