dcs 3 meses atrás
pai
commit
2b62610ea9

+ 14 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/controller/ProjectItemTargetRoomController.java

@@ -1,5 +1,6 @@
 package com.bosshand.virgo.api.controller;
 
+import com.bosshand.virgo.api.model.Contract;
 import com.bosshand.virgo.api.model.ProjectItemTargetRoom;
 import com.bosshand.virgo.api.model.RoomCollection;
 import com.bosshand.virgo.api.model.Tag;
@@ -59,6 +60,19 @@ public class ProjectItemTargetRoomController {
         return getResponse(currPage, pageSize, projectItemTargetRoom);
     }
 
+    @ApiOperation("获取楼层下房源以及合同")
+    @RequestMapping(value = "/projectItemTarget/{projectItemTargetId}", method = RequestMethod.GET)
+    public Response getRoomIdContract(@PathVariable long projectItemTargetId) {
+        List<ProjectItemTargetRoom> list = projectItemTargetRoomService.getProjectItemTargetId(projectItemTargetId);
+        if (list.size() > 0) {
+            List<String> ids = new ArrayList<>();
+            list.forEach(ls -> ids.add(String.valueOf(ls.getId())));
+            Map<Long, List<Contract>> roomIdContract = contractService.getRoomIdContract(String.join(",", ids));
+            list.forEach(ll -> ll.setContractList(roomIdContract.get(ll.getId())));
+        }
+        return Response.ok(list);
+    }
+
     @ApiOperation("房源下合同数、工单数")
     @RequestMapping(value = "/countSize/{currPage}/{pageSize}", method = RequestMethod.POST)
     public Response countSize(@RequestBody ProjectItemTargetRoom projectItemTargetRoom, @PathVariable int currPage, @PathVariable int pageSize) {

+ 41 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/model/ProjectItemTarget.java

@@ -39,6 +39,22 @@ public class ProjectItemTarget {
      */
     private String roomNumber;
 
+    /**
+     * 平面图
+     */
+    private String floorPlan;
+
+    /**
+     * 平面图大小
+     */
+    private String floorPlanSize;
+
+    /**
+     * 平面图类型
+     */
+    private int floorPlanType;
+
+
     private List<ProjectItemTargetRoom> projectItemTargetRoomList;
 
     public long getId() {
@@ -104,4 +120,29 @@ public class ProjectItemTarget {
     public void setProjectItemTargetRoomList(List<ProjectItemTargetRoom> projectItemTargetRoomList) {
         this.projectItemTargetRoomList = projectItemTargetRoomList;
     }
+
+    public String getFloorPlan() {
+        return floorPlan;
+    }
+
+    public void setFloorPlan(String floorPlan) {
+        this.floorPlan = floorPlan;
+    }
+
+    public String getFloorPlanSize() {
+        return floorPlanSize;
+    }
+
+    public void setFloorPlanSize(String floorPlanSize) {
+        this.floorPlanSize = floorPlanSize;
+    }
+
+    public int getFloorPlanType() {
+        return floorPlanType;
+    }
+
+    public void setFloorPlanType(int floorPlanType) {
+        this.floorPlanType = floorPlanType;
+    }
+
 }

+ 14 - 2
virgo.api/src/main/java/com/bosshand/virgo/api/model/ProjectItemTargetRoom.java

@@ -193,15 +193,19 @@ public class ProjectItemTargetRoom {
     private String data;
 
     /**
-     * 工单数量
+     * DTO-工单数量
      */
     private int workOrderSize;
 
     /**
-     * 合同数量
+     * DTO-合同数量
      */
     private int contractSize;
 
+    /**
+     *  DTO-合同列表
+     */
+    private List<Contract> contractList;
 
     public long getId() {
         return id;
@@ -538,4 +542,12 @@ public class ProjectItemTargetRoom {
     public void setContractSize(int contractSize) {
         this.contractSize = contractSize;
     }
+
+    public List<Contract> getContractList() {
+        return contractList;
+    }
+
+    public void setContractList(List<Contract> contractList) {
+        this.contractList = contractList;
+    }
 }

+ 22 - 0
virgo.api/src/main/java/com/bosshand/virgo/api/service/ContractService.java

@@ -9,6 +9,7 @@ import com.bosshand.virgo.core.utils.RandomNumberUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -22,6 +23,27 @@ public class ContractService {
     @Autowired
     private ClauseDao clauseDao;
 
+    /**
+     * projectItemTargetRoomId下合同列表
+     */
+    public Map<Long, List<Contract>> getRoomIdContract(String projectItemTargetRoomIds) {
+        Contract contract = new Contract();
+        contract.setProjectItemTargetRoomIds(projectItemTargetRoomIds);
+        List<Contract> list = contractDao.getList(contract);
+        String[] split = projectItemTargetRoomIds.split(",");
+        Map<Long, List<Contract>> map = new HashMap<>();
+        for (String id : split) {
+            List<Contract> contractList = new ArrayList<>();
+            for (Contract c : list) {
+                if (c.getProjectItemTargetRoomIds().contains(id)) {
+                    contractList.add(c);
+                }
+            }
+            map.put(Long.parseLong(id), contractList);
+        }
+        return map;
+    }
+
     /**
      * projectItemTargetRoomId下统计合同数量
      */

+ 1 - 1
virgo.api/src/main/java/com/bosshand/virgo/api/service/ProjectItemTargetRoomService.java

@@ -246,7 +246,7 @@ public class ProjectItemTargetRoomService {
         return projectItemTargetRoomDao.update(projectItemTargetRoom);
     }
 
-    private List<ProjectItemTargetRoom> getProjectItemTargetId(long targetId) {
+    public List<ProjectItemTargetRoom> getProjectItemTargetId(long targetId) {
         List<ProjectItemTargetRoom> list = projectItemTargetRoomDao.getProjectItemTargetId(targetId);
         for (ProjectItemTargetRoom room : list) {
             room.setProjectName(this.getProject(room.getProjectId()).getName());

+ 11 - 2
virgo.api/src/main/resources/mapper/ProjectItemTargetMapper.xml

@@ -12,6 +12,9 @@
         <result column="sequence" property="sequence"/>
         <result column="propertyCertificateNumber" property="propertyCertificateNumber"/>
         <result column="roomNumber" property="roomNumber"/>
+        <result column="floorPlan" property="floorPlan"/>
+        <result column="floorPlanSize" property="floorPlanSize"/>
+        <result column="floorPlanType" property="floorPlanType"/>
     </resultMap>
 
     <resultMap type="com.bosshand.virgo.api.model.ProjectItemTarget" id="result">
@@ -22,6 +25,9 @@
         <result column="sequence" property="sequence"/>
         <result column="propertyCertificateNumber" property="propertyCertificateNumber"/>
         <result column="roomNumber" property="roomNumber"/>
+        <result column="floorPlan" property="floorPlan"/>
+        <result column="floorPlanSize" property="floorPlanSize"/>
+        <result column="floorPlanType" property="floorPlanType"/>
         <collection property="projectItemTargetRoomList" ofType="com.bosshand.virgo.api.model.ProjectItemTargetRoom" resultMap="com.bosshand.virgo.api.dao.ProjectItemTargetRoomDao.projectItemTargetRoomResult" columnPrefix="room_"/>
     </resultMap>
 
@@ -90,8 +96,8 @@
     </select>
 
     <insert id="insert" useGeneratedKeys="true" keyProperty="id">
-        INSERT INTO project_item_target(name, projectId, projectItemId, sequence, propertyCertificateNumber, roomNumber)
-        VALUES (#{name}, #{projectId}, #{projectItemId}, #{sequence}, #{propertyCertificateNumber}, #{roomNumber})
+        INSERT INTO project_item_target(name, projectId, projectItemId, sequence, propertyCertificateNumber, roomNumber, floorPlan, floorPlanSize, floorPlanType)
+        VALUES (#{name}, #{projectId}, #{projectItemId}, #{sequence}, #{propertyCertificateNumber}, #{roomNumber}, #{floorPlan}, #{floorPlanSize}, #{floorPlanType})
     </insert>
 
     <delete id="delete">
@@ -111,6 +117,9 @@
             <if test="sequence!=0">sequence=#{sequence},</if>
             <if test="propertyCertificateNumber!=null">propertyCertificateNumber=#{propertyCertificateNumber},</if>
             <if test="roomNumber!=0">roomNumber=#{roomNumber},</if>
+            <if test="floorPlan!=null">floorPlan=#{floorPlan},</if>
+            <if test="floorPlanSize!=null">floorPlanSize=#{floorPlanSize},</if>
+            <if test="floorPlanType!=0">floorPlanType=#{floorPlanType},</if>
         </trim>
         WHERE id=#{id}
     </update>