From cdf974d19bab00ac22fe2896eb34b920d58d74a6 Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 09 一月 2025 18:30:40 +0800
Subject: [PATCH] 客户资料 巡检任务业务
---
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwQuickModelCloudController.java | 90 +++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomContractDataVO.java | 36 ++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwQuickModelService.java | 97 +++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java | 7
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java | 17
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java | 7
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java | 4
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java | 21 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WorkbenchesService.java | 22 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomStatusDataVO.java | 43 ++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java | 187 ++++++++++
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MonthDataResponse.java | 27 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwQuickModelMapper.java | 13
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java | 8
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java | 3
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwQuickModel.java | 71 +++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java | 17
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwContractBillDataVO.java | 34 +
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwFloorStatusDataVO.java | 34 +
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java | 5
server/db/business.yw_quick_model.permissions.sql | 6
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java | 5
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java | 116 ++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java | 58 +++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwQuickModelServiceImpl.java | 142 +++++++
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java | 5
27 files changed, 1,067 insertions(+), 11 deletions(-)
diff --git a/server/db/business.yw_quick_model.permissions.sql b/server/db/business.yw_quick_model.permissions.sql
new file mode 100644
index 0000000..b38841c
--- /dev/null
+++ b/server/db/business.yw_quick_model.permissions.sql
@@ -0,0 +1,6 @@
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:create', '鏂板缓宸ヤ綔鍙� - 蹇嵎妯″潡', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:delete', '鍒犻櫎宸ヤ綔鍙� - 蹇嵎妯″潡', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:update', '淇敼宸ヤ綔鍙� - 蹇嵎妯″潡', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:query', '鏌ヨ宸ヤ綔鍙� - 蹇嵎妯″潡', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+INSERT INTO `SYSTEM_PERMISSION`(`CODE`, `NAME`, `REMARK`, `FIXED`, `CREATE_USER`, `CREATE_TIME`, `UPDATE_USER`, `UPDATE_TIME`, `DELETED`) VALUES ('business:ywquickmodel:exportExcel', '瀵煎嚭宸ヤ綔鍙� - 蹇嵎妯″潡(Excel)', '', 0, 1, CURRENT_TIMESTAMP, NULL, NULL, 0);
+
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
index 0ee45de..ca58ec1 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractBillCloudController.java
@@ -10,6 +10,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.YwContractBill;
+import com.doumee.dao.business.vo.YwContractBillDataVO;
import com.doumee.service.business.YwContractBillService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -112,5 +113,11 @@
return ApiResponse.success("鐢熸垚鎴愬姛");
}
+ @ApiOperation("鑾峰彇寰呭鐞嗚处鍗�")
+ @GetMapping("/getWaitDealList")
+ @CloudRequiredPermission("business:ywcontractbill:query")
+ public ApiResponse<YwContractBillDataVO> getWaitDealList(@RequestParam Integer contractId,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(ywContractBillService.getWaitDealList(contractId));
+ }
}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwQuickModelCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwQuickModelCloudController.java
new file mode 100644
index 0000000..6f05fa8
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwQuickModelCloudController.java
@@ -0,0 +1,90 @@
+package com.doumee.cloud.admin;
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.excel.ExcelExporter;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.model.PageData;
+import com.doumee.dao.business.model.YwQuickModel;
+import com.doumee.service.business.YwQuickModelService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletResponse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/01/09 17:47
+ */
+@Api(tags = "宸ヤ綔鍙� - 蹇嵎妯″潡")
+@RestController
+@RequestMapping("/business/ywQuickModel")
+public class YwQuickModelCloudController extends BaseController {
+
+ @Autowired
+ private YwQuickModelService ywQuickModelService;
+
+ @PreventRepeat
+ @ApiOperation("鏂板缓")
+ @PostMapping("/create")
+ @RequiresPermissions("business:ywquickmodel:create")
+ public ApiResponse create(@RequestBody YwQuickModel ywQuickModel) {
+ return ApiResponse.success(ywQuickModelService.create(ywQuickModel));
+ }
+
+ @ApiOperation("鏍规嵁ID鍒犻櫎")
+ @GetMapping("/delete/{id}")
+ @RequiresPermissions("business:ywquickmodel:delete")
+ public ApiResponse deleteById(@PathVariable Integer id) {
+ ywQuickModelService.deleteById(id);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鎵归噺鍒犻櫎")
+ @GetMapping("/delete/batch")
+ @RequiresPermissions("business:ywquickmodel:delete")
+ public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+ String [] idArray = ids.split(",");
+ List<Integer> idList = new ArrayList<>();
+ for (String id : idArray) {
+ idList.add(Integer.valueOf(id));
+ }
+ ywQuickModelService.deleteByIdInBatch(idList);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鏍规嵁ID淇敼")
+ @PostMapping("/updateById")
+ @RequiresPermissions("business:ywquickmodel:update")
+ public ApiResponse updateById(@RequestBody YwQuickModel ywQuickModel) {
+ ywQuickModelService.updateById(ywQuickModel);
+ return ApiResponse.success(null);
+ }
+
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ @PostMapping("/page")
+ @RequiresPermissions("business:ywquickmodel:query")
+ public ApiResponse<PageData<YwQuickModel>> findPage (@RequestBody PageWrap<YwQuickModel> pageWrap) {
+ return ApiResponse.success(ywQuickModelService.findPage(pageWrap));
+ }
+
+ @ApiOperation("瀵煎嚭Excel")
+ @PostMapping("/exportExcel")
+ @RequiresPermissions("business:ywquickmodel:exportExcel")
+ public void exportExcel (@RequestBody PageWrap<YwQuickModel> pageWrap, HttpServletResponse response) {
+ ExcelExporter.build(YwQuickModel.class).export(ywQuickModelService.findPage(pageWrap).getRecords(), "宸ヤ綔鍙� - 蹇嵎妯″潡", response);
+ }
+
+ @ApiOperation("鏍规嵁ID鏌ヨ")
+ @GetMapping("/{id}")
+ @RequiresPermissions("business:ywquickmodel:query")
+ public ApiResponse findById(@PathVariable Integer id) {
+ return ApiResponse.success(ywQuickModelService.findById(id));
+ }
+}
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java
index 0eac4e5..af30c32 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwRoomCloudController.java
@@ -9,6 +9,8 @@
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.YwContractRoom;
import com.doumee.dao.business.model.YwRoom;
+import com.doumee.dao.business.vo.YwFloorStatusDataVO;
+import com.doumee.dao.business.vo.YwRoomContractDataVO;
import com.doumee.service.business.YwRoomService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -99,4 +101,19 @@
public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
return ApiResponse.success(ywRoomService.findById(id));
}
+
+ @ApiOperation("鏌ヨ鎴块棿鎬佸娍鏁版嵁")
+ @PostMapping("/getRoomStatusList")
+ @CloudRequiredPermission("business:ywroom:query")
+ public ApiResponse<List<YwFloorStatusDataVO>> getRoomStatusList (@RequestBody YwRoom model, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(ywRoomService.getRoomStatusList(model));
+ }
+
+ @ApiOperation("鏌ヨ鎴块棿绉熻祦淇℃伅")
+ @PostMapping("/getRoomContract")
+ @CloudRequiredPermission("business:ywroom:query")
+ public ApiResponse<YwRoomContractDataVO> getRoomContract (@RequestBody YwRoom model, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+ return ApiResponse.success(ywRoomService.getRoomContract(model));
+ }
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwQuickModelMapper.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwQuickModelMapper.java
new file mode 100644
index 0000000..b463189
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/YwQuickModelMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.YwQuickModel;
+import com.github.yulichang.base.MPJBaseMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2025/01/09 17:47
+ */
+public interface YwQuickModelMapper extends MPJBaseMapper<YwQuickModel> {
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java
index 5fca146..40a3fe7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwBuilding.java
@@ -115,4 +115,11 @@
@ApiModelProperty(value = "椤圭洰鍚嶇О")
@TableField(exist = false)
private String projectName;
+ @ApiModelProperty(value = "鎴块棿璁¤垂闈㈢Н锛堝钩鏂圭背锛�", example = "1")
+ @TableField(exist = false)
+ private BigDecimal roomFeeArea;
+ @ApiModelProperty(value = "鎴块棿璁$闈㈢Н锛堝钩鏂圭背锛�", example = "1")
+ @TableField(exist = false)
+ private BigDecimal roomRentArea;
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
index d3b4719..4d5198f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
@@ -247,6 +247,9 @@
@ApiModelProperty(value = "閲嶆柊寮�濮嬫椂闂�")
@TableField(exist = false)
private Date queryStartTime;
+ @ApiModelProperty(value = "鍚堝悓鎬昏垂鐢�",notes = "鍚堝悓鍒濆鍖栨椂閲戦", example = "1")
+ @TableField(exist = false)
+ private BigDecimal totalFee;
@ApiModelProperty(value = "鏌ヨ缁撴潫鏃堕棿")
@TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java
index bc6ea4b..3b798da 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolScheme.java
@@ -11,6 +11,7 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
+import java.util.List;
/**
* 杩愮淮宸℃璁″垝淇℃伅琛�
@@ -133,4 +134,7 @@
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endDateSec;
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwQuickModel.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwQuickModel.java
new file mode 100644
index 0000000..b0d7880
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwQuickModel.java
@@ -0,0 +1,71 @@
+package com.doumee.dao.business.model;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import java.util.Date;
+
+/**
+ * 宸ヤ綔鍙� - 蹇嵎妯″潡
+ * @author 姹熻箘韫�
+ * @date 2025/01/09 17:47
+ */
+@Data
+@ApiModel("宸ヤ綔鍙� - 蹇嵎妯″潡")
+@TableName("`yw_quick_model`")
+public class YwQuickModel extends LoginUserModel {
+
+ @TableId(type = IdType.AUTO)
+ @ApiModelProperty(value = "涓婚敭", example = "1")
+ @ExcelColumn(name="涓婚敭")
+ private Integer id;
+
+ @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鍒涘缓浜虹紪鐮�")
+ private Integer creator;
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鍒涘缓鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date createDate;
+
+ @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+ @ExcelColumn(name="鏇存柊浜虹紪鐮�")
+ private Integer editor;
+
+ @ApiModelProperty(value = "鏇存柊鏃堕棿")
+ @ExcelColumn(name="鏇存柊鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date editDate;
+
+ @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
+ @ExcelColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
+ private Integer isdeleted;
+
+ @ApiModelProperty(value = "鐢ㄦ埛涓婚敭", example = "1")
+ @ExcelColumn(name="鐢ㄦ埛涓婚敭")
+ private Integer userId;
+
+ @ApiModelProperty(value = "妯″潡鍚嶇О")
+ @ExcelColumn(name="妯″潡鍚嶇О")
+ private String name;
+
+ @ApiModelProperty(value = "妯″潡鍦板潃")
+ @ExcelColumn(name="妯″潡鍦板潃")
+ private String path;
+
+ @ApiModelProperty(value = "鍥炬爣鍦板潃")
+ @ExcelColumn(name="鍥炬爣鍦板潃")
+ private String icoPath;
+
+ @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+ @ExcelColumn(name="鎺掑簭鐮�")
+ private Integer sort;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
index 2b966f7..06c1422 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwWorkorder.java
@@ -143,6 +143,9 @@
@ApiModelProperty(value = "鎴挎簮鍚嶇О")
@TableField(exist = false)
private String roomName;
+ @ApiModelProperty(value = "闂涓婚敭")
+ @TableField(exist = false)
+ private String problemId;
@ApiModelProperty(value = "鎶ヤ慨鍖哄煙")
@ExcelColumn(name="鎶ヤ慨鍖哄煙",index = 2,width = 10)
@TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MonthDataResponse.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MonthDataResponse.java
new file mode 100644
index 0000000..5d1ae87
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/MonthDataResponse.java
@@ -0,0 +1,27 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.dao.system.model.Notices;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/5/6 10:20
+ */
+@Data
+public class MonthDataResponse {
+
+ @ApiModelProperty(value = "鏃ユ湡")
+ private String monthDate;
+
+ @ApiModelProperty(value = "鍛ㄥ嚑")
+ private String weekMsg;
+
+ @ApiModelProperty(value = "閫氱煡鍒楄〃")
+ private List<Notices> noticeList;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwContractBillDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwContractBillDataVO.java
new file mode 100644
index 0000000..732fd26
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwContractBillDataVO.java
@@ -0,0 +1,34 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.dao.business.model.YwContractBill;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/1/8 15:32
+ */
+@Data
+public class YwContractBillDataVO {
+
+ @ApiModelProperty(value = "鏀舵璐﹀崟鏁�", example = "1")
+ private Integer inAmount;
+
+ @ApiModelProperty(value = "鏀舵璐﹀崟閲戦", example = "1")
+ private BigDecimal inFee;
+
+ @ApiModelProperty(value = "浠樻璐﹀崟鏁�", example = "1")
+ private Integer payAmount;
+
+ @ApiModelProperty(value = "浠樻璐﹀崟閲戦", example = "1")
+ private BigDecimal payFee;
+
+ @ApiModelProperty(value = "璐﹀崟鍒楄〃", example = "1")
+ private List<YwContractBill> ywContractBillList;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwFloorStatusDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwFloorStatusDataVO.java
new file mode 100644
index 0000000..1108049
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwFloorStatusDataVO.java
@@ -0,0 +1,34 @@
+package com.doumee.dao.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/1/8 15:32
+ */
+@Data
+public class YwFloorStatusDataVO {
+
+ @ApiModelProperty(value = "妤煎眰涓婚敭", example = "1")
+ private Integer floorId;
+
+ @ApiModelProperty(value = "妤煎眰闈㈢Н", example = "1")
+ private BigDecimal floorArea;
+
+ @ApiModelProperty(value = "妤煎眰鍚嶇О", example = "1")
+ private String floorName;
+
+ @ApiModelProperty(value = "妤煎眰鏁�", example = "1")
+ private Integer floor;
+
+ @ApiModelProperty(value = "鎴块棿鐘舵�佹暟鎹�", example = "1")
+ private List<YwRoomStatusDataVO> ywRoomStatusDataVOList;
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomContractDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomContractDataVO.java
new file mode 100644
index 0000000..46bf123
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomContractDataVO.java
@@ -0,0 +1,36 @@
+package com.doumee.dao.business.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/1/8 15:32
+ */
+@Data
+public class YwRoomContractDataVO {
+
+ @ApiModelProperty(value = "鍦ㄧ鍚堝悓鏁�", example = "1")
+ private Integer leaseContractAmount;
+
+ @ApiModelProperty(value = "鍦ㄧ鍚堟埧婧愭暟", example = "1")
+ private Integer leaseRoomAmount;
+
+ @ApiModelProperty(value = "鍙嫑鍟嗛潰绉�", example = "1")
+ private BigDecimal investmentArea;
+
+ @ApiModelProperty(value = "鍙嫑鍟嗘埧婧愭暟", example = "1")
+ private Integer investmentRoomAmount;
+
+ @ApiModelProperty(value = "鍦ㄧ瀹炴椂鍧囦环", example = "1")
+ private BigDecimal leasePrice;
+
+ @ApiModelProperty(value = "鍦ㄧ闈㈢Н", example = "1")
+ private BigDecimal leaseArea;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomStatusDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomStatusDataVO.java
new file mode 100644
index 0000000..5936073
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/YwRoomStatusDataVO.java
@@ -0,0 +1,43 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/1/8 15:32
+ */
+@Data
+public class YwRoomStatusDataVO {
+
+ @ApiModelProperty(value = "妤煎眰涓婚敭", example = "1")
+ private Integer floorId;
+
+ @ApiModelProperty(value = "鎴块棿涓婚敭", example = "1")
+ private Integer roomId;
+
+ @ApiModelProperty(value = "鎴块棿缂栧彿", example = "1")
+ private String roomCode;
+
+ @ApiModelProperty(value = "璁$闈㈢Н锛堝钩鏂圭背锛�", example = "1")
+ private BigDecimal roomRentArea;
+
+ @ApiModelProperty(value = "绉熷鍚嶇О", example = "1")
+ private String customerName;
+
+ @ApiModelProperty(value = "鎴块棿鐘舵�侊細0=寰呯锛�1=宸茬锛�2=鍗冲皢鍒版湡", example = "1")
+ private Integer roomStatus;
+
+ @ApiModelProperty(value = "鍒版湡鏃ユ湡", example = "1")
+ private Date overData;
+
+ @ApiModelProperty(value = "绌洪棽澶╂暟", example = "1")
+ private Integer freeDayAmount;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WorkbenchesService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WorkbenchesService.java
new file mode 100644
index 0000000..a269203
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WorkbenchesService.java
@@ -0,0 +1,22 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.dao.business.model.YwQuickModel;
+import com.doumee.dao.business.vo.MonthDataResponse;
+
+import java.util.List;
+
+/**
+ * 瀹℃壒淇℃伅璁板綍琛⊿ervice瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2023/12/28 14:09
+ */
+public interface WorkbenchesService {
+
+
+ List<YwQuickModel> getYwQuickList(LoginUserInfo loginUserInfo);
+
+ void updMyYwQuickModel(List<Integer> idList, LoginUserInfo loginUserInfo);
+
+ List<MonthDataResponse> getMonthNotices(String yearMonth, LoginUserInfo loginUserInfo);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java
index 3ef54c3..b3ad156 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractBillService.java
@@ -4,6 +4,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.YwContractBill;
+import com.doumee.dao.business.vo.YwContractBillDataVO;
+
import java.util.List;
/**
@@ -104,4 +106,7 @@
void dealDayBillCode();
List<YwContractBill> getCanBackBill(YwContractBill model);
+
+
+ YwContractBillDataVO getWaitDealList(Integer contractId);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwQuickModelService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwQuickModelService.java
new file mode 100644
index 0000000..4e2fbe0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwQuickModelService.java
@@ -0,0 +1,97 @@
+package com.doumee.service.business;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.YwQuickModel;
+import java.util.List;
+
+/**
+ * 宸ヤ綔鍙� - 蹇嵎妯″潡Service瀹氫箟
+ * @author 姹熻箘韫�
+ * @date 2025/01/09 17:47
+ */
+public interface YwQuickModelService {
+
+ /**
+ * 鍒涘缓
+ *
+ * @param ywQuickModel 瀹炰綋瀵硅薄
+ * @return Integer
+ */
+ Integer create(YwQuickModel ywQuickModel);
+
+ /**
+ * 涓婚敭鍒犻櫎
+ *
+ * @param id 涓婚敭
+ */
+ void deleteById(Integer id);
+
+ /**
+ * 鍒犻櫎
+ *
+ * @param ywQuickModel 瀹炰綋瀵硅薄
+ */
+ void delete(YwQuickModel ywQuickModel);
+
+ /**
+ * 鎵归噺涓婚敭鍒犻櫎
+ *
+ * @param ids 涓婚敭闆�
+ */
+ void deleteByIdInBatch(List<Integer> ids);
+
+ /**
+ * 涓婚敭鏇存柊
+ *
+ * @param ywQuickModel 瀹炰綋瀵硅薄
+ */
+ void updateById(YwQuickModel ywQuickModel);
+
+ /**
+ * 鎵归噺涓婚敭鏇存柊
+ *
+ * @param ywQuickModels 瀹炰綋闆�
+ */
+ void updateByIdInBatch(List<YwQuickModel> ywQuickModels);
+
+ /**
+ * 涓婚敭鏌ヨ
+ *
+ * @param id 涓婚敭
+ * @return YwQuickModel
+ */
+ YwQuickModel findById(Integer id);
+
+ /**
+ * 鏉′欢鏌ヨ鍗曟潯璁板綍
+ *
+ * @param ywQuickModel 瀹炰綋瀵硅薄
+ * @return YwQuickModel
+ */
+ YwQuickModel findOne(YwQuickModel ywQuickModel);
+
+ /**
+ * 鏉′欢鏌ヨ
+ *
+ * @param ywQuickModel 瀹炰綋瀵硅薄
+ * @return List<YwQuickModel>
+ */
+ List<YwQuickModel> findList(YwQuickModel ywQuickModel);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ *
+ * @param pageWrap 鍒嗛〉瀵硅薄
+ * @return PageData<YwQuickModel>
+ */
+ PageData<YwQuickModel> findPage(PageWrap<YwQuickModel> pageWrap);
+
+ /**
+ * 鏉′欢缁熻
+ *
+ * @param ywQuickModel 瀹炰綋瀵硅薄
+ * @return long
+ */
+ long count(YwQuickModel ywQuickModel);
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java
index 73454a9..1f24ecb 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwRoomService.java
@@ -4,6 +4,9 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.YwRoom;
+import com.doumee.dao.business.vo.YwFloorStatusDataVO;
+import com.doumee.dao.business.vo.YwRoomContractDataVO;
+
import java.util.List;
/**
@@ -95,4 +98,9 @@
* @return long
*/
long count(YwRoom ywRoom);
+
+ List<YwFloorStatusDataVO> getRoomStatusList(YwRoom model);
+
+
+ YwRoomContractDataVO getRoomContract(YwRoom model);
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java
new file mode 100644
index 0000000..be82191
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WorkbenchesServiceImpl.java
@@ -0,0 +1,116 @@
+package com.doumee.service.business.impl;
+
+import com.alibaba.druid.sql.visitor.functions.Concat;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.LoginUserModel;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.ApproveParamMapper;
+import com.doumee.dao.business.PlatformLogMapper;
+import com.doumee.dao.business.YwQuickModelMapper;
+import com.doumee.dao.business.model.YwQuickModel;
+import com.doumee.dao.business.vo.MonthDataResponse;
+import com.doumee.service.business.WorkbenchesService;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
+import io.jsonwebtoken.lang.Objects;
+import io.swagger.models.auth.In;
+import org.apache.tomcat.util.bcel.classfile.Constant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 瀹℃壒妯$増閰嶇疆淇℃伅琛⊿ervice瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2023/12/28 11:46
+ */
+@Service
+public class WorkbenchesServiceImpl implements WorkbenchesService {
+
+
+ @Autowired
+ private YwQuickModelMapper ywQuickModelMapper;
+
+
+
+ @Override
+ public List<YwQuickModel> getYwQuickList(LoginUserInfo loginUserInfo){
+ List<YwQuickModel> ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda()
+ .eq(YwQuickModel::getIsdeleted, Constants.ZERO)
+ .eq(YwQuickModel::getUserId,loginUserInfo.getId())
+ .orderByAsc(YwQuickModel::getSort)
+ );
+ if(CollectionUtils.isEmpty(ywQuickModelList)){
+ ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda()
+ .eq(YwQuickModel::getIsdeleted, Constants.ZERO)
+ .isNull(YwQuickModel::getUserId)
+ .orderByAsc(YwQuickModel::getSort)
+ );
+ }
+ return ywQuickModelList;
+ }
+
+
+ @Override
+ public void updMyYwQuickModel(List<Integer> idList, LoginUserInfo loginUserInfo){
+ List<YwQuickModel> ywQuickModelList = ywQuickModelMapper.selectList(new QueryWrapper<YwQuickModel>().lambda()
+ .eq(YwQuickModel::getIsdeleted, Constants.ZERO)
+ .isNull(YwQuickModel::getUserId)
+ .orderByAsc(YwQuickModel::getSort)
+ );
+ if(CollectionUtils.isEmpty(ywQuickModelList) || Constants.equalsInteger(idList.size(),ywQuickModelList.size())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"蹇嵎妯″潡閰嶇疆寮傚父,璇疯仈绯荤鐞嗗憳");
+ }
+ ywQuickModelMapper.delete(new QueryWrapper<YwQuickModel>().lambda().eq(YwQuickModel::getUserId,loginUserInfo.getId()));
+ List<YwQuickModel> newList = new ArrayList<>();
+ for (int i = 0; i < idList.size(); i++) {
+ Integer id = idList.get(i);
+ List<YwQuickModel> ywQuickModels = ywQuickModelList.stream().filter(j->Constants.equalsInteger(j.getId(),id)).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(ywQuickModels)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"蹇嵎妯″潡閰嶇疆寮傚父,璇疯仈绯荤鐞嗗憳");
+ }
+ YwQuickModel ywQuickModel = ywQuickModels.get(Constants.ZERO);
+ ywQuickModel.setId(null);
+ ywQuickModel.setCreator(loginUserInfo.getId());
+ ywQuickModel.setCreateDate(new Date());
+ ywQuickModel.setSort(i+1);
+ ywQuickModel.setUserId(loginUserInfo.getId());
+ newList.add(ywQuickModel);
+ }
+ ywQuickModelMapper.insert(newList);
+ }
+
+
+ @Override
+ public List<MonthDataResponse> getMonthNotices(String yearMonth, LoginUserInfo loginUserInfo){
+ List<String> dataList = DateUtil.getDayByMonth(yearMonth);
+ List<MonthDataResponse> monthDataResponseList = new ArrayList<>();
+ for (String str:dataList) {
+ MonthDataResponse monthDataResponse = new MonthDataResponse();
+ monthDataResponse.setWeekMsg(DateUtil.getWeek(DateUtil.StringToDate(str,"yyyy-MM-dd")).getChineseName());
+ monthDataResponse.setMonthDate(str);
+
+ monthDataResponseList.add(monthDataResponse);
+ }
+ return monthDataResponseList;
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java
index ac034cb..713148c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java
@@ -111,11 +111,12 @@
@Override
public YwBuilding findById(Integer id) {
-
-
MPJLambdaWrapper<YwBuilding> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.selectAll(YwBuilding.class )
.selectAs(YwProject::getName,YwBuilding::getProjectName)
+ .select(" (select ifnull(sum(y.FEE_AREA),0) from yw_room y where y.ISDELETED = 0 and y.status = 0 and y.IS_INVESTMENT = 1 and y.BUILDING_ID = t.id ) ",YwBuilding::getRoomFeeArea)
+ .select(" (select ifnull(sum(y.RENT_AREA),0) from yw_room y where y.ISDELETED = 0 and y.status = 0 and y.IS_INVESTMENT = 1 and y.BUILDING_ID = t.id ) ",YwBuilding::getRoomRentArea)
+ .select("",YwBuilding::getRoomFeeArea)
.leftJoin(YwProject.class,YwProject::getId,YwBuilding::getProjectId)
.eq(YwBuilding::getId,id)
.last(" limit 1 ")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
index 5bc2097..a320b59 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
@@ -10,6 +10,7 @@
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.YwContractBillDataVO;
import com.doumee.dao.system.MultifileMapper;
import com.doumee.dao.system.model.Multifile;
import com.doumee.dao.system.model.SystemUser;
@@ -20,6 +21,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
+import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -282,7 +284,6 @@
YwContractBill model = pageWrap.getModel();
IPage<YwContractBill> iPage = ywContractBillMapper.selectJoinPage(page,YwContractBill.class,
queryWrapper.selectAll(YwContractBill.class)
-// .select(" ( select ifnull(sum(case when yw.REVENUE_TYPE = 0 then yw.ACT_RECEIVABLE_FEE else -yw.ACT_RECEIVABLE_FEE end),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
.select(" ( select ifnull( sum( CASE WHEN t.bill_type = 0 and yw.REVENUE_TYPE = 0 THEN yw.ACT_RECEIVABLE_FEE when t.bill_type = 0 and yw.REVENUE_TYPE = 1 then -yw.ACT_RECEIVABLE_FEE when t.bill_type = 1 and yw.REVENUE_TYPE = 0 then -yw.ACT_RECEIVABLE_FEE else yw.ACT_RECEIVABLE_FEE END),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
.selectAs(YwContract::getCode,YwContractBill::getContractCode)
.selectAs(YwCustomer::getName,YwContractBill::getCustomerName)
@@ -486,4 +487,59 @@
return list;
}
+
+ @Override
+ public YwContractBillDataVO getWaitDealList(Integer contractId){
+ YwContractBillDataVO ywContractBillDataVO = new YwContractBillDataVO();
+ ywContractBillDataVO.setInAmount(Constants.ZERO);
+ ywContractBillDataVO.setInFee(BigDecimal.ZERO);
+ ywContractBillDataVO.setPayAmount(Constants.ZERO);
+ ywContractBillDataVO.setPayFee(BigDecimal.ZERO);
+ MPJLambdaWrapper<YwContractBill> queryWrapper = new MPJLambdaWrapper<YwContractBill>();
+ queryWrapper.selectAll(YwContractBill.class)
+ .select(" ( select ifnull( sum( CASE WHEN t.bill_type = 0 and yw.REVENUE_TYPE = 0 THEN yw.ACT_RECEIVABLE_FEE when t.bill_type = 0 and yw.REVENUE_TYPE = 1 then -yw.ACT_RECEIVABLE_FEE when t.bill_type = 1 and yw.REVENUE_TYPE = 0 then -yw.ACT_RECEIVABLE_FEE else yw.ACT_RECEIVABLE_FEE END),0) from yw_contract_revenue yw where yw.bill_id = t.id and yw.status = 0 and yw.isdeleted = 0 ) as actReceivableFee ")
+ .selectAs(YwContract::getCode,YwContractBill::getContractCode)
+ .selectAs(YwCustomer::getName,YwContractBill::getCustomerName)
+ .leftJoin(YwContract.class,YwContract::getId,YwContractBill::getContractId)
+ .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
+ .eq(YwContractBill::getIsdeleted,Constants.ZERO)
+ .in(YwContractBill::getPayStatus,Constants.ZERO,Constants.TWO,Constants.THREE,Constants.FOUR)
+ .eq(YwContractBill::getContractId,contractId)
+ .orderByDesc(YwContractBill::getId);
+ List<YwContractBill> list = ywContractBillMapper.selectJoinList(YwContractBill.class,queryWrapper);
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
+ for (YwContractBill ywContractBill:list) {
+ //闇�鏀堕噾棰�
+ ywContractBill.setNeedReceivableFee(
+ ywContractBill.getReceivableFee().subtract(ywContractBill.getActReceivableFee())
+ );
+ //鏀舵璐﹀崟
+ if(Constants.equalsInteger(ywContractBill.getBillType(),Constants.ZERO)){
+ //搴旀敹閲戦 灏忎簬 瀹炴敹閲戦 澶氭敹閲戦 搴旇鏄��娆�
+ if(ywContractBill.getNeedReceivableFee().compareTo(BigDecimal.ZERO)<Constants.ZERO){
+ ywContractBillDataVO.setPayAmount(ywContractBillDataVO.getPayAmount()+1);
+ ywContractBillDataVO.setPayFee(ywContractBillDataVO.getPayFee().add(ywContractBill.getNeedReceivableFee().abs()));
+ }else if(ywContractBill.getNeedReceivableFee().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+ ywContractBillDataVO.setInAmount(ywContractBillDataVO.getInAmount()+1);
+ ywContractBillDataVO.setInFee(ywContractBillDataVO.getInFee().add(ywContractBill.getNeedReceivableFee().abs()));
+ }
+ }else{
+ //浠樻璐﹀崟
+ //搴斾粯閲戦 灏忎簬 瀹炰粯閲戦 搴旇鏄粯娆炬
+ if(ywContractBill.getNeedReceivableFee().compareTo(BigDecimal.ZERO)<Constants.ZERO){
+ ywContractBillDataVO.setPayAmount(ywContractBillDataVO.getPayAmount()+1);
+ ywContractBillDataVO.setPayFee(ywContractBillDataVO.getPayFee().add(ywContractBill.getNeedReceivableFee().abs()));
+ }else{
+ ywContractBillDataVO.setInAmount(ywContractBillDataVO.getInAmount()+1);
+ ywContractBillDataVO.setInFee(ywContractBillDataVO.getInFee().add(ywContractBill.getNeedReceivableFee().abs()));
+ }
+ }
+ }
+ ywContractBillDataVO.setYwContractBillList(list);
+ }
+
+ return ywContractBillDataVO;
+ }
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
index 375b2f6..96a4593 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -15,6 +15,7 @@
import com.doumee.dao.business.YwPatrolTaskMapper;
import com.doumee.dao.business.YwPatrolTaskRecordMapper;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.YwPatrolSchemeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -48,6 +49,8 @@
private YwLinePointMapper ywLinePointMapper;
@Autowired
private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper;
+ @Autowired
+ private SystemUserMapper systemUserMapper;
@Autowired
private RedisTemplate<String, Object> redisTemplate;
@@ -315,8 +318,8 @@
YwPatrolScheme model = pageWrap.getModel();
queryWrapper.selectAll(YwPatrolScheme.class)
.select(" t2.realName as createUserName ")
- .select(" t1.realName as userName ")
- .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolScheme::getUserIds)
+// .select(" t1.realName as userName ")
+// .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolScheme::getUserIds)
.leftJoin(" system_user t2 on t.creator = t2.id ")
.eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
.like(StringUtils.isNotBlank(model.getTitle()),YwPatrolScheme::getTitle,model.getTitle())
@@ -333,10 +336,24 @@
IPage<YwPatrolScheme> iPage = ywPatrolSchemeMapper.selectJoinPage(page,YwPatrolScheme.class,queryWrapper);
for (YwPatrolScheme ywPatrolScheme:iPage.getRecords()) {
this.getSchemeStatus(ywPatrolScheme);
+ //宸℃浜哄憳
+ this.getUserNames(ywPatrolScheme);
}
return PageData.from(iPage);
}
+
+ public void getUserNames(YwPatrolScheme ywPatrolScheme){
+ if(Objects.nonNull(ywPatrolScheme)&&StringUtils.isNotBlank(ywPatrolScheme.getUserIds())){
+ List<SystemUser> systemUserList = systemUserMapper.selectList(new QueryWrapper<SystemUser>().lambda()
+ .apply(" find_in_set(id,'"+ywPatrolScheme.getUserIds()+"') ")
+ );
+ String userName = String.join(",",systemUserList.stream().map(i->i.getRealname()).collect(Collectors.toList()));
+ ywPatrolScheme.setUserName(userName);
+ }
+ }
+
+
//鑾峰彇鐘舵��
public void getSchemeStatus(YwPatrolScheme ywPatrolScheme){
List<YwPatrolTask> ywPatrolTaskList = ywPatrolTaskMapper.selectList(new QueryWrapper<YwPatrolTask>().lambda()
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
index 2e0587a..81b1493 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java
@@ -140,7 +140,21 @@
@Override
public YwProject findById(Integer id) {
- return ywProjectMapper.selectById(id);
+ YwProject ywProject = ywProjectMapper.selectById(id);
+ if(Objects.isNull(ywProject)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(Objects.nonNull(ywProject.getAreaId())){
+ Areas a = areasService.findById(ywProject.getAreaId(),Constants.TWO);
+ if(a != null){
+ ywProject.setAreaName(a.getName());
+ ywProject.setCityId(a.getCityId());
+ ywProject.setCityName(a.getCityName());
+ ywProject.setProvinceId(a.getProvinceId());
+ ywProject.setProvinceName(a.getProvinceName());
+ }
+ }
+ return ywProject;
}
@Override
@@ -308,7 +322,6 @@
ProjectTree treeBuild = new ProjectTree(projectDataVOList);
projectDataVOList = treeBuild.buildTree();
return projectDataVOList;
-
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwQuickModelServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwQuickModelServiceImpl.java
new file mode 100644
index 0000000..840fe32
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwQuickModelServiceImpl.java
@@ -0,0 +1,142 @@
+package com.doumee.service.business.impl;
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.YwQuickModelMapper;
+import com.doumee.dao.business.model.YwQuickModel;
+import com.doumee.service.business.YwQuickModelService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 宸ヤ綔鍙� - 蹇嵎妯″潡Service瀹炵幇
+ * @author 姹熻箘韫�
+ * @date 2025/01/09 17:47
+ */
+@Service
+public class YwQuickModelServiceImpl implements YwQuickModelService {
+
+ @Autowired
+ private YwQuickModelMapper ywQuickModelMapper;
+
+ @Override
+ public Integer create(YwQuickModel ywQuickModel) {
+ ywQuickModelMapper.insert(ywQuickModel);
+ return ywQuickModel.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ ywQuickModelMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(YwQuickModel ywQuickModel) {
+ UpdateWrapper<YwQuickModel> deleteWrapper = new UpdateWrapper<>(ywQuickModel);
+ ywQuickModelMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ ywQuickModelMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(YwQuickModel ywQuickModel) {
+ ywQuickModelMapper.updateById(ywQuickModel);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<YwQuickModel> ywQuickModels) {
+ if (CollectionUtils.isEmpty(ywQuickModels)) {
+ return;
+ }
+ for (YwQuickModel ywQuickModel: ywQuickModels) {
+ this.updateById(ywQuickModel);
+ }
+ }
+
+ @Override
+ public YwQuickModel findById(Integer id) {
+ return ywQuickModelMapper.selectById(id);
+ }
+
+ @Override
+ public YwQuickModel findOne(YwQuickModel ywQuickModel) {
+ QueryWrapper<YwQuickModel> wrapper = new QueryWrapper<>(ywQuickModel);
+ return ywQuickModelMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<YwQuickModel> findList(YwQuickModel ywQuickModel) {
+ QueryWrapper<YwQuickModel> wrapper = new QueryWrapper<>(ywQuickModel);
+ return ywQuickModelMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<YwQuickModel> findPage(PageWrap<YwQuickModel> pageWrap) {
+ IPage<YwQuickModel> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ QueryWrapper<YwQuickModel> queryWrapper = new QueryWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getId, pageWrap.getModel().getId());
+ }
+ if (pageWrap.getModel().getCreator() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getCreator, pageWrap.getModel().getCreator());
+ }
+ if (pageWrap.getModel().getCreateDate() != null) {
+ queryWrapper.lambda().ge(YwQuickModel::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.lambda().le(YwQuickModel::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ if (pageWrap.getModel().getEditor() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getEditor, pageWrap.getModel().getEditor());
+ }
+ if (pageWrap.getModel().getEditDate() != null) {
+ queryWrapper.lambda().ge(YwQuickModel::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.lambda().le(YwQuickModel::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ if (pageWrap.getModel().getIsdeleted() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ }
+ if (pageWrap.getModel().getUserId() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getUserId, pageWrap.getModel().getUserId());
+ }
+ if (pageWrap.getModel().getName() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getName, pageWrap.getModel().getName());
+ }
+ if (pageWrap.getModel().getPath() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getPath, pageWrap.getModel().getPath());
+ }
+ if (pageWrap.getModel().getIcoPath() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getIcoPath, pageWrap.getModel().getIcoPath());
+ }
+ if (pageWrap.getModel().getSort() != null) {
+ queryWrapper.lambda().eq(YwQuickModel::getSort, pageWrap.getModel().getSort());
+ }
+ for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+ if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+ queryWrapper.orderByDesc(sortData.getProperty());
+ } else {
+ queryWrapper.orderByAsc(sortData.getProperty());
+ }
+ }
+ return PageData.from(ywQuickModelMapper.selectPage(page, queryWrapper));
+ }
+
+ @Override
+ public long count(YwQuickModel ywQuickModel) {
+ QueryWrapper<YwQuickModel> wrapper = new QueryWrapper<>(ywQuickModel);
+ return ywQuickModelMapper.selectCount(wrapper);
+ }
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
index fc67f80..af4bcbc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
@@ -6,12 +6,13 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.YwBuildingMapper;
-import com.doumee.dao.business.YwContractRoomMapper;
-import com.doumee.dao.business.YwRoomMapper;
-import com.doumee.dao.business.YwWorkorderMapper;
+import com.doumee.dao.business.*;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.YwFloorStatusDataVO;
+import com.doumee.dao.business.vo.YwRoomContractDataVO;
+import com.doumee.dao.business.vo.YwRoomStatusDataVO;
import com.doumee.service.business.YwRoomService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -23,8 +24,12 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.math.BigDecimal;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* 杩愮淮鎴挎簮淇℃伅琛⊿ervice瀹炵幇
@@ -41,7 +46,13 @@
@Autowired
private YwContractRoomMapper ywContractRoomMapper;
@Autowired
+ private YwContractMapper ywContractMapper;
+
+ @Autowired
private YwWorkorderMapper ywWorkorderMapper;
+ @Autowired
+ private YwFloorMapper ywFloorMapper;
+
@Override
public Integer create(YwRoom model) {
@@ -247,4 +258,172 @@
QueryWrapper<YwRoom> wrapper = new QueryWrapper<>(ywRoom);
return ywRoomMapper.selectCount(wrapper);
}
+
+
+
+ @Override
+ public List<YwFloorStatusDataVO> getRoomStatusList(YwRoom model){
+ if(Objects.isNull(model)
+ || (Objects.isNull(model.getBuildingId()) && Objects.isNull(model.getFloor()))){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ List<YwFloorStatusDataVO> ywFloorStatusDataVOList = new ArrayList<>();
+ List<YwFloor> ywFloorList = ywFloorMapper.selectList(new QueryWrapper<YwFloor>().lambda()
+ .eq(YwFloor::getIsdeleted,Constants.ZERO)
+ .eq(Objects.nonNull(model.getBuildingId()),YwFloor::getBuildingId,model.getBuildingId())
+ .eq(Objects.nonNull(model.getFloor()),YwFloor::getId,model.getFloor())
+ .orderByAsc(YwFloor::getFloor)
+ );
+ List<YwRoom> ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda()
+ .eq(YwRoom::getIsdeleted,Constants.ZERO)
+ .eq(YwRoom::getIsInvestment,Constants.ONE)
+ .eq(YwRoom::getStatus,Constants.ZERO)
+ .eq(Objects.nonNull(model.getBuildingId()),YwRoom::getBuildingId,model.getBuildingId())
+ .eq(Objects.nonNull(model.getFloor()),YwRoom::getFloor,model.getFloor())
+ .orderByAsc(YwRoom::getSortnum)
+ );
+ List<YwRoomStatusDataVO> roomStatusDataList = new ArrayList<>();
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywRoomList)){
+ for (YwRoom ywRoom:ywRoomList) {
+ YwRoomStatusDataVO roomStatusDataVO = new YwRoomStatusDataVO();
+ roomStatusDataVO.setFloorId(ywRoom.getFloor());
+ roomStatusDataVO.setRoomId(ywRoom.getId());
+ roomStatusDataVO.setRoomCode(ywRoom.getCode());
+ roomStatusDataVO.setRoomRentArea(ywRoom.getRentArea());
+
+ List<YwContract> roomContractList = ywContractMapper.selectJoinList(YwContract.class,new MPJLambdaWrapper<YwContract>()
+ .selectAll(YwContract.class)
+ .selectAs(YwCustomer::getName,YwContract::getRenterName)
+ .leftJoin(YwContractRoom.class,YwContractRoom::getContractId,YwContract::getId)
+ .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId)
+ .eq(YwContract::getIsdeleted,Constants.ZERO)
+ .ge(YwContract::getStartDate, DateUtil.getCurrDateTime())
+ .eq(YwContractRoom::getType,Constants.ZERO)
+ .eq(YwContractRoom::getRoomId,ywRoom.getId())
+ .ne(YwContract::getBillStatus,Constants.THREE)
+ .orderByDesc(YwContract::getStartDate)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(roomContractList)){
+ roomStatusDataVO.setRoomStatus(Constants.ZERO);
+ roomStatusDataVO.setFreeDayAmount(Constants.ZERO);
+ }else{
+ YwContract ywContract = roomContractList.get(Constants.ZERO);
+ //鍚堝悓鐘舵�� 0寰呮墽琛� 1鎵ц涓� 2宸插埌鏈� 3閫�绉熶腑 4宸查��绉�
+ //寰呮墽琛�/鎵ц涓�/閫�绉熶腑 鍧囧睘浜庡凡鍑虹 鏍规嵁鍏蜂綋鍒版湡鏃堕棿鍒ゆ柇鏄惁澶勪簬鍗冲皢鍒版湡 90澶�
+ if(Constants.equalsInteger(ywContract.getStatus(),Constants.ZERO)||Constants.equalsInteger(ywContract.getStatus(),Constants.ONE)||
+ Constants.equalsInteger(ywContract.getStatus(),Constants.THREE)){
+ roomStatusDataVO.setRoomStatus(Constants.ONE);
+ roomStatusDataVO.setCustomerName(ywContract.getRenterName());
+ if(Constants.equalsInteger(ywContract.getStatus(),Constants.THREE)){
+ if(Objects.nonNull(ywContract.getBtDate()) && DateUtil.getBetweenDays(DateUtil.getFomartDate(ywContract.getBtDate(),"yyyy-MM-dd"),DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"))<=90){
+ roomStatusDataVO.setRoomStatus(Constants.TWO);
+ roomStatusDataVO.setOverData(ywContract.getBtDate());
+ }
+ }else{
+ if(Objects.nonNull(ywContract.getEndDate()) && DateUtil.getBetweenDays(DateUtil.getFomartDate(ywContract.getEndDate(),"yyyy-MM-dd"),DateUtil.getFomartDate(new Date(),"yyyy-MM-dd"))<=90){
+ roomStatusDataVO.setRoomStatus(Constants.TWO);
+ roomStatusDataVO.setOverData(ywContract.getEndDate());
+ }
+ }
+ }
+ }
+ roomStatusDataList.add(roomStatusDataVO);
+ }
+ }
+ for (YwFloor ywFloor:ywFloorList) {
+ YwFloorStatusDataVO ywFloorStatusDataVO = new YwFloorStatusDataVO();
+ ywFloorStatusDataVO.setFloor(ywFloor.getFloor());
+ ywFloorStatusDataVO.setFloorId(ywFloor.getId());
+ ywFloorStatusDataVO.setFloorArea(ywFloor.getArea());
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(roomStatusDataList)){
+ List<YwRoomStatusDataVO> floorRoomList = roomStatusDataList.stream().filter(i->Objects.nonNull(i.getFloorId())&&Constants.equalsInteger(i.getFloorId(),ywFloor.getId())).collect(Collectors.toList());
+ ywFloorStatusDataVO.setYwRoomStatusDataVOList(floorRoomList);
+ }
+ ywFloorStatusDataVOList.add(ywFloorStatusDataVO);
+ }
+ return ywFloorStatusDataVOList;
+ }
+
+
+ @Override
+ public YwRoomContractDataVO getRoomContract(YwRoom model){
+ if(Objects.isNull(model)
+ || (Objects.isNull(model.getBuildingId()) && Objects.isNull(model.getProjectId()))){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ YwRoomContractDataVO ywRoomContractDataVO = new YwRoomContractDataVO();
+ ywRoomContractDataVO.setInvestmentRoomAmount(Constants.ZERO);
+ ywRoomContractDataVO.setInvestmentArea(BigDecimal.ZERO);
+ ywRoomContractDataVO.setLeaseContractAmount(Constants.ZERO);
+ ywRoomContractDataVO.setLeasePrice(BigDecimal.ZERO);
+ ywRoomContractDataVO.setLeaseArea(BigDecimal.ZERO);
+ ywRoomContractDataVO.setLeaseRoomAmount(Constants.ZERO);
+
+ List<YwRoom> ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda()
+ .eq(YwRoom::getIsdeleted,Constants.ZERO)
+ .eq(YwRoom::getStatus,Constants.ZERO)
+ .eq(YwRoom::getIsInvestment,Constants.ONE)
+ .eq(Objects.nonNull(model.getBuildingId()),YwRoom::getBuildingId,model.getBuildingId())
+ .eq(Objects.nonNull(model.getProjectId()),YwRoom::getProjectId,model.getProjectId())
+ .orderByAsc(YwRoom::getSortnum)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(ywRoomList)){
+ return ywRoomContractDataVO;
+ }
+ ywRoomContractDataVO.setInvestmentRoomAmount(ywRoomList.size());
+ ywRoomContractDataVO.setInvestmentArea(ywRoomList.stream().filter(i->Objects.nonNull(i.getRentArea())).map(i->i.getRentArea()).reduce(BigDecimal.ZERO,BigDecimal::add));
+
+ List<YwContract> roomContractList = ywContractMapper.selectJoinList(YwContract.class,new MPJLambdaWrapper<YwContract>()
+ .selectAll(YwContract.class)
+ .select(" ( select ifnull(sum(yr.RENT_AREA),0) from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and y.CONTRACT_ID = t.id ) " , YwContract::getTotalArea)
+ .select(" ( select ifnull(sum(y.TOTLE_FEE),0) from yw_contract_bill y where y.CONTRACT_ID = t.id and y.type = 0 ) " , YwContract::getTotalFee)
+ .eq(YwContract::getIsdeleted,Constants.ZERO)
+ .in(YwContract::getStatus,Constants.ONE,Constants.TWO,Constants.THREE)
+ .ne(YwContract::getBillStatus,Constants.THREE)
+ .apply(Objects.nonNull(model.getBuildingId()),
+ " t.id in ( select y.CONTRACT_ID from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and yr.BUILDING_ID = "+model.getBuildingId()+" ) ")
+ .apply(Objects.nonNull(model.getProjectId()),
+ " t.id in ( select y.CONTRACT_ID from yw_contract_room y left join yw_room yr on y.room_id = yr.id where y.type = 0 and yr.PROJECT_ID = "+model.getProjectId()+" ) ")
+ .apply(Objects.nonNull(model.getProjectId())," ")
+ .orderByDesc(YwContract::getStartDate)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(roomContractList)){
+ return ywRoomContractDataVO;
+ }
+ //澶勭悊绉熻祦鍗曚环 鏍规嵁 鍚堝悓绉熻祦鎬婚 / 锛堢璧佹椂闀� * 绉熻祦闈㈢Н锛�
+ for (YwContract ywContract:roomContractList) {
+ long contractDayAmount = DateUtil.getBetweenDays(DateUtil.getFomartDate(ywContract.getEndDate(),"yyyy-MM-dd"),DateUtil.getFomartDate(ywContract.getStartDate(),"yyyy-MM-dd"));
+ if(Objects.nonNull(contractDayAmount) && Objects.nonNull(ywContract.getTotalArea()) && Objects.nonNull(ywContract.getTotalFee())){
+ ywRoomContractDataVO.setLeasePrice(
+ ywRoomContractDataVO.getLeasePrice().add(
+ ywContract.getTotalFee().divide((ywContract.getTotalArea().multiply(new BigDecimal(Long.toString(contractDayAmount)))),2,BigDecimal.ROUND_HALF_UP)
+ )
+ );
+ }
+ }
+
+ ywRoomContractDataVO.setLeaseContractAmount(roomContractList.size());
+ List<Integer> contractId = roomContractList.stream().map(i->i.getId()).collect(Collectors.toList());
+ List<YwRoom> ywLeaseRoomList = ywRoomMapper.selectJoinList(YwRoom.class,new MPJLambdaWrapper<YwRoom>()
+ .selectAll(YwRoom.class)
+ .leftJoin(YwContractRoom.class,YwContractRoom::getRoomId,YwRoom::getId)
+ .eq(YwRoom::getIsdeleted,Constants.ZERO)
+ .eq(YwRoom::getIsInvestment,Constants.ONE)
+ .eq(YwRoom::getStatus,Constants.ZERO)
+ .eq(Objects.nonNull(model.getBuildingId()),YwRoom::getBuildingId,model.getBuildingId())
+ .eq(Objects.nonNull(model.getProjectId()),YwRoom::getProjectId,model.getProjectId())
+ .in(YwContractRoom::getContractId,contractId)
+ .orderByAsc(YwRoom::getSortnum)
+ );
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywLeaseRoomList)){
+ ywRoomContractDataVO.setLeaseArea(
+ ywLeaseRoomList.stream().filter(i->Objects.nonNull(i.getRentArea())).map(i->i.getRentArea()).reduce(BigDecimal.ZERO,BigDecimal::add)
+ );
+ ywRoomContractDataVO.setLeaseRoomAmount(ywLeaseRoomList.size());
+ }
+ return ywRoomContractDataVO;
+ }
+
+
+
}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
index 105492a..4346ef6 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwWorkorderServiceImpl.java
@@ -387,6 +387,7 @@
.selectAs(YwFloor::getName,YwWorkorder::getFloorName)
.selectAs(YwBuilding::getName,YwWorkorder::getBuildingName)
.selectAs(YwProject::getName,YwWorkorder::getProjectName)
+ .selectAs(YwProblem::getId,YwWorkorder::getProblemId)
.leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getDealUserId)
.leftJoin(Category.class,Category::getId,YwWorkorder::getCateId)
.leftJoin(SystemUser.class,SystemUser::getId,YwWorkorder::getCreator)
@@ -394,6 +395,7 @@
.leftJoin(YwFloor.class,YwFloor::getId,YwWorkorder::getFloorId)
.leftJoin(YwBuilding.class,YwBuilding::getId,YwWorkorder::getBuildingId)
.leftJoin(YwProject.class,YwProject::getId,YwBuilding::getProjectId)
+ .leftJoin(YwProblem.class,YwProblem::getWorkorderId,YwWorkorder::getId)
.apply(StringUtils.isNotBlank(pageWrap.getModel().getQueryStatus())," find_in_set(t.DEAL_STATUS ,'"+pageWrap.getModel().getQueryStatus()+"') ");
pageWrap.getModel().setIsdeleted(Constants.ZERO);
Utils.MP.blankToNull(pageWrap.getModel());
@@ -411,6 +413,9 @@
if (pageWrap.getModel().getCreator() != null) {
queryWrapper.eq(YwWorkorder::getCreator, pageWrap.getModel().getCreator());
}
+ if (pageWrap.getModel().getOrigin() != null) {
+ queryWrapper.eq(YwWorkorder::getOrigin, pageWrap.getModel().getOrigin());
+ }
if (pageWrap.getModel().getCreateDate() != null) {
queryWrapper.ge(YwWorkorder::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
queryWrapper.le(YwWorkorder::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
--
Gitblit v1.9.3