Browse Source

Merge remote-tracking branch 'origin/dev' into dev

pull/7/head
吴远 2 weeks ago
parent
commit
2eee5a62cf
  1. 11
      dk-api/api-system/src/main/java/org/dromara/system/api/RemoteSubmailConfigService.java
  2. 2
      dk-common/common-mybatis/src/main/resources/common-mybatis.yml
  3. 2
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  4. 36
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java
  5. 21
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java
  6. 59
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java
  7. 20
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java
  8. 57
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessLayerBo.java
  9. 21
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java
  10. 56
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java
  11. 8
      dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java
  12. 16
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessLayerMapper.java
  13. 22
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessLayerService.java
  14. 63
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  15. 47
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java
  16. 11
      dk-modules/business/src/main/resources/mapper/business/BusinessLayerMapper.xml
  17. 7
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java
  18. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java
  19. 20
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java
  20. 2
      dk-modules/system/src/main/java/org/dromara/system/DKSystemApplication.java
  21. 10
      dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java
  22. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/SysUser.java
  23. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java
  24. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
  25. 39
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteSubmailConfigServiceImpl.java
  26. 4
      dk-modules/system/src/main/java/org/dromara/system/service/ISysSubmailConfigService.java
  27. 1
      dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java
  28. 74
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysSubmailConfigServiceImpl.java
  29. 8
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  30. 11
      dk-modules/system/src/main/java/org/dromara/system/utils/OvkmzParser.java
  31. 2
      dk-modules/system/src/main/resources/mapper/system/SysUserMapper.xml
  32. 4
      dk-visual/nacos/src/main/resources/application.properties

11
dk-api/api-system/src/main/java/org/dromara/system/api/RemoteSubmailConfigService.java

@ -3,6 +3,10 @@ package org.dromara.system.api;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.system.api.domain.vo.RemoteClientVo; import org.dromara.system.api.domain.vo.RemoteClientVo;
import java.util.List;
import java.util.Map;
import java.util.Set;
/** /**
* 客户端服务 * 客户端服务
* *
@ -17,4 +21,11 @@ public interface RemoteSubmailConfigService {
*/ */
R<String> remoteCmdSend(String code, String multiParam ); R<String> remoteCmdSend(String code, String multiParam );
/**
* @param code 编码
* @param alertList 预警信息
* @return 客户端对象
*/
void remoteSend(String code,List<Map<String, Object>> alertList);
} }

2
dk-common/common-mybatis/src/main/resources/common-mybatis.yml

@ -23,7 +23,7 @@ mybatis-plus:
dbConfig: dbConfig:
# 主键类型 # 主键类型
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID # AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
idType: ASSIGN_ID idType: AUTO
# 逻辑已删除值(框架表均使用此值 禁止随意修改) # 逻辑已删除值(框架表均使用此值 禁止随意修改)
logicDeleteValue: 2 logicDeleteValue: 2
# 逻辑未删除值 # 逻辑未删除值

2
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java

@ -157,7 +157,7 @@ public class BusinessAlertController extends BaseController {
/** /**
* 查询全部预警/待办/已完成/忽略 * 前端视频画框
*/ */
@Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存") @Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存")
@PostMapping("/saveAlertList") @PostMapping("/saveAlertList")

36
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java

@ -0,0 +1,36 @@
package org.dromara.business.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.business.service.IBusinessLayerService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Validated
@RequiredArgsConstructor
@RestController
@Tag(name = "图层模块")
@RequestMapping("/layer")
public class BusinessLayerController {
private final IBusinessLayerService businessLayerService;
/**
* 图层模块列表
*/
@SaCheckPermission("business:task:list")
@GetMapping("/list")
public TableDataInfo<BusinessLayerVo> list(BusinessLayerBo bo, PageQuery pageQuery) {
return businessLayerService.queryPageList(bo, pageQuery);
}
}

21
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java

@ -263,4 +263,25 @@ public class BusinessAlert {
*/ */
@TableField(exist = false) @TableField(exist = false)
private String icon; private String icon;
/**
* 无人机方向
*/
private String direction;
/**
* 无人机云台偏航角
*/
private String gimbalYaw;
/**
* 无人机高
*/
private String height;
/**
* 无人机俯视角
*/
private String gimbalPitch;
} }

59
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java

@ -0,0 +1,59 @@
package org.dromara.business.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@EqualsAndHashCode
@TableName("business_layer")
public class BusinessLayer {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
private String layerTypeName;
//租户id
private String tenantId;
//部门id
private Long deptId;
//部门名称
private String deptName;
//备注
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

20
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java

@ -252,4 +252,24 @@ public class BusinessAlertBo {
*/ */
private String exportType = "world"; private String exportType = "world";
/**
* 无人机方向
*/
private String direction;
/**
* 无人机云台偏航角
*/
private String gimbalYaw;
/**
* 无人机高
*/
private String height;
/**
* 无人机俯视角
*/
private String gimbalPitch;
} }

57
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessLayerBo.java

@ -0,0 +1,57 @@
package org.dromara.business.domain.bo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusinessLayer.class,reverseConvertGenerate = false)
public class BusinessLayerBo {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
@NotNull(message = "图层名称不能为空", groups = { AddGroup.class})
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
@NotNull(message = "图层类型不能为空", groups = { AddGroup.class})
private Integer layerType;
private String tenantId;
@NotNull(message = "部门id不能为空", groups = { AddGroup.class})
private Long deptId;
@NotNull(message = "部门名称不能为空", groups = { AddGroup.class})
private String deptName;
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

21
dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java

@ -211,4 +211,25 @@ public class BusinessAlertVo implements Serializable {
* 案件号 * 案件号
*/ */
private String caseNumber; private String caseNumber;
/**
* 无人机方向
*/
private String direction;
/**
* 无人机云台偏航角
*/
private String gimbalYaw;
/**
* 无人机高
*/
private String height;
/**
* 无人机俯视角
*/
private String gimbalPitch;
} }

56
dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java

@ -0,0 +1,56 @@
package org.dromara.business.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.BusinessTask;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusinessLayer.class)
public class BusinessLayerVo {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
private String layerTypeName;
private String tenantId;
private Long deptId;
private String deptName;
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

8
dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java

@ -1,6 +1,7 @@
package org.dromara.business.dubbo; package org.dromara.business.dubbo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.business.api.RemoteBusinessAlertService; import org.dromara.business.api.RemoteBusinessAlertService;
import org.dromara.business.api.domain.bo.RemoteBusinessAlertBo; import org.dromara.business.api.domain.bo.RemoteBusinessAlertBo;
@ -9,6 +10,8 @@ import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.service.IBusinessAlertService; import org.dromara.business.service.IBusinessAlertService;
import org.dromara.business.utils.MinioUntil; import org.dromara.business.utils.MinioUntil;
import org.dromara.business.utils.constants.MinIOConstants; import org.dromara.business.utils.constants.MinIOConstants;
import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.RemoteUserService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -26,7 +29,8 @@ import java.util.stream.Collectors;
public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertService { public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertService {
private final IBusinessAlertService businessAlertService; private final IBusinessAlertService businessAlertService;
@DubboReference(timeout = 30000)
private RemoteSubmailConfigService remoteSubmailConfigService;
@Override @Override
public Boolean saveBusinessAlert(List<RemoteBusinessAlertVo> alertVoList, String activeProfile) { public Boolean saveBusinessAlert(List<RemoteBusinessAlertVo> alertVoList, String activeProfile) {
@ -84,5 +88,7 @@ public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertServic
}).toList(); }).toList();
businessAlertService.batchUpdateDept(alertVoList); businessAlertService.batchUpdateDept(alertVoList);
//短信推送
remoteSubmailConfigService.remoteSend("smsMultixsend", alertList);
} }
} }

16
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessLayerMapper.java

@ -0,0 +1,16 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.bo.BusinessTaskBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
public interface BusinessLayerMapper extends BaseMapperPlus<BusinessLayer, BusinessLayerVo> {
Page<BusinessLayerVo> queryPageList(@Param("page") Page<?> page, @Param("bo") BusinessLayerBo bo);
}

22
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessLayerService.java

@ -0,0 +1,22 @@
package org.dromara.business.service;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
public interface IBusinessLayerService {
/**
* 分页查询工单预约列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 工单预约分页列表
*/
TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery);
Boolean insert(BusinessLayerBo bo);
Boolean update(BusinessLayerBo bo);
Boolean delete(Long id);
}

63
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -6,6 +6,7 @@ import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -42,6 +43,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.RemoteLabelPostService; import org.dromara.system.api.RemoteLabelPostService;
import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo; import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo;
import org.dromara.system.api.domain.vo.RemoteUserVo; import org.dromara.system.api.domain.vo.RemoteUserVo;
@ -85,6 +87,8 @@ import java.util.Base64;
public class BusinessAlertServiceImpl implements IBusinessAlertService { public class BusinessAlertServiceImpl implements IBusinessAlertService {
private final BusinessAlertMapper baseMapper; private final BusinessAlertMapper baseMapper;
@DubboReference(timeout = 30000)
private RemoteSubmailConfigService remoteSubmailConfigService;
@Autowired @Autowired
private BusinessAlertConstructInfoMapper businessAlertConstructInfoMapper; private BusinessAlertConstructInfoMapper businessAlertConstructInfoMapper;
@ -114,7 +118,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
public BusinessAlert addBusinessAlert(BusinessAlertVo param) { public BusinessAlert addBusinessAlert(BusinessAlertVo param) {
BusinessAlert alert = MapstructUtils.convert(param, BusinessAlert.class); BusinessAlert alert = MapstructUtils.convert(param, BusinessAlert.class);
alert.setCreateTime(new Date()); alert.setCreateTime(new Date());
alert.setJobName(alert.getLabelCn()+ DateUtils.getTime()); // alert.setJobName(alert.getLabelCn()+ DateUtils.getTime());
//创建案件号 //创建案件号
try { try {
incrementalAlertCount(alert); incrementalAlertCount(alert);
@ -151,28 +155,48 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
@Override @Override
public void addBusinessAlertList(List<BusinessAlertVo> alertVoList) { public void addBusinessAlertList(List<BusinessAlertVo> alertVoList) {
if(!alertVoList.isEmpty()) {
incrementalCount(alertVoList);
List<RemoteStartProcess> remoteStartProcessList = new ArrayList<>(); if (ObjectUtil.isEmpty(alertVoList)){
for (BusinessAlertVo alertVo : alertVoList) { throw new ServiceException("参数为空!");
alertVo.setBusinessType(2); }
alertVo.setHandleType(BusinessStatusEnum.WAITING.getStatus());
BusinessAlert alert = addBusinessAlert(alertVo);
RemoteStartProcess startProcess = new RemoteStartProcess();
startProcess.setBusinessId(String.valueOf(alert.getId()));
startProcess.setFlowCode("alertChz");
remoteStartProcessList.add(startProcess);
}
int startIndex = 0; // 从第 0 条开始 try {
int batchSize = 5; // 每批处理 5 条 incrementalCount(alertVoList);
boolean flag = BatchProcessorUtil.processBatches(remoteStartProcessList, batchSize, startIndex, batch -> { } catch (Exception e) {
//批量新增部门区域数据 log.error(e.getMessage(),e);
remoteWorkflowService.startWorkFlowBatch(batch); }
});
//用于短信推送
List<Map<String, Object>> noticeList=new ArrayList<>();
List<RemoteStartProcess> remoteStartProcessList = new ArrayList<>();
for (BusinessAlertVo alertVo : alertVoList) {
Map<String,Object>map=new HashMap<>();
alertVo.setBusinessType(2);
BusinessAlert alert = addBusinessAlert(alertVo);
RemoteStartProcess startProcess = new RemoteStartProcess();
startProcess.setBusinessId(String.valueOf(alert.getId()));
String flowCode = remoteWorkflowService.getFlowCode(alertVo.getLabelEn());
log.info("flowCode:{}",flowCode);
startProcess.setFlowCode(flowCode);
map.put("deptId",alert.getDeptId());
map.put("deptName",alert.getDeptName());
map.put("labelCn",alert.getLabelCn());
map.put("labelEn",alert.getLabelEn());
map.put("jobName",alert.getJobName());
noticeList.add(map);
remoteStartProcessList.add(startProcess);
} }
int startIndex = 0; // 从第 0 条开始
int batchSize = 5; // 每批处理 5 条
boolean flag = BatchProcessorUtil.processBatches(remoteStartProcessList, batchSize, startIndex, batch -> {
//批量新增部门区域数据
remoteWorkflowService.startWorkFlowBatch(batch);
});
remoteSubmailConfigService.remoteSend("smsMultixsend",noticeList);
} }
/** /**
@ -988,6 +1012,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
//更新number //更新number
this.baseMapper.batchUpdateCaseNumber(alertVoList); this.baseMapper.batchUpdateCaseNumber(alertVoList);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
} }

47
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java

@ -0,0 +1,47 @@
package org.dromara.business.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.convert.impl.MapConverter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.business.mapper.BusinessLayerMapper;
import org.dromara.business.service.IBusinessLayerService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
@Slf4j
@RequiredArgsConstructor
@Service
public class BusinessLayerServiceImpl implements IBusinessLayerService {
private final BusinessLayerMapper baseMapper;
@Override
public TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery) {
Page<BusinessLayerVo> result = baseMapper.queryPageList(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
@Override
public Boolean insert(BusinessLayerBo bo) {
BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo);
return baseMapper.insert(layerVo)>0;
}
@Override
public Boolean update(BusinessLayerBo bo) {
BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo);
return baseMapper.updateById(layerVo)>0;
}
@Override
public Boolean delete(Long id) {
return baseMapper.deleteById(id)>0;
}
}

11
dk-modules/business/src/main/resources/mapper/business/BusinessLayerMapper.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.business.mapper.BusinessLayerMapper">
<select id="queryPageList" resultType="org.dromara.business.domain.vo.BusinessLayerVo">
</select>
</mapper>

7
dk-modules/sample/src/main/java/org/dromara/sample/wayline/controller/WaylineJobController.java

@ -154,4 +154,11 @@ public class WaylineJobController {
} }
} }
//根据设备sn查询jobname
@GetMapping("/{workspace_id}/getJobByDockSn")
@Operation(summary = "根据设备sn查询jobname。", description = "根据设备sn查询jobname。")
public HttpResultResponse getJobByDockSn( @RequestParam(name = "device_sn") String deviceSn) {
return HttpResultResponse.success(waylineJobService.getJobByDockSn(deviceSn));
}
} }

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IWaylineJobService.java

@ -87,4 +87,6 @@ public interface IWaylineJobService {
* @param fileType 图片类型 "jpeg,mp4" * @param fileType 图片类型 "jpeg,mp4"
* */ * */
List<MediaFileDTO> getMediaFileDTO(String jobId, String fileType); List<MediaFileDTO> getMediaFileDTO(String jobId, String fileType);
WaylineJobDTO getJobByDockSn(String dockSn);
} }

20
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/WaylineJobServiceImpl.java

@ -267,6 +267,26 @@ public class WaylineJobServiceImpl implements IWaylineJobService {
return fileService.getMediaFileDTO(jobId,fileType); return fileService.getMediaFileDTO(jobId,fileType);
} }
@Override
public WaylineJobDTO getJobByDockSn(String dockSn) {
LambdaQueryWrapper<WaylineJobEntity> queryWrapper = new LambdaQueryWrapper<WaylineJobEntity>()
.eq(WaylineJobEntity::getStatus, 2)
.eq(WaylineJobEntity::getDockSn, dockSn);
//降序查询
queryWrapper.orderByDesc(WaylineJobEntity::getCreateTime);
List<WaylineJobEntity> waylineJobEntities = mapper.selectList(queryWrapper);
if (ObjectUtil.isEmpty(waylineJobEntities)){
return new WaylineJobDTO();
}
return entity2Dto(waylineJobEntities.getFirst());
}
private WaylineJobDTO entity2Dto(WaylineJobEntity entity) { private WaylineJobDTO entity2Dto(WaylineJobEntity entity) {
if (entity == null) { if (entity == null) {
return null; return null;

2
dk-modules/system/src/main/java/org/dromara/system/DKSystemApplication.java

@ -4,6 +4,7 @@ import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
import org.springframework.scheduling.annotation.EnableAsync;
/** /**
* 系统模块 * 系统模块
@ -12,6 +13,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt
*/ */
@EnableDubbo @EnableDubbo
@SpringBootApplication @SpringBootApplication
@EnableAsync
public class DKSystemApplication { public class DKSystemApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication application = new SpringApplication(DKSystemApplication.class); SpringApplication application = new SpringApplication(DKSystemApplication.class);

10
dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java

@ -274,6 +274,16 @@ public class SysUserController extends BaseController {
return toAjax(userService.updateUserStatus(user.getUserId(), user.getStatus())); return toAjax(userService.updateUserStatus(user.getUserId(), user.getStatus()));
} }
/**
* 状态修改
*/
@SaCheckPermission("system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/noticeType")
public R<Void> noticeType(@RequestBody SysUserBo user) {
return toAjax(userService.updateUserNoticeType(user.getUserId(), user.getNoticeType()));
}
/** /**
* 根据用户编号获取授权角色 * 根据用户编号获取授权角色
* *

1
dk-modules/system/src/main/java/org/dromara/system/domain/SysUser.java

@ -98,6 +98,7 @@ public class SysUser extends TenantEntity {
*/ */
private Date loginDate; private Date loginDate;
private Integer noticeType;
/** /**
* 备注 * 备注
*/ */

1
dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java

@ -108,6 +108,7 @@ public class SysUserBo extends BaseEntity {
*/ */
private String excludeUserIds; private String excludeUserIds;
private Integer noticeType;
/** /**
* 平台名称 * 平台名称
*/ */

1
dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java

@ -47,6 +47,7 @@ public class SysUserVo implements Serializable {
* 用户账号 * 用户账号
*/ */
private String userName; private String userName;
private Integer noticeType;
/** /**
* 用户昵称 * 用户昵称

39
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteSubmailConfigServiceImpl.java

@ -1,17 +1,27 @@
package org.dromara.system.dubbo; package org.dromara.system.dubbo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.system.api.RemoteClientService;
import org.dromara.system.api.RemoteSubmailConfigService; import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.domain.vo.RemoteClientVo;
import org.dromara.system.domain.vo.SysClientVo; import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysClientService;
import org.dromara.system.service.ISysSubmailConfigService; import org.dromara.system.service.ISysSubmailConfigService;
import org.dromara.system.service.ISysUserService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/** /**
* 客户端服务 * 客户端服务
* *
@ -25,6 +35,7 @@ public class RemoteSubmailConfigServiceImpl implements RemoteSubmailConfigServic
private final ISysSubmailConfigService sysSubmailConfigService; private final ISysSubmailConfigService sysSubmailConfigService;
private final ISysUserService userService;
/** /**
* *
@ -36,4 +47,22 @@ public class RemoteSubmailConfigServiceImpl implements RemoteSubmailConfigServic
public R<String> remoteCmdSend(String code, String multiParam) { public R<String> remoteCmdSend(String code, String multiParam) {
return sysSubmailConfigService.cmdSend(code, multiParam); return sysSubmailConfigService.cmdSend(code, multiParam);
} }
/**
* 根据部门获取部门下的短信推送人员,进行推送
* */
@Override
@Async
public void remoteSend(String code, List<Map<String, Object>> alertList) {
if(!alertList.isEmpty()){
for (Map<String, Object> map : alertList) {
Long deptId = Convert.toLong(map.get("deptId"));
List<SysUserVo> sysUserVos = userService.selectUserListByDept(Convert.toLong(deptId));
Set<String> phones = sysUserVos.stream().filter(u -> u.getNoticeType() == 1 && StrUtil.isNotEmpty(u.getPhonenumber())).map(SysUserVo::getPhonenumber).collect(Collectors.toSet());
sysSubmailConfigService.sendPhone(code,phones, JSON.toJSONString(map));
}
}
}
} }

4
dk-modules/system/src/main/java/org/dromara/system/service/ISysSubmailConfigService.java

@ -10,6 +10,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* 赛邮服务配置Service接口 * 赛邮服务配置Service接口
@ -71,5 +72,8 @@ public interface ISysSubmailConfigService {
R<String> cmdSend(String code, String multiParam); R<String> cmdSend(String code, String multiParam);
R<String> sendPhone(String code,Set<String>phones, String multiParam);
String submailSendUtil(SysSubmailConfigBo bo, List<SysSubmailConfigUserVo> configUserVoList); String submailSendUtil(SysSubmailConfigBo bo, List<SysSubmailConfigUserVo> configUserVoList);
String submailSendPhone(SysSubmailConfigBo bo, Set<String> phones);
} }

1
dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java

@ -169,6 +169,7 @@ public interface ISysUserService {
* @return 结果 * @return 结果
*/ */
int updateUserStatus(Long userId, String status); int updateUserStatus(Long userId, String status);
int updateUserNoticeType(Long userId, Integer noticeType);
/** /**
* 修改用户基本信息 * 修改用户基本信息

74
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysSubmailConfigServiceImpl.java

@ -32,10 +32,7 @@ import org.dromara.system.domain.SysSubmailConfig;
import org.dromara.system.mapper.SysSubmailConfigMapper; import org.dromara.system.mapper.SysSubmailConfigMapper;
import org.dromara.system.service.ISysSubmailConfigService; import org.dromara.system.service.ISysSubmailConfigService;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -189,6 +186,75 @@ public class SysSubmailConfigServiceImpl implements ISysSubmailConfigService {
return R.ok(result); return R.ok(result);
} }
@Override
public R<String> sendPhone(String code, Set<String> phones, String multiParam) {
//找到生效配置
SysSubmailConfigBo bo = new SysSubmailConfigBo();
bo.setCode(code);
List<SysSubmailConfigVo> sysSubmailConfigVoTempList = this.queryList(bo);
if (sysSubmailConfigVoTempList.size() <= 0) {
return R.fail("暂无有效配置");
}
SysSubmailConfigVo firstConfigVo = sysSubmailConfigVoTempList.get(0);
BeanUtil.copyProperties(firstConfigVo,bo);
bo.setMultiParam(multiParam);
String result = submailSendPhone(bo,phones);
return R.ok(result);
}
public String submailSendPhone(SysSubmailConfigBo bo, Set<String> phones) {
if(!phones.isEmpty()){
String subMailSaveFlag = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("submail.log.save");
HashMap<String, Object> postParam = new HashMap<>();
postParam.put("appid", bo.getAppid());
postParam.put("signature", bo.getSignature());
String phonenumber =String.join(",", phones);;
String result = "";
switch (bo.getCode()){
case "smsSend": //短信发送 to/content
postParam.put("to", phonenumber);
postParam.put("content", bo.getContent());
result = HttpUtil.post(bo.getUrl(), postParam); //JSONUtil.parseObj(result).getStr("status")
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsXsend": //短信模板发送 to/project
postParam.put("to", phonenumber);
postParam.put("project", bo.getProject());
postParam.put("vars", bo.getVars());
result = HttpUtil.post(bo.getUrl(), postParam);
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsMultisend": //短信一对多发送 multi
// postParam.put("to", phonenumber);
// postParam.put("project", bo.getProject());
// postParam.put("vars", bo.getVars());
// result = HttpUtil.post(bo.getUrl(), postParam);
// saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsMultixsend": //短信模板一对多发送 project/multi
postParam.put("to", phonenumber);
postParam.put("project", bo.getProject());
// 拼接multi
JSONArray multiJson = new JSONArray();
for (String phone : phones) {
JSONObject entries = new JSONObject();
entries.set("to",phone);
entries.set("vars", JSONUtil.parseObj(bo.getMultiParam()));
multiJson.add(entries);
}
String multiJsonStr = multiJson.toString();
// postParam.put("multi", multiJson.toString());
postParam.put("multi", multiJsonStr);
result = HttpUtil.post(bo.getUrl(), postParam);
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
}
return result;
}
return null;
}
public String submailSendUtil(SysSubmailConfigBo bo, List<SysSubmailConfigUserVo> configUserVoList) { public String submailSendUtil(SysSubmailConfigBo bo, List<SysSubmailConfigUserVo> configUserVoList) {
String subMailSaveFlag = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("submail.log.save"); String subMailSaveFlag = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("submail.log.save");
HashMap<String, Object> postParam = new HashMap<>(); HashMap<String, Object> postParam = new HashMap<>();

8
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@ -376,6 +376,14 @@ public class SysUserServiceImpl implements ISysUserService {
.eq(SysUser::getUserId, userId)); .eq(SysUser::getUserId, userId));
} }
@Override
public int updateUserNoticeType(Long userId, Integer noticeType) {
return baseMapper.update(null,
new LambdaUpdateWrapper<SysUser>()
.set(SysUser::getNoticeType, noticeType)
.eq(SysUser::getUserId, userId));
}
/** /**
* 修改用户基本信息 * 修改用户基本信息
* *

11
dk-modules/system/src/main/java/org/dromara/system/utils/OvkmzParser.java

@ -0,0 +1,11 @@
package org.dromara.system.utils;
/**
* 解析ovkmz文件
*/
public class OvkmzParser {
}

2
dk-modules/system/src/main/resources/mapper/system/SysUserMapper.xml

@ -17,7 +17,7 @@
${ew.getSqlSelect} ${ew.getSqlSelect}
</if> </if>
<if test="ew.getSqlSelect == null"> <if test="ew.getSqlSelect == null">
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,u.notice_type,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.product_name u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.product_name
</if> </if>
from sys_user u from sys_user u

4
dk-visual/nacos/src/main/resources/application.properties

@ -40,9 +40,9 @@ spring.sql.init.platform=mysql
db.num=1 db.num=1
### Connect URL of DB: ### Connect URL of DB:
db.url.0=jdbc:mysql://114.235.183.147:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true db.url.0=jdbc:mysql://127.0.0.1:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root db.user.0=root
db.password.0=dkcy@yf db.password.0=123456
### the maximum retry times for push ### the maximum retry times for push
nacos.config.push.maxRetryTime=50 nacos.config.push.maxRetryTime=50

Loading…
Cancel
Save