工作流审批人默认时间

This commit is contained in:
guoshengxiong 2024-12-21 14:31:43 +08:00
parent 8e8bee8b13
commit ae8043f1e9
2 changed files with 75 additions and 0 deletions

View File

@ -0,0 +1,11 @@
package com.wflow.service;
/**
* 流程里面的监听器Service
*/
public interface CustomListenService {
void updateFormData(String instanceId, String fieldId, String val);
void updateFormDataNow(String instanceId, String fieldId, Integer type);
}

View File

@ -0,0 +1,64 @@
package com.wflow.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wflow.bean.entity.WflowFormData;
import com.wflow.mapper.WflowFormDataMapper;
import com.wflow.service.CustomListenService;
import lombok.val;
import org.flowable.engine.RuntimeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Service("customListenService")
public class CustomListenServiceImpl implements CustomListenService {
@Lazy
@Autowired
RuntimeService runtimeService;
@Lazy
@Autowired
private WflowFormDataMapper formDataMapper;
@Override
public void updateFormData(String instanceId, String fieldId, String val) {
WflowFormData data = new WflowFormData();
data.setInstanceId(instanceId);
data.setFieldId(fieldId);
data.setFieldValue(val);
formDataMapper.update(data, new LambdaQueryWrapper<WflowFormData>()
.eq(WflowFormData::getInstanceId, instanceId)
.eq(WflowFormData::getFieldId, fieldId));
Map<String, Object> dataMap = new HashMap<>();
dataMap.put(fieldId, val);
runtimeService.setVariables(instanceId, dataMap);
}
@Override
public void updateFormDataNow(String instanceId, String fieldId, Integer type) {
String val;
Date date = new Date();
if (type == 1) {
val = DateUtil.format(date,"yyyy-MM-dd");
} else if (type == 2){
val = DateUtil.format(date,"yyyy-MM-dd HH:mm");
} else {
val = DateUtil.format(date,"yyyy-MM-dd HH:mm:ss");
}
WflowFormData data = new WflowFormData();
data.setInstanceId(instanceId);
data.setFieldId(fieldId);
data.setFieldValue(val);
formDataMapper.update(data, new LambdaQueryWrapper<WflowFormData>()
.eq(WflowFormData::getInstanceId, instanceId)
.eq(WflowFormData::getFieldId, fieldId));
Map<String, Object> dataMap = new HashMap<>();
dataMap.put(fieldId, val);
runtimeService.setVariables(instanceId, dataMap);
}
}