From 02f8fa00344f77c121fcad5ead5ca97dd390a4f8 Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 26 十一月 2024 16:29:05 +0800
Subject: [PATCH] 客户资料 巡检任务业务

---
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractCloudController.java             |    9 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwLinePoint.java                  |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRoomServiceImpl.java |   30 +++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java     |    4 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java      |   95 +++++++++++
 server/system_service/src/main/java/com/doumee/dao/system/model/Multifile.java                              |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolPoint.java                |    8 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java  |   35 ++--
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProjectCloudController.java              |   11 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java               |    4 
 server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java                              |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java   |    1 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProjectService.java               |    5 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolLineServiceImpl.java   |    7 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractRoomCloudController.java         |   11 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java |    7 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractRoomService.java          |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java                     |   18 +
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectDataVO.java                   |   33 ++++
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectTree.java                     |   93 +++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java       |   44 ++---
 22 files changed, 371 insertions(+), 63 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java b/server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java
index 1b1d62b..cedffeb 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.doumee.dao.system.model.Multifile;
+import com.github.yulichang.base.MPJBaseMapper;
 
 import java.util.List;
 
@@ -9,6 +10,6 @@
  * @author 姹熻箘韫�
  * @date 2023/05/04 18:18
  */
-public interface MultifileMapper extends BaseMapper<Multifile> {
+public interface MultifileMapper extends MPJBaseMapper<Multifile> {
 
 }
diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/Multifile.java b/server/system_service/src/main/java/com/doumee/dao/system/model/Multifile.java
index add8c58..b0a6fb3 100644
--- a/server/system_service/src/main/java/com/doumee/dao/system/model/Multifile.java
+++ b/server/system_service/src/main/java/com/doumee/dao/system/model/Multifile.java
@@ -79,6 +79,9 @@
     @TableField(exist = false)
     private String fileurlFull;
 
+    @ApiModelProperty(value = "鍒涘缓浜哄悕绉�")
+    @TableField(exist = false)
+    private String userName;
 
     @ApiModelProperty(value = "鍐呯綉鏂囦欢鍦板潃")
     @TableField(exist = false)
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractCloudController.java
index 73abf9f..48c59a4 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractCloudController.java
@@ -87,6 +87,15 @@
         return ApiResponse.success(ywContractService.findPage(pageWrap));
     }
 
+
+    @ApiOperation("鍒楄〃")
+    @PostMapping("/list")
+    @CloudRequiredPermission("business:ywcontract:query")
+    public ApiResponse<List<YwContract>> list (@RequestBody YwContract model,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywContractService.findList(model));
+    }
+
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @CloudRequiredPermission("business:ywcontract:exportExcel")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractRoomCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractRoomCloudController.java
index 735b99e..d412d4d 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractRoomCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractRoomCloudController.java
@@ -93,6 +93,17 @@
         pageWrap.setLoginUserInfo(this.getLoginUser(token));
         return ApiResponse.success(ywContractRoomService.findList(pageWrap));
     }
+
+
+    @ApiOperation("鏌ヨ鍚堝悓鎴栬处鍗曟埧闂翠俊鎭�")
+    @PostMapping("/getContractRoom")
+    @CloudRequiredPermission("business:ywcontractroom:query")
+    public ApiResponse<List<YwContractRoom>> getContractRoom (@RequestBody  YwContractRoom pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        pageWrap.setLoginUserInfo(this.getLoginUser(token));
+        return ApiResponse.success(ywContractRoomService.getContractRoom(pageWrap));
+    }
+
+
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
     @CloudRequiredPermission("business:ywcontractroom:query")
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProjectCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProjectCloudController.java
index f71ff2c..02e8e94 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProjectCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProjectCloudController.java
@@ -9,6 +9,7 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.YwProject;
 import com.doumee.dao.business.model.YwRoom;
+import com.doumee.dao.business.vo.ProjectDataVO;
 import com.doumee.service.business.YwProjectService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -85,6 +86,16 @@
         return ApiResponse.success(ywProjectService.findPage(pageWrap));
     }
 
+
+    @ApiOperation("椤圭洰鏍�")
+    @PostMapping("/tree")
+    @CloudRequiredPermission("business:ywproject:query")
+    public ApiResponse<List<ProjectDataVO>> tree (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywProjectService.projectTree());
+    }
+
+
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @CloudRequiredPermission("business:ywproject:exportExcel")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java
index cff24ae..99f3efe 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java
@@ -68,7 +68,7 @@
 
     @ApiModelProperty(value = "璁惧鍨嬪彿", example = "1")
     @ExcelColumn(name="璁惧鍨嬪彿")
-    private Integer modelNo;
+    private String modelNo;
 
     @ApiModelProperty(value = "鎵�灞炲垎绫荤紪鐮侊紙绠$悊category锛�", example = "1")
     @ExcelColumn(name="鎵�灞炲垎绫荤紪鐮侊紙绠$悊category锛�")
@@ -80,8 +80,7 @@
 
     @ApiModelProperty(value = "渚涘簲鍟�")
     @ExcelColumn(name="渚涘簲鍟�")
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date company;
+    private String supplier;
 
     @ApiModelProperty(value = "杩愮淮鍐呭")
     @ExcelColumn(name="杩愮淮鍐呭")
@@ -103,7 +102,16 @@
     @TableField(exist = false)
     private String realName;
 
-    @ApiModelProperty(value = "闄勪欢淇℃伅")
+    @ApiModelProperty(value = "鍥剧墖鍦板潃")
     @TableField(exist = false)
-    private Multifile multifile;
+    private String fileUrl;
+
+    @ApiModelProperty(value = "鍥剧墖鍦板潃鍏ㄨ矾寰�")
+    @TableField(exist = false)
+    private String fileFullUrl;
+
+
+//    @ApiModelProperty(value = "闄勪欢淇℃伅")
+//    @TableField(exist = false)
+//    private Multifile multifile;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java
index 9cacb9e..f9c5638 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java
@@ -33,14 +33,14 @@
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿",index = 5, dateFormat = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createDate;
 
     @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
     private Integer editor;
 
     @ApiModelProperty(value = "鏇存柊鏃堕棿")
-    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date editDate;
 
     @ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwLinePoint.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwLinePoint.java
index 54cc29c..cdabeb9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwLinePoint.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwLinePoint.java
@@ -73,5 +73,7 @@
     @TableField(exist = false)
     private String pointName;
 
-
+    @ApiModelProperty(value = "宸℃鐐圭紪鐮�")
+    @TableField(exist = false)
+    private String code;
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolPoint.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolPoint.java
index e1e0d05..8b69a5e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolPoint.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolPoint.java
@@ -107,9 +107,13 @@
     @TableField(exist = false)
     private String deviceName;
 
-    @ApiModelProperty(value = "闄勪欢淇℃伅")
+    @ApiModelProperty(value = "闄勪欢鍦板潃")
     @TableField(exist = false)
-    private Multifile multifile;
+    private String fileUrl;
+
+    @ApiModelProperty(value = "闄勪欢鍏ㄨ矾寰勫湴鍧�")
+    @TableField(exist = false)
+    private String fileFullUrl;
 
     @ApiModelProperty(value = "杩囨护鏁版嵁")
     @TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectDataVO.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectDataVO.java
new file mode 100644
index 0000000..f292cb0
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectDataVO.java
@@ -0,0 +1,33 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.dao.business.model.Approve;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/5/23 14:56
+ */
+@Data
+public class ProjectDataVO {
+
+    @ApiModelProperty(value = "涓氬姟涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "涓氬姟鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "鐖剁骇涓婚敭")
+    private Integer pId;
+
+    @ApiModelProperty(value = "绾у埆")
+    private Integer lv;
+
+    @ApiModelProperty(value = "瀛愰泦鏁版嵁")
+    private List<ProjectDataVO> projectDataVOList;
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectTree.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectTree.java
new file mode 100644
index 0000000..98080fe
--- /dev/null
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectTree.java
@@ -0,0 +1,93 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.config.DataSyncConfig;
+import com.doumee.core.utils.Constants;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/7/13 10:40
+ */
+public class ProjectTree {
+
+    // 淇濆瓨鍙備笌鏋勫缓鏍戝舰鐨勬墍鏈夋暟鎹紙閫氬父鏁版嵁搴撴煡璇㈢粨鏋滐級
+    public List<ProjectDataVO> nodeList = new ArrayList<>();
+
+
+
+    /**
+     *  鏋勯�犳柟娉�
+     *  @param nodeList 灏嗘暟鎹泦鍚堣祴鍊肩粰nodeList锛屽嵆鎵�鏈夋暟鎹綔涓烘墍鏈夎妭鐐广��
+     */
+    public ProjectTree(List<ProjectDataVO> nodeList){
+        this.nodeList = nodeList;
+    }
+
+
+    /**
+     *   鑾峰彇闇�鏋勫缓鐨勬墍鏈夋牴鑺傜偣锛堥《绾ц妭鐐癸級 "0"
+     *   @return 鎵�鏈夋牴鑺傜偣List闆嗗悎
+     */
+    public List<ProjectDataVO> getRootNode(){
+        // 淇濆瓨鎵�鏈夋牴鑺傜偣锛堟墍鏈夋牴鑺傜偣鐨勬暟鎹級
+        List<ProjectDataVO> rootNodeList = new ArrayList<>();
+        // treeNode锛氭煡璇㈠嚭鐨勬瘡涓�鏉℃暟鎹紙鑺傜偣锛�
+        for (ProjectDataVO treeNode : nodeList){
+            if (Objects.isNull(treeNode.getPId()) && Constants.equalsInteger(treeNode.getLv(),Constants.ZERO)) {
+                // 鏄紝娣诲姞
+                rootNodeList.add(treeNode);
+            }
+        }
+        return rootNodeList;
+    }
+
+
+    /**
+     *  鏍规嵁姣忎竴涓《绾ц妭鐐癸紙鏍硅妭鐐癸級杩涜鏋勫缓鏍戝舰缁撴瀯
+     *  @return  鏋勫缓鏁存5鏍�
+     */
+    public List<ProjectDataVO> buildTree(){
+        // treeNodes锛氫繚瀛樹竴涓《绾ц妭鐐规墍鏋勫缓鍑烘潵鐨勫畬鏁存爲褰�
+        List<ProjectDataVO> treeNodes = new ArrayList<ProjectDataVO>();
+        // getRootNode()锛氳幏鍙栨墍鏈夌殑鏍硅妭鐐�
+        for (ProjectDataVO treeRootNode : getRootNode()) {
+            // 灏嗛《绾ц妭鐐硅繘琛屾瀯寤哄瓙鏍�
+            treeRootNode = buildChildTree(treeRootNode);
+            // 瀹屾垚涓�涓《绾ц妭鐐规墍鏋勫缓鐨勬爲褰紝澧炲姞杩涙潵
+            treeNodes.add(treeRootNode);
+        }
+        return treeNodes;
+    }
+
+    /**
+     *  閫掑綊-----鏋勫缓瀛愭爲褰㈢粨鏋�
+     *  @param  pNode 鏍硅妭鐐癸紙椤剁骇鑺傜偣锛�
+     *  @return 鏁存5鏍�
+     */
+    public ProjectDataVO buildChildTree(ProjectDataVO pNode){
+        List<ProjectDataVO> childTree = new ArrayList<ProjectDataVO>();
+        // nodeList锛氭墍鏈夎妭鐐归泦鍚堬紙鎵�鏈夋暟鎹級
+        for (ProjectDataVO treeNode : nodeList) {
+            // 鍒ゆ柇褰撳墠鑺傜偣鐨勭埗鑺傜偣ID鏄惁绛変簬鏍硅妭鐐圭殑ID锛屽嵆褰撳墠鑺傜偣涓哄叾涓嬬殑瀛愯妭鐐�
+            if (!Objects.isNull(treeNode.getPId())
+                    && Constants.equalsInteger(treeNode.getPId(),pNode.getId())
+                    && Constants.equalsInteger((treeNode.getLv() -  1 ),pNode.getLv())
+            ) {
+                // 鍐嶉�掑綊杩涜鍒ゆ柇褰撳墠鑺傜偣鐨勬儏鍐碉紝璋冪敤鑷韩鏂规硶
+                childTree.add(buildChildTree(treeNode));
+            }
+        }
+        // for寰幆缁撴潫锛屽嵆鑺傜偣涓嬫病鏈変换浣曡妭鐐癸紝鏍戝舰鏋勫缓缁撴潫锛岃缃爲缁撴灉
+        pNode.setProjectDataVOList(childTree);
+        return pNode;
+    }
+
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractRoomService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractRoomService.java
index 23e6024..3aa5a39 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractRoomService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractRoomService.java
@@ -79,6 +79,9 @@
      * @return List<YwContractRoom>
      */
     List<YwContractRoom> findList(YwContractRoom ywContractRoom);
+
+    List<YwContractRoom> getContractRoom(YwContractRoom ywContractRoom);
+
   
     /**
      * 鍒嗛〉鏌ヨ
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProjectService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProjectService.java
index f8a8923..d4232c7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProjectService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProjectService.java
@@ -4,6 +4,8 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.YwProject;
+import com.doumee.dao.business.vo.ProjectDataVO;
+
 import java.util.List;
 
 /**
@@ -95,4 +97,7 @@
      * @return long
      */
     long count(YwProject ywProject);
+
+
+    List<ProjectDataVO> projectTree();
 }
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 cd31b01..1ee8e66 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
@@ -12,6 +12,7 @@
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.MultifileMapper;
 import com.doumee.dao.system.model.Multifile;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.YwContractBillService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -194,7 +195,10 @@
         ));
 
         //闄勪欢鏁版嵁
-        List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+        List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>()
+                        .selectAll(Multifile.class)
+                        .selectAs(SystemUser::getRealname,Multifile::getUserName)
+                        .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator)
                 .eq(Multifile::getObjId,id)
                 .eq(Multifile::getObjType,Constants.MultiFile.FN_CONTRACT_BILL_FILE.getKey()));
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRoomServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRoomServiceImpl.java
index 521d552..8b4a5c7 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRoomServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRoomServiceImpl.java
@@ -5,17 +5,19 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.YwContractRoomMapper;
-import com.doumee.dao.business.model.YwContractRoom;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.YwContractRoomService;
 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 com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 杩愮淮鍚堝悓鎴挎簮鍏宠仈淇℃伅琛⊿ervice瀹炵幇
@@ -84,7 +86,31 @@
         QueryWrapper<YwContractRoom> wrapper = new QueryWrapper<>(ywContractRoom);
         return ywContractRoomMapper.selectList(wrapper);
     }
-  
+
+
+
+    @Override
+    public List<YwContractRoom> getContractRoom(YwContractRoom ywContractRoom){
+        List<YwContractRoom> ywContractRoomList  = ywContractRoomMapper.selectJoinList(YwContractRoom.class,new MPJLambdaWrapper<YwContractRoom>()
+                .selectAll(YwContractRoom.class)
+                .selectAs(YwProject::getName, YwRoom::getProjectName)
+                .selectAs(YwFloor::getName,YwRoom::getFloorName)
+                .selectAs(YwBuilding::getName,YwRoom::getBuildingName)
+                .selectAs(YwRoom::getName,YwContractRoom::getRoomName)
+                .leftJoin(YwRoom.class,YwRoom::getId,YwContractRoom::getRoomId)
+                .leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor)
+                .leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
+                .leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId)
+                .eq(Objects.nonNull(ywContractRoom.getType()),YwContractRoom::getType,ywContractRoom.getType())
+                .eq(Objects.nonNull(ywContractRoom.getContractId()),YwContractRoom::getContractId,ywContractRoom.getContractId()))
+                ;
+        return ywContractRoomList;
+
+    }
+
+
+
+
     @Override
     public PageData<YwContractRoom> findPage(PageWrap<YwContractRoom> pageWrap) {
         IPage<YwContractRoom> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
index e8e6bbc..3125b50 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -1026,7 +1026,9 @@
 
     @Override
     public List<YwContract> findList(YwContract ywContract) {
-        QueryWrapper<YwContract> wrapper = new QueryWrapper<>(ywContract);
+        QueryWrapper<YwContract> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(YwContract::getIsdeleted,Constants.ZERO);
+        wrapper.lambda().in(YwContract::getStatus,Constants.ZERO,Constants.ONE,Constants.TWO);
         return ywContractMapper.selectList(wrapper);
     }
   
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
index 1b4b13a..11080ec 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
@@ -64,27 +64,20 @@
         if(ywDeviceMapper.selectCount(new QueryWrapper<YwDevice>().lambda().eq(YwDevice::getIsdeleted,Constants.ZERO).eq(YwDevice::getCode,ywDevice.getCode()))>Constants.ZERO){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁惧缂栧彿閲嶅!");
         }
-//        if(StringUtils.isBlank(ywDevice.getCode())){
-//            String code = this.getMaxAutoMaticDeviceCode();
-//            while (ywDeviceMapper.selectCount(new QueryWrapper<YwDevice>().lambda().eq(YwDevice::getIsdeleted,Constants.ZERO).eq(YwDevice::getCode,code))>Constants.ZERO){
-//                code = this.getMaxAutoMaticDeviceCode();
-//            }
-//             ywDevice.setCode(code);
-//        }else{
-//
-//        }
         ywDevice.setCreateDate(new Date());
         ywDevice.setCreator(loginUserInfo.getId());
         ywDevice.setIsdeleted(Constants.ZERO);
         ywDeviceMapper.insert(ywDevice);
 
-        if(Objects.nonNull(ywDevice.getMultifile())){
-            ywDevice.getMultifile().setCreator(loginUserInfo.getId());
-            ywDevice.getMultifile().setCreateDate(new Date());
-            ywDevice.getMultifile().setIsdeleted(Constants.ZERO);
-            ywDevice.getMultifile().setObjType(Constants.MultiFile.FN_DEVICE_FILE.getKey());
-            ywDevice.getMultifile().setObjId(ywDevice.getId());
-            multifileMapper.insert(ywDevice.getMultifile());
+        if(Objects.nonNull(ywDevice.getFileUrl())){
+            Multifile multifile = new Multifile();
+            multifile.setCreator(loginUserInfo.getId());
+            multifile.setCreateDate(new Date());
+            multifile.setIsdeleted(Constants.ZERO);
+            multifile.setObjType(Constants.MultiFile.FN_DEVICE_FILE.getKey());
+            multifile.setObjId(ywDevice.getId());
+            multifile.setFileurl(ywDevice.getFileUrl());
+            multifileMapper.insert(multifile);
         }
 
         return ywDevice.getId();
@@ -135,13 +128,15 @@
                 .eq(Multifile::getObjId,ywDevice.getId())
                 .eq(Multifile::getObjType,Constants.MultiFile.FN_DEVICE_FILE.getKey())
         );
-        if(Objects.nonNull(ywDevice.getMultifile())){
-            ywDevice.getMultifile().setCreator(loginUserInfo.getId());
-            ywDevice.getMultifile().setCreateDate(new Date());
-            ywDevice.getMultifile().setIsdeleted(Constants.ZERO);
-            ywDevice.getMultifile().setObjType(Constants.MultiFile.FN_DEVICE_FILE.getKey());
-            ywDevice.getMultifile().setObjId(ywDevice.getId());
-            multifileMapper.insert(ywDevice.getMultifile());
+        if(Objects.nonNull(ywDevice.getFileUrl())){
+            Multifile multifile = new Multifile();
+            multifile.setCreator(loginUserInfo.getId());
+            multifile.setCreateDate(new Date());
+            multifile.setIsdeleted(Constants.ZERO);
+            multifile.setObjType(Constants.MultiFile.FN_DEVICE_FILE.getKey());
+            multifile.setObjId(ywDevice.getId());
+            multifile.setFileurl(ywDevice.getFileUrl());
+            multifileMapper.insert(multifile);
         }
 
 
@@ -169,8 +164,7 @@
         if(Objects.nonNull(multifile)){
             String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                     +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_DEVICE).getCode();
-            multifile.setFileurlFull(path + multifile.getFileurl());
-            ywDevice.setMultifile(multifile);
+            ywDevice.setFileFullUrl(path + multifile.getFileurl());
         }
         return ywDevice;
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolLineServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolLineServiceImpl.java
index f5b6603..54dea5a 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolLineServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolLineServiceImpl.java
@@ -68,7 +68,7 @@
             ywLinePoint.setCreateDate(new Date());
             ywLinePoint.setCreator(loginUserInfo.getId());
             ywLinePoint.setIsdeleted(Constants.ZERO);
-            ywLinePoint.setLineId(ywLinePoint.getId());
+            ywLinePoint.setLineId(ywPatrolLine.getId());
         }
         ywLinePointMapper.insert(ywLinePointList);
         return ywPatrolLine.getId();
@@ -117,7 +117,7 @@
             ){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"宸℃鐐归厤缃敊璇�");
             }
-            ywLinePoint.setLineId(ywLinePoint.getId());
+            ywLinePoint.setLineId(ywPatrolLine.getId());
             ywLinePoint.setCreateDate(new Date());
             ywLinePoint.setCreator(loginUserInfo.getId());
             ywLinePoint.setIsdeleted(Constants.ZERO);
@@ -148,7 +148,8 @@
         List<YwLinePoint> ywLinePointList = ywLinePointMapper.selectJoinList(YwLinePoint.class,new MPJLambdaWrapper<YwLinePoint>()
                 .selectAll(YwLinePoint.class)
                 .selectAs(YwPatrolPoint::getName,YwLinePoint::getPointName)
-                .leftJoin(YwPatrolLine.class,YwPatrolLine::getId,YwLinePoint::getPointId)
+                .selectAs(YwPatrolPoint::getCode,YwLinePoint::getCode)
+                .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwLinePoint::getPointId)
                 .eq(YwLinePoint::getLineId,id)
                 .orderByAsc(YwLinePoint::getSortnum)
         );
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java
index 948ccf5..4265e5c 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java
@@ -65,13 +65,15 @@
         ywPatrolPointMapper.insert(ywPatrolPoint);
 
 
-        if(Objects.nonNull(ywPatrolPoint.getMultifile())){
-            ywPatrolPoint.getMultifile().setCreator(loginUserInfo.getId());
-            ywPatrolPoint.getMultifile().setCreateDate(new Date());
-            ywPatrolPoint.getMultifile().setIsdeleted(Constants.ZERO);
-            ywPatrolPoint.getMultifile().setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey());
-            ywPatrolPoint.getMultifile().setObjId(ywPatrolPoint.getId());
-            multifileMapper.insert(ywPatrolPoint.getMultifile());
+        if(Objects.nonNull(ywPatrolPoint.getFileUrl())){
+            Multifile multifile = new Multifile();
+            multifile.setCreator(loginUserInfo.getId());
+            multifile.setCreateDate(new Date());
+            multifile.setIsdeleted(Constants.ZERO);
+            multifile.setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey());
+            multifile.setObjId(ywPatrolPoint.getId());
+            multifile.setFileurl(ywPatrolPoint.getFileUrl());
+            multifileMapper.insert(multifile);
         }
 
         return ywPatrolPoint.getId();
@@ -123,13 +125,15 @@
                 .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_POINT_FILE.getKey())
         );
 
-        if(Objects.nonNull(ywPatrolPoint.getMultifile())){
-            ywPatrolPoint.getMultifile().setCreator(loginUserInfo.getId());
-            ywPatrolPoint.getMultifile().setCreateDate(new Date());
-            ywPatrolPoint.getMultifile().setIsdeleted(Constants.ZERO);
-            ywPatrolPoint.getMultifile().setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey());
-            ywPatrolPoint.getMultifile().setObjId(ywPatrolPoint.getId());
-            multifileMapper.insert(ywPatrolPoint.getMultifile());
+        if(Objects.nonNull(ywPatrolPoint.getFileUrl())){
+            Multifile multifile = new Multifile();
+            multifile.setCreator(loginUserInfo.getId());
+            multifile.setCreateDate(new Date());
+            multifile.setIsdeleted(Constants.ZERO);
+            multifile.setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey());
+            multifile.setObjId(ywPatrolPoint.getId());
+            multifile.setFileurl(ywPatrolPoint.getFileUrl());
+            multifileMapper.insert(multifile);
         }
 
     }
@@ -157,8 +161,7 @@
         if(Objects.nonNull(multifile)){
             String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                     +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode();
-            multifile.setFileurlFull(path + multifile.getFileurl());
-            ywPatrolPoint.setMultifile(multifile);
+            ywPatrolPoint.setFileFullUrl(path + multifile.getFileurl());
         }
         return ywPatrolPoint;
     }
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 d85a2fe..6f532e1 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
@@ -26,6 +26,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
@@ -51,6 +52,7 @@
     private RedisTemplate<String, Object> redisTemplate;
 
     @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public Integer create(YwPatrolScheme ywPatrolScheme) {
         if(Objects.isNull(ywPatrolScheme)
         || StringUtils.isBlank(ywPatrolScheme.getTitle())
@@ -122,9 +124,10 @@
             //姣忔湀鏍规嵁鏃ユ湡鐢熸垚 鏍规嵁鏃ユ湡鑾峰彇鏄摢澶�
             List<String> days = Arrays.asList(ywPatrolScheme.getCircleDays().split(","));
             String dayStr = DateUtil.getFomartDate(schemeDate,"dd");
-            if(Objects.isNull(days.stream().filter(i->StringUtils.equals(i,dayStr)).findFirst().get())){
+            Optional<String>  optional = days.stream().filter(i->StringUtils.equals(i,dayStr)).findAny();
+            if(Objects.isNull(optional)){
                 return;
-            };
+            }
         }
         String schemeDateStr = DateUtil.getDate(schemeDate,"yyyy-MM-dd");
         //鏌ヨ褰撳ぉ鏄惁鐢熸垚杩囨暟鎹�
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
index 3bfe5a0..ec9f16f 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
@@ -121,6 +121,7 @@
         YwPatrolTask model = pageWrap.getModel();
         queryWrapper.selectAll(YwPatrolTask.class)
                 .selectAs(YwPatrolScheme::getCode,YwPatrolTask::getPlanCode)
+                .selectAs(YwPatrolScheme::getTitle,YwPatrolTask::getPlanTitle)
                 .selectAs(SystemUser::getRealname,YwPatrolTask::getUserName)
                 .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTask::getDealUserId)
                 .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId)
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 5e27677..47c6138 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
@@ -5,18 +5,26 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.YwBuildingMapper;
+import com.doumee.dao.business.YwFloorMapper;
 import com.doumee.dao.business.YwProjectMapper;
-import com.doumee.dao.business.model.Company;
-import com.doumee.dao.business.model.YwProject;
+import com.doumee.dao.business.YwRoomMapper;
+import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.CompanyTree;
+import com.doumee.dao.business.vo.ProjectDataVO;
+import com.doumee.dao.business.vo.ProjectTree;
 import com.doumee.service.business.YwProjectService;
 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.checkerframework.checker.units.qual.A;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -30,6 +38,15 @@
 
     @Autowired
     private YwProjectMapper ywProjectMapper;
+
+    @Autowired
+    private YwFloorMapper ywFloorMapper;
+
+    @Autowired
+    private YwRoomMapper ywRoomMapper;
+
+    @Autowired
+    private YwBuildingMapper ywBuildingMapper;
 
     @Override
     public Integer create(YwProject  model) {
@@ -162,4 +179,78 @@
         QueryWrapper<YwProject> wrapper = new QueryWrapper<>(ywProject);
         return ywProjectMapper.selectCount(wrapper);
     }
+
+
+    @Override
+    public List<ProjectDataVO> projectTree(){
+        List<ProjectDataVO> projectDataVOList = new ArrayList<>();
+        List<YwProject>  ywProjectList = ywProjectMapper.selectList(new QueryWrapper<YwProject>().lambda()
+                .eq(YwProject::getIsdeleted,Constants.ZERO)
+                .eq(YwProject::getStatus,Constants.ZERO)
+                .orderByAsc(YwProject::getSortnum)
+        );
+        for (YwProject ywProject:ywProjectList) {
+            ProjectDataVO projectDataVO = new ProjectDataVO();
+            BeanUtils.copyProperties(ywProject,projectDataVO);
+            projectDataVO.setLv(Constants.ZERO);
+            projectDataVOList.add(projectDataVO);
+        }
+
+        List<YwBuilding>  ywBuildingList = ywBuildingMapper.selectList(new QueryWrapper<YwBuilding>().lambda()
+                .eq(YwBuilding::getIsdeleted,Constants.ZERO)
+                .eq(YwBuilding::getStatus,Constants.ZERO)
+                .orderByAsc(YwBuilding::getSortnum)
+        );
+
+        for (YwBuilding data:ywBuildingList) {
+            ProjectDataVO projectDataVO = new ProjectDataVO();
+            BeanUtils.copyProperties(data,projectDataVO);
+            projectDataVO.setPId(data.getProjectId());
+            projectDataVO.setLv(Constants.ONE);
+            projectDataVOList.add(projectDataVO);
+        }
+
+
+        List<YwFloor>  ywFloorList = ywFloorMapper.selectList(new QueryWrapper<YwFloor>().lambda()
+                .eq(YwFloor::getIsdeleted,Constants.ZERO)
+                .eq(YwFloor::getStatus,Constants.ZERO)
+                .orderByAsc(YwFloor::getSortnum)
+        );
+
+        for (YwFloor data:ywFloorList) {
+            ProjectDataVO projectDataVO = new ProjectDataVO();
+            BeanUtils.copyProperties(data,projectDataVO);
+            projectDataVO.setPId(data.getBuildingId());
+            projectDataVO.setLv(Constants.TWO);
+            projectDataVOList.add(projectDataVO);
+        }
+
+
+
+        List<YwRoom>  ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda()
+                .eq(YwRoom::getIsdeleted,Constants.ZERO)
+                .eq(YwRoom::getStatus,Constants.ZERO)
+                .orderByAsc(YwRoom::getSortnum)
+        );
+
+
+        for (YwRoom data:ywRoomList) {
+            ProjectDataVO projectDataVO = new ProjectDataVO();
+            BeanUtils.copyProperties(data,projectDataVO);
+            projectDataVO.setName(data.getCode());
+            projectDataVO.setPId(data.getFloor());
+            projectDataVO.setLv(Constants.THREE);
+            projectDataVOList.add(projectDataVO);
+        }
+
+        ProjectTree treeBuild = new ProjectTree(projectDataVOList);
+        projectDataVOList = treeBuild.buildTree();
+        return  projectDataVOList;
+
+    }
+
+
+
+
+
 }

--
Gitblit v1.9.3