LAPTOP-FO2T5SIU\35838 6 月之前
父節點
當前提交
3b8f0da942

+ 12 - 0
pro-base/src/main/java/com/idea/buildManage/controller/ParkRoomController.java

@@ -3,6 +3,7 @@ package com.idea.buildManage.controller;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageInfo;
+import com.idea.buildManage.dto.ProjectHouseAllVo;
 import com.idea.buildManage.dto.ProjectHouseVo;
 import com.idea.buildManage.excel.*;
 import com.idea.buildManage.model.*;
@@ -238,5 +239,16 @@ public class ParkRoomController extends BaseController {
     }
 
 
+    /**
+     * 房间全信息导出
+     * @return
+     */
+    @PostMapping(value = "projectHouseAllVoList")
+    @ResponseBody
+    public Object projectHouseAllVoList(ParkRoomResponse model) {
+        List<ProjectHouseAllVo> result = modelService.projectHouseAllVoList(model);
+        return success(result);
+    }
+
 
 }

+ 82 - 0
pro-base/src/main/java/com/idea/buildManage/dto/ProjectHouseAllVo.java

@@ -0,0 +1,82 @@
+package com.idea.buildManage.dto;
+
+import com.idea.buildManage.model.ParkRoom;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class ProjectHouseAllVo extends ParkRoom {
+
+    /**
+     * 施工号
+     */
+    private String constructionNum;
+
+    /**
+     * 楼盘面积测绘状态
+     */
+    private String areaStatus;
+
+    private Date roomSelectionDate;
+
+    private String batchNumber;
+
+    private String roomSelectionNumber;
+
+    private String recordNumber;
+
+    private String contractNumber;
+
+    private Date signingDate;
+
+    private String buyerName;
+
+    private String buyerIdentityCard;
+
+    /**
+     * 合同面积状态
+     */
+    private String contractAreaStatus;
+
+    /**
+     * 合同面积
+     */
+    private String contractArea;
+
+    /**
+     * 合同总价
+     */
+    private BigDecimal contractTotalPrice;
+
+    /**
+     * 已付款金额
+     */
+    private BigDecimal receivedMoney;
+
+    private String payInfo;
+
+    /**
+     * 合同联系人
+     */
+    private String contractContact;
+
+    /**
+     * 入住时间
+     */
+    private Date checkInDate;
+
+    private String contractId;
+
+    private String customerManagementId;
+
+    /**
+     * 房屋总价
+     */
+    private BigDecimal houseTotalPrice;
+
+
+
+
+}

+ 3 - 0
pro-base/src/main/java/com/idea/buildManage/mapper/ParkRoomExtendMapper.java

@@ -1,5 +1,6 @@
 package com.idea.buildManage.mapper;
 
+import com.idea.buildManage.dto.ProjectHouseAllVo;
 import com.idea.buildManage.model.MnpBuilding;
 import com.idea.buildManage.model.ParkRoom;
 import com.idea.buildManage.model.ParkRoomExample;
@@ -26,4 +27,6 @@ public interface ParkRoomExtendMapper {
 
     List<ParkRoomResponse> reportList(ParkRoomResponse record);
 
+    List<ProjectHouseAllVo> projectHouseAllVoList(ParkRoomResponse model);
+
 }

+ 54 - 4
pro-base/src/main/java/com/idea/buildManage/service/ParkRoomService.java

@@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.idea.buildManage.constant.ConstantNodeType;
+import com.idea.buildManage.dto.ProjectHouseAllVo;
 import com.idea.buildManage.dto.ProjectHouseVo;
 import com.idea.buildManage.excel.MnpBuildingExcel;
 import com.idea.buildManage.excel.ParkRoomExcel;
@@ -27,15 +28,19 @@ import com.idea.buildManage.vo.ParkRoomNode;
 import com.idea.buyingMore.mapper.BuyingMoreMapper;
 import com.idea.buyingMore.model.BuyingMore;
 import com.idea.buyingMore.model.BuyingMoreExample;
+import com.idea.buyingMore.service.BuyingMoreService;
+import com.idea.customerManagement.dto.ContractManageDto;
 import com.idea.customerManagement.mapper.BuyerMapper;
 import com.idea.customerManagement.mapper.ContractManageMapper;
 import com.idea.customerManagement.mapper.CustomerManagementMapper;
 import com.idea.customerManagement.mapper.RoomSelectionInfoMapper;
 import com.idea.customerManagement.model.*;
+import com.idea.customerManagement.service.BuyerService;
 import com.idea.invoice.mapper.InvoiceManageMapper;
 import com.idea.invoice.model.InvoiceManage;
 import com.idea.invoice.model.InvoiceManageExample;
 import com.idea.invoice.util.InvoiceUtil;
+import com.idea.paymentManagement.mapper.PayLogExtendMapper;
 import com.idea.paymentManagement.mapper.PayLogMapper;
 import com.idea.paymentManagement.mapper.RefundManageMapper;
 import com.idea.paymentManagement.model.PayLog;
@@ -114,7 +119,11 @@ public class ParkRoomService implements BaseService<ParkRoom, ParkRoomExample> {
     @Autowired
     private PayLogMapper payLogMapper;
     @Autowired
+    private PayLogExtendMapper payLogExtendMapper;
+    @Autowired
     private HouseTypeMapper houseTypeMapper;
+    @Autowired
+    private BuyerService buyerService;
 
 
     /**
@@ -220,8 +229,8 @@ public class ParkRoomService implements BaseService<ParkRoom, ParkRoomExample> {
             log.info("推送房间修改详情:{}", json.toJSONString());
             // 给nc推送修改载体数据
             InvoiceUtil.defdocUpdate(json);
-        }catch (Exception e){
-            log.error("推送修改房间失败",e);
+        } catch (Exception e) {
+            log.error("推送修改房间失败", e);
         }
         return updateByPrimaryKeySelective(model);
     }
@@ -315,8 +324,8 @@ public class ParkRoomService implements BaseService<ParkRoom, ParkRoomExample> {
             JSONObject json = new JSONObject();
             json.put("ncid", parkRoom.getNcid());
             InvoiceUtil.defdocDisable(json);
-        }catch (Exception e){
-            log.error("房间禁用失败:",e);
+        } catch (Exception e) {
+            log.error("房间禁用失败:", e);
         }
 
         return result;
@@ -740,4 +749,45 @@ public class ParkRoomService implements BaseService<ParkRoom, ParkRoomExample> {
     }
 
 
+    public List<ProjectHouseAllVo> projectHouseAllVoList(ParkRoomResponse model) {
+
+        // 买受人
+        List<Buyer> buyers = buyerService.selectByExample(new BuyerExample());
+        Map<String, List<Buyer>> buyerMap = buyers.stream().collect(Collectors.groupingBy(Buyer::getCustomerManagementId));
+        // 入住信息
+        List<CheckIn> checkIns = checkInMapper.selectByExample(new CheckInExample());
+        Map<String, CheckIn> checkInMap = checkIns.stream().collect(Collectors.toMap(CheckIn::getContractManageId, item -> item, (existing, replacement) -> existing));
+        // 付款信息
+        ContractManageDto contractManageDto = new ContractManageDto();
+        contractManageDto.setPayType("1");
+        List<ContractManageDto> contractManages = payLogExtendMapper.listByModel(contractManageDto);
+        Map<String, ContractManageDto> contractManageMap = contractManages.stream().collect(Collectors.toMap(ContractManageDto::getId, item -> item, (existing, replacement) -> existing));
+
+        List<ProjectHouseAllVo> projectHouseAllVos = extendMapper.projectHouseAllVoList(model);
+        for(ProjectHouseAllVo houseAllVo: projectHouseAllVos){
+            if (buyerMap.containsKey(houseAllVo.getCustomerManagementId())){
+                StringBuilder builder = new StringBuilder();
+                List<Buyer> buyerInfo = buyerMap.get(houseAllVo.getCustomerManagementId());
+                for(Buyer buyer : buyerInfo){
+                    builder.append(buyer.getName())
+                            .append(",");
+                }
+                if(builder.length() > 0){
+                    builder.deleteCharAt(builder.length()-1);
+                }
+                houseAllVo.setBuyerName(builder.toString());
+            }
+            if (checkInMap.containsKey(houseAllVo.getContractId())){
+                CheckIn checkIn = checkInMap.get(houseAllVo.getContractId());
+                houseAllVo.setCheckInDate(checkIn.getInDate());
+            }
+            if(contractManageMap.containsKey(houseAllVo.getContractId())){
+                ContractManageDto contractManage = contractManageMap.get(houseAllVo.getContractId());
+                houseAllVo.setReceivedMoney(contractManage.getReceivedMoney());
+            }
+        }
+        return projectHouseAllVos;
+    }
+
+
 }

+ 22 - 0
pro-base/src/main/resources/mybatis/buildManage/ParkRoomExtendMapper.xml

@@ -172,5 +172,27 @@
     order by p.group_name ,d.name,b.build_num + 0,r.room_no + 0
   </select>
 
+    <select id="projectHouseAllVoList" resultType="com.idea.buildManage.dto.ProjectHouseAllVo">
+      select r.*,c.id contractId,c.customer_management_id
+      from park_room r
+      left join contract_manage c on r.id = c.house_id
+      and c.created_at = (select max(created_at) from contract_manage where contract_manage.house_id = r.id)
+      <where>
+        <if test="groupId != null and groupId != ''">
+          and r.group_id = #{groupId}
+        </if>
+        <if test="discId != null and discId != ''">
+          and r.disc_id = #{discId}
+        </if>
+        <if test="buildId != null and buildId != ''">
+          and r.build_id = #{buildId}
+        </if>
+        <if test="roomNo != null and roomNo != ''">
+          and r.room_no = #{roomNo}
+        </if>
+      </where>
+      order by r.group_name , r.disc_name , r.build_name , r.room_no + 0
+    </select>
+
 
 </mapper>