This commit is contained in:
esacpe
2024-07-17 21:04:17 +08:00
commit 1fa3303972
1291 changed files with 92328 additions and 0 deletions

View File

@ -0,0 +1,16 @@
package com.mosty.common.task;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Configuration;
/**
*
* @author kevin
* @date 2022/2/3 7:28 PM
* @since 1.0.0
*/
@Configuration
@MapperScan("com.mosty.common.task.mapper")
public class TaskAutoConfiguration {
}

View File

@ -0,0 +1,26 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行状态
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum ExecuteStatusEnum {
/** 1。未完成 */
UNFINISH(1, "未完成"),
/** 2。已执行 */
FINISH(2, "已完成");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,26 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum ExecuteTypeEnum {
/** 1用户 */
USER(1, "用户"),
/** 2。部门 */
DEPT(2, "部门");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,32 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum GroupCountTypeEnum {
/** 1。今天 */
TODAY(1, "今天"),
/** 2。七天 */
WEEK(2, "七天"),
/** 3。30天 */
MONTH(3, "30天"),
/** 4。全部 */
ALL(4, "全部");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,26 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 折线图类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum LineChartTypeEnum {
/** 1 日 */
DAY(1, ""),
/** 2 月 */
MONTH(2, "");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,26 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum RuleTypeEnum {
/** 1 单人 */
ONE(1, "单人"),
/** 2 多人 */
MORE(2, "多人");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,28 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行类型
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum TaskItemStatusEnum {
/** 0未查看 */
NOTVIEWED(0, "未查看"),
/** 1。已查看 */
VIEWED(1, "已查看"),
/** 2。完成 */
FINISH(2, "完成");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
}

View File

@ -0,0 +1,43 @@
package com.mosty.common.task.constant.enums;
import lombok.AllArgsConstructor;
/**
* 执行状态
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum TaskLogStatusEnum {
/** 0未查看 */
NOTVIEWED(0, "下发"),
/** 1。已查看 */
VIEWED(1, "查看"),
/** 2。完成 */
FINISH(2, "完成");
/** 编码 */
public final Integer code;
/** 描述 */
public final String desc;
/**
* 根据编码匹配菜单类型
* @param code 编码
* @return 菜单类型枚举
*/
public static TaskLogStatusEnum valueOf(Integer code) {
if (code == null) {
return null;
}
for (TaskLogStatusEnum taskTypeEnum : TaskLogStatusEnum.values()) {
if (taskTypeEnum.code.equals(code)) {
return taskTypeEnum;
}
}
return null;
}
}

View File

@ -0,0 +1,42 @@
package com.mosty.common.task.constant.enums;
import com.mosty.common.base.constant.enums.MenuTypeEnum;
import lombok.AllArgsConstructor;
import org.jetbrains.annotations.Contract;
/**
* 执行状态
* @author liyan
* @date 2022/2/16 11:06 PM
* @since 1.0.0
*/
@AllArgsConstructor
public enum TaskTypeEnum {
/** 1。核实任务 */
VERIFY("1", "核实任务"),
/** 2。预警指令 */
EARLY("2", "预警指令"),
OTHER("3", "其他")
;
/** 编码 */
public final String code;
/** 描述 */
public final String desc;
/**
* 根据编码匹配菜单类型
* @param code 编码
* @return 菜单类型枚举
*/
public static TaskTypeEnum getEnum(String code) {
for (TaskTypeEnum taskTypeEnum : TaskTypeEnum.values()) {
if (taskTypeEnum.code.equals(code)) {
return taskTypeEnum;
}
}
return TaskTypeEnum.OTHER;
}
}

View File

@ -0,0 +1,110 @@
package com.mosty.common.task.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.base.domain.ResponseResult;
import com.mosty.common.base.entity.log.BusinessType;
import com.mosty.common.base.entity.log.Log;
import com.mosty.common.base.util.IpUtil;
import com.mosty.common.task.entity.SysTask;
import com.mosty.common.task.entity.vo.*;
import com.mosty.common.task.service.SysTaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.List;
@Slf4j
@SuppressWarnings("unused")
@RestController
@CrossOrigin
@AllArgsConstructor
@RequestMapping("/sysTask")
@Api(tags = "任务接口")
public class SysTaskController {
@Resource
private SysTaskService sysTaskService;
/**
* 添加任务并下发
* @param addSysTaskVO 添加任务并下发
* @return 添加结果
*/
@PostMapping("addSysTask")
@ApiOperation(value = "添加任务并下发", httpMethod = "POST", response = Boolean.class)
@Log(title = "添加任务并下发",businessType = BusinessType.INSERT)
public ResponseResult<Boolean> addSysTask(@RequestBody @Valid AddSysTaskVO addSysTaskVO, HttpServletRequest servletRequest) {
String ipAddress = IpUtil.getIpAddress(servletRequest);
sysTaskService.saveInfo(addSysTaskVO,ipAddress);
return ResponseResult.success(Boolean.TRUE);
}
/**
* 查看回调
* @return 添加结果
*/
@PostMapping("detail")
@ApiOperation(value = "查看回调", httpMethod = "POST", response = SysTask.class)
@Log(title = "查看回调",businessType = BusinessType.UPDATE)
public ResponseResult<SysTask> detail(@RequestBody DetailSysTaskVO detailSysTaskVO, HttpServletRequest servletRequest) {
String ipAddress = IpUtil.getIpAddress(servletRequest);
SysTask task= sysTaskService.detail(detailSysTaskVO,ipAddress);
return ResponseResult.success(task);
}
/**
* 完成回调
* @return 添加结果
*/
@PostMapping("finish")
@ApiOperation(value = "完成回调", httpMethod = "POST", response = Boolean.class)
@Log(title = "完成回调",businessType = BusinessType.UPDATE)
public ResponseResult<Boolean> finish(@RequestBody FinishSysTaskVO finishSysTaskVO, HttpServletRequest servletRequest) {
String ipAddress = IpUtil.getIpAddress(servletRequest);
sysTaskService.finish(finishSysTaskVO,ipAddress);
return ResponseResult.success(true);
}
/**
* 查询当前登陆用户的任务
* @return 当前登陆用户的任务
*/
@PostMapping("findByList")
@ApiOperation(value = "查询当前登陆用户的任务", httpMethod = "POST", response = SysTaskItemVO.class)
public ResponseResult<IPage<SysTaskItemVO>> findByList(@RequestBody QueryTaskVO queryTaskVO, HttpServletRequest servletRequest) {
IPage<SysTaskItemVO> page = sysTaskService.findByList(queryTaskVO);
return ResponseResult.success(page);
}
/**
* 查询当前登陆用户的任务日志
* @return 当前登陆用户的任务
*/
@PostMapping("findLogByList")
@ApiOperation(value = "查询当前登陆用户的任务日志", httpMethod = "POST", response = SysTaskLogVO.class)
public ResponseResult<List<SysTaskLogVO>> findLogByList(@RequestBody QueryTaskLogVO queryTaskLogVO, HttpServletRequest servletRequest) {
List<SysTaskLogVO> page = sysTaskService.findLogByList(queryTaskLogVO);
return ResponseResult.success(page);
}
/**
* 查询任务数量
* @return 查询任务数量
*/
@PostMapping("countByQuery")
@ApiOperation(value = "查询任务数量", httpMethod = "POST", response = Long.class)
public ResponseResult<Long> countByQuery(@RequestBody QueryTaskVO queryTaskVO, HttpServletRequest servletRequest) {
Long count = sysTaskService.countByQuery(queryTaskVO);
return ResponseResult.success(count);
}
}

View File

@ -0,0 +1,84 @@
package com.mosty.common.task.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.base.domain.ResponseResult;
import com.mosty.common.base.entity.log.BusinessType;
import com.mosty.common.base.entity.log.Log;
import com.mosty.common.base.util.IpUtil;
import com.mosty.common.task.entity.SysTask;
import com.mosty.common.task.entity.vo.*;
import com.mosty.common.task.service.SysTaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.List;
@Slf4j
@SuppressWarnings("unused")
@RestController
@AllArgsConstructor
@CrossOrigin
@RequestMapping("/sysTaskReport")
@Api(tags = "任务数量报表接口")
public class SysTaskReportController {
@Resource
private SysTaskService sysTaskService;
/**
* 查询今日数据
* @param
* @return 添加结果
*/
@PostMapping("todayCount")
@ApiOperation(value = "查询今日统计数据", httpMethod = "POST", response = SysTaskCountToday.class)
public ResponseResult<SysTaskCountToday> todayCount() {
SysTaskCountToday today= sysTaskService.todayCount();
return ResponseResult.success(today);
}
/**
* 查询全部统计数据
* @param
* @return 添加结果
*/
@PostMapping("allCount")
@ApiOperation(value = "查询全部统计数据", httpMethod = "POST", response = SysTaskCountToday.class)
public ResponseResult<SysTaskCountToday> allCount() {
SysTaskCountToday today= sysTaskService.allCount();
return ResponseResult.success(today);
}
/**
* 查询分类条数
* @param
* @return 添加结果
*/
@PostMapping("groupCount/{countType}")
@ApiOperation(value = "查询全部统计数据 1.今日 2.七日 3。 30天 4。 全部。", httpMethod = "POST", response = SysTaskCountGroup.class)
public ResponseResult<List<SysTaskCountGroup>> groupCount(@PathVariable("countType") Integer countType) {
List<SysTaskCountGroup> groups = sysTaskService.groupCount(countType);
return ResponseResult.success(groups);
}
/**
* 查询折线图数据
* @param
* @return 添加结果
*/
@PostMapping("lineChart/{lineChartType}")
@ApiOperation(value = "查询折线图数据 1 按日统计 2 按月统计", httpMethod = "POST", response = SysTaskLineChartVO.class)
public ResponseResult<List<SysTaskLineChartVO>> lineChart(@PathVariable("lineChartType") Integer lineChartType) {
List<SysTaskLineChartVO> lineCharts= sysTaskService.lineChart(lineChartType);
return ResponseResult.success(lineCharts);
}
}

View File

@ -0,0 +1,261 @@
package com.mosty.common.task.entity;
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 java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 任务表
* @TableName sys_task
*/
@TableName(value ="sys_task")
@Data
public class SysTask implements Serializable {
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务类型
*/
@TableField(value = "rwlx")
private String rwlx;
/**
* 执行类型
*/
@TableField(value = "zxlx")
private Integer zxlx;
/**
* 任务紧急程度
*/
@TableField(value = "rwjjcd")
private String rwjjcd;
/**
* 任务名称
*/
@TableField(value = "rwmc")
private String rwmc;
/**
* 任务内容
*/
@TableField(value = "rwnr")
private String rwnr;
/**
* 任务制定时间
*/
@TableField(value = "rwzdsj")
private LocalDateTime rwzdsj;
/**
* 任务完成时间
*/
@TableField(value = "rwwcsj")
private LocalDateTime rwwcsj;
/**
* 任务要求完成时间
*/
@TableField(value = "rwyqwcsj")
private LocalDateTime rwyqwcsj;
/**
* 任务创建人身份证号
*/
@TableField(value = "rwcjrsfzh")
private String rwcjrsfzh;
/**
* 任务创建人姓名
*/
@TableField(value = "rwcjrxm")
private String rwcjrxm;
/**
* 任务创建人单位
*/
@TableField(value = "rwcjrdw")
private String rwcjrdw;
/**
* 任务创建人部门id
*/
@TableField(value = "rwcjrbm_id")
private Long rwcjrbmId;
/**
* 任务创建人部门名称
*/
@TableField(value = "rwcjrbmmc")
private String rwcjrbmmc;
/**
* 任务创建人单位id
*/
@TableField(value = "rwcjrdw_id")
private Long rwcjrdwId;
/**
* 任务创建人电话
*/
@TableField(value = "rwcjrdh")
private String rwcjrdh;
/**
* 任务创建规则 1.单人任务 2.多人任务
*/
@TableField(value = "rwcjrgz")
private Integer rwcjrgz;
/**
* 任务执行状态 1未完成 2.已完成
*/
@TableField(value = "rwzxzt")
private Integer rwzxzt;
/**
* 任务来源系统
*/
@TableField(value = "rwlyxt")
private String rwlyxt;
/**
* 任务来源id
*/
@TableField(value = "rwly_id")
private String rwlyId;
/**
* 任务url
*/
@TableField(value = "rw_url")
private String rwUrl;
/**
* 任务终端
*/
@TableField(value = "rwzd")
private String rwzd;
/**
* 应用id
*/
@TableField(value = "yy_id")
private Long yyId;
/**
* 备注
*/
@TableField(value = "bz")
private String bz;
/**
* 注销标志0正常 1.注销
*/
@TableField(value = "xt_zxbz")
private Integer xtZxbz;
/**
* 注销原因
*/
@TableField(value = "xt_zxyy")
private String xtZxyy;
/**
* 采集时间
*/
@TableField(value = "xt_cjsj")
private LocalDateTime xtCjsj;
/**
* 录入时间
*/
@TableField(value = "xt_lrsj")
private LocalDateTime xtLrsj;
/**
* 录入人姓名
*/
@TableField(value = "xt_lrrxm")
private String xtLrrxm;
/**
* 录入人id
*/
@TableField(value = "xt_lrrid")
private Long xtLrrid;
/**
* 录入人部门
*/
@TableField(value = "xt_lrrbm")
private String xtLrrbm;
/**
* 录入人部门id
*/
@TableField(value = "xt_lrrbmid")
private Long xtLrrbmid;
/**
* 录入人部门id
*/
@TableField(value = "xt_lrip")
private String xtLrip;
/**
* 最后修改时间
*/
@TableField(value = "xt_zhxgsj")
private LocalDateTime xtZhxgsj;
/**
* 最后修改人姓名
*/
@TableField(value = "xt_zhxgrxm")
private String xtZhxgrxm;
/**
* 最后修改人id
*/
@TableField(value = "xt_zhxgid")
private Long xtZhxgid;
/**
* 最后修改人部门
*/
@TableField(value = "xt_zhxgrbm")
private String xtZhxgrbm;
/**
* 最后修改人部门id
*/
@TableField(value = "xt_zhxgrbmid")
private Long xtZhxgrbmid;
/**
* 最后修改人ip
*/
@TableField(value = "xt_zhxgrip")
private String xtZhxgrip;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,200 @@
package com.mosty.common.task.entity;
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 java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
* 任务下发表
* @TableName sys_task_item
*/
@TableName(value ="sys_task_item")
@Data
public class SysTaskItem implements Serializable {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务id
*/
@TableField(value = "rw_id")
private Long rwId;
/**
* 任务接受人id
*/
@TableField(value = "rwjsr_id")
private Long rwjsrId;
/**
* 任务接受人身份证号
*/
@TableField(value = "rwjsrsfzh")
private String rwjsrsfzh;
/**
* 任务接受人姓名
*/
@TableField(value = "rwjsrxm")
private String rwjsrxm;
/**
* 任务接受人单位id
*/
@TableField(value = "rwjsrdw_id")
private Long rwjsrdwId;
/**
* 任务接受人单位
*/
@TableField(value = "rwjsrdw")
private String rwjsrdw;
/**
* 任务接受人部门id
*/
@TableField(value = "rwjsrbm_id")
private Long rwjsrbmId;
/**
* 任务接受人部门名称
*/
@TableField(value = "rwjsrbmmc")
private String rwjsrbmmc;
/**
* 任务状态 0.未查看 1.已查看 2.已完成
*/
@TableField(value = "rwzt")
private Integer rwzt;
/**
* 任务制定时间
*/
@TableField(value = "rwzdsj")
private LocalDateTime rwzdsj;
/**
* 任务查看时间
*/
@TableField(value = "rwcksj")
private LocalDateTime rwcksj;
/**
* 任务完成时间
*/
@TableField(value = "rwwcsj")
private LocalDateTime rwwcsj;
/**
* 备注
*/
@TableField(value = "bz")
private String bz;
/**
* 注销标志0正常 1.注销
*/
@TableField(value = "xt_zxbz")
private Integer xtZxbz;
/**
* 注销原因
*/
@TableField(value = "xt_zxyy")
private String xtZxyy;
/**
* 采集时间
*/
@TableField(value = "xt_cjsj")
private LocalDateTime xtCjsj;
/**
* 录入时间
*/
@TableField(value = "xt_lrsj")
private LocalDateTime xtLrsj;
/**
* 录入人姓名
*/
@TableField(value = "xt_lrrxm")
private String xtLrrxm;
/**
* 录入人id
*/
@TableField(value = "xt_lrrid")
private Long xt_lrrid;
/**
* 录入人部门
*/
@TableField(value = "xt_lrrbm")
private String xtLrrbm;
/**
* 录入人部门id
*/
@TableField(value = "xt_lrrbmid")
private String xtLrrbmid;
/**
* 录入人部门id
*/
@TableField(value = "xt_lrip")
private String xtLrip;
/**
* 最后修改时间
*/
@TableField(value = "xt_zhxgsj")
private LocalDateTime xtZhxgsj;
/**
* 最后修改人姓名
*/
@TableField(value = "xt_zhxgrxm")
private String xtZhxgrxm;
/**
* 最后修改人id
*/
@TableField(value = "xt_zhxgid")
private Long xtZhxgid;
/**
* 最后修改人部门
*/
@TableField(value = "xt_zhxgrbm")
private String xtZhxgrbm;
/**
* 最后修改人部门id
*/
@TableField(value = "xt_zhxgrbmid")
private Long xtZhxgrbmid;
/**
* 最后修改人ip
*/
@TableField(value = "xt_zhxgrip")
private String xtZhxgrip;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,58 @@
package com.mosty.common.task.entity;
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 java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
/**
* 任务日志表
* @TableName sys_task_log
*/
@TableName(value ="sys_task_log")
@Data
public class SysTaskLog implements Serializable {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 任务下发处置表id
*/
@TableField(value = "task_item_id")
private Long taskItemId;
/**
* 任务id
*/
@TableField(value = "rw_id")
private Long rwId;
/**
* 任务接受人id
*/
@TableField(value = "rwjsr_id")
private Long rwjsrId;
/**
* 任务处置时间
*/
@TableField(value = "rwczsj")
private LocalDateTime rwczsj;
/**
* 任务处置状态
*/
@TableField(value = "rwczzt")
private Integer rwczzt;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,30 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@Accessors(chain = true)
public class AddSysTaskDeptVO implements Serializable {
@ApiModelProperty("任务接受部门编码, 执行类型为部门时 必传" )
private Long deptCode;
/**
* 任务接受部门单位id
*/
@ApiModelProperty("任务接受人单位id 执行类型为部门时 必传")
private Long companyId;
/**
* 任务接受部门单位名称
*/
@ApiModelProperty("任务接受人单位名称 执行类型为部门时 必传")
private String companyName;
}

View File

@ -0,0 +1,41 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@Accessors(chain = true)
public class AddSysTaskUserInfoVO implements Serializable {
/**
* 身份证号
*/
@ApiModelProperty("身份证号")
@NotNull(message = "身份证号")
private String idCardNo;
/**
* 任务接受人单位id
*/
@ApiModelProperty("任务接受人单位id")
@NotNull(message = "任务接受人单位id")
private Long companyId;
/**
* 任务接受人单位名称
*/
@ApiModelProperty("任务接受人单位名称")
private String companyName;
}

View File

@ -0,0 +1,166 @@
package com.mosty.common.task.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Accessors(chain = true)
public class AddSysTaskVO implements Serializable {
/**
* 应用id
*/
@ApiModelProperty("应用id")
@NotNull(message = "应用id不能为空")
private Long appId;
/**
* 任务类型
*/
@ApiModelProperty("任务类型 1 核实任务 2。预警指令")
@NotNull(message = "任务类型不能为空")
private String rwlx;
/**
* 执行类型
*/
@ApiModelProperty("执行类型 1用户 2部门")
@NotNull(message = "执行类型不能为空")
private Integer zxlx;
/**
* 任务紧急程度
*/
@ApiModelProperty("任务紧急程度")
@NotNull(message = "任务紧急程度不能为空")
private String rwjjcd;
/**
* 任务名称
*/
@ApiModelProperty("任务名称")
@NotBlank(message = "任务名称不能为空")
private String rwmc;
/**
* 任务内容
*/
@ApiModelProperty("任务内容")
@NotBlank(message = "任务内容不能为空")
private String rwnr;
/**
* 任务制定时间
*/
@ApiModelProperty("任务制定时间")
private LocalDateTime rwzdsj;
/**
* 任务要求完成时间
*/
@ApiModelProperty("任务要求完成时间")
private LocalDateTime rwyqwcsj;
/**
* 任务创建人ID
*/
@ApiModelProperty("任务创建人ID")
private Long rwcjrId;
/**
* 任务创建人身份证号
*/
@ApiModelProperty("任务创建人身份证号")
private String rwcjrsfzh;
/**
* 任务创建人姓名
*/
@ApiModelProperty("任务创建人姓名")
private String rwcjrxm;
/**
* 任务创建人单位
*/
@ApiModelProperty("任务创建人单位")
private String rwcjrdw;
/**
* 任务创建人部门id
*/
@ApiModelProperty("任务创建人部门id")
private Long rwcjrbmId;
/**
* 任务创建人部门名称
*/
@ApiModelProperty("任务创建人部门名称")
private String rwcjrbmmc;
/**
* 任务创建人单位id
*/
@ApiModelProperty("任务创建人单位id")
private Long rwcjrdwId;
/**
* 任务创建人电话
*/
@ApiModelProperty("任务创建人电话")
private String rwcjrdh;
/**
* 任务创建规则 1.单人任务 2.多人任务
*/
@ApiModelProperty("任务创建规则 1.单人任务 2.多人任务")
private Integer rwcjrgz;
/**
* 任务来源系统
*/
@ApiModelProperty("任务来源系统 1 智能安防2。公共安全监管 3。三级指挥")
@NotNull(message = "任务来源系统不能为空 1 智能安防2。公共安全监管 3。三级指挥" )
private String rwlyxt;
/**
* 任务来源id
*/
@ApiModelProperty("任务来源id ")
private String rwlyId;
/**
* 任务url
*/
@ApiModelProperty("任务url")
private String rwUrl;
/**
* 任务终端
*/
@ApiModelProperty("任务终端 1,安卓 2 H5 ")
@NotNull(message = "任务终端不能为空 1")
private String rwzd;
/**
* 备注
*/
private String bz;
/**
* 执行类型为用户时 必穿
*/
@ApiModelProperty("执行类型为用户时 必传 任务接受人信息")
private List<AddSysTaskUserInfoVO> UserInfos;
/**
* 执行类型为用户时 必穿
*/
@ApiModelProperty("执行类型为部门时 必传 任务接受部门信息")
private List<AddSysTaskDeptVO> deptVOS;
}

View File

@ -0,0 +1,15 @@
package com.mosty.common.task.entity.vo;
import com.mosty.common.token.UserInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class DetailSysTaskVO implements Serializable {
@ApiModelProperty(value = "下发任务id",required = true)
private Long taskItemId;
@ApiModelProperty(value ="操作人身份证",required = true)
private String idCardNo;
}

View File

@ -0,0 +1,25 @@
package com.mosty.common.task.entity.vo;
import com.mosty.common.token.UserInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class FinishSysTaskVO implements Serializable {
@ApiModelProperty(value = "下发任务id")
private Long taskItemId;
@ApiModelProperty(value ="操作人身份证",required = true)
@NotBlank(message="操作人身份证不能为空")
private String idCardNo;
@ApiModelProperty(value = "来源任务id",required = true)
@NotBlank(message = "来源系统id不能为空")
private String lyxtId;
@ApiModelProperty(value ="部门编码")
private String deptCode;
}

View File

@ -0,0 +1,28 @@
package com.mosty.common.task.entity.vo;
import cn.hutool.db.Page;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@Accessors(chain = true)
public class QueryTaskLogVO implements Serializable {
/**
* 身份证号
*/
@ApiModelProperty(value = "用户id",required = true)
private Long userId;
/**
* 任务id
*/
@ApiModelProperty("任务id")
private Long rwId;
/**
* 下发任务id
*/
@ApiModelProperty("下发任务id")
private Long taskItemId;
}

View File

@ -0,0 +1,69 @@
package com.mosty.common.task.entity.vo;
import cn.hutool.db.Page;
import com.mosty.common.token.UserInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@Accessors(chain = true)
public class QueryTaskVO extends Page implements Serializable {
/**
* 身份证号
*/
@ApiModelProperty(value = "身份证号",required = true)
@NotBlank(message = "身份证号不能为空")
private String idCardNo;
/**
* 部门编码
*/
@ApiModelProperty(value = "部门编码获取不到部门id传编码",required = true)
private Long deptCode;
/**
* 部门id
*/
@ApiModelProperty(value = "部门编码",required = true)
private Long deptId;
/**
* 任务名称
*/
@ApiModelProperty("任务名称")
private String taskName;
/**
* 任务状态 0 未查看 1已查看 2已完成
*/
@ApiModelProperty("任务状态 0 未查看 1已查看 2已完成")
private Integer taskStatus;
/**
* 任务来源
*/
@ApiModelProperty("任务来源 01_智能安防社区 02_公共安全监管 03_三级指挥")
private Integer source;
/**
* 任务类型
*/
@ApiModelProperty("任务类型 01 核实任务 02 预警指令")
private Integer taskType;
/**
* 任务开始时间
*/
@ApiModelProperty("任务开始时间")
private LocalDateTime startTime;
/**
* 任务结束时间
*/
@ApiModelProperty("任务结束时间")
private LocalDateTime endTime;
}

View File

@ -0,0 +1,14 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SysTaskCountGroup implements Serializable {
@ApiModelProperty("任务类型")
private String rwlx;
@ApiModelProperty("数量")
private Long count;
}

View File

@ -0,0 +1,14 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SysTaskCountToday implements Serializable {
@ApiModelProperty("完成数量")
private Long finishCount;
@ApiModelProperty("未完成数量")
private Long unFinishCount;
}

View File

@ -0,0 +1,78 @@
package com.mosty.common.task.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Transient;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
@Accessors(chain = true)
public class SysTaskItemVO implements Serializable {
private Long id;
/**
* 任务来源id
*/
@ApiModelProperty("任务来源id")
private String rwlyId;
/**
* 任务类型
*/
@ApiModelProperty("任务类型")
private String rwlx;
/**
* 任务类型描述
*/
@ApiModelProperty("任务类型描述")
private String rwlxDesc;
/**
* 任务名称
*/
@ApiModelProperty("任务名称")
private String rwmc;
/**
* 任务内容
*/
@ApiModelProperty("任务内容")
private String rwnr;
/**
* 任务Url
*/
@ApiModelProperty("任务Url")
private String rwurl;
/**
* 身份证号
*/
@ApiModelProperty("身份证号")
private String idCardNo;
/**
* 任务内容
*/
@ApiModelProperty("任务来源系统")
private String rwlyxt;
/**
* 任务要求完成时间
*/
@ApiModelProperty(value = "任务要求完成时间")
private LocalDateTime rwyqwcsj;
/**
* 任务日志
*/
@ApiModelProperty("任务日志")
private List<SysTaskLogVO> logs;
}

View File

@ -0,0 +1,16 @@
package com.mosty.common.task.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class SysTaskLineChartVO implements Serializable {
@ApiModelProperty("序号:月 1 -12 日期 近七天 例子4-11")
private String no;
@ApiModelProperty("数量")
private Long count;
}

View File

@ -0,0 +1,29 @@
package com.mosty.common.task.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
public class SysTaskLogVO implements Serializable {
/**
* 任务处置时间
*/
@ApiModelProperty(value = "任务处置时间")
private LocalDateTime rwczsj;
/**
* 任务处置状态
*/
@ApiModelProperty(value = "rwczzt")
private Integer rwczzt;
/**
* 任务处置状态
*/
@ApiModelProperty(value = "任务处置状态")
private String rwczztDesc;
}

View File

@ -0,0 +1,17 @@
package com.mosty.common.task.mapper;
import com.mosty.common.task.entity.SysTaskItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author liyan
* @description 针对表【sys_task_item(任务下发表)】的数据库操作Mapper
* @createDate 2022-04-21 21:34:04
*/
public interface SysTaskItemMapper extends BaseMapper<SysTaskItem> {
}

View File

@ -0,0 +1,17 @@
package com.mosty.common.task.mapper;
import com.mosty.common.task.entity.SysTaskLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author liyan
* @description 针对表【sys_task_log(任务日志表)】的数据库操作Mapper
* @createDate 2022-04-21 21:34:09
*/
public interface SysTaskLogMapper extends BaseMapper<SysTaskLog> {
}

View File

@ -0,0 +1,40 @@
package com.mosty.common.task.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.task.entity.SysTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mosty.common.task.entity.vo.QueryTaskVO;
import com.mosty.common.task.entity.vo.SysTaskItemVO;
import org.apache.ibatis.annotations.Param;
/**
* @author liyan
* @description 针对表【sys_task(任务表)】的数据库操作Mapper
* @createDate 2022-04-21 21:31:14
*/
public interface SysTaskMapper extends BaseMapper<SysTask> {
/**
* 分页查询
* @param queryTaskVO
* @return
*/
IPage<SysTaskItemVO> findByList(IPage<SysTaskItemVO> page,@Param("param") QueryTaskVO queryTaskVO);
/**
* 根据条件查询 执行类型为用户的任务数量
* @param queryTaskVO
* @return
*/
Long countByUser(@Param("param") QueryTaskVO queryTaskVO);
/**
* 执行类型为部门 查询对应条件的数量
* @param queryTaskVO
* @return
*/
Long countByDept(@Param("param") QueryTaskVO queryTaskVO);
}

View File

@ -0,0 +1,13 @@
package com.mosty.common.task.service;
import com.mosty.common.task.entity.SysTaskItem;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author liyan
* @description 针对表【sys_task_item(任务下发表)】的数据库操作Service
* @createDate 2022-04-21 21:34:04
*/
public interface SysTaskItemService extends IService<SysTaskItem> {
}

View File

@ -0,0 +1,13 @@
package com.mosty.common.task.service;
import com.mosty.common.task.entity.SysTaskLog;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author liyan
* @description 针对表【sys_task_log(任务日志表)】的数据库操作Service
* @createDate 2022-04-21 21:34:09
*/
public interface SysTaskLogService extends IService<SysTaskLog> {
}

View File

@ -0,0 +1,84 @@
package com.mosty.common.task.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.common.task.entity.SysTask;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mosty.common.task.entity.vo.*;
import java.util.List;
/**
* @author liyan
* @description 针对表【sys_task(任务表)】的数据库操作Service
* @createDate 2022-04-21 21:31:14
*/
public interface SysTaskService extends IService<SysTask> {
/**
* 保存下发任务
* @param addSysTaskVO
* @param ipAddress
*/
void saveInfo(AddSysTaskVO addSysTaskVO, String ipAddress);
/**
* 查看任务详情
* @param detailSysTaskVO
* @param ipAddress
* @return
*/
SysTask detail(DetailSysTaskVO detailSysTaskVO, String ipAddress);
/**
* 完成回调
* @param finishSysTaskVO
* @param ipAddress
*/
void finish(FinishSysTaskVO finishSysTaskVO, String ipAddress);
/**
* 分页查询
* @param queryTaskVO
* @return
*/
IPage<SysTaskItemVO> findByList(QueryTaskVO queryTaskVO);
/**
* 查询对应的日志
* @param queryTaskLogVO
* @return
*/
List<SysTaskLogVO> findLogByList(QueryTaskLogVO queryTaskLogVO);
/**
* 查询任务数量根据条件
* @param queryTaskVO
* @return
*/
Long countByQuery(QueryTaskVO queryTaskVO);
/**
* 查询当天的任务数据
* @return
*/
SysTaskCountToday todayCount();
/**
* 查询全部统计数据
* @return
*/
SysTaskCountToday allCount();
/**
* 根据类型统计数据
* @param countType
* @return
*/
List<SysTaskCountGroup> groupCount(Integer countType);
/**
* 获取折线图数据
* @param lineChartType
* @return
*/
List<SysTaskLineChartVO> lineChart(Integer lineChartType);
}

View File

@ -0,0 +1,22 @@
package com.mosty.common.task.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mosty.common.task.entity.SysTaskItem;
import com.mosty.common.task.service.SysTaskItemService;
import com.mosty.common.task.mapper.SysTaskItemMapper;
import org.springframework.stereotype.Service;
/**
* @author liyan
* @description 针对表【sys_task_item(任务下发表)】的数据库操作Service实现
* @createDate 2022-04-21 21:34:04
*/
@Service
public class SysTaskItemServiceImpl extends ServiceImpl<SysTaskItemMapper, SysTaskItem>
implements SysTaskItemService{
}

View File

@ -0,0 +1,22 @@
package com.mosty.common.task.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mosty.common.task.entity.SysTaskLog;
import com.mosty.common.task.service.SysTaskLogService;
import com.mosty.common.task.mapper.SysTaskLogMapper;
import org.springframework.stereotype.Service;
/**
* @author liyan
* @description 针对表【sys_task_log(任务日志表)】的数据库操作Service实现
* @createDate 2022-04-21 21:34:09
*/
@Service
public class SysTaskLogServiceImpl extends ServiceImpl<SysTaskLogMapper, SysTaskLog>
implements SysTaskLogService{
}

View File

@ -0,0 +1,515 @@
package com.mosty.common.task.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
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 com.google.common.collect.Lists;
import com.mosty.common.base.constant.enums.DeletedEnum;
import com.mosty.common.base.exception.Asserts;
import com.mosty.common.base.util.DateUtils;
import com.mosty.common.base.util.LocalDateTimeUtils;
import com.mosty.common.base.util.StringUtils;
import com.mosty.common.core.business.entity.SysDept;
import com.mosty.common.core.business.entity.SysUser;
import com.mosty.common.core.business.service.SysDeptService;
import com.mosty.common.core.business.service.SysUserService;
import com.mosty.common.core.login.dto.DeptDTO;
import com.mosty.common.task.constant.enums.*;
import com.mosty.common.task.entity.SysTask;
import com.mosty.common.task.entity.SysTaskItem;
import com.mosty.common.task.entity.SysTaskLog;
import com.mosty.common.task.entity.vo.*;
import com.mosty.common.task.service.SysTaskItemService;
import com.mosty.common.task.service.SysTaskLogService;
import com.mosty.common.task.service.SysTaskService;
import com.mosty.common.task.mapper.SysTaskMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author liyan
* @description 针对表【sys_task(任务表)】的数据库操作Service实现
* @createDate 2022-04-21 21:31:14
*/
@Service
public class SysTaskServiceImpl extends ServiceImpl<SysTaskMapper, SysTask>
implements SysTaskService {
@Resource
private SysTaskMapper sysTaskMapper;
@Resource
private SysTaskItemService sysTaskItemService;
@Resource
private SysTaskLogService sysTaskLogService;
@Resource
private SysUserService userService;
@Resource
private SysDeptService sysDeptService;
@Override
public IPage<SysTaskItemVO> findByList(QueryTaskVO queryTaskVO) {
String idCardNo = queryTaskVO.getIdCardNo();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", idCardNo);
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", idCardNo);
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
Asserts.check(CollectionUtils.isEmpty(deptList), "身份证 %s 没有绑定部门!", idCardNo);
DeptDTO deptDTO = deptList.get(0);
if (Objects.nonNull(deptDTO)) {
queryTaskVO.setDeptId(deptDTO.getDeptId());
}
IPage<SysTaskItemVO> page = new Page<>(queryTaskVO.getPageNumber(), queryTaskVO.getPageSize());
IPage<SysTaskItemVO> result = sysTaskMapper.findByList(page, queryTaskVO);
if (CollectionUtils.isNotEmpty(result.getRecords())) {
List<SysTaskItemVO> records = result.getRecords();
records.forEach(sysTaskItemVO -> {
sysTaskItemVO.setRwlxDesc(TaskTypeEnum.getEnum(sysTaskItemVO.getRwlx()).desc);
});
getLogs(records);
result.setRecords(records);
}
return result;
}
@Override
public List<SysTaskLogVO> findLogByList(QueryTaskLogVO queryTaskLogVO) {
LambdaQueryWrapper<SysTaskLog> logQueryWrapper = new LambdaQueryWrapper<>();
if (Objects.nonNull(queryTaskLogVO.getTaskItemId())) {
logQueryWrapper.eq(SysTaskLog::getTaskItemId, queryTaskLogVO.getTaskItemId());
}
if (Objects.nonNull(queryTaskLogVO.getRwId())) {
logQueryWrapper.eq(SysTaskLog::getRwId, queryTaskLogVO.getRwId());
}
if (Objects.nonNull(queryTaskLogVO.getUserId())) {
logQueryWrapper.eq(SysTaskLog::getRwjsrId, queryTaskLogVO.getUserId());
}
List<SysTaskLog> list = sysTaskLogService.list(logQueryWrapper);
List<SysTaskLogVO> sysTaskLogVOS = BeanUtil.copyToList(list, SysTaskLogVO.class);
return sysTaskLogVOS;
}
@Override
public Long countByQuery(QueryTaskVO queryTaskVO) {
String idCardNo = queryTaskVO.getIdCardNo();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", idCardNo);
queryWrapper.eq("xt_zxbz",DeletedEnum.NATURE.code);
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", idCardNo);
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
Asserts.check(CollectionUtils.isEmpty(deptList), "身份证 %s 没有绑定部门!", idCardNo);
DeptDTO deptDTO = deptList.get(0);
if (Objects.nonNull(deptDTO)) {
queryTaskVO.setDeptId(deptDTO.getDeptId());
}
//查询
Long count = sysTaskMapper.countByUser(queryTaskVO);
Long deptCount = sysTaskMapper.countByDept(queryTaskVO);
return deptCount + count;
}
@Override
public SysTaskCountToday todayCount() {
long unFinish = this.count(new LambdaQueryWrapper<SysTask>()
.eq(SysTask::getRwzxzt, ExecuteStatusEnum.UNFINISH.code).between(SysTask::getRwzdsj,
LocalDateTimeUtils.todayStart(), LocalDateTimeUtils.todayEnd()));
long finish = this.count(new LambdaQueryWrapper<SysTask>()
.eq(SysTask::getRwzxzt, ExecuteStatusEnum.FINISH.code).between(SysTask::getRwzdsj,
LocalDateTimeUtils.todayStart(), LocalDateTimeUtils.todayEnd()));
SysTaskCountToday today = new SysTaskCountToday();
today.setFinishCount(finish);
today.setUnFinishCount(unFinish);
return today;
}
@Override
public SysTaskCountToday allCount() {
long unFinish = this.count(new LambdaQueryWrapper<SysTask>()
.eq(SysTask::getRwzxzt, ExecuteStatusEnum.UNFINISH.code));
long finish = this.count(new LambdaQueryWrapper<SysTask>()
.eq(SysTask::getRwzxzt, ExecuteStatusEnum.FINISH.code));
SysTaskCountToday today = new SysTaskCountToday();
today.setFinishCount(finish);
today.setUnFinishCount(unFinish);
return today;
}
@Override
public List<SysTaskCountGroup> groupCount(Integer countType) {
List<SysTaskCountGroup> groupList = new ArrayList<>();
initGroupList(groupList);
if (GroupCountTypeEnum.ALL.code.equals(countType)) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>());
Map<String, List<SysTask>> typeMap = list.stream().collect(Collectors.groupingBy(SysTask::getRwlx));
groupList.forEach(item -> {
if (typeMap.containsKey(item.getRwlx())){
item.setCount( Long.valueOf(typeMap.get(item.getRwlx()).size()));
}
});
}
if (GroupCountTypeEnum.TODAY.code.equals(countType)) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj,
LocalDateTimeUtils.todayStart(), LocalDateTimeUtils.todayEnd()));
Map<String, List<SysTask>> typeMap = list.stream().collect(Collectors.groupingBy(SysTask::getRwlx));
groupList.forEach(item -> {
if (typeMap.containsKey(item.getRwlx())){
item.setCount( Long.valueOf(typeMap.get(item.getRwlx()).size()));
}
});
}
if (GroupCountTypeEnum.WEEK.code.equals(countType)) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj,
LocalDateTimeUtils.daysStart(7), LocalDateTime.now()));
Map<String, List<SysTask>> typeMap = list.stream().collect(Collectors.groupingBy(SysTask::getRwlx));
groupList.forEach(item -> {
if (typeMap.containsKey(item.getRwlx())){
item.setCount( Long.valueOf(typeMap.get(item.getRwlx()).size()));
}
});
}
if (GroupCountTypeEnum.MONTH.code.equals(countType)) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj,
LocalDateTimeUtils.daysStart(30), LocalDateTime.now()));
Map<String, List<SysTask>> typeMap = list.stream().collect(Collectors.groupingBy(SysTask::getRwlx));
groupList.forEach(item -> {
if (typeMap.containsKey(item.getRwlx())){
item.setCount( Long.valueOf(typeMap.get(item.getRwlx()).size()));
}
});
}
return groupList;
}
private void initGroupList(List<SysTaskCountGroup> groupList) {
TaskTypeEnum[] values = TaskTypeEnum.values();
for (TaskTypeEnum value : values) {
SysTaskCountGroup group = new SysTaskCountGroup();
group.setCount(0L);
group.setRwlx(value.code);
groupList.add(group);
}
}
@Override
public List<SysTaskLineChartVO> lineChart(Integer lineChartType) {
if (LineChartTypeEnum.DAY.code.equals(lineChartType)) {
List<SysTaskLineChartVO> sysTaskLineChartVOS = getDay();
sysTaskLineChartVOS.sort(Comparator.comparing(SysTaskLineChartVO::getNo));
return sysTaskLineChartVOS;
} else {
List<SysTaskLineChartVO> sysTaskLineChartVOS = getMonth();
sysTaskLineChartVOS.sort(Comparator.comparing(SysTaskLineChartVO::getNo));
return sysTaskLineChartVOS;
}
}
private List<SysTaskLineChartVO> getMonth() {
List<SysTaskLineChartVO> sysTaskLineChartVOS = new ArrayList<>();
Map<String, Long> monthGroup = getMonthGroup(12);
//获取最近七天的数据
LocalDateTime begin = LocalDateTimeUtils.todayStart().minusYears(1);
LocalDateTime after = LocalDateTimeUtils.todayEnd();
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj, begin, after));
Map<String, List<SysTask>> taskMap = list.stream().collect(Collectors.groupingBy(item -> DateUtils.parseDateToStr(DateUtils.YY_MM, DateUtils.LocalDateTimeToDate(item.getRwzdsj()))));
monthGroup.entrySet().forEach(item -> {
SysTaskLineChartVO chartVO = new SysTaskLineChartVO();
if (taskMap.containsKey(item.getKey())) {
List<SysTask> sysTasks = taskMap.get(item.getKey());
chartVO.setNo(item.getKey());
chartVO.setCount(Long.valueOf(sysTasks.size()));
} else {
chartVO.setNo(item.getKey());
chartVO.setCount(0L);
}
sysTaskLineChartVOS.add(chartVO);
});
return sysTaskLineChartVOS;
}
private List<SysTaskLineChartVO> getDay() {
List<SysTaskLineChartVO> sysTaskLineChartVOS = new ArrayList<>();
//获取最近七天的数据
Map<String, Long> dayMap = getDayGroup(7);
LocalDateTime begin = LocalDateTimeUtils.todayStart().minusDays(7);
LocalDateTime after = LocalDateTimeUtils.todayEnd();
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().between(SysTask::getRwzdsj, begin, after));
Map<String, List<SysTask>> taskMap = list.stream().collect(Collectors.groupingBy(item -> DateUtils.parseDateToStr(DateUtils.MM_DD, DateUtils.LocalDateTimeToDate(item.getRwzdsj()))));
dayMap.entrySet().forEach(item -> {
SysTaskLineChartVO chartVO = new SysTaskLineChartVO();
if (taskMap.containsKey(item.getKey())) {
List<SysTask> sysTasks = taskMap.get(item.getKey());
chartVO.setNo(item.getKey());
chartVO.setCount(Long.valueOf(sysTasks.size()));
} else {
chartVO.setNo(item.getKey());
chartVO.setCount(0L);
}
sysTaskLineChartVOS.add(chartVO);
});
return sysTaskLineChartVOS;
}
private Map<String, Long> getDayGroup(Integer dayNum) {
Map<String, Long> map = new HashMap<>();
for (int i = 1; i <= dayNum; i++) {
map.put(DateUtils.parseDateToStr(DateUtils.MM_DD, DateUtils.LocalDateTimeToDate(LocalDateTime.now().minusDays(i))), 0L);
}
return map;
}
private Map<String, Long> getMonthGroup(Integer monthNum) {
Map<String, Long> map = new HashMap<>();
for (int i = 1; i <= monthNum; i++) {
map.put(DateUtils.parseDateToStr(DateUtils.YY_MM, DateUtils.LocalDateTimeToDate(LocalDateTime.now().minusMonths(i))), 0L);
}
return map;
}
/**
* 获取对应任务的日志
*
* @param records
*/
private void getLogs(List<SysTaskItemVO> records) {
List<Long> taskItemIds = records.stream().map(SysTaskItemVO::getId).collect(Collectors.toList());
List<SysTaskLog> list = sysTaskLogService.list(new LambdaQueryWrapper<SysTaskLog>()
.in(SysTaskLog::getTaskItemId, taskItemIds).orderByDesc(SysTaskLog::getRwczsj));
if (CollectionUtils.isNotEmpty(list)) {
Map<Long, List<SysTaskLog>> itemMap =
list.stream().collect(Collectors.groupingBy(SysTaskLog::getTaskItemId));
records.forEach(item -> {
List<SysTaskLog> sysTaskLogs = itemMap.get(item.getId());
List<SysTaskLogVO> sysTaskLogVOS = BeanUtil.copyToList(sysTaskLogs, SysTaskLogVO.class);
sysTaskLogVOS.forEach(log -> {
log.setRwczztDesc(TaskLogStatusEnum.valueOf(log.getRwczzt()).desc);
});
item.setLogs(sysTaskLogVOS);
});
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveInfo(AddSysTaskVO addSysTaskVO, String ipAddress) {
//1.记录任务 如果是执行类型部门,
// 判断规则为单人且下发部门id 不能为空
//如果是执行类型为 人 那么下发用户List不能为空
validInfo(addSysTaskVO);
SysTask sysTask = BeanUtil.copyProperties(addSysTaskVO, SysTask.class);
sysTask.setXtZhxgsj(LocalDateTime.now());
sysTask.setXtCjsj(LocalDateTime.now());
sysTask.setXtLrip(ipAddress);
sysTask.setXtZhxgid(addSysTaskVO.getRwcjrId());
sysTask.setXtZhxgrxm(addSysTaskVO.getRwcjrxm());
sysTask.setXtZhxgrbmid(addSysTaskVO.getRwcjrbmId());
sysTask.setXtZhxgrbm(addSysTaskVO.getRwcjrbmmc());
sysTask.setXtLrsj(LocalDateTime.now());
sysTask.setXtLrrid(addSysTaskVO.getRwcjrId());
sysTask.setXtLrrxm(addSysTaskVO.getRwcjrxm());
sysTask.setXtLrrbmid(addSysTaskVO.getRwcjrbmId());
sysTask.setXtLrrbm(addSysTaskVO.getRwcjrbmmc());
sysTask.setYyId(addSysTaskVO.getAppId());
this.save(sysTask);
//2。下发相关任务
saveItems(addSysTaskVO, sysTask);
}
@Override
@Transactional
public SysTask detail(DetailSysTaskVO detailSysTaskVO, String ipAddress) {
String idCardNo = detailSysTaskVO.getIdCardNo();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", idCardNo);
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", idCardNo);
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
DeptDTO deptDTO = deptList.get(0);
//1。更新对应任务下发表为已查看
SysTaskItem taskItem = sysTaskItemService.getById(detailSysTaskVO.getTaskItemId());
if (TaskItemStatusEnum.NOTVIEWED.code.equals(taskItem.getRwzt())) {
taskItem.setRwcksj(LocalDateTime.now());
taskItem.setRwzt(TaskItemStatusEnum.VIEWED.code);
taskItem.setXtZxbz(DeletedEnum.NATURE.code);
taskItem.setXtZhxgsj(LocalDateTime.now());
taskItem.setXtLrip(ipAddress);
taskItem.setXtZhxgid(sysUser.getId());
taskItem.setXtZhxgrxm(sysUser.getUserName());
taskItem.setXtZhxgrbmid(deptDTO.getDeptId());
taskItem.setXtZhxgrbm(deptDTO.getDeptName());
sysTaskItemService.updateById(taskItem);
}
//2。插入日志
SysTaskLog log = new SysTaskLog();
log.setRwId(taskItem.getRwId());
log.setRwjsrId(sysUser.getId());
log.setTaskItemId(taskItem.getId());
log.setRwczsj(LocalDateTime.now());
log.setRwczzt(TaskItemStatusEnum.VIEWED.code);
sysTaskLogService.save(log);
//返回任务详情
SysTask task = this.getById(taskItem.getRwId());
task.setId(detailSysTaskVO.getTaskItemId());
return task;
}
@Override
@Transactional
public void finish(FinishSysTaskVO finishSysTaskVO, String ipAddress) {
List<SysTask> list = this.list(new LambdaQueryWrapper<SysTask>().eq(SysTask::getRwlyId, finishSysTaskVO.getLyxtId()));
if (CollectionUtils.isEmpty(list)){
Asserts.check(true, "没有查到对应任务", finishSysTaskVO.getLyxtId());
}
SysTask sourceTask = list.get(0);
//1。更新对应任务下发表为完成
String idCardNo = finishSysTaskVO.getIdCardNo();
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", idCardNo);
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", idCardNo);
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
DeptDTO deptDTO = deptList.get(0);
SysTaskItem taskItem =null;
if (ExecuteTypeEnum.USER.code.equals(sourceTask.getZxlx())){
taskItem = sysTaskItemService.getOne(new LambdaQueryWrapper<SysTaskItem>()
.eq(SysTaskItem::getRwId, sourceTask.getId()).eq(SysTaskItem::getRwjsrsfzh, idCardNo));
}else{
Asserts.check(StringUtils.isBlank(finishSysTaskVO.getDeptCode()), "任务类型为部门时部门编码不能为空", finishSysTaskVO.getDeptCode());
SysDept sysDept = sysDeptService.getOne(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getOrgCode, finishSysTaskVO.getDeptCode())
.eq(SysDept::getXtZxbz, DeletedEnum.NATURE.code));
Asserts.check(sysDept == null, "部门编码 %s 对应的部门不存在!", finishSysTaskVO.getDeptCode());
taskItem = sysTaskItemService.getOne(new LambdaQueryWrapper<SysTaskItem>()
.eq(SysTaskItem::getRwId, sourceTask.getId()).eq(SysTaskItem::getRwjsrbmId,sysDept.getId()));
}
Asserts.check(TaskItemStatusEnum.FINISH.code.equals(taskItem.getRwzt()), "该任务已经完成,请勿重复完成");
taskItem.setRwwcsj(LocalDateTime.now());
taskItem.setRwzt(TaskItemStatusEnum.FINISH.code);
taskItem.setXtZhxgsj(LocalDateTime.now());
taskItem.setXtLrip(ipAddress);
taskItem.setXtZhxgid(sysUser.getId());
taskItem.setXtZhxgrxm(sysUser.getUserName());
taskItem.setXtZhxgrbmid(deptDTO.getDeptId());
taskItem.setXtZhxgrbm(deptDTO.getDeptName());
sysTaskItemService.updateById(taskItem);
//2。插入日志
SysTaskLog log = new SysTaskLog();
log.setRwId(taskItem.getRwId());
log.setRwjsrId(sysUser.getId());
log.setTaskItemId(taskItem.getId());
log.setRwczsj(LocalDateTime.now());
log.setRwczzt(TaskItemStatusEnum.FINISH.code);
sysTaskLogService.save(log);
//3 判断任务是否执行完成
SysTask task = this.getById(taskItem.getRwId());
if (ExecuteTypeEnum.DEPT.code.equals(task.getZxlx()) || RuleTypeEnum.ONE.code.equals(task.getRwcjrgz())) {
task.setRwzxzt(2);
task.setXtZhxgsj(LocalDateTime.now());
task.setXtLrip(ipAddress);
task.setXtZhxgid(sysUser.getId());
task.setXtZhxgrxm(sysUser.getUserName());
task.setXtZhxgrbmid(deptDTO.getDeptId());
task.setXtZhxgrbm(deptDTO.getDeptName());
this.updateById(task);
} else {
int count = sysTaskItemService.count(new LambdaQueryWrapper<SysTaskItem>()
.ne(SysTaskItem::getId, finishSysTaskVO.getTaskItemId()).ne(SysTaskItem::getRwzt, TaskItemStatusEnum.FINISH.code));
if (count == 0) {
task.setRwzxzt(2);
task.setXtZhxgsj(LocalDateTime.now());
task.setXtLrip(ipAddress);
task.setXtZhxgid(sysUser.getId());
task.setXtZhxgrxm(sysUser.getUserName());
task.setXtZhxgrbmid(deptDTO.getDeptId());
task.setXtZhxgrbm(deptDTO.getDeptName());
this.updateById(task);
}
}
}
private void saveItems(AddSysTaskVO addSysTaskVO, SysTask sysTask) {
List<SysTaskLog> logs = new ArrayList<>();
if (ExecuteTypeEnum.USER.code.equals(addSysTaskVO.getZxlx())) {
List<AddSysTaskUserInfoVO> userInfos = addSysTaskVO.getUserInfos();
userInfos.forEach(item -> {
SysTaskItem taskItem = new SysTaskItem();
taskItem.setRwId(sysTask.getId());
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id_entity_card", item.getIdCardNo());
SysUser sysUser = userService.getBaseMapper().selectOne(queryWrapper);
Asserts.check(sysUser == null, "身份证 %s 对应的用户不存在!", item.getIdCardNo());
taskItem.setRwjsrId(sysUser.getId());
List<DeptDTO> deptList = sysDeptService.selectUserDeptList(sysUser.getId());
DeptDTO deptDTO = deptList.get(0);
taskItem.setRwjsrbmId(deptDTO.getDeptId());
taskItem.setRwjsrbmmc(deptDTO.getDeptName());
taskItem.setRwjsrdw(item.getCompanyName());
taskItem.setRwjsrdwId(item.getCompanyId());
taskItem.setRwjsrxm(sysUser.getUserName());
taskItem.setRwjsrsfzh(sysUser.getIdEntityCard());
sysTaskItemService.save(taskItem);
SysTaskLog log = new SysTaskLog();
log.setRwId(sysTask.getId());
log.setRwjsrId(sysUser.getId());
log.setTaskItemId(taskItem.getId());
log.setRwczsj(LocalDateTime.now());
log.setRwczzt(TaskItemStatusEnum.NOTVIEWED.code);
logs.add(log);
});
} else {
List<AddSysTaskDeptVO> deptVOS = addSysTaskVO.getDeptVOS();
deptVOS.forEach(item -> {
SysTaskItem taskItem = new SysTaskItem();
taskItem.setRwId(sysTask.getId());
SysDept one = sysDeptService.getOne(new LambdaQueryWrapper<SysDept>()
.eq(SysDept::getOrgCode, item.getDeptCode())
.eq(SysDept::getXtZxbz, DeletedEnum.NATURE.code));
taskItem.setRwjsrbmId(one.getId());
taskItem.setRwjsrdw(item.getCompanyName());
taskItem.setRwjsrdwId(item.getCompanyId());
sysTaskItemService.save(taskItem);
SysTaskLog log = new SysTaskLog();
log.setRwId(sysTask.getId());
log.setTaskItemId(taskItem.getId());
log.setRwczsj(LocalDateTime.now());
log.setRwczzt(TaskItemStatusEnum.NOTVIEWED.code);
logs.add(log);
});
}
sysTaskLogService.saveBatch(logs);
}
private void validInfo(AddSysTaskVO addSysTaskVO) {
Asserts.check(ExecuteTypeEnum.USER.code.equals(addSysTaskVO.getZxlx())
&& CollectionUtil.isEmpty(addSysTaskVO.getUserInfos()), "执行类型为用户用户信息为不能为空");
Asserts.check(ExecuteTypeEnum.DEPT.code.equals(addSysTaskVO.getZxlx())
&& CollectionUtil.isEmpty(addSysTaskVO.getDeptVOS()), "执行类型为部门,部门信息为不能为空");
}
}

View File

@ -0,0 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.mosty.common.task.TaskAutoConfiguration

View File

@ -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="com.mosty.common.task.mapper.SysTaskItemMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTaskItem">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rw_id" column="rw_id" jdbcType="BIGINT"/>
<result property="rwjsr_id" column="rwjsr_id" jdbcType="BIGINT"/>
<result property="rwjsrsfzh" column="rwjsrsfzh" jdbcType="VARCHAR"/>
<result property="rwjsrxm" column="rwjsrxm" jdbcType="VARCHAR"/>
<result property="rwjsrdw_id" column="rwjsrdw_id" jdbcType="BIGINT"/>
<result property="rwjsrdw" column="rwjsrdw" jdbcType="VARCHAR"/>
<result property="rwjsrbm_id" column="rwjsrbm_id" jdbcType="BIGINT"/>
<result property="rwjsrbmmc" column="rwjsrbmmc" jdbcType="VARCHAR"/>
<result property="rwzt" column="rwzt" jdbcType="INTEGER"/>
<result property="rwzdsj" column="rwzdsj" jdbcType="TIMESTAMP"/>
<result property="rwcksj" column="rwcksj" jdbcType="TIMESTAMP"/>
<result property="rwwcsj" column="rwwcsj" jdbcType="TIMESTAMP"/>
<result property="bz" column="bz" jdbcType="VARCHAR"/>
<result property="xt_zxbz" column="xt_zxbz" jdbcType="INTEGER"/>
<result property="xt_zxyy" column="xt_zxyy" jdbcType="VARCHAR"/>
<result property="xt_cjsj" column="xt_cjsj" jdbcType="TIMESTAMP"/>
<result property="xt_lrsj" column="xt_lrsj" jdbcType="TIMESTAMP"/>
<result property="xt_lrrxm" column="xt_lrrxm" jdbcType="VARCHAR"/>
<result property="xt_lrrid" column="xt_lrrid" jdbcType="BIGINT"/>
<result property="xt_lrrbm" column="xt_lrrbm" jdbcType="VARCHAR"/>
<result property="xt_lrrbmid" column="xt_lrrbmid" jdbcType="VARCHAR"/>
<result property="xt_lrip" column="xt_lrip" jdbcType="VARCHAR"/>
<result property="xt_zhxgsj" column="xt_zhxgsj" jdbcType="TIMESTAMP"/>
<result property="xt_zhxgrxm" column="xt_zhxgrxm" jdbcType="VARCHAR"/>
<result property="xt_zhxgid" column="xt_zhxgid" jdbcType="BIGINT"/>
<result property="xt_zhxgrbm" column="xt_zhxgrbm" jdbcType="VARCHAR"/>
<result property="xt_zhxgrbmid" column="xt_zhxgrbmid" jdbcType="BIGINT"/>
<result property="xt_zhxgrip" column="xt_zhxgrip" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,rw_id,rwjsr_id,
rwjsrsfzh,rwjsrxm,rwjsrdw_id,
rwjsrdw,rwjsrbm_id,rwjsrbmmc,
rwzt,rwzdsj,rwcksj,
rwwcsj,bz,xt_zxbz,
xt_zxyy,xt_cjsj,xt_lrsj,
xt_lrrxm,xt_lrrid,xt_lrrbm,
xt_lrrbmid,xt_lrip,xt_zhxgsj,
xt_zhxgrxm,xt_zhxgid,xt_zhxgrbm,
xt_zhxgrbmid,xt_zhxgrip
</sql>
</mapper>

View File

@ -0,0 +1,20 @@
<?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="com.mosty.common.task.mapper.SysTaskLogMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTaskLog">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rw_xfczb_id" column="rw_xfczb_id" jdbcType="BIGINT"/>
<result property="rw_id" column="rw_id" jdbcType="BIGINT"/>
<result property="rwjsr_id" column="rwjsr_id" jdbcType="BIGINT"/>
<result property="rwczsj" column="rwczsj" jdbcType="TIMESTAMP"/>
<result property="rwczzt" column="rwczzt" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id,rw_xfczb_id,rw_id,
rwjsr_id,rwczsj,rwczzt
</sql>
</mapper>

View File

@ -0,0 +1,200 @@
<?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="com.mosty.common.task.mapper.SysTaskMapper">
<resultMap id="BaseResultMap" type="com.mosty.common.task.entity.SysTask">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="rwlx" column="rwlx" jdbcType="INTEGER"/>
<result property="rwjjcd" column="rwjjcd" jdbcType="INTEGER"/>
<result property="rwmc" column="rwmc" jdbcType="VARCHAR"/>
<result property="rwnr" column="rwnr" jdbcType="VARCHAR"/>
<result property="rwzdsj" column="rwzdsj" jdbcType="TIMESTAMP"/>
<result property="rwwcsj" column="rwwcsj" jdbcType="TIMESTAMP"/>
<result property="rwyqwcsj" column="rwyqwcsj" jdbcType="TIMESTAMP"/>
<result property="rwcjrsfzh" column="rwcjrsfzh" jdbcType="VARCHAR"/>
<result property="rwcjrxm" column="rwcjrxm" jdbcType="VARCHAR"/>
<result property="rwcjrdw" column="rwcjrdw" jdbcType="VARCHAR"/>
<result property="rwcjrdwId" column="rwcjrdw_id" jdbcType="BIGINT"/>
<result property="rwcjrdh" column="rwcjrdh" jdbcType="VARCHAR"/>
<result property="rwcjrgz" column="rwcjrgz" jdbcType="INTEGER"/>
<result property="rwzxzt" column="rwzxzt" jdbcType="INTEGER"/>
<result property="rwlyxt" column="rwlyxt" jdbcType="VARCHAR"/>
<result property="rwUrl" column="rw_url" jdbcType="VARCHAR"/>
<result property="bz" column="bz" jdbcType="VARCHAR"/>
<result property="xtZxbz" column="xt_zxbz" jdbcType="INTEGER"/>
<result property="xtZxyy" column="xt_zxyy" jdbcType="VARCHAR"/>
<result property="xtCjsj" column="xt_cjsj" jdbcType="TIMESTAMP"/>
<result property="xtLrsj" column="xt_lrsj" jdbcType="TIMESTAMP"/>
<result property="xtLrrxm" column="xt_lrrxm" jdbcType="VARCHAR"/>
<result property="xtLrrid" column="xt_lrrid" jdbcType="BIGINT"/>
<result property="xtLrrbm" column="xt_lrrbm" jdbcType="VARCHAR"/>
<result property="xtLrrbmid" column="xt_lrrbmid" jdbcType="VARCHAR"/>
<result property="xtLrip" column="xt_lrip" jdbcType="VARCHAR"/>
<result property="xtZhxgsj" column="xt_zhxgsj" jdbcType="TIMESTAMP"/>
<result property="xtZhxgrxm" column="xt_zhxgrxm" jdbcType="VARCHAR"/>
<result property="xtZhxgid" column="xt_zhxgid" jdbcType="BIGINT"/>
<result property="xtZhxgrbm" column="xt_zhxgrbm" jdbcType="VARCHAR"/>
<result property="xtZhxgrbmid" column="xt_zhxgrbmid" jdbcType="BIGINT"/>
<result property="xtZhxgrip" column="xt_zhxgrip" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id
,rwlx,rwjjcd,
rwmc,rwnr,rwzdsj,
rwwcsj,rwyqwcsj,rwcjrsfzh,
rwcjrxm,rwcjrdw,rwcjrdw_id,
rwcjrdh,rwcjrgz,rwzxzt,
rwlyxt,rw_url,bz,
xt_zxbz,xt_zxyy,xt_cjsj,
xt_lrsj,xt_lrrxm,xt_lrrid,
xt_lrrbm,xt_lrrbmid,xt_lrip,
xt_zhxgsj,xt_zhxgrxm,xt_zhxgid,
xt_zhxgrbm,xt_zhxgrbmid,xt_zhxgrip
</sql>
<select id="countByUser" resultType="java.lang.Long">
select
count(1)
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrsfzh=#{param.idCardNo}
AND st.zxlx =1
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
</select>
<select id="countByDept" resultType="java.lang.Long">
select
count(1)
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrbm_id=#{param.deptId}
AND st.zxlx =2
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
</select>
<!--分页查询-->
<select id="findByList" resultType="com.mosty.common.task.entity.vo.SysTaskItemVO">
select
sti.id,
st.rwlx ,
st.rw_url AS rwUrl,
st.rwmc,
st.rwnr,
st.rwyqwcsj,
st.rwlyxt,
st.rwly_id,
sti.rwjsrsfzh AS idCardNo
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrsfzh=#{param.idCardNo}
AND st.zxlx =1
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
UNION
select
sti.id,
st.rwlx ,
st.rwly_id,
st.rw_url AS rwUrl,
st.rwmc,
st.rwnr,
st.rwyqwcsj,
st.rwlyxt,
sti.rwjsrsfzh AS idCardNo
FROM
sys_task st
LEFT JOIN
sys_task_item sti ON sti.rw_id = st.id
WHERE
sti.rwjsrbm_id=#{param.deptId}
AND st.zxlx =2
<if test="param.startTime !=null and param.startTime!=''">
and
<![CDATA[st.rwzdsj >= #{param.startTime}]]>
</if>
<if test="param.endTime !=null and param.endTime!=''">
and
<![CDATA[st.rwzdsj <= #{param.endTime}]]>
</if>
<if test="param.source!=null and param.source!=''">
AND st.rwlyxt =#{param.source}
</if>
<if test="param.taskType!=null and param.taskType!=''">
AND st.rwlx =#{param.taskType}
</if>
<if test="param.taskName!=null and param.taskName!=''">
AND st.rwmc like concat('%', #{param.taskName}, '%')
</if>
<if test="param.taskStatus!=null and param.taskStatus!=''">
AND sti.rwzt = #{param.taskStatus}
</if>
ORDER BY id DESC
</select>
</mapper>