feat(task): 添加按作业类型查询任务列表功能
- 在 EightworkTaskController 中新增 listByWorkType 接口 - 实现 listByWorkTypeOrderByLevel 方法按作业级别升序排序 - 新增 EightworkTaskQry 和 EightworkTaskLevelCO 数据传输对象 - 优化 TaskLog 初始化逻辑,默认状态设为未开始 - 修复持续步骤状态管理,提交时保持进行中状态 - 更新数据库表名从 eightwork_task_log 到 task_log - 添加部门ID、创建时间等查询条件支持master
parent
6f9146dc55
commit
19059e1d4c
|
|
@ -4,8 +4,10 @@ package com.zcloud.eightwork.web;
|
|||
import com.zcloud.eightwork.api.EightworkTaskServiceI;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskAddCmd;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskPageQry;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskQry;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskUpdateCmd;
|
||||
import com.zcloud.eightwork.dto.clientobject.EightworkTaskCO;
|
||||
import com.zcloud.eightwork.dto.clientobject.EightworkTaskLevelCO;
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.Response;
|
||||
|
|
@ -46,6 +48,12 @@ public class EightworkTaskController {
|
|||
return eightworkTaskService.listPage(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("根据作业类型查询任务列表")
|
||||
@PostMapping("/listByWorkType")
|
||||
public MultiResponse<EightworkTaskLevelCO> listByWorkType(@Validated @RequestBody EightworkTaskQry qry) {
|
||||
return eightworkTaskService.listByWorkTypeOrderByLevel(qry);
|
||||
}
|
||||
|
||||
@ApiOperation("所有数据")
|
||||
@GetMapping("/listAll")
|
||||
public MultiResponse<EightworkTaskCO> listAll() {
|
||||
|
|
|
|||
|
|
@ -89,15 +89,14 @@ public class TaskLogAddExe {
|
|||
TaskLogDO taskLogDO = new TaskLogDO(Tools.get32UUID());
|
||||
BeanUtils.copyProperties(flow, taskLogDO, "id");
|
||||
taskLogDO.setWorkId(workId);
|
||||
taskLogDO.setWorkType(cmd.getWorkType());
|
||||
|
||||
// 持续步骤(如气体检测):申请后就开始,且状态始终为进行中
|
||||
if (flow.getOngoingFlag() != null && flow.getOngoingFlag() == 1) {
|
||||
taskLogDO.setStatus(TaskLogStatus.IN_PROGRESS.getCode());
|
||||
taskLogDO.setCurrentFillTimes(0);
|
||||
log.info("持续步骤已初始化: stepName={}", flow.getStepName());
|
||||
} else {
|
||||
// 默认状态为未开始
|
||||
taskLogDO.setStatus(TaskLogStatus.NOT_STARTED.getCode());
|
||||
|
||||
// 持续步骤初始化填写次数
|
||||
if (flow.getOngoingFlag() != null && flow.getOngoingFlag() == 1) {
|
||||
taskLogDO.setCurrentFillTimes(0);
|
||||
}
|
||||
|
||||
// 第一步自动设置为当前申请人
|
||||
|
|
@ -151,7 +150,6 @@ public class TaskLogAddExe {
|
|||
signInfo.getActUser(),
|
||||
signInfo.getActUserName()
|
||||
);
|
||||
taskLogDO.setWorkType(cmd.getWorkType());
|
||||
log.info("已设置预设签字人: stepName={}, userName={}", flow.getStepName(), signInfo.getActUserName());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,8 +111,15 @@ public class TaskLogUpdateExe {
|
|||
throw new BizException("未找到对应的步骤记录");
|
||||
}
|
||||
|
||||
// 1. 完成当前步骤
|
||||
// 检查是否为持续步骤的特殊提交
|
||||
// 持续步骤提交时不应改变状态为 APPROVED,而应保持 IN_PROGRESS
|
||||
boolean isOngoingStepSubmit = currentLog.getOngoingFlag() != null && currentLog.getOngoingFlag() == 1
|
||||
&& StringUtils.isNotBlank(cmd.getSpecialStepCode());
|
||||
|
||||
// 1. 完成当前步骤(持续步骤的特殊提交跳过此步骤)
|
||||
if (!isOngoingStepSubmit) {
|
||||
completeCurrentStep(currentLog, cmd, actionLogs);
|
||||
}
|
||||
|
||||
// 2. 判断是否通过,通过才流转
|
||||
if (TaskLogStatus.APPROVED.equalsCode(cmd.getStatus())) {
|
||||
|
|
@ -314,6 +321,11 @@ public class TaskLogUpdateExe {
|
|||
currentTimes = 0;
|
||||
}
|
||||
currentLog.setCurrentFillTimes(currentTimes + 1);
|
||||
|
||||
// 持续步骤状态保持 IN_PROGRESS,不随审批流转
|
||||
currentLog.setStatus(TaskLogStatus.IN_PROGRESS.getCode());
|
||||
|
||||
// 添加到待更新列表
|
||||
actionLogs.add(TaskLogConvertUtil.toDO(currentLog));
|
||||
|
||||
log.info("气体检测记录已保存,当前填写次数: {}", currentTimes + 1);
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
package com.zcloud.eightwork.command.query;
|
||||
|
||||
import com.zcloud.eightwork.command.convertor.EightworkTaskCoConvertor;
|
||||
import com.zcloud.eightwork.domain.model.EightworkTaskLevelE;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskPageQry;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskQry;
|
||||
import com.zcloud.eightwork.dto.clientobject.EightworkTaskCO;
|
||||
import com.zcloud.eightwork.dto.clientobject.EightworkTaskLevelCO;
|
||||
import com.zcloud.eightwork.persistence.dataobject.EightworkTaskDO;
|
||||
import com.zcloud.eightwork.persistence.repository.EightworkTaskRepository;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
|
@ -38,5 +42,26 @@ public class EightworkTaskQueryExe {
|
|||
List<EightworkTaskCO> examCenterCOS = eightworkTaskCoConvertor.converDOsToCOs(pageResponse.getData());
|
||||
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据作业类型查询任务列表,按作业级别升序排序
|
||||
*
|
||||
* @param qry 查询条件
|
||||
* @return 任务列表
|
||||
*/
|
||||
public MultiResponse<EightworkTaskLevelCO> listByWorkTypeOrderByLevel(EightworkTaskQry qry) {
|
||||
List<EightworkTaskDO> taskDOList = eightworkTaskRepository.listByWorkTypeOrderByLevel(qry.getWorkType());
|
||||
|
||||
// 手动转换为 EightworkTaskLevelCO
|
||||
List<EightworkTaskLevelCO> taskCOList = new java.util.ArrayList<>();
|
||||
for (EightworkTaskDO taskDO : taskDOList) {
|
||||
EightworkTaskLevelCO co = new EightworkTaskLevelCO();
|
||||
co.setTaskName(taskDO.getTaskName());
|
||||
co.setWorkLevel(taskDO.getWorkLevel());
|
||||
taskCOList.add(co);
|
||||
}
|
||||
|
||||
return MultiResponse.of(taskCOList);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,8 +8,11 @@ import com.zcloud.eightwork.command.query.EightworkTaskQueryExe;
|
|||
import com.zcloud.eightwork.dto.EightworkTaskAddCmd;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskPageQry;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskUpdateCmd;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskQry;
|
||||
import com.zcloud.eightwork.dto.clientobject.EightworkTaskCO;
|
||||
import com.zcloud.eightwork.dto.clientobject.EightworkTaskLevelCO;
|
||||
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
|
@ -56,5 +59,10 @@ public class EightworkTaskServiceImpl implements EightworkTaskServiceI {
|
|||
public void removeBatch(Long[] ids) {
|
||||
eightworkTaskRemoveExe.execute(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MultiResponse<EightworkTaskLevelCO> listByWorkTypeOrderByLevel(EightworkTaskQry qry) {
|
||||
return eightworkTaskQueryExe.listByWorkTypeOrderByLevel(qry);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,15 @@ package com.zcloud.eightwork.api;
|
|||
import com.zcloud.eightwork.dto.EightworkTaskAddCmd;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskPageQry;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskUpdateCmd;
|
||||
import com.zcloud.eightwork.dto.EightworkTaskQry;
|
||||
import com.zcloud.eightwork.dto.clientobject.EightworkTaskCO;
|
||||
import com.zcloud.eightwork.dto.clientobject.EightworkTaskLevelCO;
|
||||
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.alibaba.cola.dto.SingleResponse;
|
||||
import com.alibaba.cola.dto.MultiResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* web-client
|
||||
|
|
@ -24,5 +29,13 @@ public interface EightworkTaskServiceI {
|
|||
void remove(Long id);
|
||||
|
||||
void removeBatch(Long[] ids);
|
||||
|
||||
/**
|
||||
* 根据作业类型查询任务列表,按作业级别升序排序
|
||||
*
|
||||
* @param qry 查询条件
|
||||
* @return 任务列表
|
||||
*/
|
||||
MultiResponse<EightworkTaskLevelCO> listByWorkTypeOrderByLevel(EightworkTaskQry qry);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package com.zcloud.eightwork.dto;
|
|||
import com.alibaba.cola.dto.PageQuery;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* web-client
|
||||
|
|
@ -33,5 +35,14 @@ public class EightworkInfoPageQry extends PageQuery {
|
|||
private Long eqProjectId;
|
||||
private Long eqWorkDepartmentId;
|
||||
private Long eqWorkUserId;
|
||||
|
||||
private List<Long> inDepartmentId;
|
||||
|
||||
private String leCreateTime;
|
||||
|
||||
private String geCreateTime;
|
||||
|
||||
private String likeCreateName;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ public class EightworkSupplementaryInfoPageQry extends PageQuery {
|
|||
* - `le`: 小于等于比较查询
|
||||
* - `ne`: 不等比较查询,对应SQL的!=操作符
|
||||
*/
|
||||
private String likeSupplementaryInfoId;
|
||||
private String eqWorkId;
|
||||
private String eqType;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ public class TaskLogAddCmd extends Command {
|
|||
private Long corpinfoId;
|
||||
|
||||
@ApiModelProperty(value = "是否相关方1是", name = "xgfFlag", required = true)
|
||||
@NotNull(message = "是否相关方1是不能为空")
|
||||
private Integer xgfFlag;
|
||||
|
||||
@ApiModelProperty(value = "是否内部作业1是2否", name = "internalOperationFlag")
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@ public class TaskLogNextCmd extends Command {
|
|||
private String specialStepCode;
|
||||
//签字图片路径
|
||||
@ApiModelProperty(value = "签字图片路径")
|
||||
@NotEmpty(message = "签字图片路径不能为空")
|
||||
private String signPath;
|
||||
@ApiModelProperty(value = "签字步骤", name = "signLogs")
|
||||
private List<TaskSignStepInfoCmd> signLogs;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.alibaba.cola.dto.PageResponse;
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jjb.saas.framework.repository.repo.BaseRepository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -15,5 +16,13 @@ import java.util.Map;
|
|||
*/
|
||||
public interface EightworkTaskRepository extends BaseRepository<EightworkTaskDO> {
|
||||
PageResponse<EightworkTaskDO> listPage(Map<String, Object> params);
|
||||
|
||||
/**
|
||||
* 根据作业类型查询任务列表,按作业级别升序排序
|
||||
*
|
||||
* @param workType 作业类型
|
||||
* @return 任务列表
|
||||
*/
|
||||
List<EightworkTaskDO> listByWorkTypeOrderByLevel(String workType);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,18 +1,19 @@
|
|||
package com.zcloud.eightwork.persistence.repository.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jjb.saas.framework.repository.common.PageHelper;
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
import com.zcloud.eightwork.persistence.dataobject.EightworkTaskDO;
|
||||
import com.zcloud.eightwork.persistence.mapper.EightworkTaskMapper;
|
||||
import com.zcloud.eightwork.persistence.repository.EightworkTaskRepository;
|
||||
import com.alibaba.cola.dto.PageResponse;
|
||||
import com.zcloud.gbscommon.utils.PageQueryHelper;
|
||||
import com.zcloud.gbscommon.utils.Query;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -35,5 +36,14 @@ public class EightworkTaskRepositoryImpl extends BaseRepositoryImpl<EightworkTas
|
|||
IPage<EightworkTaskDO> result = eightworkTaskMapper.selectPage(iPage, queryWrapper);
|
||||
return PageHelper.pageToResponse(result, result.getRecords());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EightworkTaskDO> listByWorkTypeOrderByLevel(String workType) {
|
||||
QueryWrapper<EightworkTaskDO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("work_type", workType);
|
||||
queryWrapper.select("task_name", "work_level");
|
||||
queryWrapper.orderByAsc("work_level");
|
||||
return eightworkTaskMapper.selectList(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ public class MeasuresLogsRepositoryImpl extends BaseRepositoryImpl<MeasuresLogsM
|
|||
queryWrapper.eq(MeasuresLogsDO::getWorkId, workId);
|
||||
queryWrapper.orderByAsc(MeasuresLogsDO::getType);
|
||||
queryWrapper.orderByAsc(MeasuresLogsDO::getOrderBy);
|
||||
queryWrapper.orderByAsc(MeasuresLogsDO::getCreateTime);
|
||||
return list(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,6 +43,21 @@
|
|||
where log.work_id = t.work_id
|
||||
and log.act_user = #{params.eqWorkUserId})
|
||||
</if>
|
||||
<if test="params.inDepartmentId != null and params.inDepartmentId.size() > 0">
|
||||
and t.department_id in
|
||||
<foreach collection="params.inDepartmentId" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="params.geCreateTime != null and params.geCreateTime != ''">
|
||||
and t.create_time >= #{params.geCreateTime}
|
||||
</if>
|
||||
<if test="params.leCreateTime != null and params.leCreateTime != ''">
|
||||
and t.create_time <= #{params.leCreateTime}
|
||||
</if>
|
||||
<if test="params.likeCreateName != null and params.likeCreateName != ''">
|
||||
and t.create_name like concat('%', #{params.likeCreateName}, '%')
|
||||
</if>
|
||||
order by t.create_time desc
|
||||
</select>
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<select id="getTodoCount" resultType="com.zcloud.eightwork.domain.model.TodoCountE">
|
||||
select work_type,
|
||||
count(1) as todoCount
|
||||
from eightwork_task_log
|
||||
from task_log
|
||||
where status = 0
|
||||
and (act_user = #{userId}
|
||||
or (act_user_department = #{orgId} and act_user is null))
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
select work_type,
|
||||
step_id,
|
||||
count(1) as todoCount
|
||||
from eightwork_task_log
|
||||
from task_log
|
||||
where status = 0
|
||||
and work_type = #{workType}
|
||||
and (act_user = #{userId}
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
<select id="getByWorkIdAndStepId" resultType="com.zcloud.eightwork.persistence.dataobject.TaskLogDO">
|
||||
select *
|
||||
from eightwork_task_log
|
||||
from task_log
|
||||
where work_id = #{workId}
|
||||
and step_id = #{stepId}
|
||||
limit 1
|
||||
|
|
|
|||
Loading…
Reference in New Issue