外协人员excel导入优化
This commit is contained in:
@@ -9,8 +9,6 @@ import com.jeelowcode.service.bpm.controller.vo.instance.BpmProcessInstanceRespV
|
||||
import com.jeelowcode.service.bpm.service.IBpmProcessInstanceService;
|
||||
import com.jeelowcode.tool.framework.datapermission.core.annotation.DataPermission;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -25,10 +23,7 @@ public class BillApproveStatusService {
|
||||
@Resource
|
||||
private IDbformDataService dbformDataService;
|
||||
|
||||
|
||||
public void afterSubmit(String processInstanceId){
|
||||
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
//流程实例id
|
||||
BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId);
|
||||
//获取到的自定义表单数据id
|
||||
@@ -42,12 +37,15 @@ public class BillApproveStatusService {
|
||||
json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.APPROVING.getDesc());
|
||||
json.put("ProcessInstanceId", processInstanceId);
|
||||
dbformDataService.update(formEntity.getTableName(),id,json);
|
||||
|
||||
// 如果是批量审批表,同步更新外协人员状态
|
||||
if ("lc_outside_batch_approval".equals(formEntity.getTableName())) {
|
||||
updateOutsidePersonStatusSafely(formEntity.getTableName(), id, json);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void afterApproved(String processInstanceId){
|
||||
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
//流程实例id
|
||||
BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId);
|
||||
//获取到的自定义表单数据id
|
||||
@@ -60,12 +58,15 @@ public class BillApproveStatusService {
|
||||
json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.APPROVED.getCode());
|
||||
json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.APPROVED.getDesc());
|
||||
dbformDataService.update(formEntity.getTableName(),id,json);
|
||||
|
||||
// 如果是批量审批表,同步更新外协人员状态
|
||||
if ("lc_outside_batch_approval".equals(formEntity.getTableName())) {
|
||||
updateOutsidePersonStatusSafely(formEntity.getTableName(), id, json);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void afterRejected(String processInstanceId){
|
||||
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
//流程实例id
|
||||
BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId);
|
||||
//获取到的自定义表单数据id
|
||||
@@ -78,13 +79,16 @@ public class BillApproveStatusService {
|
||||
json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.REJECTED.getCode());
|
||||
json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.REJECTED.getDesc());
|
||||
dbformDataService.update(formEntity.getTableName(),id,json);
|
||||
|
||||
// 如果是批量审批表,同步更新外协人员状态
|
||||
if ("lc_outside_batch_approval".equals(formEntity.getTableName())) {
|
||||
updateOutsidePersonStatusSafely(formEntity.getTableName(), id, json);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void afterCancel(String processInstanceId){
|
||||
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
//流程实例id
|
||||
BpmProcessInstanceRespVO vo = SpringUtils.getBean(IBpmProcessInstanceService.class).getProcessInstanceVO(processInstanceId);
|
||||
//获取到的自定义表单数据id
|
||||
@@ -97,6 +101,42 @@ public class BillApproveStatusService {
|
||||
json.put(ApproveStatusEnum.codeField, ApproveStatusEnum.UNAPPROVED.getCode());
|
||||
json.put(ApproveStatusEnum.nameField, ApproveStatusEnum.UNAPPROVED.getDesc());
|
||||
dbformDataService.update(formEntity.getTableName(),id,json);
|
||||
|
||||
// 如果是批量审批表,同步更新外协人员状态
|
||||
if ("lc_outside_batch_approval".equals(formEntity.getTableName())) {
|
||||
updateOutsidePersonStatusSafely(formEntity.getTableName(), id, json);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 安全地调用 IOutsideBatchApprovalService 的方法,避免循环依赖
|
||||
* 使用反射和 SpringUtils 延迟获取 Bean,避免编译时依赖
|
||||
*/
|
||||
private void updateOutsidePersonStatusSafely(String tableName, String id, Map<String, Object> dataMap) {
|
||||
try {
|
||||
// 使用反射获取接口类,避免编译时依赖
|
||||
Class<?> serviceClass = Class.forName("com.jeelowcode.module.biz.service.IOutsideBatchApprovalService");
|
||||
// 通过 SpringUtils 获取 Bean(使用 Bean 名称,默认是类名首字母小写)
|
||||
Object service = SpringUtils.getBean("outsideBatchApprovalService");
|
||||
if (service == null) {
|
||||
// 如果通过名称获取不到,尝试通过类获取
|
||||
service = SpringUtils.getBean(serviceClass);
|
||||
}
|
||||
if (service != null) {
|
||||
// 反射调用方法
|
||||
java.lang.reflect.Method method = serviceClass.getMethod("updateOutsidePersonStatus", String.class, String.class, Map.class);
|
||||
method.invoke(service, tableName, id, dataMap);
|
||||
log.debug("成功调用 IOutsideBatchApprovalService.updateOutsidePersonStatus");
|
||||
} else {
|
||||
log.warn("未找到 IOutsideBatchApprovalService Bean,跳过同步外协人员状态");
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
log.debug("IOutsideBatchApprovalService 类不存在,可能未加载该模块,跳过同步外协人员状态");
|
||||
} catch (NoSuchMethodException e) {
|
||||
log.warn("IOutsideBatchApprovalService.updateOutsidePersonStatus 方法不存在", e);
|
||||
} catch (Exception e) {
|
||||
log.error("调用 IOutsideBatchApprovalService.updateOutsidePersonStatus 失败", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user