张延森 4 年 前
コミット
adf1f82bc5

+ 12
- 0
src/main/java/com/huiju/estateagents/property/controller/BuildingTreeController.java ファイルの表示

@@ -15,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile;
15 15
 
16 16
 import javax.servlet.http.HttpServletRequest;
17 17
 import javax.servlet.http.HttpSession;
18
+import java.util.Map;
18 19
 
19 20
 /**
20 21
  * @author FXF
@@ -72,6 +73,17 @@ public class BuildingTreeController extends BaseController {
72 73
 		return responseBean;
73 74
 	}
74 75
 
76
+	// @ApiOperation(value = "添加当前节点", notes = "添加当前节点")
77
+	@ApiImplicitParams({
78
+			@ApiImplicitParam(paramType = "body", dataTypeClass = String.class, name = "parameter", value = "id:当前节点;" +
79
+					"name:节点名称;type:(phase:(期),building:(栋),unit:(单元),level:(楼层),roomNo:(房间号)), roomNonodeNumber:输入的节点")
80
+	})
81
+	@RequestMapping(value = "/admin/buildingInfo/updatenode",method = RequestMethod.POST)
82
+	public ResponseBean editNode(@RequestBody Map<String, Object> parameter, HttpServletRequest request){
83
+		TaUser userElement = getTaUser(request);
84
+		return buildingTreeService.editNode(parameter, userElement.getOrgId());
85
+	}
86
+
75 87
 	// @ApiOperation(value = "删除当前节点", notes = "删除当前节点")
76 88
 	@ApiImplicitParams({
77 89
 			@ApiImplicitParam(paramType = "body", dataTypeClass = String.class, name = "parameter", value = "id:当前节点;type:(end:(房间),roomNo:(楼层),level:(单元),unit:(楼栋),building:(期))")

+ 7
- 0
src/main/java/com/huiju/estateagents/property/dao/TpBuildingMapper.java ファイルの表示

@@ -27,4 +27,11 @@ public interface TpBuildingMapper extends BaseMapper<TpBuilding> {
27 27
     @ResultType(TpBuilding.class)
28 28
     @Select("select * from tp_building where org_id=#{orgId} and phase_id=#{phaseId}")
29 29
     List<TpBuilding> selectByAddress(@Param("orgId") Integer orgId, @Param("phaseId") Integer phaseId);
30
+
31
+    @Update("update tp_building set `name` = #{name} where id = #{id}")
32
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
33
+
34
+    @Update("update tp_building set phase_name = #{phaseName} where org_id=#{orgId} and phase_id=#{phaseId}")
35
+    int updatePhaseName(@Param("orgId") Integer orgId,  @Param("phaseId") Integer phaseId, @Param("phaseName") String phaseName);
36
+
30 37
 }

+ 13
- 4
src/main/java/com/huiju/estateagents/property/dao/TpLevelMapper.java ファイルの表示

@@ -2,10 +2,7 @@ package com.huiju.estateagents.property.dao;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.property.model.TpLevel;
5
-import org.apache.ibatis.annotations.Mapper;
6
-import org.apache.ibatis.annotations.ResultMap;
7
-import org.apache.ibatis.annotations.ResultType;
8
-import org.apache.ibatis.annotations.Select;
5
+import org.apache.ibatis.annotations.*;
9 6
 
10 7
 import java.util.List;
11 8
 
@@ -30,4 +27,16 @@ public interface TpLevelMapper extends BaseMapper<TpLevel> {
30 27
     @ResultType(TpLevel.class)
31 28
     @Select("select * from tp_level where org_id=#{orgId} and phase_id=#{phaseId} and building_id=#{buildingId} and unit_id=#{unitId}")
32 29
     List<TpLevel> selectByAddress(Integer orgId, Integer phaseId, Integer buildingId, Integer unitId);
30
+
31
+    @Update("update tp_level set `name` = #{name} where id = #{id}")
32
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
33
+
34
+    @Update("update tp_level set phase_name = #{phaseName} where org_id=#{orgId} and phase_id=#{phaseId}")
35
+    int updatePhaseName(@Param("orgId") Integer orgId,  @Param("phaseId") Integer phaseId, @Param("phaseName") String phaseName);
36
+
37
+    @Update("update tp_level set building_name = #{buildingName} where org_id=#{orgId} and building_id=#{buildingId}")
38
+    int updateBuildingName(@Param("orgId") Integer orgId, @Param("buildingId") Integer buildingId, @Param("buildingName") String buildingName);
39
+
40
+    @Update("update tp_level set unit_name = #{unitName} where org_id=#{orgId} and unit_id=#{unitId}")
41
+    int updateUnitName(@Param("orgId") Integer orgId, @Param("unitId") Integer unitId, @Param("unitName") String unitName);
33 42
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/property/dao/TpPhaseMapper.java ファイルの表示

@@ -26,4 +26,6 @@ public interface TpPhaseMapper extends BaseMapper<TpPhase> {
26 26
     @Select("select * from tp_phase where org_id = #{orgId}")
27 27
     List<TpPhase> selectByAddress(@Param("orgId") Integer orgId);
28 28
 
29
+    @Update("update tp_phase set `name` = #{name} where id = #{id}")
30
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
29 31
 }

+ 15
- 0
src/main/java/com/huiju/estateagents/property/dao/TpRoomNoMapper.java ファイルの表示

@@ -69,4 +69,19 @@ public interface TpRoomNoMapper extends BaseMapper<TpRoomNo> {
69 69
     List<TpRoomNo> selectComunityList(@Param("orgId") Integer orgId, @Param("phaseId") String phaseId, @Param("buildingId") String buildingId, @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
70 70
 
71 71
     IPage<TpRoomNo> getRoomList(IPage<TpRoomNo> page, @Param("orgId") Integer orgId,@Param("phaseId") Integer phaseId,@Param("buildingId") Integer buildingId,@Param("unitId") Integer unitId,@Param("levelId") Integer levelId,@Param("roomNoId") Integer roomNoId);
72
+
73
+    @Update("update tp_room_no set `name` = #{name} where id = #{id}")
74
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
75
+
76
+    @Update("update tp_room_no set phase_name = #{phaseName} where org_id=#{orgId} and phase_id=#{phaseId}")
77
+    int updatePhaseName(@Param("orgId") Integer orgId,  @Param("phaseId") Integer phaseId, @Param("phaseName") String phaseName);
78
+
79
+    @Update("update tp_room_no set building_name = #{buildingName} where org_id=#{orgId} and building_id=#{buildingId}")
80
+    int updateBuildingName(@Param("orgId") Integer orgId, @Param("buildingId") Integer buildingId, @Param("buildingName") String buildingName);
81
+
82
+    @Update("update tp_room_no set unit_name = #{unitName} where org_id=#{orgId} and unit_id=#{unitId}")
83
+    int updateUnitName(@Param("orgId") Integer orgId, @Param("unitId") Integer unitId, @Param("unitName") String unitName);
84
+
85
+    @Update("update tp_room_no set level_name = #{levelName} where org_id=#{orgId} and level_id=#{levelId}")
86
+    int updateLevelName(@Param("orgId") Integer orgId, @Param("levelId") Integer levelId, @Param("levelName") String levelName);
72 87
 }

+ 9
- 4
src/main/java/com/huiju/estateagents/property/dao/TpUnitMapper.java ファイルの表示

@@ -2,10 +2,7 @@ package com.huiju.estateagents.property.dao;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.property.model.TpUnit;
5
-import org.apache.ibatis.annotations.Mapper;
6
-import org.apache.ibatis.annotations.ResultMap;
7
-import org.apache.ibatis.annotations.ResultType;
8
-import org.apache.ibatis.annotations.Select;
5
+import org.apache.ibatis.annotations.*;
9 6
 
10 7
 import java.util.List;
11 8
 
@@ -31,4 +28,12 @@ public interface TpUnitMapper extends BaseMapper<TpUnit> {
31 28
     @Select("select * from tp_unit where org_id =#{orgId} and phase_id=#{phaseId} and building_id=#{buildingId}")
32 29
     List<TpUnit> selectByAddress(Integer orgId, Integer phaseId, Integer buildingId);
33 30
 
31
+    @Update("update tp_unit set `name` = #{name} where id = #{id}")
32
+    int updateName(@Param("orgId") Integer orgId, @Param("id") Integer id, @Param("name") String name);
33
+
34
+    @Update("update tp_unit set phase_name = #{phaseName} where org_id=#{orgId} and phase_id=#{phaseId}")
35
+    int updatePhaseName(@Param("orgId") Integer orgId,  @Param("phaseId") Integer phaseId, @Param("phaseName") String phaseName);
36
+
37
+    @Update("update tp_unit set building_name = #{buildingName} where org_id=#{orgId} and building_id=#{buildingId}")
38
+    int updateBuildingName(@Param("orgId") Integer orgId, @Param("buildingId") Integer buildingId, @Param("buildingName") String buildingName);
34 39
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/property/service/BuildingTreeServiceI.java ファイルの表示

@@ -7,6 +7,8 @@ import com.huiju.estateagents.property.common.UserElement;
7 7
 import com.huiju.estateagents.property.model.TpRoomNo;
8 8
 import org.springframework.web.multipart.MultipartFile;
9 9
 
10
+import java.util.Map;
11
+
10 12
 public interface BuildingTreeServiceI {
11 13
 	
12 14
 	/**
@@ -50,4 +52,6 @@ public interface BuildingTreeServiceI {
50 52
 	ResponseBean deleteNode(String parameter, Integer orgId);
51 53
 
52 54
 	IPage<TpRoomNo> getRoomList(IPage<TpRoomNo> page, Integer orgId, Integer phaseId, Integer buildingId, Integer unitId, Integer levelId, Integer roomNoId);
55
+
56
+	ResponseBean editNode(Map<String, Object> parameter, Integer orgId);
53 57
 }

+ 97
- 35
src/main/java/com/huiju/estateagents/property/service/impl/BuildingTreeServiceImpl.java ファイルの表示

@@ -313,6 +313,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
313 313
 					tpPhase.setName(nodeNumber);
314 314
 					tpPhase.setCreateDate(LocalDateTime.now());
315 315
 					tpPhaseMapper.insert(tpPhase);
316
+			return ResponseBean.success(tpPhase);
316 317
 		}
317 318
 		TpPhase	tpPhase= tpPhaseMapper.selectById(id);
318 319
 		if(type.equals("building")){
@@ -334,6 +335,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
334 335
 						 .setName(nodeNumber)
335 336
 						 .setCreateDate(LocalDateTime.now());
336 337
 			tpBuildingMapper.insert(tpBuilding);
338
+			return ResponseBean.success(tpBuilding);
337 339
 		}
338 340
 		//查询栋,维护单元
339 341
 		 TpBuilding selectTpBuilding= tpBuildingMapper.selectById(id);
@@ -358,6 +360,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
358 360
 						.setName(nodeNumber)
359 361
 						.setCreateDate(LocalDateTime.now());
360 362
 		 	 tpUnitMapper.insert(tpUnit);
363
+			return ResponseBean.success(tpUnit);
361 364
 		 }
362 365
 
363 366
 		//查询单元,维护楼层
@@ -387,6 +390,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
387 390
 				.setName(nodeNumber)
388 391
 				.setCreateDate(LocalDateTime.now());
389 392
 			 tpLevelMapper.insert(tpLevel);
393
+			return ResponseBean.success(tpLevel);
390 394
 			}
391 395
 		 //房间号
392 396
 	 	TpLevel selectTpLevel= tpLevelMapper.selectById(id);
@@ -415,6 +419,7 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
415 419
 							.setName(nodeNumber)
416 420
 							.setCreateDate(LocalDateTime.now());
417 421
 			tpRoomNoMapper.insert(tpRoomNo);
422
+			return ResponseBean.success(tpRoomNo);
418 423
 		}
419 424
 		responseBean.addSuccess("成功");
420 425
 		return responseBean;
@@ -518,10 +523,11 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
518 523
 							tpRoomNoMapper.delete(tpRoomNoQueryWrapper);
519 524
 						}
520 525
 				}
526
+
527
+					//删除所有楼层
528
+					tpLevelMapper.delete(tpLevel);
521 529
 			  }
522 530
 			}
523
-			//删除所有楼层
524
-			tpLevelMapper.delete(tpLevel);
525 531
 			//删除此单元
526 532
 			tpUnitMapper.delete(tpUnit);
527 533
 			//删除栋
@@ -536,47 +542,46 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
536 542
 			building.eq("name", phase.getName());
537 543
 			List<TpBuilding> tpBuildingList= tpBuildingMapper.selectList(building);
538 544
 			for (TpBuilding tpBuilding:tpBuildingList){
539
-			//删除单元-楼层-房间
540
-			QueryWrapper<TpUnit> tpUnit = new QueryWrapper<>();
541
-			List<TpUnit> unitList=null;
542
-			if (null!=tpBuilding) {
545
+				//删除单元-楼层-房间
546
+				QueryWrapper<TpUnit> tpUnit = new QueryWrapper<>();
543 547
 				tpUnit.eq("org_id", tpBuilding.getOrgId());
544 548
 				tpUnit.eq("phase_id", tpBuilding.getPhaseId());
545 549
 				tpUnit.eq("building_id", tpBuilding.getId());
546 550
 				tpUnit.eq("building_name", tpBuilding.getName());
547
-				unitList= tpUnitMapper.selectList(tpUnit);
548
-			}
549
-			//先查询楼层
550
-			QueryWrapper<TpLevel> tpLevel = new QueryWrapper<>();
551
-			if (null!=unitList) {
552
-				for (TpUnit unit : unitList) {
553
-					tpLevel.eq("phase_id", unit.getPhaseId());
554
-					tpLevel.eq("org_id", unit.getOrgId());
555
-					tpLevel.eq("building_id", unit.getBuildingId());
556
-					tpLevel.eq("unit_id", unit.getId());
557
-					tpLevel.eq("unit_name", unit.getName());
558
-					//查询房间
559
-					List<TpLevel> levelList = tpLevelMapper.selectList(tpLevel);
560
-					if (null != levelList) {
561
-						for (TpLevel level : levelList) {
562
-							QueryWrapper<TpRoomNo> tpRoomNoQueryWrapper = new QueryWrapper<>();
563
-							tpRoomNoQueryWrapper.eq("phase_id", level.getPhaseId());
564
-							tpRoomNoQueryWrapper.eq("org_id", level.getOrgId());
565
-							tpRoomNoQueryWrapper.eq("building_id", level.getBuildingId());
566
-							tpRoomNoQueryWrapper.eq("unit_id", level.getUnitId());
567
-							tpRoomNoQueryWrapper.eq("level_id", level.getId());
568
-							tpRoomNoQueryWrapper.eq("level_name", level.getName());
569
-							//先删除所有房间
570
-							tpRoomNoMapper.delete(tpRoomNoQueryWrapper);
551
+
552
+				List<TpUnit> unitList = tpUnitMapper.selectList(tpUnit);
553
+
554
+				//先查询楼层
555
+				QueryWrapper<TpLevel> tpLevel = new QueryWrapper<>();
556
+				if (null!=unitList) {
557
+					for (TpUnit unit : unitList) {
558
+						tpLevel.eq("phase_id", unit.getPhaseId());
559
+						tpLevel.eq("org_id", unit.getOrgId());
560
+						tpLevel.eq("building_id", unit.getBuildingId());
561
+						tpLevel.eq("unit_id", unit.getId());
562
+						tpLevel.eq("unit_name", unit.getName());
563
+						//查询房间
564
+						List<TpLevel> levelList = tpLevelMapper.selectList(tpLevel);
565
+						if (null != levelList) {
566
+							for (TpLevel level : levelList) {
567
+								QueryWrapper<TpRoomNo> tpRoomNoQueryWrapper = new QueryWrapper<>();
568
+								tpRoomNoQueryWrapper.eq("phase_id", level.getPhaseId());
569
+								tpRoomNoQueryWrapper.eq("org_id", level.getOrgId());
570
+								tpRoomNoQueryWrapper.eq("building_id", level.getBuildingId());
571
+								tpRoomNoQueryWrapper.eq("unit_id", level.getUnitId());
572
+								tpRoomNoQueryWrapper.eq("level_id", level.getId());
573
+								tpRoomNoQueryWrapper.eq("level_name", level.getName());
574
+								//先删除所有房间
575
+								tpRoomNoMapper.delete(tpRoomNoQueryWrapper);
576
+							}
571 577
 						}
578
+						//再删除所有楼层
579
+						tpLevelMapper.delete(tpLevel);
572 580
 					}
573
-					//再删除所有楼层
574
-					tpLevelMapper.delete(tpLevel);
575 581
 				}
582
+				//删除此单元
583
+				tpUnitMapper.delete(tpUnit);
576 584
 			}
577
-			//删除此单元
578
-			tpUnitMapper.delete(tpUnit);
579
-	}
580 585
 			//删除栋
581 586
 			tpBuildingMapper.delete(building);
582 587
 			//删除整个期
@@ -591,6 +596,63 @@ public class BuildingTreeServiceImpl implements BuildingTreeServiceI {
591 596
 		return tpRoomNoMapper.getRoomList(page, orgId, phaseId, buildingId, unitId, levelId, roomNoId);
592 597
 	}
593 598
 
599
+	@Override
600
+	public ResponseBean editNode(Map<String, Object> parameter, Integer orgId) {
601
+		if (null == parameter) {
602
+			return ResponseBean.error("编辑内容不能为空", ResponseBean.ERROR_MISSING_PARAMS);
603
+		}
604
+
605
+		Integer id = (Integer) parameter.get("id");
606
+		String type = (String) parameter.get("type");
607
+		String name = (String) parameter.get("name");
608
+
609
+		if (null == id || StringUtils.isEmpty(type) || StringUtils.isEmpty(name)) {
610
+			return ResponseBean.error("部分编辑内容不能为空", ResponseBean.ERROR_MISSING_PARAMS);
611
+		}
612
+
613
+		// 如果是期数
614
+		if ("phase".equals(type)) {
615
+			tpPhaseMapper.updateName(orgId, id, name);
616
+			tpBuildingMapper.updatePhaseName(orgId, id, name);
617
+			tpUnitMapper.updatePhaseName(orgId, id, name);
618
+			tpLevelMapper.updatePhaseName(orgId, id, name);
619
+			tpRoomNoMapper.updatePhaseName(orgId, id, name);
620
+			return ResponseBean.success("success");
621
+		}
622
+
623
+		// 如果是楼栋
624
+		if ("building".equals(type)) {
625
+			tpBuildingMapper.updateName(orgId, id, name);
626
+			tpUnitMapper.updateBuildingName(orgId, id, name);
627
+			tpLevelMapper.updateBuildingName(orgId, id, name);
628
+			tpRoomNoMapper.updateBuildingName(orgId, id, name);
629
+			return ResponseBean.success("success");
630
+		}
631
+
632
+		// 如果是单元
633
+		if ("unit".equals(type)) {
634
+			tpUnitMapper.updateName(orgId, id, name);
635
+			tpLevelMapper.updateUnitName(orgId, id, name);
636
+			tpRoomNoMapper.updateUnitName(orgId, id, name);
637
+			return ResponseBean.success("success");
638
+		}
639
+
640
+		// 如果是楼层
641
+		if ("level".equals(type)) {
642
+			tpLevelMapper.updateName(orgId, id, name);
643
+			tpRoomNoMapper.updateLevelName(orgId, id, name);
644
+			return ResponseBean.success("success");
645
+		}
646
+
647
+		// 如果是房间
648
+		if ("roomNo".equals(type)) {
649
+			tpRoomNoMapper.updateName(orgId, id, name);
650
+			return ResponseBean.success("success");
651
+		}
652
+
653
+		return ResponseBean.error("数据类型不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
654
+	}
655
+
594 656
 	private void saveBuildingTreeData(Integer orgId, List<TpBuildingOwnerInfo> list) {
595 657
 		String lastPhaseName = "";
596 658
 		String lastBuildingName = "";

+ 27
- 16
src/main/resources/mapper/property/TpRoomNoMapper.xml ファイルの表示

@@ -80,31 +80,42 @@
80 80
         LIMIT #{pageNum}, #{pageSize}
81 81
     </select>
82 82
     <select id="getRoomList" resultType="com.huiju.estateagents.property.model.TpRoomNo">
83
-        SELECT
84
-            t.*
83
+        SELECT DISTINCT
84
+            t.id,
85
+            t.name,
86
+            q.id as phase_id,
87
+            q.name as phase_name,
88
+            n.id as building_id,
89
+            n.name as building_name,
90
+            m.id as unit_id,
91
+            m.name as unit_name,
92
+            s.id as level_id,
93
+            s.name as level_name,
94
+            t.sort,
95
+            t.create_date
85 96
         FROM
86
-            tp_room_no t
87
-            INNER JOIN tp_level s ON s.id = t.level_id
88
-            INNER JOIN tp_unit m ON m.id = t.unit_id
89
-            INNER JOIN tp_building n ON n.id = t.building_id
90
-            INNER JOIN tp_phase q ON q.id = t.phase_id
97
+            tp_phase q
98
+            LEFT JOIN tp_building n ON n.phase_id = q.id
99
+            LEFT JOIN tp_unit m ON m.building_id = n.id
100
+            LEFT JOIN tp_level s ON s.unit_id = m.id
101
+            LEFT JOIN tp_room_no t ON t.level_id = s.id
91 102
         WHERE
92
-            t.org_id = #{orgId}
93
-        <if test="roomNoId != null" >
94
-            and t.id = #{roomNoId}
95
-        </if>
103
+            q.org_id = #{orgId}
96 104
         <if test="phaseId != null" >
97
-            and t.phase_id = #{phaseId}
105
+            and q.id = #{phaseId}
98 106
         </if>
99 107
         <if test="buildingId != null" >
100
-            and t.building_id = #{buildingId}
108
+            and n.id = #{buildingId}
101 109
         </if>
102 110
         <if test="unitId != null" >
103
-            and t.unit_id = #{unitId}
111
+            and m.id = #{unitId}
104 112
         </if>
105 113
         <if test="levelId != null" >
106
-            and t.level_id = #{levelId}
114
+            and s.id = #{levelId}
115
+        </if>
116
+        <if test="roomNoId != null" >
117
+            and t.id = #{roomNoId}
107 118
         </if>
108
-        ORDER BY t.phase_id ASC, t.building_id ASC, t.unit_id ASC, (t.level_name - 0) DESC
119
+        ORDER BY q.id ASC, n.id ASC, m.id ASC, (s.name - 0) DESC
109 120
     </select>
110 121
 </mapper>