rk
23 小时以前 9fdd262881ef10d79e75d8e91d36fef88f774073
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetGridServiceImpl.java
@@ -1,6 +1,7 @@
package com.doumee.service.business.impl;
import com.alibaba.fastjson.JSONObject;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.dingTalk.DingTalk;
import com.doumee.core.dingTalk.DingTalkStream;
@@ -58,14 +59,20 @@
    @Autowired
    private JkCabinetLogMapper jkCabinetLogMapper;
    @Autowired
    private WarningMapper warningMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private WarningMapper warningMapper;
    @Autowired
    private WarningRuleMapper warningRuleMapper;
    @Autowired
    private WarningPushMapper warningPushMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private DingTalk dingTalk;
@@ -179,7 +186,7 @@
        MPJLambdaWrapper<JkCabinetGrid> wrapper = new MPJLambdaWrapper<JkCabinetGrid>()
                .selectAll(JkCabinetGrid.class)
                .selectAs(JkCabinet::getName,JkCabinetGrid::getCabinetName)
                .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
                .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
                .leftJoin(JkCabinet.class,JkCabinet::getId,JkCabinetGrid::getCabinetId)
                .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
                .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
@@ -310,7 +317,7 @@
        }
        List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
                new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
                        .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
                        .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
                        .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
                        .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
                .leftJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
@@ -392,6 +399,8 @@
                    jkCabinetLog.setAuthType(Constants.TWO);
                    jkCabinetLog.setMemberId(loginUserInfo.getMemberId());
                    jkCabinetLog.setStatus(Constants.ZERO);
                    jkCabinetLog.setIsNotice(Constants.ZERO);
                    jkCabinetLog.setInfo(Objects.isNull(dto.getOpenType())||Constants.equalsInteger(dto.getOpenType(),Constants.ZERO)?"系统开启":"手动开启");
                    if(Objects.nonNull(jkCabinetGrid.getKeyId())){
                        jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
                        JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
@@ -406,6 +415,7 @@
                    jkCabinetLog.setType(Constants.ZERO);
                    jkCabinetLogs.add(jkCabinetLog);
                }
                jkCabinetLogMapper.insert(jkCabinetLogs);
            }
        }
@@ -464,18 +474,50 @@
                    }
                }
            }
            jkCabinetLog.setIsNotice(Constants.ZERO);
            jkCabinetLog.setType(Constants.ONE);
            jkCabinetLogMapper.insert(jkCabinetLog);
            //查询钥匙的开门记录 进行添加关门记录主键
            jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
                    .set(JkCabinetLog::getCloseLogId,jkCabinetLog.getId())
                    .eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
                    .eq(JkCabinetLog::getType,Constants.ZERO)
                    .isNull(JkCabinetLog::getCloseLogId));
            if(Constants.equalsInteger(dto.getKeyStatus(),Constants.ONE)){
                jkCabinetLogMapper.update(null,new UpdateWrapper<JkCabinetLog>().lambda()
                        .set(JkCabinetLog::getCloseLogId,jkCabinetLog.getId())
                        .eq(JkCabinetLog::getKeyId,jkCabinetLog.getKeyId())
                        .eq(JkCabinetLog::getType,Constants.ONE)
                        .eq(JkCabinetLog::getKeyStatus,Constants.TWO)
                        .isNull(JkCabinetLog::getCloseLogId));
            }
        }
    }
//    public void saveAbnormalOpenGridLog(AbnormalOpenGridDTO dto){
//        if(Objects.isNull(dto)
//                || StringUtils.isBlank(dto.getBoardCode())
//                || StringUtils.isBlank(dto.getBoardCode())
//                || Objects.isNull(dto.getCabinetId())
//                || Objects.isNull(dto.getKeyStatus())
//                || Objects.isNull(dto.getAuthType())
//        ){
//            throw new BusinessException(ResponseStatus.BAD_REQUEST);
//        }
//        JkCabinetGrid jkCabinetGrid = jkCabinetGridMapper.selectOne(new QueryWrapper<JkCabinetGrid>().lambda().eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
//                .eq(JkCabinetGrid::getCabinetId,dto.getCabinetId())
//                .eq(JkCabinetGrid::getId,dto.getGridId())
//                .last(" limit 1 ")
//        );
//        JkCabinetLog jkCabinetLog = new JkCabinetLog();
//        jkCabinetLog.setCreateDate(new Date());
//        jkCabinetLog.setIsdeleted(Constants.ZERO);
//        jkCabinetLog.setCabinetId(dto.getCabinetId());
//        jkCabinetLog.setGridId(jkCabinetGrid.getId());
//        jkCabinetLog.setAuthType(dto.getAuthType());
//        jkCabinetLog.setMemberId(dto.getMemberId());
//        jkCabinetLog.setKeyStatus(Constants.ZERO);
//        jkCabinetLog.setStatus(Constants.ZERO);
//
//    }
    /**
@@ -512,7 +554,7 @@
            }
            jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,
                    new MPJLambdaWrapper<JkCabinetGrid>().selectAll(JkCabinetGrid.class)
                            .selectAs(JkKeys::getCode,JkCabinetGrid::getKeyCode)
                            .selectAs(JkKeys::getRfidLable,JkCabinetGrid::getKeyCode)
                            .selectAs(JkKeys::getCarCode,JkCabinetGrid::getCarCode)
                            .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
                            .selectAs(JkKeys::getStatus,JkCabinetGrid::getKeyStatus)
@@ -551,10 +593,8 @@
        if(Objects.isNull(jkCabinetGrid)){
            return ;
        }
//        LoginUserInfo loginUserInfo = openGridDriverDTO.getLoginUserInfo();
        JkCabinetLog jkCabinetLog = new JkCabinetLog();
        jkCabinetLog.setCreateDate(new Date());
//        jkCabinetLog.setCreator(loginUserInfo.getId());
        jkCabinetLog.setIsdeleted(Constants.ZERO);
        jkCabinetLog.setCabinetId(openGridDriverDTO.getCabinetId());
        jkCabinetLog.setGridId(jkCabinetGrid.getId());
@@ -562,6 +602,7 @@
        jkCabinetLog.setMemberId(openGridDriverDTO.getMemberId());
        jkCabinetLog.setType(Constants.ZERO);
        jkCabinetLog.setStatus(Constants.ZERO);
        jkCabinetLog.setInfo(Objects.isNull(openGridDriverDTO.getOpenType())||Constants.equalsInteger(openGridDriverDTO.getOpenType(),Constants.ZERO)?"系统开启":"手动开启");
        if(Objects.nonNull(jkCabinetGrid.getKeyId())){
            jkCabinetLog.setKeyId(jkCabinetGrid.getKeyId());
            JkKeys jkKeys = jkKeysMapper.selectById(jkCabinetGrid.getKeyId());
@@ -573,6 +614,7 @@
                jkCabinetLog.setRoleType(jkKeys.getRoleType());
            }
        }
        jkCabinetLog.setIsNotice(Constants.ZERO);
        jkCabinetLogMapper.insert(jkCabinetLog);
    }
@@ -593,8 +635,9 @@
            if(Objects.nonNull(jkCabinetGrid)){
                log.error("柜格开门超时未关闭告警信息:{}"+JSONObject.toJSONString(jkCabinetGrid));
                Constants.WarningConfig warningConfig = Constants.WarningConfig.GRID_TIME_OUT_INFO;
                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"));
                        .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,warningConfig.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
                if(Objects.isNull(warning)){
                    return;
                }
@@ -602,10 +645,33 @@
                if(CollectionUtils.isEmpty(memberList)){
                    return;
                }
                //todo 存储异常日志
                JkCabinet jkCabinet = jkCabinetMapper.selectById(dto.getCabinetId());
                // 存储异常日志
                WarningPush warningPush = new WarningPush();
                warningPush.setCreateDate(new Date());
                warningPush.setIsdeleted(Constants.ZERO);
                warningPush.setWarningId(warning.getId());
                warningPush.setTitle(warningConfig.getInfo());
                String content = "【钥匙柜-"+jkCabinetGrid.getCabinetName()+"】下【柜格-"+jkCabinetGrid.getCode()+"】超时未关闭";
                warningPush.setContent(content);
                warningPush.setStatus(Constants.ZERO);
                warningPush.setPushType(Constants.ZERO);
                warningPush.setRegion(Objects.nonNull(jkCabinet)&&StringUtils.isNotBlank(jkCabinet.getLocation())?jkCabinet.getLocation():"未知位置");
                warningPush.setMemberIds(
                        StringUtils.join(memberList.stream().map(i->i.getId()).collect(Collectors.toList()),",")
                );
                warningPush.setMemberIds(
                        StringUtils.join(memberList.stream().map(i->i.getId()).collect(Collectors.toList()),",")
                );
                warningPush.setMemberNames(StringUtils.join(memberList.stream().map(i->i.getName()).collect(Collectors.toList()),",")
                );
                //todo 暂时关闭 钉钉通知
            }else{
//            Boolean noticeFlag = dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
//                    StringUtils.join(memberList.stream().filter(i->StringUtils.isNotBlank(i.getDdId())).map(i->i.getDdId()).collect(Collectors.toList()),","),
//                dingTalk.getAlarmNoticeMsg(warningPush.getRegion(),DateUtil.getCurrDateTime(),content));
//            warningPush.setStatus(noticeFlag?Constants.ONE:Constants.TWO);
                warningPushMapper.insert(warningPush);
            }
        }
@@ -638,9 +704,6 @@
            }
        }
        return memberList;
    }
@@ -656,8 +719,10 @@
                            .last(" limit 1 ")
                    );
            JkCabinet jkCabinet = jkCabinetMapper.selectById(dto.getCabinetId());
            Constants.WarningConfig warningConfig = Constants.WarningConfig.ALARM_TEST;
            Warning warning = warningMapper.selectOne(new QueryWrapper<Warning>().lambda()
                    .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,Constants.WarningConfig.KEY_TIME_OUT_BACK.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
                    .eq(Warning::getType,Constants.THREE).eq(Warning::getCode,warningConfig.getKey()).eq(Warning::getIsdeleted,Constants.ZERO).last("limt 1"));
            if(Objects.isNull(warning)){
                return;
            }
@@ -665,8 +730,44 @@
            if(CollectionUtils.isEmpty(memberList)){
                return;
            }
            //todo 存储异常日志
            // 存储异常日志
            WarningPush warningPush = new WarningPush();
            warningPush.setCreateDate(new Date());
            warningPush.setIsdeleted(Constants.ZERO);
            warningPush.setWarningId(warning.getId());
            warningPush.setTitle(warningConfig.getInfo());
            String content = "";
            if(Objects.nonNull(systemUser.getRealname())){
                content = content + systemUser.getRealname();
            }
            if(Objects.nonNull(jkCabinet)){
                content = content + "于"+jkCabinet.getName()+"钥匙柜";
            }
            content = content + "酒精检测异常";
            warningPush.setContent(content + "酒精检测异常,酒精度数【"+dto.getAlcoholNum()+"°】");
            if(Objects.nonNull(dto.getAlcoholNum())){
                content = content + ",酒精度数【"+dto.getAlcoholNum()+"°】";
            }
            warningPush.setContent(content);
            warningPush.setStatus(Constants.ZERO);
            warningPush.setPushType(Constants.ZERO);
            warningPush.setRegion(Objects.nonNull(jkCabinet)&&StringUtils.isNotBlank(jkCabinet.getLocation())?jkCabinet.getLocation():"未知位置");
            warningPush.setMemberId(dto.getMemberId());
            warningPush.setMemberIds(
                    StringUtils.join(memberList.stream().map(i->i.getId()).collect(Collectors.toList()),",")
            );
            warningPush.setMemberIds(
                    StringUtils.join(memberList.stream().map(i->i.getId()).collect(Collectors.toList()),",")
            );
            warningPush.setMemberNames(StringUtils.join(memberList.stream().map(i->i.getName()).collect(Collectors.toList()),",")
            );
            //todo 暂时关闭 钉钉通知
//            Boolean noticeFlag = dingTalk.workInfoOANotice(Long.valueOf(systemDictDataBiz.queryByCode(Constants.DD_TALK,Constants.AGENT_ID).getCode()),
//                    StringUtils.join(memberList.stream().filter(i->StringUtils.isNotBlank(i.getDdId())).map(i->i.getDdId()).collect(Collectors.toList()),","),
//                dingTalk.getAlarmNoticeMsg(warningPush.getRegion(),DateUtil.getCurrDateTime(),warningConfig.getInfo()));
//            warningPush.setStatus(noticeFlag?Constants.ONE:Constants.TWO);
            warningPushMapper.insert(warningPush);
            //存储异常日志
            if(Objects.nonNull(systemUser)){
                log.error("司机酒精检测,超出酒精值告警信息:{}"+JSONObject.toJSONString(systemUser));
@@ -675,4 +776,7 @@
    }
}