|
|
@@ -3,16 +3,24 @@ package cn.iocoder.yudao.module.iscs.dal.dataobject.mappoint.workdesign;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworklog.vo.WorkflowWorkLogPageReqVO;
|
|
|
-import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworklog.vo.WorkflowWorkLogSaveReqVO;
|
|
|
+import cn.iocoder.yudao.module.iscs.controller.admin.workdesign.workflowworklog.vo.WorkflowWorkLogRespVO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkLogDO;
|
|
|
+import cn.iocoder.yudao.module.iscs.dal.dataobject.workdesign.WorkflowWorkNodeDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.mysql.workdesign.WorkflowWorkLogMapper;
|
|
|
+import cn.iocoder.yudao.module.iscs.service.workdesign.WorkflowWorkNodeService;
|
|
|
+import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
+import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.List;
|
|
|
|
|
|
+import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
|
|
+
|
|
|
/**
|
|
|
* 作业流程操作日志 Service 实现类
|
|
|
*
|
|
|
@@ -24,17 +32,104 @@ public class WorkflowWorkLogServiceImpl extends ServiceImpl<WorkflowWorkLogMappe
|
|
|
|
|
|
@Resource
|
|
|
private WorkflowWorkLogMapper workflowWorkLogMapper;
|
|
|
+ @Resource
|
|
|
+ private AdminUserService adminUserService;
|
|
|
+ @Resource
|
|
|
+ private WorkflowWorkNodeService workflowWorkNodeService;
|
|
|
|
|
|
@Override
|
|
|
- public Long createWorkflowWorkLog(WorkflowWorkLogSaveReqVO createReqVO) {
|
|
|
+ public Long createWorkflowWorkLog(Long nodeId, String step) {
|
|
|
+ if (nodeId == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ Long userId = getLoginUserId();
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+
|
|
|
+ WorkflowWorkLogDO workflowWorkLogDO = new WorkflowWorkLogDO();
|
|
|
+ workflowWorkLogDO.setNodeId(nodeId);
|
|
|
+ workflowWorkLogDO.setUserId(userId);
|
|
|
+ workflowWorkLogDO.setStep(step);
|
|
|
+ // workflowWorkLogDO.setTaskStartTime();
|
|
|
+ workflowWorkLogDO.setTaskFinishTime(now);
|
|
|
+ if (userId != null) {
|
|
|
+ // 获取用户信息
|
|
|
+ AdminUserDO user = adminUserService.getUser(userId);
|
|
|
+ workflowWorkLogDO.setAvatar(user != null ? user.getAvatar() : "");
|
|
|
+ workflowWorkLogDO.setNickName(user != null ? user.getNickname() : "");
|
|
|
+ }
|
|
|
+ // 获取节点信息
|
|
|
+ WorkflowWorkNodeDO nodeDO = workflowWorkNodeService.getById(nodeId);
|
|
|
+ workflowWorkLogDO.setWorkId(nodeDO.getWorkId());
|
|
|
+ // 开始初始化
|
|
|
+ String content = initContent(workflowWorkLogDO, nodeDO);
|
|
|
+ workflowWorkLogDO.setTaskContent(content);
|
|
|
// 插入
|
|
|
- WorkflowWorkLogDO workflowWorkLog = BeanUtils.toBean(createReqVO, WorkflowWorkLogDO.class);
|
|
|
- workflowWorkLogMapper.insert(workflowWorkLog);
|
|
|
+ workflowWorkLogMapper.insert(workflowWorkLogDO);
|
|
|
|
|
|
// 返回
|
|
|
- return workflowWorkLog.getId();
|
|
|
+ return workflowWorkLogDO.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ private String initContent(WorkflowWorkLogDO workflowWorkLogDO, WorkflowWorkNodeDO nodeDO) {
|
|
|
+ String content = "";
|
|
|
+ LocalDateTime taskFinishTime = workflowWorkLogDO.getTaskFinishTime();
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ // 创建作业-createJob
|
|
|
+ if ("createJob".equals(nodeDO.getType())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "已启动";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 确认-confirm
|
|
|
+ if ("confirm".equals(nodeDO.getType())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "已审批";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 审核-review
|
|
|
+ if ("review".equals(nodeDO.getType())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "已审批";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 录入信息-inputInfo
|
|
|
+ if ("inputInfo".equals(nodeDO.getType())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "已审批";
|
|
|
+ }
|
|
|
+
|
|
|
+ // 隔离/方案-isolation
|
|
|
+ if ("isolation".equals(nodeDO.getType())) {
|
|
|
+ if ("2".equals(nodeDO.getNodeProgress())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "取锁完成";
|
|
|
+ }
|
|
|
+ if ("3".equals(nodeDO.getNodeProgress())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "上锁完成/归还钥匙完成";
|
|
|
+ }
|
|
|
+ // 下面的会覆盖上面,顺序重要
|
|
|
+ if ("approved".equals(nodeDO.getApprovalStatus())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "共锁完成";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 解除隔离-releaseIsolation
|
|
|
+ if ("releaseIsolation".equals(nodeDO.getType())) {
|
|
|
+ if ("2".equals(nodeDO.getNodeProgress())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "解除共锁完成";
|
|
|
+ }
|
|
|
+ if ("3".equals(nodeDO.getNodeProgress())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "解锁完成";
|
|
|
+ }
|
|
|
+ // 下面的会覆盖上面,顺序重要
|
|
|
+ if ("approved".equals(nodeDO.getApprovalStatus())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "归还钥匙完成";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 完成/结束-complete
|
|
|
+ if ("complete".equals(nodeDO.getType())) {
|
|
|
+ content = nodeDO.getNodeName() + ":" + taskFinishTime.format(formatter) + "任务" + nodeDO.getNodeName() + "已完成";
|
|
|
+ }
|
|
|
+ return content;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
public void deleteWorkflowWorkLogListByIds(List<Long> ids) {
|
|
|
// 删除
|
|
|
@@ -47,8 +142,19 @@ public class WorkflowWorkLogServiceImpl extends ServiceImpl<WorkflowWorkLogMappe
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public PageResult<WorkflowWorkLogDO> getWorkflowWorkLogPage(WorkflowWorkLogPageReqVO pageReqVO) {
|
|
|
- return workflowWorkLogMapper.selectPage(pageReqVO);
|
|
|
+ public PageResult<WorkflowWorkLogRespVO> getWorkflowWorkLogPage(WorkflowWorkLogPageReqVO pageReqVO) {
|
|
|
+ PageResult<WorkflowWorkLogDO> workflowWorkLogDOPageResult = workflowWorkLogMapper.selectPage(pageReqVO);
|
|
|
+ PageResult<WorkflowWorkLogRespVO> bean = BeanUtils.toBean(workflowWorkLogDOPageResult, WorkflowWorkLogRespVO.class);
|
|
|
+
|
|
|
+ List<WorkflowWorkLogRespVO> list = bean.getList();
|
|
|
+ for (WorkflowWorkLogRespVO vo : list) {
|
|
|
+ WorkflowWorkNodeDO nodeDO = workflowWorkNodeService.getById(vo.getNodeId());
|
|
|
+ vo.setType(nodeDO.getType());
|
|
|
+ vo.setNodeIcon(nodeDO.getNodeIcon());
|
|
|
+ vo.setNodeName(nodeDO.getNodeName());
|
|
|
+ vo.setApprovalStatus(nodeDO.getApprovalStatus());
|
|
|
+ }
|
|
|
+ return bean;
|
|
|
}
|
|
|
|
|
|
}
|