rk
10 小时以前 d5e01405a50c89966ae06363b09fd385b47f99f0
问题修改
已添加2个文件
已修改25个文件
486 ■■■■ 文件已修改
server/system_gateway/src/main/resources/application-pro.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap-pro.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application-pro.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/bootstrap-pro.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/resources/bootstrap-pro.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/admin_timer/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AlcoholTestAlarmDTO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/TimeOutCloseGridDTO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetDetailVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetGridInfoVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetInfoVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/TelecomLineCountVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java 78 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/resources/application-pro.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_gateway/src/main/resources/application-pro.yml
@@ -1,9 +1,9 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    url: jdbc:mysql://localhost:3306/wuhuyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Atwl@2024
    password: Whyc@2025
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  redis:
@@ -18,7 +18,7 @@
debug_model: false
debug_model: true
captcha_check: true
@@ -32,7 +32,7 @@
  redirect-uri: /
knife4j:
  enable: false
  enable: true
  basic:
    enable: true
    username: admin
server/system_gateway/src/main/resources/bootstrap-pro.yml
@@ -3,13 +3,13 @@
    nacos:
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: Atwl@2024
      password: nacos
      discovery:
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
        namespace: wuhuyancao
#        namespace: dev_renkang
        username: nacos
        password: Atwl@2024
        password: nacos
    gateway:
      discovery:
        locator:
server/system_gateway/src/main/resources/bootstrap.yml
@@ -8,4 +8,4 @@
    # éªŒç­¾å…¬é’¥åœ°å€
    oauth2:
      authorizationserver:
        token-uri: https://
        token-uri: https://business/jkKeys/page
server/system_timer/src/main/resources/application-pro.yml
@@ -1,9 +1,9 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    url: jdbc:mysql://localhost:3306/wuhuyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Atwl@2024
    password: Whyc@2025
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
server/system_timer/src/main/resources/bootstrap-pro.yml
@@ -14,7 +14,7 @@
    nacos:
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: Atwl@2024
      password: nacos
      #      config:
      #        server-addr: http://192.168.0.212:8848 #配置Nacos地址
      #        namespace: dmvisit
@@ -25,6 +25,6 @@
      #        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
        namespace: wuhuyancao
        username: nacos
        password: Atwl@2024
        password: nacos
server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: test
    active: pro
  application:
    name: systemTimer
    # å®‰å…¨é…ç½®
server/visits/admin_timer/src/main/resources/bootstrap-pro.yml
@@ -12,7 +12,7 @@
    nacos:
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: Atwl@2024
      password: nacos
      #      config:
      #        server-addr: http://192.168.0.212:8848 #配置Nacos地址
      #        namespace: dmvisit
@@ -23,9 +23,9 @@
      #        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
        namespace: wuhuyancao
        username: nacos
        password: Atwl@2024
        password: nacos
knife4j:
  enable: false
server/visits/admin_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: test
    active: pro
  application:
    name: visitsTimer
    # å®‰å…¨é…ç½®
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/JkCabinetGridCloudController.java
@@ -27,7 +27,7 @@
@Api(tags = "钥匙柜柜格基本信息表")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/jkCabinetGrid")
public class JkCabinetGridCloudController extends BaseController {
public class    JkCabinetGridCloudController extends BaseController {
    @Autowired
    private JkCabinetGridService jkCabinetGridService;
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/cabinet/CabinetController.java
@@ -8,10 +8,7 @@
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.JkVersionMapper;
import com.doumee.dao.business.dto.CloseGridDTO;
import com.doumee.dao.business.dto.GetDriverGridDTO;
import com.doumee.dao.business.dto.OpenGridDriverDTO;
import com.doumee.dao.business.dto.OptGridDTO;
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.InterfaceLog;
import com.doumee.dao.business.model.JkCabinetGrid;
import com.doumee.dao.business.model.JkVersion;
@@ -136,6 +133,7 @@
        return ApiResponse.success("操作成功");
    }
    @LoginNoRequired
    @ApiOperation("关闭柜门")
    @PostMapping("/closeGrid")
    public ApiResponse closeGrid(@RequestBody CloseGridDTO dto) {
@@ -154,6 +152,7 @@
    }
    @LoginNoRequired
    @ApiOperation("获取钥匙柜人脸数据")
    @GetMapping("/getCabinetFaceVO")
    public ApiResponse<CabinetFaceVO> getCabinetFaceVO(@RequestParam String code) {
@@ -164,6 +163,7 @@
    @LoginNoRequired
    @ApiOperation("获取可操作柜格 - å¸æœº")
    @PostMapping("/getDriverGrid")
    public ApiResponse<List<JkCabinetGrid>> getDriverGrid(@RequestBody GetDriverGridDTO dto) {
@@ -172,6 +172,7 @@
        return ApiResponse.success(jkCabinetGridList);
    }
    @LoginNoRequired
    @ApiOperation("开启柜格 - å¸æœº")
    @PostMapping("/openGridDriver")
    public ApiResponse openGridDriver(@RequestBody OpenGridDriverDTO dto) {
@@ -180,6 +181,7 @@
        return ApiResponse.success("操作成功");
    }
    @LoginNoRequired
    @ApiOperation("获取IC卡用户主键 - å¸æœº")
    @PostMapping("/getMemberIdByCode")
    public ApiResponse<Integer> getMemberIdByCode(@RequestParam String code) {
@@ -200,4 +202,23 @@
    }
    @LoginNoRequired
    @ApiOperation("酒精检测告警")
    @PostMapping("/alcoholTestAlarm")
    public ApiResponse alcoholTestAlarm(@RequestBody AlcoholTestAlarmDTO dto) {
        jkCabinetGridService.alcoholTestAlarm(dto);
        return ApiResponse.success("操作成功");
    }
    @LoginNoRequired
    @ApiOperation("柜格开门超时未关闭告警")
    @PostMapping("/timeOutUnCloseAlarm")
    public ApiResponse timeOutUnCloseAlarm(@RequestBody TimeOutCloseGridDTO dto) {
        jkCabinetGridService.timeOutUnCloseAlarm(dto);
        return ApiResponse.success("操作成功");
    }
}
server/visits/dmvisit_admin/src/main/resources/bootstrap-pro.yml
@@ -12,7 +12,7 @@
    nacos:
      server-addr: http://localhost:8848 #配置Nacos地址
      username: nacos
      password: Atwl@2024
      password: nacos
#      config:
#        server-addr: http://192.168.0.212:8848 #配置Nacos地址
#        namespace: dmvisit
@@ -23,9 +23,9 @@
#        data-id: com.doumee.meeting.admin
      discovery:
        server-addr: http://localhost:8848 #配置Nacos地址
        namespace: dmvisit
        namespace: wuhuyancao
        username: nacos
        password: Atwl@2024
        password: nacos
knife4j:
  enable: false
server/visits/dmvisit_service/src/main/java/com/doumee/core/dingTalk/DingTalk.java
@@ -522,12 +522,12 @@
     * @param hiddenDanger
     * @return
     */
    public OapiMessageCorpconversationAsyncsendV2Request.Msg getHiddenDangerNoticeMsg(HiddenDanger hiddenDanger){
    public OapiMessageCorpconversationAsyncsendV2Request.Msg getAlarmNoticeMsg(String areaName,String submitTime,String infoType){
        OapiMessageCorpconversationAsyncsendV2Request.Msg msg = new OapiMessageCorpconversationAsyncsendV2Request.Msg();
        msg.setMsgtype("markdown");
        OapiMessageCorpconversationAsyncsendV2Request.Markdown markdown = new OapiMessageCorpconversationAsyncsendV2Request.Markdown();
        markdown.setTitle("园区存在安防/消防隐患");
        markdown.setText(hiddenDanger.getAreaName()+"在"+DateUtil.formatDate(hiddenDanger.getSubmitTime(),"YYYY-MM-dd HH:mm")+"发生"+hiddenDanger.getCategoryName()+",请及时前往安防中心/消防中心进行处理");
        markdown.setText(areaName+"在"+submitTime+"发生"+infoType+",请及时前往安防中心/消防中心进行处理");
        msg.setMarkdown(markdown);
        return msg;
    }
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/AlcoholTestAlarmDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.doumee.dao.business.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2025/10/11 16:01
 */
@Data
public class AlcoholTestAlarmDTO {
    @ApiModelProperty(value = "用户主键")
    private Integer memberId;
    @ApiModelProperty(value = "酒精度数")
    private String alcoholNum;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/dto/TimeOutCloseGridDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package com.doumee.dao.business.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2025/10/11 16:01
 */
@Data
public class TimeOutCloseGridDTO {
    @ApiModelProperty(value = "钥匙柜主键")
    private Integer cabinetId;
    @ApiModelProperty(value = "柜格主键")
    private Integer gridId;
    @ApiModelProperty(value = "用户主键")
    private Integer memberId;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/JkCabinetLog.java
@@ -81,6 +81,7 @@
    private Integer type;
    @ApiModelProperty(value = "车牌号")
    @TableField(exist = false)
    private String carCode;
    @ApiModelProperty(value = "关门记录主键(借出记录使用)", example = "1")
@@ -91,6 +92,7 @@
    @ApiModelProperty(value = "归还时间")
    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date returnDate;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetDetailVO.java
@@ -44,6 +44,10 @@
    @ApiModelProperty(value = "未绑定柜体数量")
    private Integer unBindGridNum;
    @ApiModelProperty(value = "管理员主键")
    private Integer memberId;
    @ApiModelProperty(value = "柜格信息")
    private List<CabinetGridInfoVO> cabinetGridInfoVOList;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetGridInfoVO.java
@@ -43,8 +43,13 @@
    @ApiModelProperty(value = "通道号")
    private String channelCode;
    @ApiModelProperty(value = "钥匙编号")
    private String keyCode;
    @ApiModelProperty(value = "车牌号", example = "1")
    private String carCode;
    @ApiModelProperty(value = "柜格状态:0启用;1=禁用")
    private Integer status;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/CabinetInfoVO.java
@@ -39,6 +39,15 @@
    @ExcelColumn(name="设备名称")
    private String name;
    @ApiModelProperty(value = "排序顺序:0=从左向右;1=从上向下")
    private Integer sortType;
    @ApiModelProperty(value = "排数")
    private Integer rowNum;
    @ApiModelProperty(value = "列数")
    private Integer columnNum;
    @ApiModelProperty(value = "设备ID")
    @ExcelColumn(name="设备ID")
    private String devId;
@@ -49,7 +58,16 @@
    @ApiModelProperty(value = "是否双重验证 0否 1是", example = "1")
    private Integer doubleAuth;
    @ApiModelProperty(value = "联系人电话")
    private String linkPhone;
    @ApiModelProperty(value = "轮播图地址", example = "1")
    private List<String> bannerList;
    @ApiModelProperty(value = "柜格信息")
    private List<CabinetGridInfoVO> cabinetGridInfoVOList;
    @ApiModelProperty(value = "酒精检测配置")
    private CabinetConfigDataVO cabinetConfigDataVO;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/vo/TelecomLineCountVO.java
@@ -20,7 +20,7 @@
    @ApiModelProperty(value = "主线路数", example = "1")
    private Integer categoryNum;
    @ApiModelProperty(value = "最大客户量", example = "1")
    @ApiModelProperty(value = "线路数量", example = "1")
    private Integer lineNum;
    @ApiModelProperty(value = "客户数量", example = "1")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/JkCabinetGridService.java
@@ -1,9 +1,6 @@
package com.doumee.service.business;
import com.doumee.dao.business.dto.OptGridDTO;
import com.doumee.dao.business.dto.CloseGridDTO;
import com.doumee.dao.business.dto.GetDriverGridDTO;
import com.doumee.dao.business.dto.OpenGridDriverDTO;
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.JkCabinetGrid;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
@@ -136,4 +133,21 @@
    void openGridDriver(OpenGridDriverDTO openGridDriverDTO);
    /**
     * æŸœæ ¼å¼€é—¨è¶…时未关闭告警
     * @param dto
     */
    void timeOutUnCloseAlarm(TimeOutCloseGridDTO dto);
    /**
     * å¸æœºé…’精检测超出酒精值告警
     * @param dto
     */
    void alcoholTestAlarm(AlcoholTestAlarmDTO dto);
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/HiddenDangerServiceImpl.java
@@ -255,14 +255,14 @@
                    Arrays.asList(checkUser.getOpenid().split(",")));
        }
        if(StringUtils.isNotBlank(member.getDdId())){
            dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
                    member.getDdId(),
                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
                            .eq(DdNoticeConfig::getObjType,14))>Constants.ZERO?
                    dingTalk.getHiddenDangerNoticeMsg(hiddenDanger):null);
        }
//        if(StringUtils.isNotBlank(member.getDdId())){
//            dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
//                    member.getDdId(),
//                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
//                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
//                            .eq(DdNoticeConfig::getObjType,14))>Constants.ZERO?
//                    dingTalk.getHiddenDangerNoticeMsg(hiddenDanger):null);
//        }
        return hiddenDanger.getId();
    }
@@ -812,14 +812,14 @@
                    Arrays.asList(checkUser.getOpenid().split(",")));
        }
        if(StringUtils.isNotBlank(member.getDdId())){
            dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
                    member.getDdId(),
                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
                            .eq(DdNoticeConfig::getObjType,14))>Constants.ZERO?
                            dingTalk.getHiddenDangerNoticeMsg(hiddenDanger):null);
        }
//        if(StringUtils.isNotBlank(member.getDdId())){
//            dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
//                    member.getDdId(),
//                    ddNoticeConfigMapper.selectCount(new QueryWrapper<DdNoticeConfig>().lambda()
//                            .eq(DdNoticeConfig::getIsdeleted,Constants.ZERO).eq(DdNoticeConfig::getStatus,Constants.ZERO)
//                            .eq(DdNoticeConfig::getObjType,14))>Constants.ZERO?
//                            dingTalk.getHiddenDangerNoticeMsg(hiddenDanger):null);
//        }
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
@@ -2,16 +2,18 @@
import com.alibaba.fastjson.JSONObject;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.dingTalk.DingTalk;
import com.doumee.core.dingTalk.DingTalkStream;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.haikang.model.HKConstants;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.*;
import com.doumee.dao.business.dto.OptGridDTO;
import com.doumee.dao.business.dto.CloseGridDTO;
import com.doumee.dao.business.dto.GetDriverGridDTO;
import com.doumee.dao.business.dto.OpenGridDriverDTO;
import com.doumee.dao.business.dao.MemberMapper;
import com.doumee.dao.business.dto.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.core.utils.Utils;
@@ -49,11 +51,24 @@
    private JkKeysMapper jkKeysMapper;
    @Autowired
    private SystemUserMapper systemUserMapper;
    @Autowired
    private JkCabinetMapper jkCabinetMapper;
    @Autowired
    private JkCabinetLogMapper jkCabinetLogMapper;
    @Autowired
    private WarningMapper warningMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private WarningRuleMapper warningRuleMapper;
    @Autowired
    private DingTalk dingTalk;
    @Override
    public Integer create(JkCabinetGrid jkCabinetGrid) {
@@ -293,7 +308,7 @@
                        .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
                .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                .eq(JkKeys::getStatus,Constants.ONE)
                .eq(JkKeys::getStatus,Constants.TWO)
                .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
                .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
                .isNotNull(JkCabinetGrid::getKeyId)
@@ -303,7 +318,7 @@
            for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
                jkKeysMapper.update(null,new UpdateWrapper<JkKeys>().lambda()
                        .set(JkKeys::getEditDate,DateUtil.getCurrDateTime())
                        .set(JkKeys::getStatus,Constants.TWO)
                        .set(JkKeys::getStatus,Constants.THREE)
                        .eq(JkKeys::getId,jkCabinetGrid.getKeyId())
                );
            }
@@ -400,7 +415,6 @@
            || Objects.isNull(dto.getCabinetId())
            || Objects.isNull(dto.getKeyStatus())
            || Objects.isNull(dto.getAuthType())
            || Objects.isNull(dto.getMemberId())
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
@@ -495,6 +509,7 @@
                            .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
                            .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
                            .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
                            .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
                            .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
                            .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                            .eq(JkCabinetGrid::getWorkingStatus,Constants.ZERO)
@@ -502,8 +517,14 @@
                            .in(Constants.equalsInteger(dto.getType(),Constants.ONE),JkKeys::getStatus,Constants.TWO,Constants.THREE)
                            .in(Constants.equalsInteger(dto.getType(),Constants.ZERO),JkKeys::getStatus,Constants.ONE)
                            .isNotNull(JkCabinetGrid::getKeyId)
                            .apply(" t1.car_id in ( select c.CAR_ID from car_driver c left join cars c1 on c.car_id = c1.id  where c.ISDELETED = 0 and c.TYPE != 0 and   c.MEMBER_ID = "+dto.getMemberId()+" ) ")
                            .apply(" t1.car_id in ( select c.id from  cars c  where c.ISDELETED = 0 and  c.MEMBER_ID = "+dto.getMemberId()+" ) ")
                            .orderByAsc(JkCabinetGrid::getCode)
            );
            for (JkCabinetGrid jkCabinetGrid:jkCabinetGridList) {
                jkCabinetGrid.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
                jkCabinetGrid.setKeyStatus(Objects.isNull(jkCabinetGrid.getKeyStatus())?Constants.ZERO:jkCabinetGrid.getKeyStatus());
            }
        }
        return jkCabinetGridList;
    }
@@ -523,15 +544,15 @@
        if(Objects.isNull(jkCabinetGrid)){
            return ;
        }
        LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
//        LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
        JkCabinetLog jkCabinetLog = new JkCabinetLog();
        jkCabinetLog.setCreateDate(new Date());
        jkCabinetLog.setCreator(loginUserInfo.getId());
//        jkCabinetLog.setCreator(loginUserInfo.getId());
        jkCabinetLog.setIsdeleted(Constants.ZERO);
        jkCabinetLog.setCabinetId(openGridDriverDTO.getCabinetId());
        jkCabinetLog.setGridId(jkCabinetGrid.getId());
        jkCabinetLog.setAuthType(openGridDriverDTO.getAuthType());
        jkCabinetLog.setMemberId(loginUserInfo.getMemberId());
        jkCabinetLog.setMemberId(openGridDriverDTO.getMemberId());
        jkCabinetLog.setType(Constants.ZERO);
        if(Objects.nonNull(jkCabinetGrid.getKeyId())){
            JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
@@ -548,5 +569,102 @@
    @Override
    public void timeOutUnCloseAlarm(TimeOutCloseGridDTO dto){
        if(Objects.nonNull(dto)
            && Objects.nonNull(dto.getGridId())){
            JkCabinetGrid jkCabinetGrid = jkCabinetGridMapper.selectJoinOne(JkCabinetGrid.class,
                    new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
                            .selectAs(JkCabinet::getName,JkCabinetGrid::getCabinetName)
                            .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetGrid::getCabinetId)
                            .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                            .eq(JkCabinetGrid::getId,dto.getGridId())
                            .last(" limit 1 ")
            );
//            if(Objects.nonNull(jkCabinetGrid)){
//                log.error("柜格开门超时未关闭告警信息:{}"+JSONObject.toJSONString(jkCabinetGrid));
//                Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
//                        .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,Constants.WarningConfig.GRID_TIME_OUT_INFO.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
//                if(Objects.isNull(warning)){
//                    return;
//                }
//                List<Member> memberList = this.getWarningList(warning);
//                if(CollectionUtils.isEmpty(memberList)){
//                    return;
//                }
//                //存储异常日志
//
//
//            }else{
//
//            }
        }
    }
    public List<Member> getWarningList(Warning warning){
        if(Constants.equalsInteger(warning.getStatus(),Constants.ZERO)){
            return null;
        }
        //查询通知人员
        List<WarningRule> warningRuleList = warningRuleMapper.selectList(new QueryWrapper<WarningRule>().lambda()
                .eq(WarningRule::getIsdeleted,Constants.ZERO)
                .apply(" id in ( select w.RULE_ID from warning_rule_detail w where w.WARNING_ID = '"+warning.getId()+"' and w.ISDELETED = 0  ) ")
        );
        List<Member> memberList = new ArrayList<>();
        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(warningRuleList)){
            List<String> memberIdStr =  warningRuleList.stream().map(i->i.getMemberIds()).collect(Collectors.toList());
            if(org.apache.commons.collections.CollectionUtils.isNotEmpty(memberIdStr)){
                List<String> memberIdList = new ArrayList<>();
                for (String s:memberIdStr) {
                    memberIdList.addAll(
                            Arrays.asList(s.split(","))
                    );
                }
                memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda().eq(Member::getIsdeleted,Constants.ZERO)
                        .notIn(Member::getErpId)
                        .in(Member::getId,memberIdList)
                );
            }
        }
        return memberList;
    }
    @Override
    public void alcoholTestAlarm(AlcoholTestAlarmDTO dto){
        if(Objects.nonNull(dto)
                && Objects.nonNull(dto.getMemberId())){
            SystemUser systemUser =
                    systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda()
                            .eq(SystemUser::getMemberId,dto.getMemberId())
                            .eq(SystemUser::getDeleted,Constants.ZERO)
                            .last(" limit 1 ")
                    );
//            Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
//                    .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,Constants.WarningConfig.GRID_TIME_OUT_INFO.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
//            if(Objects.isNull(warning)){
//                return;
//            }
//            List<Member> memberList = this.getWarningList(warning);
//
//
//
//            //存储异常日志
//            if(Objects.nonNull(systemUser)){
//                log.error("司机酒精检测,超出酒精值告警信息:{}"+JSONObject.toJSONString(systemUser));
//            }
        }
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
@@ -371,7 +371,7 @@
        List<JkCabinet> jkCabinetList = jkCabinetMapper.selectList(new QueryWrapper<JkCabinet>()
                .lambda()
                .eq(JkCabinet::getIsdeleted,Constants.ZERO)
                .apply(" FIND_IN_SET("+loginUserInfo.getId()+",MANAGER_ID) ")
                .apply(" FIND_IN_SET("+loginUserInfo.getMemberId()+",MANAGER_ID) ")
                .orderByAsc(JkCabinet::getCreateDate)
        );
        if(CollectionUtils.isNotEmpty(jkCabinetList)){
@@ -391,7 +391,7 @@
        JkCabinet cabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>()
                .lambda()
                .eq(JkCabinet::getIsdeleted,Constants.ZERO)
                .apply(" FIND_IN_SET("+loginUserInfo.getId()+",MANAGER_ID) ")
                .apply(" FIND_IN_SET("+loginUserInfo.getMemberId()+",MANAGER_ID) ")
                .eq(JkCabinet::getId,cabinetId)
                .last(" limit 1")
        );
@@ -405,17 +405,19 @@
        cabinetDetailVO.setServiceKeyNum(Constants.ZERO);
        cabinetDetailVO.setOutKeyNum(Constants.ZERO);
        cabinetDetailVO.setUnBindGridNum(Constants.ZERO);
        cabinetDetailVO.setMemberId(loginUserInfo.getMemberId());
        //所有柜格信息
        List<JkCabinetGrid> jkCabinetGridList =
                jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>()
                .selectAll(JkCabinetGrid.class)
                .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
                .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
                .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
                .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                .eq(JkCabinetGrid::getCabinetId,cabinet.getId())
                .orderByDesc(JkCabinetGrid::getCode)
                .orderByAsc(JkCabinetGrid::getCode)
        );
        List<CabinetGridInfoVO> cabinetGridInfoVOList = new ArrayList<>();
@@ -425,8 +427,10 @@
                CabinetGridInfoVO cabinetGridInfoVO = new CabinetGridInfoVO();
                BeanUtil.copyProperties(jkCabinetGrid,cabinetGridInfoVO);
                cabinetGridInfoVO.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId())?Constants.ZERO:Constants.ONE);
                cabinetGridInfoVO.setKeyStatus(Objects.isNull(cabinetGridInfoVO.getKeyStatus())?Constants.ZERO:cabinetGridInfoVO.getKeyStatus());
                cabinetGridInfoVOList.add(cabinetGridInfoVO);
            }
            cabinetDetailVO.setCabinetGridInfoVOList(cabinetGridInfoVOList);
            cabinetDetailVO.setErrGridNum(
                    cabinetGridInfoVOList.stream().filter(i->Constants.equalsInteger(i.getWorkingStatus(),Constants.ONE)).collect(Collectors.toList()).size()
            );
@@ -530,7 +534,40 @@
        CabinetInfoVO cabinetInfoVO = new CabinetInfoVO();
        if(Objects.nonNull(jkCabinet)){
            BeanUtil.copyProperties(jkCabinet,cabinetInfoVO);
            //所有柜格信息
            List<JkCabinetGrid> jkCabinetGridList =
                    jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class, new MPJLambdaWrapper<JkCabinetGrid>()
                            .selectAll(JkCabinetGrid.class)
                            .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
                            .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
                            .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
                            .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
                            .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                            .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId())
                            .orderByAsc(JkCabinetGrid::getCode)
                    );
            List<CabinetGridInfoVO> cabinetGridInfoVOList = new ArrayList<>();
            if(CollectionUtils.isNotEmpty(jkCabinetGridList)) {
                for (JkCabinetGrid jkCabinetGrid : jkCabinetGridList) {
                    CabinetGridInfoVO cabinetGridInfoVO = new CabinetGridInfoVO();
                    BeanUtil.copyProperties(jkCabinetGrid, cabinetGridInfoVO);
                    cabinetGridInfoVO.setBindStatus(Objects.isNull(jkCabinetGrid.getKeyId()) ? Constants.ZERO : Constants.ONE);
                    cabinetGridInfoVO.setKeyStatus(Objects.isNull(cabinetGridInfoVO.getKeyStatus())?Constants.ZERO:cabinetGridInfoVO.getKeyStatus());
                    cabinetGridInfoVOList.add(cabinetGridInfoVO);
                }
                cabinetInfoVO.setCabinetGridInfoVOList(cabinetGridInfoVOList);
            }
            CabinetConfigDataVO cabinetConfigDataVO = new CabinetConfigDataVO();
            cabinetConfigDataVO.setConcentration(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.CONCENTRATION).getCode());
            cabinetConfigDataVO.setPressure(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.PRESSURE).getCode());
            cabinetConfigDataVO.setBlowTime(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.BLOW_TIME).getCode());
            cabinetConfigDataVO.setThreshold(systemDictDataBiz.queryByCode(Constants.CABINET_CONFIG,Constants.THRESHOLD).getCode());
            cabinetInfoVO.setCabinetConfigDataVO(cabinetConfigDataVO);
        }
        cabinetInfoVO.setLinkPhone("18156091665");
        List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
                .eq(Category::getIsdeleted,Constants.ZERO)
                .eq(Category::getStatus,Constants.ZERO)
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkIccardServiceImpl.java
@@ -183,7 +183,7 @@
    public Integer getMemberIdByCode(String code){
        JkIccard jkIccard = jkIccardMapper.selectOne(new QueryWrapper<JkIccard>().lambda()
                .eq(JkIccard::getIsdeleted,Constants.ZERO)
                .eq(JkIccard::getStatus,Constants.ZERO)
                .eq(JkIccard::getStatus,Constants.ONE)
                .eq(JkIccard::getCode,code)
                .last(" limit 1 ")
        );
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkKeysServiceImpl.java
@@ -184,13 +184,13 @@
        JkKeys model = pageWrap.getModel();
        MPJLambdaWrapper<JkKeys> wrapper = new MPJLambdaWrapper<JkKeys>()
                .selectAll(JkKeys.class)
                .selectAs(JkCabinetGrid::getCode,JkKeys::getGridCode)
                .selectAs(JkCabinet::getName,JkKeys::getCabinetName)
                .select("j.code",JkKeys::getGridCode)
                .select("j1.name",JkKeys::getCabinetName)
                .leftJoin(Cars.class,Cars::getId,JkKeys::getCarId)
                .leftJoin(JkCabinetGrid.class,JkCabinetGrid::getKeyId,JkKeys::getId)
                .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetGrid::getCabinetId)
                .leftJoin(" jk_cabinet_grid j on j.key_id = t.id and j.isdeleted = 0  ")
                .leftJoin(" jk_cabinet j1 on j.CABINET_ID = j1.id ")
                .eq(JkKeys::getIsdeleted,Constants.ZERO)
                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
//                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
                .like(StringUtils.isNotBlank(model.getCode()),JkKeys::getCode,model.getCode())
                .like(StringUtils.isNotBlank(model.getCarCode()),JkKeys::getCarCode,model.getCode());
        IPage<JkKeys> iPage = jkKeysMapper.selectJoinPage(page,JkKeys.class,wrapper);
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkSketchServiceImpl.java
@@ -1388,8 +1388,9 @@
        List<JkSketchLine> jkSketchLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
        telecomLineCountVO.setCategoryNum(sketchList.size());
        telecomLineCountVO.setLineNum(sketchList.stream().map(i->i.getBeforeLineNum()).reduce(Constants.ZERO,Integer::sum));
//        telecomLineCountVO.setLineNum(sketchList.stream().map(i->i.getBeforeLineNum()).reduce(Constants.ZERO,Integer::sum));
        Integer lineNum = Constants.ZERO;
        List<TelecomCategoryDataVO> telecomCategoryDataVOList = new ArrayList<>();
        for (JkSketch jkSketch:sketchList) {
            TelecomCategoryDataVO telecomCategoryDataVO = new TelecomCategoryDataVO();
@@ -1403,13 +1404,15 @@
            //优化后数据
            List<JkSketchLine> afterList = childLineList.stream()
                    .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
            lineNum = lineNum + (Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)?beforeList.size():afterList.size());
            List<TelecomLineDataVO> telecomLineDataVOList = new ArrayList<>();
            for (JkSketchLine sketchLine:beforeList) {
                JkSketchLine finalSketchLine = sketchLine;
                List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(), finalSketchLine.getLineId())).collect(Collectors.toList());
                if(afterSelectList.size()>Constants.ZERO){
                    sketchLine = afterSelectList.get(Constants.ZERO);
                }
            for (JkSketchLine sketchLine: Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)?beforeList:afterList) {
//                JkSketchLine finalSketchLine = sketchLine;
//                List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(), finalSketchLine.getLineId())).collect(Collectors.toList());
//                if(afterSelectList.size()>Constants.ZERO){
//                    sketchLine = afterSelectList.get(Constants.ZERO);
//                }
                TelecomLineDataVO telecomLineDataVO = new TelecomLineDataVO();
                telecomLineDataVO.setId(sketchLine.getId());
                telecomLineDataVO.setName(sketchLine.getLineName());
@@ -1421,6 +1424,7 @@
            telecomCategoryDataVO.setTelecomLineDataVOList(telecomLineDataVOList);
            telecomCategoryDataVOList.add(telecomCategoryDataVO);
        }
        telecomLineCountVO.setLineNum(lineNum);
        telecomLineCountVO.setTelecomCategoryDataVOList(telecomCategoryDataVOList);
        return telecomLineCountVO;
    }
@@ -1462,26 +1466,19 @@
            telecomCategoryDataVO.setDistance(
                    beforeList.stream().map(i->i.getDistance()).reduce(Long.valueOf(0),Long::sum)
            );
            //优化后数据
            List<JkSketchLine> afterList = jkSketchLineList.stream()
                    .filter(i->Constants.equalsInteger(i.getSketchId(),jkSketch.getId())&&Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
            if(org.apache.commons.collections.CollectionUtils.isEmpty(afterList)){
            if(Constants.equalsInteger(jkSketch.getOptStatus(),Constants.ZERO)){
                telecomCategoryDataVO.setDistanceAfter(telecomCategoryDataVO.getDistance());
            }else if(beforeList.size()>afterList.size()){
            }else{
                //优化后数据
                List<JkSketchLine> afterList = jkSketchLineList.stream()
                        .filter(i->Constants.equalsInteger(i.getSketchId(),jkSketch.getId())&&Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
                Long distanceAfter = 0L;
                for (JkSketchLine jkSketchLine:beforeList) {
                    List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
                    if(afterSelectList.size()>Constants.ZERO){
                        distanceAfter = distanceAfter + afterSelectList.get(Constants.ZERO).getDistance();
                    }else{
                for (JkSketchLine jkSketchLine:afterList) {
                        distanceAfter = distanceAfter + jkSketchLine.getDistance();
                    }
                }
                telecomCategoryDataVO.setDistanceAfter(distanceAfter);
            }else{
                telecomCategoryDataVO.setDistanceAfter(
                        afterList.stream().map(i->i.getDistance()).reduce(Long.valueOf(0),Long::sum)
                );
            }
            telecomCategoryDataVOList.add(telecomCategoryDataVO);
        }
@@ -1505,26 +1502,27 @@
                .eq(JkSketchLine::getIsdeleted,Constants.ZERO)
                .eq(Objects.nonNull(telecomLineInfoDTO.getCategoryId()),JkSketchLine::getCategoryId,telecomLineInfoDTO.getCategoryId())
                .eq(Objects.nonNull(telecomLineInfoDTO.getLineId()),JkSketchLine::getLineId,telecomLineInfoDTO.getLineId())
                .apply(" ( t.TYPE = t1.OPT_STATUS ) ")
                .eq(JkSketch::getDateInfo, telecomLineInfoDTO.getDateInfo());
        List<JkSketchLine> jkSketchLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
        List<JkSketchLine> returnLineList = jkSketchLineMapper.selectJoinList(JkSketchLine.class,queryWrapper);
        //优化前数据
        List<JkSketchLine> beforeList = jkSketchLineList.stream()
                .filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList());
        //优化后数据
        List<JkSketchLine> afterList = jkSketchLineList.stream()
                .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
        List<JkSketchLine> returnLineList = new ArrayList<>();
        for (JkSketchLine jkSketchLine:beforeList) {
            List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
            if(afterSelectList.size()>Constants.ZERO){
                returnLineList.add(afterList.get(Constants.ZERO));
            }else{
                returnLineList.add(jkSketchLine);
            }
        }
//        //优化前数据
//        List<JkSketchLine> beforeList = jkSketchLineList.stream()
//                .filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList());
//
//        //优化后数据
//        List<JkSketchLine> afterList = jkSketchLineList.stream()
//                .filter(i->Constants.equalsInteger(i.getType(),Constants.ONE)&&Constants.equalsInteger(i.getIsdeleted(),Constants.ZERO)).collect(Collectors.toList());
//
//        List<JkSketchLine> returnLineList = new ArrayList<>();
//        for (JkSketchLine jkSketchLine:beforeList) {
//            List<JkSketchLine> afterSelectList = afterList.stream().filter(i->Constants.equalsInteger(i.getLineId(),jkSketchLine.getLineId())).collect(Collectors.toList());
//            if(afterSelectList.size()>Constants.ZERO){
//                returnLineList.add(afterList.get(Constants.ZERO));
//            }else{
//                returnLineList.add(jkSketchLine);
//            }
//        }
        List<TelecomLineDataVO> dataVOList = new ArrayList<>();
        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(returnLineList)){
            //获取所有地图经纬度数据
server/visits/dmvisit_service/src/main/resources/application-pro.yml
@@ -1,9 +1,9 @@
spring:
  # æ•°æ®æºé…ç½®
  datasource:
    url: jdbc:mysql://localhost:3306/antaiwuliu?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    url: jdbc:mysql://localhost:3306/wuhuyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Atwl@2024
    password: Whyc@2025
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  redis: