From 852cc7a233ea2ff510f1e4ab6e26618680c981f5 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Mon, 22 Jan 2024 15:22:34 +0800
Subject: [PATCH] 合同管理优化

---
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml                                  |   15 +++++++
 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java                      |   10 +++++
 src/main/java/org/springblade/modules/property/entity/PropertyCompanyDistrictEntity.java            |    3 +
 src/main/java/org/springblade/modules/system/controller/UserController.java                         |   12 +++++
 src/main/java/org/springblade/modules/property/service/impl/PropertyCompanyDistrictServiceImpl.java |   20 +++++++++
 src/main/java/org/springblade/modules/system/mapper/UserMapper.java                                 |    2 +
 src/main/java/org/springblade/modules/system/service/IUserService.java                              |    2 +
 7 files changed, 62 insertions(+), 2 deletions(-)

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 4d88eb1..e15ee51 100644
--- a/src/main/java/org/springblade/modules/property/entity/PropertyCompanyDistrictEntity.java
+++ b/src/main/java/org/springblade/modules/property/entity/PropertyCompanyDistrictEntity.java
@@ -155,4 +155,7 @@
 	@ApiModelProperty("是否已删除 0:否  1:是")
 	private Integer isDeleted;
 
+	@ApiModelProperty("电子合同")
+	private String electronicContract;
+
 }
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 8fce3ad..c61228f 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
@@ -2,15 +2,19 @@
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.flowable.idm.engine.impl.persistence.entity.UserEntity;
 import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.SpringUtil;
 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.modules.system.entity.User;
 import org.springblade.modules.system.entity.UserDept;
+import org.springblade.modules.system.service.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -33,6 +37,7 @@
 
 	/**
 	 * 自定义分页查询
+	 *
 	 * @param page
 	 * @param propertyCompanyDistrict
 	 * @return
@@ -44,21 +49,34 @@
 
 	/**
 	 * 物业派驻小区表 自定义新增或修改
+	 *
 	 * @param propertyCompanyDistrict
 	 * @return
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public boolean saveOrUpdatePropertyCompanyDistrict(PropertyCompanyDistrictEntity propertyCompanyDistrict) {
+		IUserService bean = SpringUtil.getBean(IUserService.class);
+		User user = bean.getOne(Wrappers.<User>lambdaQuery().eq(User::getId, propertyCompanyDistrict.getPrincipal()));
+		if (StringUtils.isNotBlank(user.getRoleId())) {
+			if (!user.getRoleId().contains("1747504028253229058")) {
+				user.setRoleId(user.getRoleId() + ",1747504028253229058");
+			}
+		} else {
+			user.setRoleId("1747504028253229058");
+		}
 		if (null != propertyCompanyDistrict.getId()) {
+			bean.updateById(user);
 			return updateById(propertyCompanyDistrict) && submitPropertyDistrictUser(propertyCompanyDistrict);
-		}else {
+		} else {
+			bean.updateById(user);
 			return save(propertyCompanyDistrict) && submitPropertyDistrictUser(propertyCompanyDistrict);
 		}
 	}
 
 	/**
 	 * 关联关系维护
+	 *
 	 * @param propertyCompanyDistrict
 	 * @return
 	 */
diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index bf8f184..670740b 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -397,7 +397,7 @@
 
 
 	/**
-	 * 查询物业人员/网格人员
+	 * 通过小区id查询物业人员/网格人员
 	 */
 	@GetMapping("/getUserInfoByDistrictId")
 	@ApiOperation(value = "查询物业人员/网格人员", notes = "houseCode")
@@ -405,6 +405,16 @@
 		return R.data(userService.getUserInfoByDistrictId(districtId, building));
 	}
 
+
+	/**
+	 * 通过机构查询物业公司人员
+	 */
+	@GetMapping("/getUserInfoByPropertyCompanyId")
+	@ApiOperation(value = "通过机构查询物业公司人员", notes = "propertyCompanyId")
+	public R getUserInfoByPropertyId(@RequestParam("propertyCompanyId") String propertyCompanyId) {
+		return R.data(userService.getUserInfoByPropertyId(propertyCompanyId));
+	}
+
 	/**
 	 * 处理漏绑定的user_dept
 	 */
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
index 6b8a42c..674e15c 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
@@ -105,4 +105,6 @@
 	 * @return
 	 */
 	List<User> getNotBindUserDept();
+
+	List<User> getUserInfoByPropertyId(String deptId);
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index 02d097a..b834a96 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -202,5 +202,20 @@
         and bu.dept_id!=''
     </select>
 
+    <select id="getUserInfoByPropertyId" resultType="org.springblade.modules.system.entity.User"
+            parameterType="java.lang.String">
+                SELECT * from blade_user bu  where bu.dept_id in (
+        SELECT
+            id
+        FROM
+            ( SELECT id, parent_id FROM blade_dept ORDER BY parent_id, id ) org_query,
+            ( SELECT @id := #{deptId} ) initialisation
+        WHERE
+            FIND_IN_SET( parent_id, @id ) > 0
+            AND @id := CONCAT( @id, ',', id )
+        ) or bu.dept_id=#{deptId}
+
+    </select>
+
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/system/service/IUserService.java b/src/main/java/org/springblade/modules/system/service/IUserService.java
index b2259d8..6c39253 100644
--- a/src/main/java/org/springblade/modules/system/service/IUserService.java
+++ b/src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -252,4 +252,6 @@
 	 * 处理漏绑定的user_dept
 	 */
 	Object handleUserDept();
+
+	List<User> getUserInfoByPropertyId(String propertyCompanyId);
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index c07dd0b..0646be3 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -43,7 +43,9 @@
 import org.springblade.core.tool.utils.*;
 import org.springblade.modules.auth.enums.UserEnum;
 import org.springblade.modules.grid.service.IGridmanService;
+import org.springblade.modules.property.entity.PropertyCompanyEntity;
 import org.springblade.modules.property.service.IPropertyCompanyDistrictService;
+import org.springblade.modules.property.service.IPropertyCompanyService;
 import org.springblade.modules.system.entity.*;
 import org.springblade.modules.system.excel.UserExcel;
 import org.springblade.modules.system.mapper.UserMapper;
@@ -527,4 +529,12 @@
 		}
 		return null;
 	}
+
+	@Override
+	public List<User> getUserInfoByPropertyId(String propertyCompanyId) {
+		// 查询物业公司,获取物业公司的机构
+		IPropertyCompanyService bean = SpringUtil.getBean(IPropertyCompanyService.class);
+		PropertyCompanyEntity one = bean.getOne(Wrappers.<PropertyCompanyEntity>lambdaQuery().eq(PropertyCompanyEntity::getId, propertyCompanyId));
+		return baseMapper.getUserInfoByPropertyId(one.getDeptId().toString());
+	}
 }

--
Gitblit v1.9.3