Browse Source

[feat]修复工作流相关逻辑&开发巡查区域

pull/1/head
杨威 4 months ago
parent
commit
da022d57db
  1. 2
      dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java
  2. 13
      dk-modules/business/pom.xml
  3. 51
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  4. 157
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessPatrolAreasController.java
  5. 12
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java
  6. 74
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPatrolAreas.java
  7. 54
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPatrolAreasPlatform.java
  8. 42
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPatrolAreasPoints.java
  9. 37
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPatrolAreasUser.java
  10. 54
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPlatformInfo.java
  11. 32
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPlatformInfoCode.java
  12. 6
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java
  13. 44
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessPatrolAreasBo.java
  14. 11
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessPlatformInfoBo.java
  15. 6
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java
  16. 8
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java
  17. 22
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasMapper.java
  18. 10
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasPlatformMapper.java
  19. 16
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasPointsMapper.java
  20. 16
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasUserMapper.java
  21. 17
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPlatformInfoCodeMapper.java
  22. 23
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPlatformInfoMapper.java
  23. 23
      dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertService.java
  24. 13
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasPointsService.java
  25. 25
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasService.java
  26. 13
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasUserService.java
  27. 9
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPlatformInfoService.java
  28. 52
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  29. 23
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasPointsServiceImpl.java
  30. 203
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasServiceImpl.java
  31. 23
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasUserServiceImpl.java
  32. 17
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPlatformInfoServiceImpl.java
  33. 9
      dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml
  34. 55
      dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasMapper.xml
  35. 5
      dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasPlatformMapper.xml
  36. 11
      dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasPointsMapper.xml
  37. 9
      dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasUserMapper.xml
  38. 10
      dk-modules/business/src/main/resources/mapper/business/BusinessPlatformInfoCodeMapper.xml
  39. 31
      dk-modules/business/src/main/resources/mapper/business/BusinessPlatformInfoMapper.xml
  40. 8
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java
  41. 5
      dk-modules/workflow/pom.xml
  42. 54
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

2
dk-api/api-system/src/main/java/org/dromara/system/api/RemoteDeptService.java

@ -20,4 +20,6 @@ public interface RemoteDeptService {
String selectDeptNameByIds(String deptIds); String selectDeptNameByIds(String deptIds);
List<RemoteDeptVo> selectDeptsByList(); List<RemoteDeptVo> selectDeptsByList();
RemoteDeptVo selectDeptById(Long deptId);
} }

13
dk-modules/business/pom.xml

@ -91,6 +91,19 @@
<artifactId>common-encrypt</artifactId> <artifactId>common-encrypt</artifactId>
</dependency> </dependency>
<!-- AutoPoi Excel工具类-->
<dependency>
<groupId>org.jeecgframework</groupId>
<artifactId>autopoi-web</artifactId>
<version>1.4.4</version>
<exclusions>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies> </dependencies>
<build> <build>
<finalName>${project.artifactId}</finalName> <finalName>${project.artifactId}</finalName>

51
dk-modules/business/src/main/java/org/dromara/business/controller/WaylineAlertController.java → dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java

@ -4,9 +4,9 @@ import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.bo.WaylineAlertBo; import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.vo.WaylineAlertVo; import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.service.IWaylineAlertService; import org.dromara.business.service.BusinessAlertService;
import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
@ -31,17 +31,18 @@ import java.util.List;
@Validated @Validated
@RequiredArgsConstructor @RequiredArgsConstructor
@RestController @RestController
@RequestMapping("/alert/task") @RequestMapping
public class WaylineAlertController extends BaseController { public class BusinessAlertController extends BaseController {
private final IWaylineAlertService waylineAlertService;
private final BusinessAlertService businessAlertService;
/** /**
* 查询预警任务列表 * 查询预警任务列表
*/ */
@GetMapping("/page") @GetMapping("/alert/page")
public TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo bo, PageQuery pageQuery) { public TableDataInfo<BusinessAlertVo> pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery) {
return waylineAlertService.pageWaylineAlert(bo, pageQuery); return businessAlertService.pageBusinessAlert(bo, pageQuery);
} }
/** /**
@ -49,10 +50,10 @@ public class WaylineAlertController extends BaseController {
* *
* @param alertId 主键 * @param alertId 主键
*/ */
@GetMapping("/{alertId}") @GetMapping("/alert/{alertId}")
public R<WaylineAlertVo> getWaylineAlert(@NotNull(message = "主键不能为空") public R<BusinessAlertVo> getBusinessAlert(@NotNull(message = "主键不能为空")
@PathVariable String alertId) { @PathVariable String alertId) {
return R.ok(waylineAlertService.getWaylineAlert(alertId)); return R.ok(businessAlertService.getBusinessAlert(alertId));
} }
/** /**
@ -60,9 +61,9 @@ public class WaylineAlertController extends BaseController {
*/ */
@Log(title = "预警任务", businessType = BusinessType.INSERT) @Log(title = "预警任务", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@PostMapping("/add") @PostMapping("/alert/add")
public R<Void> addWaylineAlert(@Validated(AddGroup.class) @RequestBody WaylineAlertBo param) { public R<Void> addBusinessAlert(@Validated(AddGroup.class) @RequestBody BusinessAlertBo param) {
return toAjax(waylineAlertService.addWaylineAlert(param)); return toAjax(businessAlertService.addBusinessAlert(param));
} }
/** /**
@ -70,9 +71,9 @@ public class WaylineAlertController extends BaseController {
*/ */
@Log(title = "预警任务", businessType = BusinessType.UPDATE) @Log(title = "预警任务", businessType = BusinessType.UPDATE)
@RepeatSubmit() @RepeatSubmit()
@PostMapping("/update") @PostMapping("/alert/edit")
public R<Void> updateWaylineAlert(@Validated(EditGroup.class) @RequestBody WaylineAlertBo bo) { public R<Void> editBusinessAlert(@Validated(EditGroup.class) @RequestBody BusinessAlertBo bo) {
return toAjax(waylineAlertService.updateWaylineAlert(bo)); return toAjax(businessAlertService.editBusinessAlert(bo));
} }
/** /**
@ -81,19 +82,19 @@ public class WaylineAlertController extends BaseController {
* @param alertIdList 主键串 * @param alertIdList 主键串
*/ */
@Log(title = "预警任务", businessType = BusinessType.DELETE) @Log(title = "预警任务", businessType = BusinessType.DELETE)
@DeleteMapping("/delete") @DeleteMapping("/alert/delete")
public R<Void> deleteWaylineAlert(@NotEmpty(message = "主键不能为空") public R<Void> deleteBusinessAlert(@NotEmpty(message = "主键不能为空")
@RequestParam List<String> alertIdList) { @RequestParam List<String> alertIdList) {
return toAjax(waylineAlertService.deleteWaylineAlert(alertIdList, true)); return toAjax(businessAlertService.deleteBusinessAlert(alertIdList, true));
} }
/** /**
* 导出预警任务列表 * 导出预警任务列表
*/ */
@Log(title = "预警任务", businessType = BusinessType.EXPORT) @Log(title = "预警任务", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/alert/export")
public void exportWaylineAlert(WaylineAlertBo bo, HttpServletResponse response) { public void exportBusinessAlert(BusinessAlertBo bo, HttpServletResponse response) {
List<WaylineAlertVo> list = waylineAlertService.listWaylineAlert(bo); List<BusinessAlertVo> list = businessAlertService.listBusinessAlert(bo);
ExcelUtil.exportExcel(list, "预警任务", WaylineAlertVo.class, response); ExcelUtil.exportExcel(list, "预警任务", BusinessAlertVo.class, response);
} }
} }

157
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessPatrolAreasController.java

@ -0,0 +1,157 @@
package org.dromara.business.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.BusinessPatrolAreas;
import org.dromara.business.domain.BusinessPatrolAreasPoints;
import org.dromara.business.domain.BusinessPatrolAreasUser;
import org.dromara.business.domain.bo.BusinessPatrolAreasBo;
import org.dromara.business.service.IBusinessPatrolAreasPointsService;
import org.dromara.business.service.IBusinessPatrolAreasService;
import org.dromara.business.service.IBusinessPatrolAreasUserService;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.web.core.BaseController;
import org.dromara.system.api.model.LoginUser;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.util.List;
/**
* @Description: 巡查区域
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/patrol/patrolAreas")
public class BusinessPatrolAreasController extends BaseController {
private final IBusinessPatrolAreasService patrolAreasService;
private final IBusinessPatrolAreasPointsService patrolAreasPointsService;
private final IBusinessPatrolAreasUserService patrolAreasUserService;
// @Value("${jeecg.path.upload}")
private String upLoadPath;
/**
* 巡查区域-分页列表查询
*
* @param patrolAreasBo
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping(value = "/list")
public R<IPage<BusinessPatrolAreas>> queryPageList(BusinessPatrolAreasBo patrolAreasBo,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
Page<BusinessPatrolAreas> page = new Page<BusinessPatrolAreas>(pageNo, pageSize);
IPage<BusinessPatrolAreas> pageList = patrolAreasService.pagePatrolAreas(page, patrolAreasBo);
return R.ok(pageList);
}
/**
* 巡查区域-添加
*
* @param patrolAreas
* @return
*/
@PostMapping(value = "/add")
public R<?> add(@RequestBody BusinessPatrolAreas patrolAreas) {
boolean flag = patrolAreasService.addPatrolAreas(patrolAreas);
if(flag){
return R.ok("添加成功!");
}
return R.fail("新增失败");
}
/**
* 巡查区域-编辑
*
* @param patrolAreas
* @return
*/
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public R<?> edit(@RequestBody BusinessPatrolAreas patrolAreas) {
boolean flag = patrolAreasService.updatePatrolAreas(patrolAreas);
if(flag){
return R.ok("添加成功!");
}
return R.fail("新增失败");
}
/**
* 巡查区域-禁用/启用
*
* @param patrolAreas
* @return
*/
@RequestMapping(value = "/isDisable", method = {RequestMethod.PUT,RequestMethod.POST})
public R<?> isDisable(@RequestBody BusinessPatrolAreas patrolAreas) {
boolean flag = patrolAreasService.updateById(patrolAreas);
if(flag){
return R.ok("修改成功!");
}
return R.fail("操作失败");
}
/**
* 巡查区域-删除
*
* @param id
* @return
*/
@DeleteMapping(value = "/delete")
public R<?> delete(String id) {
boolean flag = patrolAreasService.removeById(id);
if(flag){
List<BusinessPatrolAreasUser> patrolAreasUsersDels = patrolAreasUserService.listPatrolAreasUserByAreaId(id);
List<BusinessPatrolAreasPoints> patrolAreasPointsDels = patrolAreasPointsService.listPatrolAreasPointByAreaId(id);
patrolAreasUserService.removeByIds(patrolAreasUsersDels);
patrolAreasPointsService.removeByIds(patrolAreasPointsDels);
}
if(flag){
return R.ok("删除成功!");
}
return R.fail("删除失败!");
}
/**
* 导出excel
*
* @param request
* @param patrolAreas
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(BusinessPatrolAreas patrolAreas, HttpServletRequest request) {
//Step.2 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
//update-begin--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据--------------------
// String selections = request.getParameter("selections");
// if(!oConvertUtils.isEmpty(selections)){
// queryWrapper.in("id",selections.split(","));
// }
//update-end--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据----------------------
List<BusinessPatrolAreas> pageList = patrolAreasService.exportXls(patrolAreas);
//导出文件名称
mv.addObject(NormalExcelConstants.FILE_NAME, "用户列表");
mv.addObject(NormalExcelConstants.CLASS, BusinessPatrolAreas.class);
LoginUser user = LoginHelper.getLoginUser();
ExportParams exportParams = new ExportParams("用户列表数据", "导出人:"+user.getNickname(), "导出信息");
exportParams.setImageBasePath(upLoadPath);
mv.addObject(NormalExcelConstants.PARAMS, exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
return mv;
}
}

12
dk-modules/business/src/main/java/org/dromara/business/domain/WaylineAlert.java → dk-modules/business/src/main/java/org/dromara/business/domain/BusinessAlert.java

@ -5,20 +5,19 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial; import java.io.Serial;
/** /**
* 预警任务对象 wayline_alert * 预警任务对象 business_alert
* *
* @author LionLi * @author LionLi
* @date 2025-02-27 * @date 2025-02-27
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@TableName("wayline_alert") @TableName("business_alert")
public class WaylineAlert extends BaseEntity { public class BusinessAlert extends BaseEntity {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -29,6 +28,11 @@ public class WaylineAlert extends BaseEntity {
@TableId(value = "id") @TableId(value = "id")
private String id; private String id;
/**
* 流程实例Id
*/
private Long instanceId;
/** /**
* 任务轮id * 任务轮id
*/ */

74
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPatrolAreas.java

@ -0,0 +1,74 @@
package org.dromara.business.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.util.ArrayList;
import java.util.List;
/**
* @Description: 巡查区域
*/
@Data
@TableName("business_patrol_areas")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessPatrolAreas extends BaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**区域名称*/
@Excel(name = "区域名称", width = 15)
private String name;
/**区域编号*/
@Excel(name = "区域编号", width = 15)
private String number;
/**所属乡镇id*/
@Excel(name = "所属乡镇id", width = 15)
private String deptId;
/**所属乡镇id*/
@Excel(name = "所属乡镇名称", width = 15)
@TableField(exist = false)
private String deptName;
@Excel(name = "所属乡镇ids", width = 15)
private String deptIds;
@Excel(name = "平台类型", width = 15)
private String platformType;
/**分管领导所属乡镇id**/
private String leaderDeptId;
/**用户id**/
private String userId;
/**用户姓名**/
private String userName;
/**是否禁用:0:禁用 1:启用**/
private Integer isDisable;
/**巡查区域人员信息集合**/
@TableField(exist = false)
private List<BusinessPatrolAreasUser> patrolAreasUsers = new ArrayList<>();
/**巡查区域平台类型集合**/
@TableField(exist = false)
private List<String> patrolAreasIdList = new ArrayList<>();
/**巡查区域坐标集合**/
@TableField(exist = false)
private List<BusinessPatrolAreasPoints> patrolAreasPoints = new ArrayList<>();
}

54
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPatrolAreasPlatform.java

@ -0,0 +1,54 @@
package org.dromara.business.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
* Description: <br/>
* date: 2024/8/12$ 17:17$<br/>
*
* @author: yq
*/
@Data
@TableName("business_patrol_areas_platform_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessPatrolAreasPlatform extends BaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
@ExcelProperty(value = "patrol_areas_id")
private String patrolAreasId;
/**区域名称*/
@ExcelProperty(value = "平台名称")
private String platformName;
@ExcelProperty(value = "平台类型")
private String platformType;
/**区域编号*/
@ExcelProperty(value = "平台图片")
private String imageUrl;
/**
* 排序
*/
@ExcelProperty(value = "排序")
private Integer sort;
}

42
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPatrolAreasPoints.java

@ -0,0 +1,42 @@
package org.dromara.business.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.math.BigDecimal;
/**
* @Description: 巡查区域坐标
*/
@Data
@TableName("business_patrol_area_points")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessPatrolAreasPoints extends BaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**areaId*/
@ExcelProperty(value = "areaId")
private String areaId;
/**纬度*/
@ExcelProperty(value = "纬度")
private BigDecimal lat;
/**经度*/
@ExcelProperty(value = "经度")
private BigDecimal lng;
/**序号*/
@ExcelProperty(value = "序号")
private Integer sortNumber;
}

37
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPatrolAreasUser.java

@ -0,0 +1,37 @@
package org.dromara.business.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
* @Description: 巡查区域人员信息
*/
@Data
@TableName("business_patrol_area_users")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessPatrolAreasUser extends BaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**巡查区域id*/
@ExcelProperty(value = "巡查区域id")
private String areaId;
/**巡查人员id*/
@ExcelProperty(value = "巡查人员id")
private String userId;
/**巡查人员姓名*/
@ExcelProperty(value = "巡查人员姓名")
private String realname;
}

54
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPlatformInfo.java

@ -0,0 +1,54 @@
package org.dromara.business.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Description: 平台信息
*/
@Data
@TableName("business_platform_info")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessPlatformInfo extends BaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**设备昵称**/
private String platformName;
/**设备类型**/
private String platformType;
/**平台图片**/
private String imageUrl;
/**app图片**/
private String imageAppUrl;
/**排序**/
private Integer sort;
/**路由**/
private String routes;
/**平台识别类型集合**/
@TableField(exist = false)
private List<BusinessPlatformInfoCode> platformInfoCodes = new ArrayList<>();
@TableField(exist = false)
private Map<String,Object> total = new HashMap<>();
}

32
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessPlatformInfoCode.java

@ -0,0 +1,32 @@
package org.dromara.business.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.mybatis.core.domain.BaseEntity;
/**
* @Description: 平台信息
*/
@Data
@TableName("business_platform_info_code")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BusinessPlatformInfoCode extends BaseEntity {
/**
* ID
*/
@TableId(type = IdType.ASSIGN_ID)
private String id;
/**平台对象id**/
private String platformInfoId;
/**识别内容**/
private String codeName;
/**识别类型**/
private String codeType;
}

6
dk-modules/business/src/main/java/org/dromara/business/domain/bo/WaylineAlertBo.java → dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessAlertBo.java

@ -1,6 +1,6 @@
package org.dromara.business.domain.bo; package org.dromara.business.domain.bo;
import org.dromara.business.domain.WaylineAlert; import org.dromara.business.domain.BusinessAlert;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
@ -18,8 +18,8 @@ import java.util.Date;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = WaylineAlert.class, reverseConvertGenerate = false) @AutoMapper(target = BusinessAlert.class, reverseConvertGenerate = false)
public class WaylineAlertBo extends BaseEntity { public class BusinessAlertBo extends BaseEntity {
/** /**
* *

44
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessPatrolAreasBo.java

@ -0,0 +1,44 @@
package org.dromara.business.domain.bo;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.business.domain.BusinessAlert;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.util.ArrayList;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BusinessAlert.class, reverseConvertGenerate = false)
public class BusinessPatrolAreasBo extends BaseEntity {
/**
* 所属乡镇id
*/
private String deptId;
/**
* 所属乡镇名称
*/
private String deptName;
/**
* 预警类型
*/
private String platformType;
/**
* 是否禁用0:禁用 1启用
*/
private Integer isDisable;
/**
* 下级所有部门id
*/
private List<String> deptIds = new ArrayList<>();
private String name;
}

11
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessPlatformInfoBo.java

@ -0,0 +1,11 @@
package org.dromara.business.domain.bo;
import lombok.Data;
@Data
public class BusinessPlatformInfoBo {
/**查询条件**/
private String search;
}

6
dk-modules/business/src/main/java/org/dromara/business/domain/vo/WaylineAlertVo.java → dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessAlertVo.java

@ -4,7 +4,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.business.domain.WaylineAlert; import org.dromara.business.domain.BusinessAlert;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
@ -20,8 +20,8 @@ import java.util.Date;
*/ */
@Data @Data
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
@AutoMapper(target = WaylineAlert.class) @AutoMapper(target = BusinessAlert.class)
public class WaylineAlertVo implements Serializable { public class BusinessAlertVo implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

8
dk-modules/business/src/main/java/org/dromara/business/mapper/WaylineAlertMapper.java → dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessAlertMapper.java

@ -2,8 +2,8 @@ package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.dromara.business.domain.WaylineAlert; import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.vo.WaylineAlertVo; import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/** /**
@ -12,7 +12,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
* @author LionLi * @author LionLi
* @date 2025-02-27 * @date 2025-02-27
*/ */
public interface WaylineAlertMapper extends BaseMapperPlus<WaylineAlert, WaylineAlertVo> { public interface BusinessAlertMapper extends BaseMapperPlus<BusinessAlert, BusinessAlertVo> {
Page<WaylineAlertVo> pageAlert(Page<WaylineAlertVo> page, LambdaQueryWrapper<WaylineAlert> lqw); Page<BusinessAlertVo> pageAlert(Page<BusinessAlertVo> page, LambdaQueryWrapper<BusinessAlert> lqw);
} }

22
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasMapper.java

@ -0,0 +1,22 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessPatrolAreas;
import org.dromara.business.domain.bo.BusinessPatrolAreasBo;
import java.util.List;
/**
* @Description: 巡查区域
*/
public interface BusinessPatrolAreasMapper extends BaseMapper<BusinessPatrolAreas> {
IPage<BusinessPatrolAreas> listPatrolAreas(Page<BusinessPatrolAreas> page, @Param("condition") BusinessPatrolAreasBo patrolAreasBo, @Param("deptIds") List<String> deptIds);
List<BusinessPatrolAreas> listPatrolAreas(@Param("condition") BusinessPatrolAreasBo patrolAreasBo, @Param("deptIds") List<String> deptIds);
}

10
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPatrolAreasPlatformMapper.java

@ -0,0 +1,10 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.dromara.business.domain.BusinessPatrolAreasPlatform;
public interface BusinessPatrolAreasPlatformMapper extends BaseMapper<BusinessPatrolAreasPlatform> {
}

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

@ -0,0 +1,16 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessPatrolAreasPoints;
import java.util.List;
/**
* @Description: 巡查区域坐标
*/
public interface BusinessPatrolAreasPointsMapper extends BaseMapper<BusinessPatrolAreasPoints> {
List<BusinessPatrolAreasPoints> listPatrolAreasPointByAreaId(@Param("areaId") String areaId);
}

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

@ -0,0 +1,16 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessPatrolAreasUser;
import java.util.List;
/**
* @Description: 巡查区域人员信息
*/
public interface BusinessPatrolAreasUserMapper extends BaseMapper<BusinessPatrolAreasUser> {
List<BusinessPatrolAreasUser> listPatrolAreasUserByAreaId(@Param("areaId") String areaId);
}

17
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPlatformInfoCodeMapper.java

@ -0,0 +1,17 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessPlatformInfoCode;
import java.util.List;
/**
*
* @author sean.zhou
* @date 2021/11/10
* @version 0.1
*/
public interface BusinessPlatformInfoCodeMapper extends BaseMapper<BusinessPlatformInfoCode> {
List<BusinessPlatformInfoCode> listPlatformInfoCodeByPlatformInfoId(@Param("platformInfoId") String platformInfoId);
}

23
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessPlatformInfoMapper.java

@ -0,0 +1,23 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessPlatformInfo;
import org.dromara.business.domain.bo.BusinessPlatformInfoBo;
import java.util.List;
/**
*
* @author sean.zhou
* @date 2021/11/10
* @version 0.1
*/
public interface BusinessPlatformInfoMapper extends BaseMapper<BusinessPlatformInfo> {
IPage<BusinessPlatformInfo> listPlatformInfo(Page page, @Param("condition") BusinessPlatformInfoBo platformInfoBo);
List<BusinessPlatformInfo> listPlatformInfo(@Param("condition")BusinessPlatformInfoBo platformInfoBo);
}

23
dk-modules/business/src/main/java/org/dromara/business/service/IWaylineAlertService.java → dk-modules/business/src/main/java/org/dromara/business/service/BusinessAlertService.java

@ -1,12 +1,11 @@
package org.dromara.business.service; package org.dromara.business.service;
import org.dromara.business.domain.WaylineAlert; import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.vo.WaylineAlertVo; import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.domain.bo.WaylineAlertBo; import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List; import java.util.List;
/** /**
@ -15,7 +14,7 @@ import java.util.List;
* @author LionLi * @author LionLi
* @date 2025-02-27 * @date 2025-02-27
*/ */
public interface IWaylineAlertService { public interface BusinessAlertService {
/** /**
* 查询预警任务 * 查询预警任务
@ -23,7 +22,7 @@ public interface IWaylineAlertService {
* @param id 主键 * @param id 主键
* @return 预警任务 * @return 预警任务
*/ */
WaylineAlertVo getWaylineAlert(String id); BusinessAlertVo getBusinessAlert(String id);
/** /**
* 分页查询预警任务列表 * 分页查询预警任务列表
@ -32,7 +31,7 @@ public interface IWaylineAlertService {
* @param pageQuery 分页参数 * @param pageQuery 分页参数
* @return 预警任务分页列表 * @return 预警任务分页列表
*/ */
TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo bo, PageQuery pageQuery); TableDataInfo<BusinessAlertVo> pageBusinessAlert(BusinessAlertBo bo, PageQuery pageQuery);
/** /**
* 查询符合条件的预警任务列表 * 查询符合条件的预警任务列表
@ -40,7 +39,7 @@ public interface IWaylineAlertService {
* @param param 查询条件 * @param param 查询条件
* @return 预警任务列表 * @return 预警任务列表
*/ */
List<WaylineAlertVo> listWaylineAlert(WaylineAlertBo param); List<BusinessAlertVo> listBusinessAlert(BusinessAlertBo param);
/** /**
* 新增预警任务 * 新增预警任务
@ -48,7 +47,7 @@ public interface IWaylineAlertService {
* @param param 预警任务 * @param param 预警任务
* @return 是否新增成功 * @return 是否新增成功
*/ */
Boolean addWaylineAlert(WaylineAlertBo param); Boolean addBusinessAlert(BusinessAlertBo param);
/** /**
@ -57,7 +56,7 @@ public interface IWaylineAlertService {
* @param alertList 预警任务 * @param alertList 预警任务
* @return 是否新增成功 * @return 是否新增成功
*/ */
Boolean saveBatchAlert(List<WaylineAlert> alertList); Boolean batchAddBusinessAlert(List<BusinessAlert> alertList);
/** /**
* 修改预警任务 * 修改预警任务
@ -65,7 +64,7 @@ public interface IWaylineAlertService {
* @param param 预警任务 * @param param 预警任务
* @return 是否修改成功 * @return 是否修改成功
*/ */
Boolean updateWaylineAlert(WaylineAlertBo param); Boolean editBusinessAlert(BusinessAlertBo param);
/** /**
* 校验并批量删除预警任务信息 * 校验并批量删除预警任务信息
@ -74,5 +73,5 @@ public interface IWaylineAlertService {
* @param isValid 是否进行有效性校验 * @param isValid 是否进行有效性校验
* @return 是否删除成功 * @return 是否删除成功
*/ */
Boolean deleteWaylineAlert(List<String> alertIdList, Boolean isValid); Boolean deleteBusinessAlert(List<String> alertIdList, Boolean isValid);
} }

13
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasPointsService.java

@ -0,0 +1,13 @@
package org.dromara.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.business.domain.BusinessPatrolAreasPoints;
import java.util.List;
/**
* @Description: 巡查区域坐标
*/
public interface IBusinessPatrolAreasPointsService extends IService<BusinessPatrolAreasPoints> {
List<BusinessPatrolAreasPoints> listPatrolAreasPointByAreaId(String areaId);
}

25
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasService.java

@ -0,0 +1,25 @@
package org.dromara.business.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessPatrolAreas;
import org.dromara.business.domain.bo.BusinessPatrolAreasBo;
import java.util.List;
/**
* @Description: 巡查区域
*/
public interface IBusinessPatrolAreasService extends IService<BusinessPatrolAreas> {
IPage<BusinessPatrolAreas> pagePatrolAreas(Page page, @Param("condition") BusinessPatrolAreasBo patrolAreasBo);
List<BusinessPatrolAreas> listPatrolAreas(@Param("condition") BusinessPatrolAreasBo patrolAreasBo);
boolean addPatrolAreas(BusinessPatrolAreas patrolAreas);
boolean updatePatrolAreas(BusinessPatrolAreas patrolAreas);
List<BusinessPatrolAreas> exportXls(BusinessPatrolAreas patrolAreas);
}

13
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPatrolAreasUserService.java

@ -0,0 +1,13 @@
package org.dromara.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.business.domain.BusinessPatrolAreasUser;
import java.util.List;
/**
* @Description: 巡查区域人员信息
*/
public interface IBusinessPatrolAreasUserService extends IService<BusinessPatrolAreasUser> {
List<BusinessPatrolAreasUser> listPatrolAreasUserByAreaId(String areaId);
}

9
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessPlatformInfoService.java

@ -0,0 +1,9 @@
package org.dromara.business.service;
import com.baomidou.mybatisplus.extension.service.IService;
import org.dromara.business.domain.BusinessPlatformInfo;
public interface IBusinessPlatformInfoService extends IService<BusinessPlatformInfo> {
}

52
dk-modules/business/src/main/java/org/dromara/business/service/impl/WaylineAlertServiceImpl.java → dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -5,11 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.WaylineAlert; import org.dromara.business.domain.BusinessAlert;
import org.dromara.business.domain.bo.WaylineAlertBo; import org.dromara.business.domain.bo.BusinessAlertBo;
import org.dromara.business.domain.vo.WaylineAlertVo; import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.mapper.WaylineAlertMapper; import org.dromara.business.mapper.BusinessAlertMapper;
import org.dromara.business.service.IWaylineAlertService; import org.dromara.business.service.BusinessAlertService;
import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.utils.MapstructUtils; import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.PageQuery;
@ -26,9 +26,9 @@ import java.util.List;
*/ */
@RequiredArgsConstructor @RequiredArgsConstructor
@Service @Service
public class WaylineAlertServiceImpl implements IWaylineAlertService { public class BusinessAlertServiceImpl implements BusinessAlertService {
private final WaylineAlertMapper baseMapper; private final BusinessAlertMapper baseMapper;
/** /**
* 查询预警任务 * 查询预警任务
@ -37,7 +37,7 @@ public class WaylineAlertServiceImpl implements IWaylineAlertService {
* @return 预警任务 * @return 预警任务
*/ */
@Override @Override
public WaylineAlertVo getWaylineAlert(String id){ public BusinessAlertVo getBusinessAlert(String id){
return baseMapper.selectVoById(id); return baseMapper.selectVoById(id);
} }
@ -49,9 +49,9 @@ public class WaylineAlertServiceImpl implements IWaylineAlertService {
* @return 预警任务分页列表 * @return 预警任务分页列表
*/ */
@Override @Override
public TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo param, PageQuery pageQuery) { public TableDataInfo<BusinessAlertVo> pageBusinessAlert(BusinessAlertBo param, PageQuery pageQuery) {
LambdaQueryWrapper<WaylineAlert> lqw = buildQueryWrapper(param); LambdaQueryWrapper<BusinessAlert> lqw = buildQueryWrapper(param);
Page<WaylineAlertVo> result = baseMapper.pageAlert(pageQuery.build(), lqw); Page<BusinessAlertVo> result = baseMapper.pageAlert(pageQuery.build(), lqw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@ -63,8 +63,8 @@ public class WaylineAlertServiceImpl implements IWaylineAlertService {
* @return 预警任务列表 * @return 预警任务列表
*/ */
@Override @Override
public List<WaylineAlertVo> listWaylineAlert(WaylineAlertBo param) { public List<BusinessAlertVo> listBusinessAlert(BusinessAlertBo param) {
LambdaQueryWrapper<WaylineAlert> lqw = buildQueryWrapper(param); LambdaQueryWrapper<BusinessAlert> lqw = buildQueryWrapper(param);
return baseMapper.selectVoList(lqw); return baseMapper.selectVoList(lqw);
} }
@ -76,8 +76,8 @@ public class WaylineAlertServiceImpl implements IWaylineAlertService {
* @return 是否新增成功 * @return 是否新增成功
*/ */
@Override @Override
public Boolean addWaylineAlert(WaylineAlertBo param) { public Boolean addBusinessAlert(BusinessAlertBo param) {
WaylineAlert alert = MapstructUtils.convert(param, WaylineAlert.class); BusinessAlert alert = MapstructUtils.convert(param, BusinessAlert.class);
validEntityBeforeSave(alert,false); validEntityBeforeSave(alert,false);
return this.baseMapper.insert(alert) > 0; return this.baseMapper.insert(alert) > 0;
} }
@ -88,7 +88,7 @@ public class WaylineAlertServiceImpl implements IWaylineAlertService {
* @return * @return
*/ */
@Override @Override
public Boolean saveBatchAlert(List<WaylineAlert> alertList) { public Boolean batchAddBusinessAlert(List<BusinessAlert> alertList) {
return this.baseMapper.insertBatch(alertList); return this.baseMapper.insertBatch(alertList);
} }
@ -99,16 +99,16 @@ public class WaylineAlertServiceImpl implements IWaylineAlertService {
* @return 是否修改成功 * @return 是否修改成功
*/ */
@Override @Override
public Boolean updateWaylineAlert(WaylineAlertBo param) { public Boolean editBusinessAlert(BusinessAlertBo param) {
WaylineAlert alert = MapstructUtils.convert(param, WaylineAlert.class); BusinessAlert businessAlert = MapstructUtils.convert(param, BusinessAlert.class);
validEntityBeforeSave(alert,true); validEntityBeforeSave(businessAlert,true);
return baseMapper.updateById(alert) > 0; return baseMapper.updateById(businessAlert) > 0;
} }
/** /**
* 保存前的数据校验 * 保存前的数据校验
*/ */
private void validEntityBeforeSave(WaylineAlert alert,Boolean validId){ private void validEntityBeforeSave(BusinessAlert alert, Boolean validId){
if (ObjectUtil.isEmpty(alert.getId())){ if (ObjectUtil.isEmpty(alert.getId())){
throw new ServiceException("预警【Id】为空!"); throw new ServiceException("预警【Id】为空!");
} }
@ -122,20 +122,20 @@ public class WaylineAlertServiceImpl implements IWaylineAlertService {
* @return 是否删除成功 * @return 是否删除成功
*/ */
@Override @Override
public Boolean deleteWaylineAlert(List<String> alertIdList, Boolean isValid) { public Boolean deleteBusinessAlert(List<String> alertIdList, Boolean isValid) {
if(isValid){ if(isValid){
if (ObjectUtil.isEmpty(alertIdList)){ if (ObjectUtil.isEmpty(alertIdList)){
throw new ServiceException("预警Id为空!"); throw new ServiceException("预警Id为空!");
} }
} }
return baseMapper.deleteByIds(alertIdList) > 0; return baseMapper.deleteByIds(alertIdList) > 0;
} }
private LambdaQueryWrapper<WaylineAlert> buildQueryWrapper(WaylineAlertBo bo) { private LambdaQueryWrapper<BusinessAlert> buildQueryWrapper(BusinessAlertBo bo) {
LambdaQueryWrapper<WaylineAlert> wrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<BusinessAlert> wrapper = Wrappers.lambdaQuery();
wrapper.orderByAsc(WaylineAlert::getCreateTime); wrapper.orderByAsc(BusinessAlert::getCreateTime);
return wrapper; return wrapper;
} }
} }

23
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasPointsServiceImpl.java

@ -0,0 +1,23 @@
package org.dromara.business.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.BusinessPatrolAreasPoints;
import org.dromara.business.mapper.BusinessPatrolAreasPointsMapper;
import org.dromara.business.service.IBusinessPatrolAreasPointsService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description: 巡查区域坐标
*/
@RequiredArgsConstructor
@Service
public class BusinessPatrolAreasPointsServiceImpl extends ServiceImpl<BusinessPatrolAreasPointsMapper, BusinessPatrolAreasPoints> implements IBusinessPatrolAreasPointsService {
@Override
public List<BusinessPatrolAreasPoints> listPatrolAreasPointByAreaId(String areaId) {
return baseMapper.listPatrolAreasPointByAreaId(areaId);
}
}

203
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasServiceImpl.java

@ -0,0 +1,203 @@
package org.dromara.business.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.business.domain.*;
import org.dromara.business.domain.bo.BusinessPatrolAreasBo;
import org.dromara.business.mapper.BusinessPatrolAreasMapper;
import org.dromara.business.mapper.BusinessPatrolAreasPlatformMapper;
import org.dromara.business.service.IBusinessPatrolAreasPointsService;
import org.dromara.business.service.IBusinessPatrolAreasService;
import org.dromara.business.service.IBusinessPatrolAreasUserService;
import org.dromara.business.service.IBusinessPlatformInfoService;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteDeptVo;
import org.dromara.system.api.model.LoginUser;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @Description: 巡查区域
*/
@RequiredArgsConstructor
@Service
public class BusinessPatrolAreasServiceImpl extends ServiceImpl<BusinessPatrolAreasMapper, BusinessPatrolAreas> implements IBusinessPatrolAreasService {
private final IBusinessPatrolAreasPointsService patrolAreasPointsService;
private final IBusinessPatrolAreasUserService patrolAreasUserService;
private final IBusinessPlatformInfoService platformInfoService;
private final BusinessPatrolAreasPlatformMapper patrolAreasPlatformInfoMapper;
@DubboReference
private RemoteUserService remoteUserService;
@DubboReference
private RemoteDeptService remoteDeptService;
@Override
public IPage<BusinessPatrolAreas> pagePatrolAreas(Page page, BusinessPatrolAreasBo patrolAreasBo) {
LoginUser user = LoginHelper.getLoginUser();
List<String> deptIds = new ArrayList<>();
String departIds = null;
if(StringUtils.isBlank(patrolAreasBo.getDeptId())){
RemoteDeptVo remoteDeptVo = remoteDeptService.selectDeptById(user.getDeptId());
if(ObjectUtil.isEmpty(remoteDeptVo)){
throw new ServiceException("部门不存在");
}
departIds = user.getDeptId() + "";
}else {
departIds = patrolAreasBo.getDeptId();
}
// if(oConvertUtils.isNotEmpty(user.getUserIdentity()) && user.getUserIdentity().equals( CommonConstant.USER_IDENTITY_2 )){
// if(StringUtils.isNotBlank(departIds)){
// deptIds.addAll(commonAPI.getMySubDepIdsStatusByDepId(departIds));
// }
// }else {
// deptIds.add(departIds);
// }
deptIds.add(departIds);
IPage<BusinessPatrolAreas> iPage = this.baseMapper.listPatrolAreas(page, patrolAreasBo, deptIds);
List<BusinessPatrolAreas> records = page.getRecords();
if(!records.isEmpty()){
records.forEach(p->{
QueryWrapper<BusinessPatrolAreasPlatform> queryWrapper = new QueryWrapper<BusinessPatrolAreasPlatform>();
queryWrapper.eq("patrol_areas_id",p.getId());
List<String> collect = patrolAreasPlatformInfoMapper.selectList(queryWrapper).stream().map(BusinessPatrolAreasPlatform::getPlatformType).collect(Collectors.toList());
p.setPatrolAreasIdList(collect);
});
}
page.setRecords(records);
return iPage;
}
@Override
public List<BusinessPatrolAreas> listPatrolAreas(BusinessPatrolAreasBo patrolAreasBo) {
return this.baseMapper.listPatrolAreas(patrolAreasBo, patrolAreasBo.getDeptIds());
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean addPatrolAreas(BusinessPatrolAreas patrolAreas) {
patrolAreas.setUserName(remoteUserService.selectUserNameById(Long.valueOf(patrolAreas.getUserId())));
boolean flag = this.save(patrolAreas);
List<BusinessPatrolAreasUser> patrolAreasUsers = patrolAreas.getPatrolAreasUsers();
patrolAreasUsers.stream().forEach(item->{
item.setAreaId(patrolAreas.getId());
item.setRealname(remoteUserService.selectUserNameById(Long.valueOf(patrolAreas.getUserId())));
});
List<String> patrolAreasIdList = patrolAreas.getPatrolAreasIdList();
if(!patrolAreasIdList.isEmpty()){
patrolAreasIdList.forEach(item->{
BusinessPlatformInfo platformInfo = platformInfoService.lambdaQuery().eq(BusinessPlatformInfo::getPlatformType,item).one();
BusinessPatrolAreasPlatform patrolAreasPlatformInfo =new BusinessPatrolAreasPlatform();
patrolAreasPlatformInfo.setPatrolAreasId(patrolAreas.getId());
patrolAreasPlatformInfo.setPlatformName(platformInfo.getPlatformName());
patrolAreasPlatformInfo.setPlatformType(platformInfo.getPlatformType());
patrolAreasPlatformInfo.setSort(platformInfo.getSort());
patrolAreasPlatformInfo.setImageUrl(platformInfo.getImageUrl());
patrolAreasPlatformInfoMapper.insert(patrolAreasPlatformInfo);
});
}
if(CollectionUtils.isNotEmpty(patrolAreasUsers)){
flag = patrolAreasUserService.saveBatch(patrolAreasUsers,500);
}
List<BusinessPatrolAreasPoints> patrolAreasPoints = patrolAreas.getPatrolAreasPoints();
patrolAreasPoints.stream().forEach(item->{
item.setAreaId(patrolAreas.getId());
});
if(CollectionUtils.isNotEmpty(patrolAreasPoints)) {
flag = patrolAreasPointsService.saveBatch(patrolAreasPoints, 500);
}
return flag;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updatePatrolAreas(BusinessPatrolAreas patrolAreas) {
patrolAreas.setUserName(remoteUserService.selectUserNameById(Long.valueOf(patrolAreas.getUserId())));
boolean flag = this.updateById(patrolAreas);
List<BusinessPatrolAreasUser> patrolAreasUsersDels = patrolAreasUserService.listPatrolAreasUserByAreaId(patrolAreas.getId());
List<BusinessPatrolAreasPoints> patrolAreasPointsDels = patrolAreasPointsService.listPatrolAreasPointByAreaId(patrolAreas.getId());
patrolAreasUserService.removeByIds(patrolAreasUsersDels);
patrolAreasPointsService.removeByIds(patrolAreasPointsDels);
//先删除后添加
QueryWrapper<BusinessPatrolAreasPlatform> queryWrapper = new QueryWrapper<BusinessPatrolAreasPlatform>();
queryWrapper.eq("patrol_areas_id",patrolAreas.getId());
Set<String> stringSet = patrolAreasPlatformInfoMapper.selectList(queryWrapper).stream().map(BusinessPatrolAreasPlatform::getId).collect(Collectors.toSet());
if(!stringSet.isEmpty()){
patrolAreasPlatformInfoMapper.deleteBatchIds(stringSet);
}
List<String> patrolAreasIdList = patrolAreas.getPatrolAreasIdList();
if(!patrolAreasIdList.isEmpty()){
patrolAreasIdList.forEach(item->{
BusinessPlatformInfo platformInfo = platformInfoService.lambdaQuery().eq(BusinessPlatformInfo::getPlatformType,item).one();
BusinessPatrolAreasPlatform patrolAreasPlatformInfo =new BusinessPatrolAreasPlatform();
patrolAreasPlatformInfo.setPatrolAreasId(patrolAreas.getId());
patrolAreasPlatformInfo.setPlatformName(platformInfo.getPlatformName());
patrolAreasPlatformInfo.setPlatformType(platformInfo.getPlatformType());
patrolAreasPlatformInfo.setSort(platformInfo.getSort());
patrolAreasPlatformInfo.setImageUrl(platformInfo.getImageUrl());
patrolAreasPlatformInfoMapper.insert(patrolAreasPlatformInfo);
});
}
List<BusinessPatrolAreasUser> patrolAreasUsers = patrolAreas.getPatrolAreasUsers();
patrolAreasUsers.stream().forEach(item->{
item.setAreaId(patrolAreas.getId());
});
if(CollectionUtils.isNotEmpty(patrolAreasUsers)){
flag = patrolAreasUserService.saveBatch(patrolAreasUsers,500);
}
List<BusinessPatrolAreasPoints> patrolAreasPoints = patrolAreas.getPatrolAreasPoints();
patrolAreasPoints.stream().forEach(item->{
item.setAreaId(patrolAreas.getId());
});
if(CollectionUtils.isNotEmpty(patrolAreasPoints)) {
flag = patrolAreasPointsService.saveBatch(patrolAreasPoints, 500);
}
return flag;
}
@Override
public List<BusinessPatrolAreas> exportXls(BusinessPatrolAreas patrolAreas) {
LambdaQueryWrapper<BusinessPatrolAreas> wrapper = buildWrapper(patrolAreas);
return this.list(wrapper);
}
private LambdaQueryWrapper<BusinessPatrolAreas> buildWrapper(BusinessPatrolAreas patrolAreas) {
LambdaQueryWrapper<BusinessPatrolAreas> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotEmpty(patrolAreas.getName())){
wrapper.eq(BusinessPatrolAreas::getName, patrolAreas.getName());
}
if (ObjectUtil.isNotEmpty(patrolAreas.getDeptId())){
wrapper.eq(BusinessPatrolAreas::getDeptId, patrolAreas.getDeptId());
}
return wrapper;
}
}

23
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPatrolAreasUserServiceImpl.java

@ -0,0 +1,23 @@
package org.dromara.business.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.BusinessPatrolAreasUser;
import org.dromara.business.mapper.BusinessPatrolAreasUserMapper;
import org.dromara.business.service.IBusinessPatrolAreasUserService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description: 巡查区域人员信息
*/
@RequiredArgsConstructor
@Service
public class BusinessPatrolAreasUserServiceImpl extends ServiceImpl<BusinessPatrolAreasUserMapper, BusinessPatrolAreasUser> implements IBusinessPatrolAreasUserService {
@Override
public List<BusinessPatrolAreasUser> listPatrolAreasUserByAreaId(String areaId) {
return baseMapper.listPatrolAreasUserByAreaId(areaId);
}
}

17
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessPlatformInfoServiceImpl.java

@ -0,0 +1,17 @@
package org.dromara.business.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.business.domain.BusinessPlatformInfo;
import org.dromara.business.mapper.BusinessPlatformInfoMapper;
import org.dromara.business.service.IBusinessPlatformInfoService;
import org.springframework.stereotype.Service;
/**
*
**/
@Service
public class BusinessPlatformInfoServiceImpl extends ServiceImpl<BusinessPlatformInfoMapper, BusinessPlatformInfo> implements IBusinessPlatformInfoService {
}

9
dk-modules/business/src/main/resources/mapper/business/WaylineAlertMapper.xml → dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml

@ -2,11 +2,12 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.business.mapper.WaylineAlertMapper"> <mapper namespace="org.dromara.business.mapper.BusinessAlertMapper">
<select id="pageAlert" resultType="org.dromara.business.domain.vo.WaylineAlertVo"> <select id="pageAlert" resultType="org.dromara.business.domain.vo.BusinessAlertVo">
select select
id, id,
instance_id,
wheel_id, wheel_id,
task_id, task_id,
task_image_id, task_image_id,
@ -43,8 +44,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
handle_source, handle_source,
create_by, create_by,
create_time create_time
from wayline_alert from business_alert
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>

55
dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasMapper.xml

@ -0,0 +1,55 @@
<?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.BusinessPatrolAreasMapper">
<resultMap id="listPatrolAreasMap" type="org.dromara.business.domain.BusinessPatrolAreas">
<result column="id" property="id" jdbcType="VARCHAR"/>
<result column="name" property="name" jdbcType="VARCHAR"/>
<result column="number" property="number" jdbcType="VARCHAR"/>
<result column="dept_id" property="deptId" jdbcType="VARCHAR"/>
<result column="dept_ids" property="deptIds" jdbcType="VARCHAR"/>
<result column="platform_type" property="platformType" jdbcType="VARCHAR"/>
<result column="dept_name" property="deptName" jdbcType="VARCHAR"/>
<result column="leader_dept_id" property="leaderDeptId" jdbcType="VARCHAR"/>
<result column="user_id" property="userId" jdbcType="VARCHAR"/>
<result column="user_name" property="userName" jdbcType="VARCHAR"/>
<result column="create_by" property="createBy" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<collection column="{areaId=id}"
property="patrolAreasUsers" ofType="org.dromara.business.domain.BusinessPatrolAreasUser"
javaType="java.util.ArrayList"
select="org.dromara.business.mapper.BusinessPatrolAreasUserMapper.listPatrolAreasUserByAreaId"/>
<collection column="{areaId=id}"
property="patrolAreasPoints" ofType="org.dromara.business.domain.BusinessPatrolAreasPoints"
javaType="java.util.ArrayList"
select="org.dromara.business.mapper.BusinessPatrolAreasPointsMapper.listPatrolAreasPointByAreaId"/>
</resultMap>
<select id="listPatrolAreas" resultMap="listPatrolAreasMap">
select pa.*,sd.dept_name as dept_name from business_patrol_areas pa
LEFT JOIN dk_cloud.sys_dept sd ON pa.dept_id = sd.dept_id
where
pa.del_flag = 0
<if test="deptIds.size > 0">
and pa.dept_id in
<foreach item="id" collection="deptIds" open="(" separator="," close=")">
#{id}
</foreach>
</if>
<if test="condition.name != null and condition.name != ''">
and pa.name LIKE concat(concat('%',#{condition.name}),'%')
</if>
<if test="condition.platformType != null and condition.platformType != ''">
AND pa.id IN (
SELECT api.patrol_areas_id
FROM business_patrol_areas_platform_info api
WHERE api.platform_type = 'plough'
)
</if>
<if test="condition.name != null and condition.name != ''">
and pa.name LIKE concat(concat('%',#{condition.name}),'%')
</if>
<if test="condition.isDisable != null and condition.isDisable != ''">
and pa.is_disable =#{condition.isDisable}
</if>
</select>
</mapper>

5
dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasPlatformMapper.xml

@ -0,0 +1,5 @@
<?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.BusinessPatrolAreasPlatformMapper">
</mapper>

11
dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasPointsMapper.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.BusinessPatrolAreasPointsMapper">
<select id="listPatrolAreasPointByAreaId" resultType="org.dromara.business.domain.BusinessPatrolAreasPoints">
select * from business_patrol_area_points po
where
po.del_flag = 0
and po.area_id = #{areaId}
order by po.sort_number asc
</select>
</mapper>

9
dk-modules/business/src/main/resources/mapper/business/BusinessPatrolAreasUserMapper.xml

@ -0,0 +1,9 @@
<?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.BusinessPatrolAreasUserMapper">
<select id="listPatrolAreasUserByAreaId" resultType="org.dromara.business.domain.BusinessPatrolAreasUser">
select * from business_patrol_area_users au
where au.del_flag = 0
and au.area_id = #{areaId}
</select>
</mapper>

10
dk-modules/business/src/main/resources/mapper/business/BusinessPlatformInfoCodeMapper.xml

@ -0,0 +1,10 @@
<?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.BusinessPlatformInfoCodeMapper">
<select id="listPlatformInfoCodeByPlatformInfoId" resultType="org.dromara.business.domain.BusinessPlatformInfoCode">
select * from business_platform_info_code
where
del_flag = 0
and platform_info_id = #{platformInfoId}
</select>
</mapper>

31
dk-modules/business/src/main/resources/mapper/business/BusinessPlatformInfoMapper.xml

@ -0,0 +1,31 @@
<?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.BusinessPlatformInfoMapper">
<resultMap id="listPlatformInfoMap" type="org.dromara.business.domain.BusinessPlatformInfo">
<result column="id" property="id" jdbcType="VARCHAR"/>
<result column="platform_name" property="platformName" jdbcType="VARCHAR"/>
<result column="platform_type" property="platformType" jdbcType="VARCHAR"/>
<result column="image_url" property="imageUrl" jdbcType="VARCHAR"/>
<result column="image_app_url" property="imageAppUrl" jdbcType="VARCHAR"/>
<result column="sort" property="sort"/>
<result column="create_by" property="createBy" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<collection column="{platformInfoId=id}"
property="platformInfoCodes" ofType="org.dromara.business.domain.BusinessPlatformInfoCode"
javaType="java.util.ArrayList"
select="org.dromara.business.mapper.BusinessPlatformInfoCodeMapper.listPlatformInfoCodeByPlatformInfoId"/>
</resultMap>
<select id="listPlatformInfo" resultMap="listPlatformInfoMap">
select * from business_platform_info
where
del_flag = 0
<if test="condition.search != null and condition.search != ''">
and (platform_name like concat(concat('%',#{condition.search}),'%')
or platform_type like concat(concat('%',#{condition.search}),'%')
)
</if>
order by sort asc
</select>
</mapper>

8
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java

@ -38,5 +38,13 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
public List<RemoteDeptVo> selectDeptsByList() { public List<RemoteDeptVo> selectDeptsByList() {
List<SysDeptVo> list = sysDeptService.selectDeptsSimple(); List<SysDeptVo> list = sysDeptService.selectDeptsSimple();
return BeanUtil.copyToList(list, RemoteDeptVo.class); return BeanUtil.copyToList(list, RemoteDeptVo.class);
}
@Override
public RemoteDeptVo selectDeptById(Long deptId) {
SysDeptVo sysDeptVo = sysDeptService.selectDeptById(deptId);
return BeanUtil.copyProperties(sysDeptVo, RemoteDeptVo.class);
} }
} }

5
dk-modules/workflow/pom.xml

@ -97,6 +97,11 @@
<groupId>org.dromara</groupId> <groupId>org.dromara</groupId>
<artifactId>api-workflow</artifactId> <artifactId>api-workflow</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>api-resource</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

54
dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@ -20,9 +20,13 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.core.utils.ValidatorUtils;
import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup; import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mail.utils.MailUtils;
import org.dromara.common.mybatis.core.page.PageQuery; 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.common.sse.dto.SseMessageDto;
import org.dromara.common.sse.utils.SseMessageUtils;
import org.dromara.resource.api.RemoteMessageService;
import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo; import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.dromara.warm.flow.core.dto.FlowParams; import org.dromara.warm.flow.core.dto.FlowParams;
@ -36,6 +40,7 @@ import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
import org.dromara.warm.flow.orm.mapper.FlowTaskMapper; import org.dromara.warm.flow.orm.mapper.FlowTaskMapper;
import org.dromara.workflow.api.domain.RemoteStartProcessReturn; import org.dromara.workflow.api.domain.RemoteStartProcessReturn;
import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.ConditionalOnEnable;
import org.dromara.workflow.common.enums.MessageTypeEnum;
import org.dromara.workflow.common.enums.TaskAssigneeType; import org.dromara.workflow.common.enums.TaskAssigneeType;
import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.common.enums.TaskStatusEnum;
import org.dromara.workflow.domain.bo.*; import org.dromara.workflow.domain.bo.*;
@ -52,6 +57,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.dromara.workflow.common.constant.FlowConstant.*; import static org.dromara.workflow.common.constant.FlowConstant.*;
@ -83,6 +90,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
@DubboReference @DubboReference
private RemoteUserService remoteUserService; private RemoteUserService remoteUserService;
@DubboReference(stub = "true")
private final RemoteMessageService remoteMessageService;
/** /**
* 启动任务 * 启动任务
* *
@ -170,7 +180,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
Instance instance = taskService.skip(taskId, flowParams); Instance instance = taskService.skip(taskId, flowParams);
this.setHandler(instance, flowTask, flowCopyList); this.setHandler(instance, flowTask, flowCopyList);
// 消息通知 // 消息通知
// WorkflowUtils.sendMessage(definition.getFlowName(), ins.getId(), messageType, notice); sendMessage(definition.getFlowName(), ins.getId(), messageType, notice);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
@ -178,6 +188,46 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
} }
} }
private void sendMessage(String flowName, Long instId, List<String> messageType, String message) {
List<RemoteUserVo> userList = new ArrayList<>();
List<FlowTask> list = this.selectByInstId(instId);
if (StringUtils.isBlank(message)) {
message = "有新的【" + flowName + "】单据已经提交至您,请您及时处理。";
}
for (Task task : list) {
List<RemoteUserVo> users = this.currentTaskAllUser(task.getId());
if (CollUtil.isNotEmpty(users)) {
userList.addAll(users);
}
}
if (CollUtil.isNotEmpty(userList)) {
for (String code : messageType) {
MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code);
if (ObjectUtil.isNotEmpty(messageTypeEnum)) {
switch (messageTypeEnum) {
case SYSTEM_MESSAGE:
SseMessageDto dto = new SseMessageDto();
dto.setUserIds(StreamUtils.toList(userList, RemoteUserVo::getUserId).stream().distinct().collect(Collectors.toList()));
dto.setMessage(message);
dto.getUserIds().forEach(userId -> {
remoteMessageService.publishMessage(userId,dto.getMessage());
});
break;
case EMAIL_MESSAGE:
MailUtils.sendText(StreamUtils.join(userList, RemoteUserVo::getEmail), "单据审批提醒", message);
break;
case SMS_MESSAGE:
//todo 短信发送
break;
default:
throw new IllegalStateException("Unexpected value: " + messageTypeEnum);
}
}
}
}
}
/** /**
* 设置办理人 * 设置办理人
* *
@ -397,7 +447,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
Instance instance = insService.getById(inst.getId()); Instance instance = insService.getById(inst.getId());
this.setHandler(instance, task, null); this.setHandler(instance, task, null);
// 消息通知 // 消息通知
// WorkflowUtils.sendMessage(definition.getFlowName(), instance.getId(), messageType, notice); sendMessage(definition.getFlowName(), instance.getId(), messageType, notice);
return true; return true;
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);

Loading…
Cancel
Save