23 changed files with 1713 additions and 15 deletions
@ -0,0 +1,99 @@ |
|||||
|
package org.dromara.business.controller; |
||||
|
|
||||
|
import jakarta.servlet.http.HttpServletResponse; |
||||
|
import jakarta.validation.constraints.NotEmpty; |
||||
|
import jakarta.validation.constraints.NotNull; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.dromara.business.domain.bo.WaylineAlertBo; |
||||
|
import org.dromara.business.domain.vo.WaylineAlertVo; |
||||
|
import org.dromara.business.service.IWaylineAlertService; |
||||
|
import org.dromara.common.core.domain.R; |
||||
|
import org.dromara.common.core.validate.AddGroup; |
||||
|
import org.dromara.common.core.validate.EditGroup; |
||||
|
import org.dromara.common.excel.utils.ExcelUtil; |
||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit; |
||||
|
import org.dromara.common.log.annotation.Log; |
||||
|
import org.dromara.common.log.enums.BusinessType; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
import org.dromara.common.web.core.BaseController; |
||||
|
import org.springframework.validation.annotation.Validated; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 预警任务 |
||||
|
* |
||||
|
* @author LionLi |
||||
|
* @date 2025-02-27 |
||||
|
*/ |
||||
|
@Validated |
||||
|
@RequiredArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/alert/task") |
||||
|
public class WaylineAlertController extends BaseController { |
||||
|
|
||||
|
private final IWaylineAlertService waylineAlertService; |
||||
|
|
||||
|
/** |
||||
|
* 查询预警任务列表 |
||||
|
*/ |
||||
|
@GetMapping("/page") |
||||
|
public TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo bo, PageQuery pageQuery) { |
||||
|
return waylineAlertService.pageWaylineAlert(bo, pageQuery); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 获取预警任务详细信息 |
||||
|
* |
||||
|
* @param alertId 主键 |
||||
|
*/ |
||||
|
@GetMapping("/{alertId}") |
||||
|
public R<WaylineAlertVo> getWaylineAlert(@NotNull(message = "主键不能为空") |
||||
|
@PathVariable String alertId) { |
||||
|
return R.ok(waylineAlertService.getWaylineAlert(alertId)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 新增预警任务 |
||||
|
*/ |
||||
|
@Log(title = "预警任务", businessType = BusinessType.INSERT) |
||||
|
@RepeatSubmit() |
||||
|
@PostMapping("/add") |
||||
|
public R<Void> addWaylineAlert(@Validated(AddGroup.class) @RequestBody WaylineAlertBo param) { |
||||
|
return toAjax(waylineAlertService.addWaylineAlert(param)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改预警任务 |
||||
|
*/ |
||||
|
@Log(title = "预警任务", businessType = BusinessType.UPDATE) |
||||
|
@RepeatSubmit() |
||||
|
@PostMapping("/update") |
||||
|
public R<Void> updateWaylineAlert(@Validated(EditGroup.class) @RequestBody WaylineAlertBo bo) { |
||||
|
return toAjax(waylineAlertService.updateWaylineAlert(bo)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 删除预警任务 |
||||
|
* |
||||
|
* @param alertIdList 主键串 |
||||
|
*/ |
||||
|
@Log(title = "预警任务", businessType = BusinessType.DELETE) |
||||
|
@DeleteMapping("/delete") |
||||
|
public R<Void> deleteWaylineAlert(@NotEmpty(message = "主键不能为空") |
||||
|
@RequestParam List<String> alertIdList) { |
||||
|
return toAjax(waylineAlertService.deleteWaylineAlert(alertIdList, true)); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 导出预警任务列表 |
||||
|
*/ |
||||
|
@Log(title = "预警任务", businessType = BusinessType.EXPORT) |
||||
|
@PostMapping("/export") |
||||
|
public void exportWaylineAlert(WaylineAlertBo bo, HttpServletResponse response) { |
||||
|
List<WaylineAlertVo> list = waylineAlertService.listWaylineAlert(bo); |
||||
|
ExcelUtil.exportExcel(list, "预警任务", WaylineAlertVo.class, response); |
||||
|
} |
||||
|
} |
@ -0,0 +1,202 @@ |
|||||
|
package org.dromara.business.domain; |
||||
|
|
||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity; |
||||
|
import com.baomidou.mybatisplus.annotation.*; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
import java.util.Date; |
||||
|
import com.fasterxml.jackson.annotation.JsonFormat; |
||||
|
|
||||
|
import java.io.Serial; |
||||
|
|
||||
|
/** |
||||
|
* 预警任务对象 wayline_alert |
||||
|
* |
||||
|
* @author LionLi |
||||
|
* @date 2025-02-27 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@TableName("wayline_alert") |
||||
|
public class WaylineAlert extends BaseEntity { |
||||
|
|
||||
|
@Serial |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
@TableId(value = "id") |
||||
|
private String id; |
||||
|
|
||||
|
/** |
||||
|
* 任务轮id |
||||
|
*/ |
||||
|
private String wheelId; |
||||
|
|
||||
|
/** |
||||
|
* 媒体id |
||||
|
*/ |
||||
|
private String taskId; |
||||
|
|
||||
|
/** |
||||
|
* 图片id |
||||
|
*/ |
||||
|
private String taskImageId; |
||||
|
|
||||
|
/** |
||||
|
* 处理原因 |
||||
|
*/ |
||||
|
private String reason; |
||||
|
|
||||
|
/** |
||||
|
* 图片文件 |
||||
|
*/ |
||||
|
private String images; |
||||
|
|
||||
|
/** |
||||
|
* 纬度 |
||||
|
*/ |
||||
|
private Long lat; |
||||
|
|
||||
|
/** |
||||
|
* 精度 |
||||
|
*/ |
||||
|
private Long lng; |
||||
|
|
||||
|
/** |
||||
|
* 任务类型 |
||||
|
*/ |
||||
|
private String taskHandleType; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 任务内容 |
||||
|
*/ |
||||
|
private String taskContent; |
||||
|
|
||||
|
/** |
||||
|
* 完成时间 |
||||
|
*/ |
||||
|
private Date completeDate; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 删除 0 正常 1已删除 |
||||
|
*/ |
||||
|
@TableLogic |
||||
|
private Long delFlag; |
||||
|
|
||||
|
/** |
||||
|
* 模板图片 |
||||
|
*/ |
||||
|
private String mateSourceImgUrl; |
||||
|
|
||||
|
/** |
||||
|
* 放大模板违建区域图片 |
||||
|
*/ |
||||
|
private String maxMateSourceImgUrl; |
||||
|
|
||||
|
/** |
||||
|
* 放大违建区域图片 |
||||
|
*/ |
||||
|
private String maxImages; |
||||
|
|
||||
|
/** |
||||
|
* 面积 |
||||
|
*/ |
||||
|
private Long area; |
||||
|
|
||||
|
/** |
||||
|
* 面积:长 |
||||
|
*/ |
||||
|
private Long areaL; |
||||
|
|
||||
|
/** |
||||
|
* 面积:宽 |
||||
|
*/ |
||||
|
private Long areaW; |
||||
|
|
||||
|
/** |
||||
|
* 0:验证 |
||||
|
*/ |
||||
|
private Long handleInType; |
||||
|
|
||||
|
/** |
||||
|
* 是否违建 0:否,1:是 |
||||
|
*/ |
||||
|
private Long isIllegal; |
||||
|
|
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
private String deptId; |
||||
|
|
||||
|
/** |
||||
|
* 部门名称 |
||||
|
*/ |
||||
|
private String deptName; |
||||
|
|
||||
|
/** |
||||
|
* 预警名称 |
||||
|
*/ |
||||
|
private String jobName; |
||||
|
|
||||
|
/** |
||||
|
* 处理时间 |
||||
|
*/ |
||||
|
private Date handleTime; |
||||
|
|
||||
|
/** |
||||
|
* 其他:内容 |
||||
|
*/ |
||||
|
private String taskHandle; |
||||
|
|
||||
|
/** |
||||
|
* 平台类型 |
||||
|
*/ |
||||
|
private String platformType; |
||||
|
|
||||
|
/** |
||||
|
* 像素坐标 |
||||
|
*/ |
||||
|
private String pixelCoordinate; |
||||
|
|
||||
|
/** |
||||
|
* 当前位置预警数量 |
||||
|
*/ |
||||
|
private Long handleNum; |
||||
|
|
||||
|
/** |
||||
|
* 国土所备注 |
||||
|
*/ |
||||
|
private String territoryRemark; |
||||
|
|
||||
|
/** |
||||
|
* 地类信息数据 |
||||
|
*/ |
||||
|
private String landCategories; |
||||
|
|
||||
|
/** |
||||
|
* 相关文件 |
||||
|
*/ |
||||
|
private String territoryUrl; |
||||
|
|
||||
|
/** |
||||
|
* 图片 |
||||
|
*/ |
||||
|
private String territoryPath; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 忽略原因 |
||||
|
*/ |
||||
|
private String ignoringCause; |
||||
|
|
||||
|
/** |
||||
|
* 来源:0:平台 1:小程序 |
||||
|
*/ |
||||
|
private Long handleSource; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,226 @@ |
|||||
|
package org.dromara.business.domain.bo; |
||||
|
|
||||
|
import org.dromara.business.domain.WaylineAlert; |
||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity; |
||||
|
import org.dromara.common.core.validate.AddGroup; |
||||
|
import org.dromara.common.core.validate.EditGroup; |
||||
|
import io.github.linpeilie.annotations.AutoMapper; |
||||
|
import lombok.Data; |
||||
|
import lombok.EqualsAndHashCode; |
||||
|
import jakarta.validation.constraints.*; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
/** |
||||
|
* 预警任务业务对象 wayline_alert |
||||
|
* |
||||
|
* @author LionLi |
||||
|
* @date 2025-02-27 |
||||
|
*/ |
||||
|
@Data |
||||
|
@EqualsAndHashCode(callSuper = true) |
||||
|
@AutoMapper(target = WaylineAlert.class, reverseConvertGenerate = false) |
||||
|
public class WaylineAlertBo extends BaseEntity { |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
@NotBlank(message = "不能为空", groups = { EditGroup.class }) |
||||
|
private String id; |
||||
|
|
||||
|
/** |
||||
|
* 任务轮id |
||||
|
*/ |
||||
|
@NotBlank(message = "任务轮id不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String wheelId; |
||||
|
|
||||
|
/** |
||||
|
* 媒体id |
||||
|
*/ |
||||
|
@NotBlank(message = "媒体id不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String taskId; |
||||
|
|
||||
|
/** |
||||
|
* 图片id |
||||
|
*/ |
||||
|
@NotBlank(message = "图片id不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String taskImageId; |
||||
|
|
||||
|
/** |
||||
|
* 处理原因 |
||||
|
*/ |
||||
|
@NotBlank(message = "处理原因不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String reason; |
||||
|
|
||||
|
/** |
||||
|
* 图片文件 |
||||
|
*/ |
||||
|
@NotBlank(message = "图片文件不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String images; |
||||
|
|
||||
|
/** |
||||
|
* 纬度 |
||||
|
*/ |
||||
|
@NotNull(message = "纬度不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long lat; |
||||
|
|
||||
|
/** |
||||
|
* 精度 |
||||
|
*/ |
||||
|
@NotNull(message = "精度不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long lng; |
||||
|
|
||||
|
/** |
||||
|
* 任务类型 |
||||
|
*/ |
||||
|
@NotBlank(message = "任务类型不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String taskHandleType; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 任务内容 |
||||
|
*/ |
||||
|
@NotBlank(message = "任务内容不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String taskContent; |
||||
|
|
||||
|
/** |
||||
|
* 完成时间 |
||||
|
*/ |
||||
|
@NotNull(message = "完成时间不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Date completeDate; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 模板图片 |
||||
|
*/ |
||||
|
@NotBlank(message = "模板图片不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String mateSourceImgUrl; |
||||
|
|
||||
|
/** |
||||
|
* 放大模板违建区域图片 |
||||
|
*/ |
||||
|
@NotBlank(message = "放大模板违建区域图片不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String maxMateSourceImgUrl; |
||||
|
|
||||
|
/** |
||||
|
* 放大违建区域图片 |
||||
|
*/ |
||||
|
@NotBlank(message = "放大违建区域图片不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String maxImages; |
||||
|
|
||||
|
/** |
||||
|
* 面积 |
||||
|
*/ |
||||
|
@NotNull(message = "面积不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long area; |
||||
|
|
||||
|
/** |
||||
|
* 面积:长 |
||||
|
*/ |
||||
|
@NotNull(message = "面积:长不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long areaL; |
||||
|
|
||||
|
/** |
||||
|
* 面积:宽 |
||||
|
*/ |
||||
|
@NotNull(message = "面积:宽不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long areaW; |
||||
|
|
||||
|
/** |
||||
|
* 0:验证 |
||||
|
*/ |
||||
|
@NotNull(message = "0:验证", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long handleInType; |
||||
|
|
||||
|
/** |
||||
|
* 是否违建 0:否,1:是 |
||||
|
*/ |
||||
|
@NotNull(message = "是否违建 0:否,1:是不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long isIllegal; |
||||
|
|
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
@NotBlank(message = "部门id不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String deptId; |
||||
|
|
||||
|
/** |
||||
|
* 部门名称 |
||||
|
*/ |
||||
|
@NotBlank(message = "部门名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String deptName; |
||||
|
|
||||
|
/** |
||||
|
* 预警名称 |
||||
|
*/ |
||||
|
@NotBlank(message = "预警名称不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String jobName; |
||||
|
|
||||
|
/** |
||||
|
* 处理时间 |
||||
|
*/ |
||||
|
@NotNull(message = "处理时间不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Date handleTime; |
||||
|
|
||||
|
/** |
||||
|
* 其他:内容 |
||||
|
*/ |
||||
|
@NotBlank(message = "其他:内容不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String taskHandle; |
||||
|
|
||||
|
/** |
||||
|
* 平台类型 |
||||
|
*/ |
||||
|
@NotBlank(message = "平台类型不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String platformType; |
||||
|
|
||||
|
/** |
||||
|
* 像素坐标 |
||||
|
*/ |
||||
|
@NotBlank(message = "像素坐标不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String pixelCoordinate; |
||||
|
|
||||
|
/** |
||||
|
* 当前位置预警数量 |
||||
|
*/ |
||||
|
@NotNull(message = "当前位置预警数量不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long handleNum; |
||||
|
|
||||
|
/** |
||||
|
* 国土所备注 |
||||
|
*/ |
||||
|
@NotBlank(message = "国土所备注不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String territoryRemark; |
||||
|
|
||||
|
/** |
||||
|
* 地类信息数据 |
||||
|
*/ |
||||
|
@NotBlank(message = "地类信息数据不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String landCategories; |
||||
|
|
||||
|
/** |
||||
|
* 相关文件 |
||||
|
*/ |
||||
|
@NotBlank(message = "相关文件不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String territoryUrl; |
||||
|
|
||||
|
/** |
||||
|
* 图片 |
||||
|
*/ |
||||
|
@NotBlank(message = "图片不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String territoryPath; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 忽略原因 |
||||
|
*/ |
||||
|
@NotBlank(message = "忽略原因不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private String ignoringCause; |
||||
|
|
||||
|
/** |
||||
|
* 来源:0:平台 1:小程序 |
||||
|
*/ |
||||
|
@NotNull(message = "来源:0:平台 1:小程序不能为空", groups = { AddGroup.class, EditGroup.class }) |
||||
|
private Long handleSource; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,229 @@ |
|||||
|
package org.dromara.business.domain.vo; |
||||
|
|
||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
||||
|
import com.alibaba.excel.annotation.ExcelProperty; |
||||
|
import io.github.linpeilie.annotations.AutoMapper; |
||||
|
import lombok.Data; |
||||
|
import org.dromara.business.domain.WaylineAlert; |
||||
|
|
||||
|
import java.io.Serial; |
||||
|
import java.io.Serializable; |
||||
|
import java.util.Date; |
||||
|
|
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 预警任务视图对象 wayline_alert |
||||
|
* |
||||
|
* @author LionLi |
||||
|
* @date 2025-02-27 |
||||
|
*/ |
||||
|
@Data |
||||
|
@ExcelIgnoreUnannotated |
||||
|
@AutoMapper(target = WaylineAlert.class) |
||||
|
public class WaylineAlertVo implements Serializable { |
||||
|
|
||||
|
@Serial |
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** |
||||
|
* |
||||
|
*/ |
||||
|
@ExcelProperty(value = "") |
||||
|
private String id; |
||||
|
|
||||
|
/** |
||||
|
* 任务轮id |
||||
|
*/ |
||||
|
@ExcelProperty(value = "任务轮id") |
||||
|
private String wheelId; |
||||
|
|
||||
|
/** |
||||
|
* 媒体id |
||||
|
*/ |
||||
|
@ExcelProperty(value = "媒体id") |
||||
|
private String taskId; |
||||
|
|
||||
|
/** |
||||
|
* 图片id |
||||
|
*/ |
||||
|
@ExcelProperty(value = "图片id") |
||||
|
private String taskImageId; |
||||
|
|
||||
|
/** |
||||
|
* 处理原因 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "处理原因") |
||||
|
private String reason; |
||||
|
|
||||
|
/** |
||||
|
* 图片文件 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "图片文件") |
||||
|
private String images; |
||||
|
|
||||
|
/** |
||||
|
* 纬度 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "纬度") |
||||
|
private Long lat; |
||||
|
|
||||
|
/** |
||||
|
* 精度 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "精度") |
||||
|
private Long lng; |
||||
|
|
||||
|
/** |
||||
|
* 任务类型 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "任务类型") |
||||
|
private String taskHandleType; |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 任务内容 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "任务内容") |
||||
|
private String taskContent; |
||||
|
|
||||
|
/** |
||||
|
* 完成时间 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "完成时间") |
||||
|
private Date completeDate; |
||||
|
|
||||
|
/** |
||||
|
* 模板图片 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "模板图片") |
||||
|
private String mateSourceImgUrl; |
||||
|
|
||||
|
/** |
||||
|
* 放大模板违建区域图片 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "放大模板违建区域图片") |
||||
|
private String maxMateSourceImgUrl; |
||||
|
|
||||
|
/** |
||||
|
* 放大违建区域图片 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "放大违建区域图片") |
||||
|
private String maxImages; |
||||
|
|
||||
|
/** |
||||
|
* 面积 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "面积") |
||||
|
private Long area; |
||||
|
|
||||
|
/** |
||||
|
* 面积:长 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "面积:长") |
||||
|
private Long areaL; |
||||
|
|
||||
|
/** |
||||
|
* 面积:宽 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "面积:宽") |
||||
|
private Long areaW; |
||||
|
|
||||
|
/** |
||||
|
* 0:验证 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "0:验证") |
||||
|
private Long handleInType; |
||||
|
|
||||
|
/** |
||||
|
* 是否违建 0:否,1:是 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "是否违建 0:否,1:是") |
||||
|
private Long isIllegal; |
||||
|
|
||||
|
/** |
||||
|
* 部门id |
||||
|
*/ |
||||
|
@ExcelProperty(value = "部门id") |
||||
|
private String deptId; |
||||
|
|
||||
|
/** |
||||
|
* 部门名称 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "部门名称") |
||||
|
private String deptName; |
||||
|
|
||||
|
/** |
||||
|
* 预警名称 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "预警名称") |
||||
|
private String jobName; |
||||
|
|
||||
|
/** |
||||
|
* 处理时间 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "处理时间") |
||||
|
private Date handleTime; |
||||
|
|
||||
|
/** |
||||
|
* 其他:内容 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "其他:内容") |
||||
|
private String taskHandle; |
||||
|
|
||||
|
/** |
||||
|
* 平台类型 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "平台类型") |
||||
|
private String platformType; |
||||
|
|
||||
|
/** |
||||
|
* 像素坐标 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "像素坐标") |
||||
|
private String pixelCoordinate; |
||||
|
|
||||
|
/** |
||||
|
* 当前位置预警数量 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "当前位置预警数量") |
||||
|
private Long handleNum; |
||||
|
|
||||
|
/** |
||||
|
* 国土所备注 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "国土所备注") |
||||
|
private String territoryRemark; |
||||
|
|
||||
|
/** |
||||
|
* 地类信息数据 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "地类信息数据") |
||||
|
private String landCategories; |
||||
|
|
||||
|
/** |
||||
|
* 相关文件 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "相关文件") |
||||
|
private String territoryUrl; |
||||
|
|
||||
|
/** |
||||
|
* 图片 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "图片") |
||||
|
private String territoryPath; |
||||
|
|
||||
|
/** |
||||
|
* 忽略原因 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "忽略原因") |
||||
|
private String ignoringCause; |
||||
|
|
||||
|
/** |
||||
|
* 来源:0:平台 1:小程序 |
||||
|
*/ |
||||
|
@ExcelProperty(value = "来源:0:平台 1:小程序") |
||||
|
private Long handleSource; |
||||
|
|
||||
|
|
||||
|
} |
@ -0,0 +1,18 @@ |
|||||
|
package org.dromara.business.mapper; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
import org.dromara.business.domain.WaylineAlert; |
||||
|
import org.dromara.business.domain.vo.WaylineAlertVo; |
||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; |
||||
|
|
||||
|
/** |
||||
|
* 预警任务Mapper接口 |
||||
|
* |
||||
|
* @author LionLi |
||||
|
* @date 2025-02-27 |
||||
|
*/ |
||||
|
public interface WaylineAlertMapper extends BaseMapperPlus<WaylineAlert, WaylineAlertVo> { |
||||
|
|
||||
|
Page<WaylineAlertVo> pageAlert(Page<WaylineAlertVo> page, LambdaQueryWrapper<WaylineAlert> lqw); |
||||
|
} |
@ -0,0 +1,78 @@ |
|||||
|
package org.dromara.business.service; |
||||
|
|
||||
|
import org.dromara.business.domain.WaylineAlert; |
||||
|
import org.dromara.business.domain.vo.WaylineAlertVo; |
||||
|
import org.dromara.business.domain.bo.WaylineAlertBo; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
|
||||
|
import java.util.Collection; |
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 预警任务Service接口 |
||||
|
* |
||||
|
* @author LionLi |
||||
|
* @date 2025-02-27 |
||||
|
*/ |
||||
|
public interface IWaylineAlertService { |
||||
|
|
||||
|
/** |
||||
|
* 查询预警任务 |
||||
|
* |
||||
|
* @param id 主键 |
||||
|
* @return 预警任务 |
||||
|
*/ |
||||
|
WaylineAlertVo getWaylineAlert(String id); |
||||
|
|
||||
|
/** |
||||
|
* 分页查询预警任务列表 |
||||
|
* |
||||
|
* @param bo 查询条件 |
||||
|
* @param pageQuery 分页参数 |
||||
|
* @return 预警任务分页列表 |
||||
|
*/ |
||||
|
TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo bo, PageQuery pageQuery); |
||||
|
|
||||
|
/** |
||||
|
* 查询符合条件的预警任务列表 |
||||
|
* |
||||
|
* @param param 查询条件 |
||||
|
* @return 预警任务列表 |
||||
|
*/ |
||||
|
List<WaylineAlertVo> listWaylineAlert(WaylineAlertBo param); |
||||
|
|
||||
|
/** |
||||
|
* 新增预警任务 |
||||
|
* |
||||
|
* @param param 预警任务 |
||||
|
* @return 是否新增成功 |
||||
|
*/ |
||||
|
Boolean addWaylineAlert(WaylineAlertBo param); |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 批量新增预警任务 |
||||
|
* |
||||
|
* @param alertList 预警任务 |
||||
|
* @return 是否新增成功 |
||||
|
*/ |
||||
|
Boolean saveBatchAlert(List<WaylineAlert> alertList); |
||||
|
|
||||
|
/** |
||||
|
* 修改预警任务 |
||||
|
* |
||||
|
* @param param 预警任务 |
||||
|
* @return 是否修改成功 |
||||
|
*/ |
||||
|
Boolean updateWaylineAlert(WaylineAlertBo param); |
||||
|
|
||||
|
/** |
||||
|
* 校验并批量删除预警任务信息 |
||||
|
* |
||||
|
* @param alertIdList 待删除的主键集合 |
||||
|
* @param isValid 是否进行有效性校验 |
||||
|
* @return 是否删除成功 |
||||
|
*/ |
||||
|
Boolean deleteWaylineAlert(List<String> alertIdList, Boolean isValid); |
||||
|
} |
@ -0,0 +1,141 @@ |
|||||
|
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.toolkit.Wrappers; |
||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.dromara.business.domain.WaylineAlert; |
||||
|
import org.dromara.business.domain.bo.WaylineAlertBo; |
||||
|
import org.dromara.business.domain.vo.WaylineAlertVo; |
||||
|
import org.dromara.business.mapper.WaylineAlertMapper; |
||||
|
import org.dromara.business.service.IWaylineAlertService; |
||||
|
import org.dromara.common.core.exception.ServiceException; |
||||
|
import org.dromara.common.core.utils.MapstructUtils; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 预警任务Service业务层处理 |
||||
|
* |
||||
|
* @author LionLi |
||||
|
* @date 2025-02-27 |
||||
|
*/ |
||||
|
@RequiredArgsConstructor |
||||
|
@Service |
||||
|
public class WaylineAlertServiceImpl implements IWaylineAlertService { |
||||
|
|
||||
|
private final WaylineAlertMapper baseMapper; |
||||
|
|
||||
|
/** |
||||
|
* 查询预警任务 |
||||
|
* |
||||
|
* @param id 主键 |
||||
|
* @return 预警任务 |
||||
|
*/ |
||||
|
@Override |
||||
|
public WaylineAlertVo getWaylineAlert(String id){ |
||||
|
return baseMapper.selectVoById(id); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 分页查询预警任务列表 |
||||
|
* |
||||
|
* @param param 查询条件 |
||||
|
* @param pageQuery 分页参数 |
||||
|
* @return 预警任务分页列表 |
||||
|
*/ |
||||
|
@Override |
||||
|
public TableDataInfo<WaylineAlertVo> pageWaylineAlert(WaylineAlertBo param, PageQuery pageQuery) { |
||||
|
LambdaQueryWrapper<WaylineAlert> lqw = buildQueryWrapper(param); |
||||
|
Page<WaylineAlertVo> result = baseMapper.pageAlert(pageQuery.build(), lqw); |
||||
|
return TableDataInfo.build(result); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 查询符合条件的预警任务列表 |
||||
|
* |
||||
|
* @param param 查询条件 |
||||
|
* @return 预警任务列表 |
||||
|
*/ |
||||
|
@Override |
||||
|
public List<WaylineAlertVo> listWaylineAlert(WaylineAlertBo param) { |
||||
|
LambdaQueryWrapper<WaylineAlert> lqw = buildQueryWrapper(param); |
||||
|
return baseMapper.selectVoList(lqw); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 新增预警任务 |
||||
|
* |
||||
|
* @param param 预警任务 |
||||
|
* @return 是否新增成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean addWaylineAlert(WaylineAlertBo param) { |
||||
|
WaylineAlert alert = MapstructUtils.convert(param, WaylineAlert.class); |
||||
|
validEntityBeforeSave(alert,false); |
||||
|
return this.baseMapper.insert(alert) > 0; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 批量添加 |
||||
|
* @param alertList 预警任务 |
||||
|
* @return |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean saveBatchAlert(List<WaylineAlert> alertList) { |
||||
|
return this.baseMapper.insertBatch(alertList); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 修改预警任务 |
||||
|
* |
||||
|
* @param param 预警任务 |
||||
|
* @return 是否修改成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean updateWaylineAlert(WaylineAlertBo param) { |
||||
|
WaylineAlert alert = MapstructUtils.convert(param, WaylineAlert.class); |
||||
|
validEntityBeforeSave(alert,true); |
||||
|
return baseMapper.updateById(alert) > 0; |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 保存前的数据校验 |
||||
|
*/ |
||||
|
private void validEntityBeforeSave(WaylineAlert alert,Boolean validId){ |
||||
|
if (ObjectUtil.isEmpty(alert.getId())){ |
||||
|
throw new ServiceException("预警【Id】为空!"); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 校验并批量删除预警任务信息 |
||||
|
* |
||||
|
* @param alertIdList 待删除的主键集合 |
||||
|
* @param isValid 是否进行有效性校验 |
||||
|
* @return 是否删除成功 |
||||
|
*/ |
||||
|
@Override |
||||
|
public Boolean deleteWaylineAlert(List<String> alertIdList, Boolean isValid) { |
||||
|
if(isValid){ |
||||
|
if (ObjectUtil.isEmpty(alertIdList)){ |
||||
|
throw new ServiceException("预警Id为空!"); |
||||
|
} |
||||
|
} |
||||
|
return baseMapper.deleteByIds(alertIdList) > 0; |
||||
|
} |
||||
|
|
||||
|
private LambdaQueryWrapper<WaylineAlert> buildQueryWrapper(WaylineAlertBo bo) { |
||||
|
LambdaQueryWrapper<WaylineAlert> wrapper = Wrappers.lambdaQuery(); |
||||
|
|
||||
|
|
||||
|
wrapper.orderByAsc(WaylineAlert::getCreateTime); |
||||
|
return wrapper; |
||||
|
} |
||||
|
} |
@ -0,0 +1,51 @@ |
|||||
|
<?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.WaylineAlertMapper"> |
||||
|
|
||||
|
<select id="pageAlert" resultType="org.dromara.business.domain.vo.WaylineAlertVo"> |
||||
|
select |
||||
|
id, |
||||
|
wheel_id, |
||||
|
task_id, |
||||
|
task_image_id, |
||||
|
reason, |
||||
|
images, |
||||
|
lat, |
||||
|
lng, |
||||
|
task_handle_type, |
||||
|
task_content, |
||||
|
complete_date, |
||||
|
handle_type, |
||||
|
del_flag, |
||||
|
mate_source_img_url, |
||||
|
max_mate_source_img_url, |
||||
|
max_images, |
||||
|
area, |
||||
|
area_l, |
||||
|
area_w, |
||||
|
handle_in_type, |
||||
|
is_illegal, |
||||
|
dept_id, |
||||
|
dept_name, |
||||
|
job_name, |
||||
|
handle_time, |
||||
|
task_handle, |
||||
|
platform_type, |
||||
|
pixel_coordinate, |
||||
|
handle_num, |
||||
|
territory_remark, |
||||
|
land_categories, |
||||
|
territory_url, |
||||
|
territory_path, |
||||
|
ignoring_cause, |
||||
|
handle_source, |
||||
|
create_by, |
||||
|
create_time |
||||
|
from wayline_alert |
||||
|
${ew.customSqlSegment} |
||||
|
</select> |
||||
|
|
||||
|
|
||||
|
</mapper> |
@ -0,0 +1,170 @@ |
|||||
|
package org.dromara.system.dubbo; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
import lombok.RequiredArgsConstructor; |
||||
|
import org.apache.dubbo.config.annotation.DubboService; |
||||
|
import org.dromara.common.core.constant.SystemConstants; |
||||
|
import org.dromara.common.core.utils.StreamUtils; |
||||
|
import org.dromara.common.core.utils.StringUtils; |
||||
|
import org.dromara.common.mybatis.core.page.PageQuery; |
||||
|
import org.dromara.system.api.RemoteTaskAssigneeService; |
||||
|
import org.dromara.system.api.domain.bo.RemoteTaskAssigneeBo; |
||||
|
import org.dromara.system.api.domain.vo.RemoteTaskAssigneeVo; |
||||
|
import org.dromara.system.domain.SysDept; |
||||
|
import org.dromara.system.domain.SysPost; |
||||
|
import org.dromara.system.domain.SysRole; |
||||
|
import org.dromara.system.domain.SysUser; |
||||
|
import org.dromara.system.domain.vo.SysDeptVo; |
||||
|
import org.dromara.system.domain.vo.SysPostVo; |
||||
|
import org.dromara.system.domain.vo.SysRoleVo; |
||||
|
import org.dromara.system.domain.vo.SysUserVo; |
||||
|
import org.dromara.system.mapper.SysDeptMapper; |
||||
|
import org.dromara.system.mapper.SysPostMapper; |
||||
|
import org.dromara.system.mapper.SysRoleMapper; |
||||
|
import org.dromara.system.mapper.SysUserMapper; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* 工作流设计器获取任务执行人 |
||||
|
* |
||||
|
* @author Lion Li |
||||
|
*/ |
||||
|
@RequiredArgsConstructor |
||||
|
@Service |
||||
|
@DubboService |
||||
|
public class RemoteTaskAssigneeServiceImpl implements RemoteTaskAssigneeService { |
||||
|
|
||||
|
private final SysPostMapper postMapper; |
||||
|
private final SysDeptMapper deptMapper; |
||||
|
private final SysUserMapper userMapper; |
||||
|
private final SysRoleMapper roleMapper; |
||||
|
|
||||
|
/** |
||||
|
* 查询角色并返回任务指派的列表,支持分页 |
||||
|
* |
||||
|
* @param taskQuery 查询条件 |
||||
|
* @return 办理人 |
||||
|
*/ |
||||
|
@Override |
||||
|
public RemoteTaskAssigneeVo selectRolesByTaskAssigneeList(RemoteTaskAssigneeBo taskQuery) { |
||||
|
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); |
||||
|
QueryWrapper<SysRole> wrapper = Wrappers.query(); |
||||
|
wrapper.eq("r.del_flag", SystemConstants.NORMAL) |
||||
|
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "r.role_name", taskQuery.getHandlerCode()) |
||||
|
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "r.role_key", taskQuery.getHandlerName()) |
||||
|
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), |
||||
|
"r.create_time", taskQuery.getBeginTime(), taskQuery.getEndTime()) |
||||
|
.orderByAsc("r.role_sort").orderByAsc("r.create_time"); |
||||
|
Page<SysRoleVo> page = roleMapper.selectPageRoleList(pageQuery.build(), wrapper); |
||||
|
// 使用封装的字段映射方法进行转换
|
||||
|
List<RemoteTaskAssigneeVo.TaskHandler> handlers = RemoteTaskAssigneeVo.convertToHandlerList(page.getRecords(), |
||||
|
SysRoleVo::getRoleId, SysRoleVo::getRoleKey, SysRoleVo::getRoleName, null, SysRoleVo::getCreateTime); |
||||
|
return new RemoteTaskAssigneeVo(page.getTotal(), handlers); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询岗位并返回任务指派的列表,支持分页 |
||||
|
* |
||||
|
* @param taskQuery 查询条件 |
||||
|
* @return 办理人 |
||||
|
*/ |
||||
|
@Override |
||||
|
public RemoteTaskAssigneeVo selectPostsByTaskAssigneeList(RemoteTaskAssigneeBo taskQuery) { |
||||
|
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); |
||||
|
LambdaQueryWrapper<SysPost> wrapper = Wrappers.<SysPost>lambdaQuery() |
||||
|
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysPost::getPostCategory, taskQuery.getHandlerCode()) |
||||
|
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysPost::getPostName, taskQuery.getHandlerName()) |
||||
|
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), |
||||
|
SysPost::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime()); |
||||
|
if (StringUtils.isNotBlank(taskQuery.getGroupId())) { |
||||
|
Long belongDeptId = Long.valueOf(taskQuery.getGroupId()); |
||||
|
wrapper.and(x -> { |
||||
|
List<SysDept> deptList = deptMapper.selectListByParentId(belongDeptId); |
||||
|
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); |
||||
|
deptIds.add(belongDeptId); |
||||
|
x.in(SysPost::getDeptId, deptIds); |
||||
|
}); |
||||
|
} |
||||
|
Page<SysPostVo> page = postMapper.selectPagePostList(pageQuery.build(), wrapper); |
||||
|
// 使用封装的字段映射方法进行转换
|
||||
|
List<RemoteTaskAssigneeVo.TaskHandler> handlers = RemoteTaskAssigneeVo.convertToHandlerList(page.getRecords(), |
||||
|
SysPostVo::getPostId, SysPostVo::getPostCategory, SysPostVo::getPostName, SysPostVo::getDeptId, SysPostVo::getCreateTime); |
||||
|
return new RemoteTaskAssigneeVo(page.getTotal(), handlers); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 查询部门并返回任务指派的列表,支持分页 |
||||
|
* |
||||
|
* @param taskQuery 查询条件 |
||||
|
* @return 办理人 |
||||
|
*/ |
||||
|
@Override |
||||
|
public RemoteTaskAssigneeVo selectDeptsByTaskAssigneeList(RemoteTaskAssigneeBo taskQuery) { |
||||
|
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); |
||||
|
LambdaQueryWrapper<SysDept> wrapper = Wrappers.<SysDept>lambdaQuery() |
||||
|
.eq(SysDept::getDelFlag, SystemConstants.NORMAL) |
||||
|
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), SysDept::getDeptCategory, taskQuery.getHandlerCode()) |
||||
|
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), SysDept::getDeptName, taskQuery.getHandlerName()) |
||||
|
.between(StringUtils.isNotBlank(taskQuery.getBeginTime()) && StringUtils.isNotBlank(taskQuery.getEndTime()), |
||||
|
SysDept::getCreateTime, taskQuery.getBeginTime(), taskQuery.getEndTime()) |
||||
|
.orderByAsc(SysDept::getAncestors) |
||||
|
.orderByAsc(SysDept::getParentId) |
||||
|
.orderByAsc(SysDept::getOrderNum) |
||||
|
.orderByAsc(SysDept::getDeptId); |
||||
|
if (StringUtils.isNotBlank(taskQuery.getGroupId())) { |
||||
|
//部门树搜索
|
||||
|
wrapper.and(x -> { |
||||
|
Long parentId = Long.valueOf(taskQuery.getGroupId()); |
||||
|
List<SysDept> deptList = deptMapper.selectListByParentId(parentId); |
||||
|
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); |
||||
|
deptIds.add(parentId); |
||||
|
x.in(SysDept::getDeptId, deptIds); |
||||
|
}); |
||||
|
} |
||||
|
Page<SysDeptVo> page = deptMapper.selectPageDeptList(pageQuery.build(), wrapper); |
||||
|
// 使用封装的字段映射方法进行转换
|
||||
|
List<RemoteTaskAssigneeVo.TaskHandler> handlers = RemoteTaskAssigneeVo.convertToHandlerList(page.getRecords(), |
||||
|
SysDeptVo::getDeptId, SysDeptVo::getDeptCategory, SysDeptVo::getDeptName, SysDeptVo::getParentId, SysDeptVo::getCreateTime); |
||||
|
return new RemoteTaskAssigneeVo(page.getTotal(), handlers); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
* 查询用户并返回任务指派的列表,支持分页 |
||||
|
* |
||||
|
* @param taskQuery 查询条件 |
||||
|
* @return 办理人 |
||||
|
*/ |
||||
|
@Override |
||||
|
public RemoteTaskAssigneeVo selectUsersByTaskAssigneeList(RemoteTaskAssigneeBo taskQuery) { |
||||
|
PageQuery pageQuery = new PageQuery(taskQuery.getPageSize(), taskQuery.getPageNum()); |
||||
|
QueryWrapper<SysUser> wrapper = Wrappers.query(); |
||||
|
wrapper.eq("u.del_flag", SystemConstants.NORMAL) |
||||
|
.like(StringUtils.isNotBlank(taskQuery.getHandlerCode()), "u.user_name", taskQuery.getHandlerCode()) |
||||
|
.like(StringUtils.isNotBlank(taskQuery.getHandlerName()), "u.nick_name", taskQuery.getHandlerName()) |
||||
|
.between(taskQuery.getBeginTime() != null && taskQuery.getEndTime() != null, |
||||
|
"u.create_time", taskQuery.getBeginTime(), taskQuery.getEndTime()) |
||||
|
.orderByAsc("u.user_id"); |
||||
|
if (StringUtils.isNotBlank(taskQuery.getGroupId())) { |
||||
|
//部门树搜索
|
||||
|
wrapper.and(x -> { |
||||
|
Long parentId = Long.valueOf(taskQuery.getGroupId()); |
||||
|
List<SysDept> deptList = deptMapper.selectListByParentId(parentId); |
||||
|
List<Long> deptIds = StreamUtils.toList(deptList, SysDept::getDeptId); |
||||
|
deptIds.add(parentId); |
||||
|
x.in("u.dept_id", deptIds); |
||||
|
}); |
||||
|
} |
||||
|
Page<SysUserVo> page = userMapper.selectPageUserList(pageQuery.build(), wrapper); |
||||
|
// 使用封装的字段映射方法进行转换
|
||||
|
List<RemoteTaskAssigneeVo.TaskHandler> handlers = RemoteTaskAssigneeVo.convertToHandlerList(page.getRecords(), |
||||
|
SysUserVo::getUserId, SysUserVo::getUserName, SysUserVo::getNickName, SysUserVo::getDeptId, SysUserVo::getCreateTime); |
||||
|
return new RemoteTaskAssigneeVo(page.getTotal(), handlers); |
||||
|
} |
||||
|
|
||||
|
} |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 5.4 KiB |
@ -0,0 +1,216 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html> |
||||
|
|
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
||||
|
<meta name="renderer" content="webkit"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
||||
|
<link rel="icon" href="./ico/favicon-FqvijpIH.ico"> |
||||
|
<title>Warm-Flow设计器</title> |
||||
|
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> |
||||
|
<style> |
||||
|
html, |
||||
|
body, |
||||
|
#app { |
||||
|
height: 100%; |
||||
|
margin: 0px; |
||||
|
padding: 0px; |
||||
|
} |
||||
|
|
||||
|
.chromeframe { |
||||
|
margin: 0.2em 0; |
||||
|
background: #ccc; |
||||
|
color: #000; |
||||
|
padding: 0.2em 0; |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper { |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
left: 0; |
||||
|
width: 100%; |
||||
|
height: 100%; |
||||
|
z-index: 999999; |
||||
|
} |
||||
|
|
||||
|
#loader { |
||||
|
display: block; |
||||
|
position: relative; |
||||
|
left: 50%; |
||||
|
top: 50%; |
||||
|
width: 150px; |
||||
|
height: 150px; |
||||
|
margin: -75px 0 0 -75px; |
||||
|
border-radius: 50%; |
||||
|
border: 3px solid transparent; |
||||
|
border-top-color: #FFF; |
||||
|
-webkit-animation: spin 2s linear infinite; |
||||
|
-ms-animation: spin 2s linear infinite; |
||||
|
-moz-animation: spin 2s linear infinite; |
||||
|
-o-animation: spin 2s linear infinite; |
||||
|
animation: spin 2s linear infinite; |
||||
|
z-index: 1001; |
||||
|
} |
||||
|
|
||||
|
#loader:before { |
||||
|
content: ""; |
||||
|
position: absolute; |
||||
|
top: 5px; |
||||
|
left: 5px; |
||||
|
right: 5px; |
||||
|
bottom: 5px; |
||||
|
border-radius: 50%; |
||||
|
border: 3px solid transparent; |
||||
|
border-top-color: #FFF; |
||||
|
-webkit-animation: spin 3s linear infinite; |
||||
|
-moz-animation: spin 3s linear infinite; |
||||
|
-o-animation: spin 3s linear infinite; |
||||
|
-ms-animation: spin 3s linear infinite; |
||||
|
animation: spin 3s linear infinite; |
||||
|
} |
||||
|
|
||||
|
#loader:after { |
||||
|
content: ""; |
||||
|
position: absolute; |
||||
|
top: 15px; |
||||
|
left: 15px; |
||||
|
right: 15px; |
||||
|
bottom: 15px; |
||||
|
border-radius: 50%; |
||||
|
border: 3px solid transparent; |
||||
|
border-top-color: #FFF; |
||||
|
-moz-animation: spin 1.5s linear infinite; |
||||
|
-o-animation: spin 1.5s linear infinite; |
||||
|
-ms-animation: spin 1.5s linear infinite; |
||||
|
-webkit-animation: spin 1.5s linear infinite; |
||||
|
animation: spin 1.5s linear infinite; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@-webkit-keyframes spin { |
||||
|
0% { |
||||
|
-webkit-transform: rotate(0deg); |
||||
|
-ms-transform: rotate(0deg); |
||||
|
transform: rotate(0deg); |
||||
|
} |
||||
|
|
||||
|
100% { |
||||
|
-webkit-transform: rotate(360deg); |
||||
|
-ms-transform: rotate(360deg); |
||||
|
transform: rotate(360deg); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@keyframes spin { |
||||
|
0% { |
||||
|
-webkit-transform: rotate(0deg); |
||||
|
-ms-transform: rotate(0deg); |
||||
|
transform: rotate(0deg); |
||||
|
} |
||||
|
|
||||
|
100% { |
||||
|
-webkit-transform: rotate(360deg); |
||||
|
-ms-transform: rotate(360deg); |
||||
|
transform: rotate(360deg); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
#loader-wrapper .loader-section { |
||||
|
position: fixed; |
||||
|
top: 0; |
||||
|
width: 51%; |
||||
|
height: 100%; |
||||
|
background: #7171C6; |
||||
|
z-index: 1000; |
||||
|
-webkit-transform: translateX(0); |
||||
|
-ms-transform: translateX(0); |
||||
|
transform: translateX(0); |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .loader-section.section-left { |
||||
|
left: 0; |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .loader-section.section-right { |
||||
|
right: 0; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
.loaded #loader-wrapper .loader-section.section-left { |
||||
|
-webkit-transform: translateX(-100%); |
||||
|
-ms-transform: translateX(-100%); |
||||
|
transform: translateX(-100%); |
||||
|
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); |
||||
|
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); |
||||
|
} |
||||
|
|
||||
|
.loaded #loader-wrapper .loader-section.section-right { |
||||
|
-webkit-transform: translateX(100%); |
||||
|
-ms-transform: translateX(100%); |
||||
|
transform: translateX(100%); |
||||
|
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); |
||||
|
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000); |
||||
|
} |
||||
|
|
||||
|
.loaded #loader { |
||||
|
opacity: 0; |
||||
|
-webkit-transition: all 0.3s ease-out; |
||||
|
transition: all 0.3s ease-out; |
||||
|
} |
||||
|
|
||||
|
.loaded #loader-wrapper { |
||||
|
visibility: hidden; |
||||
|
-webkit-transform: translateY(-100%); |
||||
|
-ms-transform: translateY(-100%); |
||||
|
transform: translateY(-100%); |
||||
|
-webkit-transition: all 0.3s 1s ease-out; |
||||
|
transition: all 0.3s 1s ease-out; |
||||
|
} |
||||
|
|
||||
|
.no-js #loader-wrapper { |
||||
|
display: none; |
||||
|
} |
||||
|
|
||||
|
.no-js h1 { |
||||
|
color: #222222; |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .load_title { |
||||
|
font-family: 'Open Sans'; |
||||
|
color: #FFF; |
||||
|
font-size: 19px; |
||||
|
width: 100%; |
||||
|
text-align: center; |
||||
|
z-index: 9999999999999; |
||||
|
position: absolute; |
||||
|
top: 60%; |
||||
|
opacity: 1; |
||||
|
line-height: 30px; |
||||
|
} |
||||
|
|
||||
|
#loader-wrapper .load_title span { |
||||
|
font-weight: normal; |
||||
|
font-style: italic; |
||||
|
font-size: 13px; |
||||
|
color: #FFF; |
||||
|
opacity: 0.5; |
||||
|
} |
||||
|
</style> |
||||
|
<script type="module" crossorigin src="./js/index-iDzH0SQw.js"></script> |
||||
|
<link rel="stylesheet" crossorigin href="./css/index-Dcqqxojt.css"> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<div id="app"> |
||||
|
<div id="loader-wrapper"> |
||||
|
<div id="loader"></div> |
||||
|
<div class="loader-section section-left"></div> |
||||
|
<div class="loader-section section-right"></div> |
||||
|
<div class="load_title">正在加载系统资源,请耐心等待</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue