doum
2025-09-29 6e7b6dbd76c9c6356e5846c5bb82a132a3f731db
最新版本541200007
已修改16个文件
366 ■■■■ 文件已修改
server/system_timer/src/main/resources/application-dev.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/bootstrap.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java 242 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_timer/src/main/resources/application-dev.yml
@@ -1,9 +1,9 @@
spring:
  # 数据源配置
  datasource:
    url: jdbc:mysql://112.26.66.25:3306/wuhuyancao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
    url: jdbc:mysql://192.168.0.211:3306/wuhuyancao?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: Doumee@168&QWERT
    password: Doumee@168
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
  redis:
server/system_timer/src/main/resources/bootstrap.yml
@@ -1,6 +1,6 @@
spring:
  profiles:
    active: pro
    active: dev
  application:
    name: systemTimer
    # 安全配置
server/visits/dmvisit_admin/src/main/java/com/doumee/VisitsAdminApplication.java
@@ -19,7 +19,6 @@
@MapperScan("com.doumee.dao.*")
@EnableDiscoveryClient
public class VisitsAdminApplication {
    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(VisitsAdminApplication.class);
        context.getEnvironment();
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/HkSyncCloudController.java
@@ -15,7 +15,10 @@
import com.doumee.core.haikang.model.param.request.event.parks.EventPlatformRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.haikang.model.param.respose.PageRegionInfoResponse;
import com.doumee.core.haikang.service.HKService;
import com.doumee.dao.web.response.platformReport.CarmeraListVO;
import com.doumee.service.business.third.BoardService;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
@@ -54,6 +57,8 @@
    private HkSyncPlatformsServiceImpl hkSyncPlatformsService;
    @Autowired
    private HkSyncDeviceServiceImpl hkSyncDeviceService;
    @Autowired
    private BoardService boardService;
    @Autowired
    private HkSyncParkServiceImpl hkSyncParkService;
    @Autowired
@@ -293,6 +298,36 @@
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】获取全部监控区域树形结构")
    @PostMapping("/regionList")
    public ApiResponse<List<PageRegionInfoResponse> > getRegionList(HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token ){
        CarmeraListVO param  =new CarmeraListVO();
        param.setWithCameras(0);
        List<PageRegionInfoResponse>  result = new ArrayList<>();
        try {
//            result = boardService.getRegionTree( param);
            //------TODO---------测试模拟数据----start-----
            for (int i = 0; i < 5; i++) {
                PageRegionInfoResponse t = new PageRegionInfoResponse();
                t.setName("总区域_"+i);
                t.setIndexCode(i+"_code");
                t.setChildList(new ArrayList<>());
                for (int j = 0; j < 5; j++) {
                    PageRegionInfoResponse t1 = new PageRegionInfoResponse();
                    t1.setName("子区域_"+i+"_"+j);
                    t1.setIndexCode(i+"_"+j+"_ChildCode");
                    t1.setParentIndexCode(t.getIndexCode());
                    t.getChildList().add(t1);
                }
                result.add(t);
            }
            //------TODO---------测试模拟数据----end-----
        }catch (Exception e){
        }
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】设置LED屏文案")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningCloudController.java
@@ -85,6 +85,12 @@
    public ApiResponse<PageData<Warning>> findPage (@RequestBody PageWrap<Warning> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(warningService.findPage(pageWrap));
    }
    @ApiOperation("查询全部")
    @PostMapping("/allList")
    @CloudRequiredPermission("business:warning:query")
    public ApiResponse<List<Warning>> findPage (@RequestBody Warning pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(warningService.findList(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/WarningRuleCloudController.java
@@ -35,35 +35,37 @@
    @ApiOperation("新建")
    @PostMapping("/create")
    @CloudRequiredPermission("business:warningrule:create")
    public ApiResponse create(@RequestBody WarningRule warningRule) {
    public ApiResponse create(@RequestBody WarningRule warningRule, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        warningRule.setLoginUserInfo(this.getLoginUser(token));
        return ApiResponse.success(warningRuleService.create(warningRule));
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
    @CloudRequiredPermission("business:warningrule:delete")
    public ApiResponse deleteById(@PathVariable Integer id) {
        warningRuleService.deleteById(id);
    public ApiResponse deleteById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        warningRuleService.deleteById(id,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
    @ApiOperation("批量删除")
    @GetMapping("/delete/batch")
    @CloudRequiredPermission("business:warningrule:delete")
    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
    public ApiResponse deleteByIdInBatch(@RequestParam String ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        String [] idArray = ids.split(",");
        List<Integer> idList = new ArrayList<>();
        for (String id : idArray) {
            idList.add(Integer.valueOf(id));
        }
        warningRuleService.deleteByIdInBatch(idList);
        warningRuleService.deleteByIdInBatch(idList,this.getLoginUser(token));
        return ApiResponse.success(null);
    }
    @ApiOperation("根据ID修改")
    @PostMapping("/updateById")
    @CloudRequiredPermission("business:warningrule:update")
    public ApiResponse updateById(@RequestBody WarningRule warningRule) {
    public ApiResponse updateById(@RequestBody WarningRule warningRule, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
      warningRule.setLoginUserInfo(this.getLoginUser(token));
        warningRuleService.updateById(warningRule);
        return ApiResponse.success(null);
    }
@@ -71,21 +73,21 @@
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @CloudRequiredPermission("business:warningrule:query")
    public ApiResponse<PageData<WarningRule>> findPage (@RequestBody PageWrap<WarningRule> pageWrap) {
    public ApiResponse<PageData<WarningRule>> findPage (@RequestBody PageWrap<WarningRule> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(warningRuleService.findPage(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @CloudRequiredPermission("business:warningrule:exportExcel")
    public void exportExcel (@RequestBody PageWrap<WarningRule> pageWrap, HttpServletResponse response) {
    public void exportExcel (@RequestBody PageWrap<WarningRule> pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        ExcelExporter.build(WarningRule.class).export(warningRuleService.findPage(pageWrap).getRecords(), "报警规则配置表", response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @CloudRequiredPermission("business:warningrule:query")
    public ApiResponse findById(@PathVariable Integer id) {
    public ApiResponse findById(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(warningRuleService.findById(id));
    }
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleDetailMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.WarningRuleDetail;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author 江蹄蹄
 * @date 2025/09/28 09:01
 */
public interface WarningRuleDetailMapper extends BaseMapper<WarningRuleDetail> {
public interface WarningRuleDetailMapper extends MPJBaseMapper<WarningRuleDetail> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/WarningRuleMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.WarningRule;
import com.github.yulichang.base.MPJBaseMapper;
/**
 * @author 江蹄蹄
 * @date 2025/09/28 09:01
 */
public interface WarningRuleMapper extends BaseMapper<WarningRule> {
public interface WarningRuleMapper extends MPJBaseMapper<WarningRule> {
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningPush.java
@@ -67,7 +67,7 @@
    private String content;
    @ApiModelProperty(value = "状态 0未推送 1推送成功2推送失败", example = "1")
    @ExcelColumn(name="通知状态",valueMapping = "0=未通知;1=通知成功;2=通知失败;",index = 7)
    @ExcelColumn(name="通知状态",valueMapping = "0=未通知;1=通知成功;2=通知失败;",index = 8)
    private Integer status;
    @ApiModelProperty(value = "推送结果", example = "1")
@@ -109,6 +109,10 @@
    @ExcelColumn(name="通知人员",index = 6)
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "人员部门", example = "1")
    @ExcelColumn(name="人员部门",index = 7)
    @TableField(exist = false)
    private String companyName;
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRule.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.service.business.third.model.LoginUserModel;
import io.swagger.annotations.ApiModel;
@@ -10,6 +11,7 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
/**
 * 报警规则配置表
@@ -31,7 +33,6 @@
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码", example = "1")
@@ -40,7 +41,6 @@
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是", example = "1")
@@ -50,10 +50,13 @@
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String info;
    @ApiModelProperty(value = "规则标题")
    @ExcelColumn(name="规则标题")
    private String title;
    @ApiModelProperty(value = "内部人员编码(关联member)", example = "1")
    @ExcelColumn(name="内部人员编码(关联member)")
    private Integer memberId;
    @ApiModelProperty(value = "内部人员编码集合(关联member),多个英文逗号隔开", example = "1")
    @ExcelColumn(name="内部人员编码集合(关联member)")
    private String memberIds;
    @ApiModelProperty(value = "多规则间隔时间(秒)", example = "1")
    @ExcelColumn(name="多规则间隔时间(秒)")
@@ -71,4 +74,13 @@
    @ExcelColumn(name="报警类型编码(关联warning)")
    private Integer warningId;
    @ApiModelProperty(value = "通知人员-部门集合,多个英文分号隔开", example = "1")
    private String memberNames;
    @ApiModelProperty(value = "人员部门", example = "1")
    @TableField(exist = false)
    private String companyName;
    @ApiModelProperty(value = "人员部门", example = "1")
    @TableField(exist = false)
    private List<WarningRuleDetail> detailList;
}
server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/WarningRuleDetail.java
@@ -59,9 +59,9 @@
    @ExcelColumn(name="报警类型编码(关联warning)")
    private Integer warningId;
    @ApiModelProperty(value = "多规则间隔时间(秒)", example = "1")
    @ExcelColumn(name="多规则间隔时间(秒)")
    private Integer regionCode;
    @ApiModelProperty(value = "区域编码", example = "1")
    @ExcelColumn(name="区域编码")
    private String regionCode;
    @ApiModelProperty(value = "排序码")
    @ExcelColumn(name="排序码")
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/WarningRuleService.java
@@ -1,5 +1,6 @@
package com.doumee.service.business;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.dao.business.model.WarningRule;
@@ -25,7 +26,7 @@
     *
     * @param id 主键
     */
    void deleteById(Integer id);
    void deleteById(Integer id,LoginUserInfo user);
    /**
     * 删除
@@ -39,7 +40,7 @@
     *
     * @param ids 主键集
     */
    void deleteByIdInBatch(List<Integer> ids);
    void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user);
    /**
     * 主键更新
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningPushServiceImpl.java
@@ -1,14 +1,11 @@
package com.doumee.service.business.impl;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.business.model.Warning;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.WarningPushMapper;
import com.doumee.dao.business.model.WarningPush;
import com.doumee.dao.business.model.Member;
import com.doumee.service.business.WarningPushService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -99,14 +96,17 @@
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        queryWrapper.selectAll(WarningPush.class )
                .selectAs(Member::getName,WarningPush::getMemberName)
                .selectAs(Company::getName,WarningPush::getCompanyName)
                .selectAs(Warning::getName,WarningPush::getWarningName)
                .selectAs(Warning::getType,WarningPush::getWarningType)
                .selectAs(Warning::getLevel,WarningPush::getWarningLevel)
                .leftJoin(Member.class,Member::getId,WarningPush::getMemberId)
                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                .leftJoin(Warning.class,Warning::getId,WarningPush::getWarningId);
        queryWrapper.eq(pageWrap.getModel().getWarningType()!=null,Warning::getType, pageWrap.getModel().getWarningType());
        queryWrapper.eq(pageWrap.getModel().getWarningLevel()!=null,Warning::getLevel, pageWrap.getModel().getWarningLevel());
        queryWrapper.eq(pageWrap.getModel().getWarningLevel()!=null,Warning::getLevel, pageWrap.getModel().getWarningLevel());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName, pageWrap.getModel().getMemberName());
        queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStarttime()), WarningPush::getCreateDate,Utils.Date.getStart(pageWrap.getModel().getQueryStarttime()));
        queryWrapper.le(Objects.nonNull(pageWrap.getModel().getQueryEndtime()),WarningPush::getCreateDate,Utils.Date.getEnd(pageWrap.getModel().getQueryEndtime()));
        if (pageWrap.getModel().getId() != null) {
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningRuleServiceImpl.java
@@ -1,20 +1,34 @@
package com.doumee.service.business.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.WarningMapper;
import com.doumee.dao.business.WarningRuleDetailMapper;
import com.doumee.dao.business.dao.MemberMapper;
import com.doumee.dao.business.model.*;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.WarningRuleMapper;
import com.doumee.dao.business.model.WarningRule;
import com.doumee.service.business.WarningRuleService;
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.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * 报警规则配置表Service实现
@@ -26,16 +40,105 @@
    @Autowired
    private WarningRuleMapper warningRuleMapper;
    @Autowired
    private WarningMapper warningMapper;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private WarningRuleDetailMapper warningRuleDetailMapper;
    @Override
    public Integer create(WarningRule warningRule) {
        warningRuleMapper.insert(warningRule);
        return warningRule.getId();
    @Transactional
    public Integer create(WarningRule warning) {
        if(warning.getDetailList() == null
                ||warning.getMemberIds() == null
                ||warning.getDetailList().size() ==0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        warning.setStatus(Constants.formatIntegerNum(warning.getStatus()));
        warning.setIsdeleted(Constants.ZERO);
        warning.setCreator(warning.getLoginUserInfo().getId());
        warning.setCreateDate(new Date());
        warning.setEditDate(warning.getCreateDate());
        warning.setEditor(warning.getCreator());
        String title = "";
        for(WarningRuleDetail detail : warning.getDetailList()){
            if(detail.getWarningId() == null){
                throw new BusinessException(ResponseStatus.BAD_REQUEST);
            }
            Warning  wModel = warningMapper.selectById(detail.getWarningId());
            if(wModel == null || Constants.equalsInteger(wModel.getIsdeleted(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请选择正确的报警类型");
            }
            if(StringUtils.isNotBlank(detail.getRegionName())){
                title+= detail.getRegionName()+"发生";
            }
            title += wModel.getName()+"; ";
            detail.setRuleId(warning.getId());
            detail.setIsdeleted(Constants.ZERO);
            detail.setCreator(warning.getLoginUserInfo().getId());
            detail.setCreateDate(new Date());
            detail.setEditDate(warning.getCreateDate());
            detail.setEditor(warning.getCreator());
        }
        warning.setMemberNames( initMemberInfo(warning));
        warning.setTitle(title);
        warningRuleMapper.insert(warning);
        for(WarningRuleDetail detail : warning.getDetailList()){
            detail.setRuleId(warning.getId());
        }
        warningRuleDetailMapper.insert(warning.getDetailList());
        return warning.getId();
    }
    private String initMemberInfo(WarningRule warning) {
        String[] members = warning.getMemberIds().split(",");
        List<Integer> mIds = new ArrayList<>();
        for(String str :members){
            try {
                mIds.add(Integer.parseInt(str));
            }catch (Exception e){
            }
        }
        if(mIds.size() ==0){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请选择正确的人员信息");
        }
        List<Member> memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
                .selectAll(Member.class )
                .selectAs(Company::getName,Member::getCompanyName )
                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                .eq(Member::getIsdeleted,Constants.ZERO )
                .in(Member::getId,mIds ));
        if(memberList == null || memberList.size() ==0){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请选择正确的人员信息!");
        }
        String memberIds = "";
        String memberNames = "";
        for(Member m : memberList){
            memberIds += (StringUtils.isNotBlank(memberIds)?",":"")+m.getId();
            memberNames += StringUtils.defaultString(m.getName(),"")+"-"+StringUtils.defaultString(m.getCompanyName(),"" )+"; ";
        }
        warning.setMemberIds(memberIds);
        warning.setMemberNames(memberNames);
        return memberNames;
    }
    @Override
    public void deleteById(Integer id) {
    public void deleteById(Integer id, LoginUserInfo user) {
        warningRuleMapper.deleteById(id);
        warningRuleMapper.update(null,new UpdateWrapper<WarningRule>().lambda()
                .set(WarningRule::getEditor,user.getId())
                .set(WarningRule::getEditDate,new Date())
                .set(WarningRule::getIsdeleted,Constants.ONE)
                .eq(WarningRule::getId,id)
        );
        warningRuleDetailMapper.update(null,new UpdateWrapper<WarningRuleDetail>().lambda()
                .set(WarningRuleDetail::getEditor,user.getId())
                .set(WarningRuleDetail::getEditDate,new Date())
                .set(WarningRuleDetail::getIsdeleted,Constants.ONE)
                .eq(WarningRuleDetail::getRuleId,id)
        );
    }
    @Override
@@ -45,16 +148,64 @@
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
    @Transactional
    public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        warningRuleMapper.deleteBatchIds(ids);
        warningRuleMapper.update(null,new UpdateWrapper<WarningRule>().lambda()
                .set(WarningRule::getEditor,user.getId())
                .set(WarningRule::getEditDate,new Date())
                .set(WarningRule::getIsdeleted,Constants.ONE)
                .in(WarningRule::getId,ids)
        );
        warningRuleDetailMapper.update(null,new UpdateWrapper<WarningRuleDetail>().lambda()
                .set(WarningRuleDetail::getEditor,user.getId())
                .set(WarningRuleDetail::getEditDate,new Date())
                .set(WarningRuleDetail::getIsdeleted,Constants.ONE)
                .in(WarningRuleDetail::getRuleId,ids)
        );
    }
    @Override
    public void updateById(WarningRule warningRule) {
        warningRuleMapper.updateById(warningRule);
    public void updateById(WarningRule warning) {
        if(warning.getDetailList() == null
                ||warning.getId() == null
                ||warning.getMemberIds() == null
                || warning.getDetailList().size() ==0){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        warning.setEditDate(warning.getCreateDate());
        warning.setEditor(warning.getCreator());
        String title = "";
        for(WarningRuleDetail detail : warning.getDetailList()){
            if(detail.getWarningId() == null){
                throw new BusinessException(ResponseStatus.BAD_REQUEST);
            }
            Warning  wModel = warningMapper.selectById(detail.getWarningId());
            if(wModel == null || Constants.equalsInteger(wModel.getIsdeleted(),Constants.ONE)){
                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请选择正确的报警类型");
            }
            if(StringUtils.isNotBlank(detail.getRegionName())){
                title+= detail.getRegionName()+"发生";
            }
            title += wModel.getName()+"; ";
            detail.setRuleId(warning.getId());
            detail.setIsdeleted(Constants.ZERO);
            detail.setCreator(warning.getLoginUserInfo().getId());
            detail.setCreateDate(new Date());
            detail.setEditDate(warning.getCreateDate());
            detail.setEditor(warning.getCreator());
        }
        warning.setMemberNames( initMemberInfo(warning));
        warning.setTitle(title);
        warningRuleMapper.updateById(warning);
        for(WarningRuleDetail detail : warning.getDetailList()){
            detail.setRuleId(warning.getId());
        }
        warningRuleDetailMapper.delete(new UpdateWrapper<WarningRuleDetail>()
                        .lambda().eq(WarningRuleDetail::getRuleId,warning.getId()));
        warningRuleDetailMapper.insert(warning.getDetailList());
    }
    @Override
@@ -69,7 +220,14 @@
    @Override
    public WarningRule findById(Integer id) {
        return warningRuleMapper.selectById(id);
        WarningRule model =warningRuleMapper.selectById(id);
        if(model == null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        model.setDetailList(warningRuleDetailMapper.selectList(new LambdaQueryWrapper<WarningRuleDetail>()
                .eq(WarningRuleDetail::getIsdeleted,Constants.ZERO)
                .eq(WarningRuleDetail::getRuleId,model.getId())));
        return model;
    }
    @Override
@@ -87,54 +245,74 @@
    @Override
    public PageData<WarningRule> findPage(PageWrap<WarningRule> pageWrap) {
        IPage<WarningRule> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<WarningRule> queryWrapper = new QueryWrapper<>();
        MPJLambdaWrapper<WarningRule> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        pageWrap.getModel().setIsdeleted(Constants.ZERO);
        queryWrapper.selectAll(WarningRule.class );
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberNames()),WarningRule::getMemberNames, pageWrap.getModel().getMemberNames());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getTitle()),WarningRule::getTitle, pageWrap.getModel().getTitle());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(WarningRule::getId, pageWrap.getModel().getId());
            queryWrapper.eq(WarningRule::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(WarningRule::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.eq(WarningRule::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(WarningRule::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(WarningRule::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
            queryWrapper.ge(WarningRule::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(WarningRule::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(WarningRule::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.eq(WarningRule::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(WarningRule::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(WarningRule::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
            queryWrapper.ge(WarningRule::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(WarningRule::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(WarningRule::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(WarningRule::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getInfo() != null) {
            queryWrapper.lambda().eq(WarningRule::getInfo, pageWrap.getModel().getInfo());
            queryWrapper.eq(WarningRule::getInfo, pageWrap.getModel().getInfo());
        }
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.lambda().eq(WarningRule::getMemberId, pageWrap.getModel().getMemberId());
        if (pageWrap.getModel().getMemberIds() != null) {
            queryWrapper.eq(WarningRule::getMemberIds, pageWrap.getModel().getMemberIds());
        }
        if (pageWrap.getModel().getIntervalSec() != null) {
            queryWrapper.lambda().eq(WarningRule::getIntervalSec, pageWrap.getModel().getIntervalSec());
            queryWrapper.eq(WarningRule::getIntervalSec, pageWrap.getModel().getIntervalSec());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(WarningRule::getSortnum, pageWrap.getModel().getSortnum());
            queryWrapper.eq(WarningRule::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(WarningRule::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(WarningRule::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getWarningId() != null) {
            queryWrapper.lambda().eq(WarningRule::getWarningId, pageWrap.getModel().getWarningId());
            queryWrapper.eq(WarningRule::getWarningId, pageWrap.getModel().getWarningId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
        queryWrapper.orderByDesc(WarningRule::getCreateDate);
        IPage<WarningRule> result = warningRuleMapper.selectJoinPage(page, WarningRule.class,queryWrapper);
        if(result.getRecords()!=null && result.getRecords().size()>0){
            List<WarningRuleDetail> allList = warningRuleDetailMapper.selectList(new LambdaQueryWrapper<WarningRuleDetail>()
                    .eq(WarningRuleDetail::getIsdeleted,Constants.ZERO));
            for(WarningRule model :result.getRecords()){
                model.setDetailList(getDetailListFromAll(allList,model.getId()));
            }
        }
        return PageData.from(warningRuleMapper.selectPage(page, queryWrapper));
        return PageData.from(result);
    }
    private List<WarningRuleDetail> getDetailListFromAll(List<WarningRuleDetail> allList, Integer id) {
        List<WarningRuleDetail> list = new ArrayList<>();
        if(allList!=null && allList.size()>0){
            for(WarningRuleDetail d :allList){
                if(Constants.equalsInteger(d.getRuleId(),id)){
                    list.add(d);
                }
            }
        }
        return list;
    }
    @Override
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/WarningServiceImpl.java
@@ -118,6 +118,7 @@
    @Override
    public List<Warning> findList(Warning warning) {
        warning.setIsdeleted(Constants.ZERO);
        QueryWrapper<Warning> wrapper = new QueryWrapper<>(warning);
        return warningMapper.selectList(wrapper);
    }
server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -258,4 +258,6 @@
    @Override
    public void getAscDeviceStatus() {
    }
}