renkang
2024-11-26 02f8fa00344f77c121fcad5ead5ca97dd390a4f8
客户资料 巡检任务业务
已添加2个文件
已修改20个文件
434 ■■■■ 文件已修改
server/system_service/src/main/java/com/doumee/dao/system/MultifileMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/dao/system/model/Multifile.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractCloudController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwContractRoomCloudController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwProjectCloudController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDevice.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwDeviceRecord.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwLinePoint.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolPoint.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectDataVO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/ProjectTree.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwContractRoomService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwProjectService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractRoomServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolLineServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolPointServiceImpl.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwProjectServiceImpl.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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> {
}
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)
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")
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")
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")
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;
}
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")
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;
}
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)
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;
}
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  æž„建整棵树
     */
    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 æ•´æ£µæ ‘
     */
    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;
    }
}
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);
  
    /**
     * åˆ†é¡µæŸ¥è¯¢
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();
}
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)){
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;
/**
 * è¿ç»´åˆåŒæˆ¿æºå…³è”信息表Service实现
@@ -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());
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);
    }
  
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;
    }
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)
        );
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;
    }
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");
        //查询当天是否生成过数据
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)
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;
    }
}