Browse Source

添加节点类型、标签等

master
陈裕财 4 years ago
parent
commit
e5bd15c6c3
  1. 51
      xm-core/src/main/java/com/xm/core/service/XmProjectService.java
  2. 61
      xm-core/src/main/java/com/xm/core/service/XmTaskService.java

51
xm-core/src/main/java/com/xm/core/service/XmProjectService.java

@ -385,9 +385,9 @@ public class XmProjectService extends BaseService {
if("complete".equals(eventName)) { if("complete".equals(eventName)) {
if("1".equals(agree)) { if("1".equals(agree)) {
this.updateFlowStateByProcInst("", flowVars);
this.updateFlowStateByProcInst("",bizProject, flowVars);
}else { }else {
this.updateFlowStateByProcInst("", flowVars);
this.updateFlowStateByProcInst("",bizProject, flowVars);
} }
}else { }else {
@ -412,10 +412,7 @@ public class XmProjectService extends BaseService {
throw new BizException("该项目正在审批中,不能再发起审批"); throw new BizException("该项目正在审批中,不能再发起审批");
} }
} }
flowVars.put("id", this.createKey("id"));
this.insert("insertProcessApprova", flowVars);
this.updateFlowStateByProcInst("1", flowVars);
this.updateFlowStateByProcInst("1",bizProject, flowVars);
}else if("PROCESS_COMPLETED".equals(eventName)) { }else if("PROCESS_COMPLETED".equals(eventName)) {
if("1".equals(agree)) { if("1".equals(agree)) {
@ -432,6 +429,8 @@ public class XmProjectService extends BaseService {
project.setBudgetCtrl(bizProject.getBudgetCtrl()); project.setBudgetCtrl(bizProject.getBudgetCtrl());
project.setDescription(bizProject.getDescription()); project.setDescription(bizProject.getDescription());
project.setAssessRemarks(bizProject.getAssessRemarks()); project.setAssessRemarks(bizProject.getAssessRemarks());
project.setBizProcInstId((String) flowVars.get("procInstId"));
project.setBizFlowState("2");
//project.setCode(project.getCode()); //project.setCode(project.getCode());
this.updateSomeFieldByPk(project); this.updateSomeFieldByPk(project);
xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-基本信息", "修改基本信息" ); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-基本信息", "修改基本信息" );
@ -440,8 +439,8 @@ public class XmProjectService extends BaseService {
XmProject project=new XmProject(); XmProject project=new XmProject();
project.setId(bizProject.getId()); project.setId(bizProject.getId());
project.setStatus("3"); project.setStatus("3");
//todo 立项通过需要把预算数据同步到财务系统把项目数据同步到财务系统
project.setBizProcInstId((String) flowVars.get("procInstId"));
project.setBizFlowState("2");
this.updateSomeFieldByPk(project); this.updateSomeFieldByPk(project);
xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-立项", "项目立项通过审批" ); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-立项", "项目立项通过审批" );
this.createBaseline(bizProject.getId(),"项目立项通过审批"); this.createBaseline(bizProject.getId(),"项目立项通过审批");
@ -450,55 +449,57 @@ public class XmProjectService extends BaseService {
XmProject project=new XmProject(); XmProject project=new XmProject();
project.setId(bizProject.getId()); project.setId(bizProject.getId());
project.setEndTime(bizProject.getEndTime()); project.setEndTime(bizProject.getEndTime());
project.setBizProcInstId((String) flowVars.get("procInstId"));
project.setBizFlowState("2");
this.updateSomeFieldByPk(project); this.updateSomeFieldByPk(project);
xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-逾期", "项目逾期申请通过审批" ); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-逾期", "项目逾期申请通过审批" );
}else if("xm_project_over_approva".equals(bizKey) ) { //结项 }else if("xm_project_over_approva".equals(bizKey) ) { //结项
XmProject project=new XmProject(); XmProject project=new XmProject();
project.setId(bizProject.getId()); project.setId(bizProject.getId());
project.setBizProcInstId((String) flowVars.get("procInstId"));
project.setBizFlowState("2");
project.setStatus("6"); project.setStatus("6");
this.updateSomeFieldByPk(project); this.updateSomeFieldByPk(project);
this.createBaseline(bizProject.getId(),"项目结项申请通过审批"); this.createBaseline(bizProject.getId(),"项目结项申请通过审批");
xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-结项", "项目结项申请通过审批" ); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-结项", "项目结项申请通过审批" );
}else if("xm_project_budget_change_approva".equals(bizKey) ) { //总预算调整需要同步预算到财务系统 }else if("xm_project_budget_change_approva".equals(bizKey) ) { //总预算调整需要同步预算到财务系统
this.editBudget(bizProject); this.editBudget(bizProject);
xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-预算调整", "项目预算调整申请通过审批" ); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-预算调整", "项目预算调整申请通过审批" );
}else if("xm_project_restart_approva".equals(bizKey) ) { //重新启动 }else if("xm_project_restart_approva".equals(bizKey) ) { //重新启动
XmProject project=new XmProject(); XmProject project=new XmProject();
project.setId(bizProject.getId()); project.setId(bizProject.getId());
project.setStatus("ssz");
project.setStatus("4");
this.updateSomeFieldByPk(project); this.updateSomeFieldByPk(project);
xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-重新启动", "项目重新启动申请通过审批" ); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-重新启动", "项目重新启动申请通过审批" );
}else if("xm_project_pause_approva".equals(bizKey) ) { //暂停 }else if("xm_project_pause_approva".equals(bizKey) ) { //暂停
XmProject project=new XmProject(); XmProject project=new XmProject();
project.setId(bizProject.getId()); project.setId(bizProject.getId());
project.setLocked("0"); project.setLocked("0");
project.setBizProcInstId((String) flowVars.get("procInstId"));
project.setBizFlowState("2");
this.updateSomeFieldByPk(project); this.updateSomeFieldByPk(project);
xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-暂停", "项目暂停申请通过审批" ); xmRecordService.addXmProjectRecord(bizProject.getId(), "项目-暂停", "项目暂停申请通过审批" );
} }
this.updateFlowStateByProcInst("2", flowVars);
}else {
this.updateFlowStateByProcInst("3", flowVars);
}else {
this.updateFlowStateByProcInst("3",bizProject, flowVars);
} }
}else if("PROCESS_CANCELLED".equals(eventName)) { }else if("PROCESS_CANCELLED".equals(eventName)) {
this.updateFlowStateByProcInst("4", flowVars);
this.updateFlowStateByProcInst("4",bizProject, flowVars);
} }
} }
} }
private void updateFlowStateByProcInstForDeleteSuccess(Map<String, Object> flowVars) {
this.update("updateFlowStateByProcInstForDeleteSuccess", flowVars);
}
public void updateFlowStateByProcInst(String flowState,Map<String, Object> flowVars) {
flowVars.put("flowState", flowState);
flowVars.put("bizFlowState", flowState);
if("1".equals(flowState)) {
flowVars.put("bizProcInstId", flowVars.get("procInstId"));
public void updateFlowStateByProcInst(String flowState,XmProject project,Map<String, Object> flowVars) {
if(!StringUtils.hasText(flowState)){
return;
} }
this.update("updateProcessApprova", flowVars);
XmProject projectUpdate=new XmProject();
projectUpdate.setId(project.getId());
projectUpdate.setBizFlowState(flowState);
projectUpdate.setBizProcInstId((String) flowVars.get("procInstId"));
this.updateSomeFieldByPk(projectUpdate);
} }
Date getDateFromObject(Object date){ Date getDateFromObject(Object date){

61
xm-core/src/main/java/com/xm/core/service/XmTaskService.java

@ -300,7 +300,7 @@ public class XmTaskService extends BaseService {
public List<XmTask> selectTaskListByIds(List<String> ids){ public List<XmTask> selectTaskListByIds(List<String> ids){
return super.selectList("selectTaskListByIds",map("ids",ids)); return super.selectList("selectTaskListByIds",map("ids",ids));
} }
/** /**
* 流程审批过程中回调该接口更新业务数据 * 流程审批过程中回调该接口更新业务数据
@ -309,45 +309,45 @@ public class XmTaskService extends BaseService {
* PROCESS_COMPLETED 流程正常结束 全局 * PROCESS_COMPLETED 流程正常结束 全局
* PROCESS_CANCELLED 流程删除 全局 * PROCESS_CANCELLED 流程删除 全局
* create 人工任务启动 * create 人工任务启动
* complete 人工任务完成
* complete 人工任务完成
* assignment 人工任务分配给了具体的人 * assignment 人工任务分配给了具体的人
* delete 人工任务被删除 * delete 人工任务被删除
* TASK_COMPLETED_FORM_DATA_UPDATE 人工任务提交完成后智能表单数据更新 * TASK_COMPLETED_FORM_DATA_UPDATE 人工任务提交完成后智能表单数据更新
*
*
* 其中 create/complete/assignment/delete事件是需要在模型中人工节点上配置了委托代理表达式 ${taskBizCallListener}才会推送过来 * 其中 create/complete/assignment/delete事件是需要在模型中人工节点上配置了委托代理表达式 ${taskBizCallListener}才会推送过来
* 在人工任务节点上配置 任务监听器 建议事件为 complete,其它assignment/create/complete/delete也可以一般建议在complete,委托代理表达式 ${taskBizCallListener} * 在人工任务节点上配置 任务监听器 建议事件为 complete,其它assignment/create/complete/delete也可以一般建议在complete,委托代理表达式 ${taskBizCallListener}
*
* @param flowVars {flowBranchId,agree,procInstId,startUserid,assignee,actId,taskName,mainTitle,branchId,bizKey,commentMsg,eventName,modelKey}
*
* @param flowVars {flowBranchId,agree,procInstId,startUserid,assignee,actId,taskName,mainTitle,branchId,bizKey,commentMsg,eventName,modelKey}
* @return 如果tips.isOk==false将影响流程提交 * @return 如果tips.isOk==false将影响流程提交
**/ **/
@Transactional @Transactional
public void processApprova(Map<String, Object> flowVars) {
String eventName=(String) flowVars.get("eventName");
String agree=(String) flowVars.get("agree");
public void processApprova(Map<String, Object> flowVars) {
String eventName=(String) flowVars.get("eventName");
String agree=(String) flowVars.get("agree");
String bizKey=(String) flowVars.get("bizKey"); String bizKey=(String) flowVars.get("bizKey");
XmTask bizXmTask=null; XmTask bizXmTask=null;
if("xm_task_approva".equals(bizKey) ) {
if("xm_task_approva".equals(bizKey) ) {
if(!flowVars.containsKey("data")) { if(!flowVars.containsKey("data")) {
throw new BizException("缺乏任务信息,请将任务信息放在flowVars.data中"); throw new BizException("缺乏任务信息,请将任务信息放在flowVars.data中");
} }
bizXmTask= BaseUtils.fromMap((Map)flowVars.get("data"), XmTask.class);
bizXmTask= BaseUtils.fromMap((Map)flowVars.get("data"), XmTask.class);
flowVars.put("xmTaskId", bizXmTask.getId()); flowVars.put("xmTaskId", bizXmTask.getId());
}else { }else {
throw new BizException("不支持的业务,请上送业务编码【bizKey】参数"); throw new BizException("不支持的业务,请上送业务编码【bizKey】参数");
} }
if("complete".equals(eventName)) {
if("complete".equals(eventName)) {
if("1".equals(agree)) { if("1".equals(agree)) {
this.updateFlowStateByProcInst("", flowVars); this.updateFlowStateByProcInst("", flowVars);
}else { }else {
this.updateFlowStateByProcInst("", flowVars); this.updateFlowStateByProcInst("", flowVars);
} }
}else { }else {
if("PROCESS_STARTED".equals(eventName)) {
Map<String,Object> bizQuery=new HashMap<>();
if("PROCESS_STARTED".equals(eventName)) {
Map<String,Object> bizQuery=new HashMap<>();
bizQuery.put("id", bizXmTask.getId()); bizQuery.put("id", bizXmTask.getId());
if(StringUtils.isEmpty(bizXmTask.getId())) { if(StringUtils.isEmpty(bizXmTask.getId())) {
throw new BizException("请上送任务编号flowVars.data.id"); throw new BizException("请上送任务编号flowVars.data.id");
}
}
List<Map<String,Object>> bizList=this.selectListMapByWhere(bizQuery); List<Map<String,Object>> bizList=this.selectListMapByWhere(bizQuery);
if(bizList==null || bizList.size()==0) { if(bizList==null || bizList.size()==0) {
throw new BizException("没有找到对应项目任务单,项目任务单为【"+bizXmTask.getId()+"】"); throw new BizException("没有找到对应项目任务单,项目任务单为【"+bizXmTask.getId()+"】");
@ -358,33 +358,28 @@ public class XmTaskService extends BaseService {
} }
} }
flowVars.put("id", this.createKey("id")); flowVars.put("id", this.createKey("id"));
this.insert("insertProcessApprova", flowVars);
this.updateFlowStateByProcInst("1", flowVars);
this.updateFlowStateByProcInst("1", flowVars);
}else if("PROCESS_COMPLETED".equals(eventName)) { }else if("PROCESS_COMPLETED".equals(eventName)) {
if("1".equals(agree)) {
this.updateFlowStateByProcInst("2", flowVars);
}else {
if("1".equals(agree)) {
this.updateFlowStateByProcInst("2", flowVars);
}else {
this.updateFlowStateByProcInst("3", flowVars); this.updateFlowStateByProcInst("3", flowVars);
}
}else if("PROCESS_CANCELLED".equals(eventName)) {
}
}else if("PROCESS_CANCELLED".equals(eventName)) {
this.updateFlowStateByProcInst("4", flowVars); this.updateFlowStateByProcInst("4", flowVars);
} }
}
}
@Transactional
private void updateFlowStateByProcInstForDeleteSuccess(Map<String, Object> flowVars) {
this.update("updateFlowStateByProcInstForDeleteSuccess", flowVars);
}
} }
@Transactional @Transactional
public void updateFlowStateByProcInst(String flowState,Map<String, Object> flowVars) { public void updateFlowStateByProcInst(String flowState,Map<String, Object> flowVars) {
flowVars.put("flowState", flowState);
flowVars.put("bizFlowState", flowState);
if("1".equals(flowState)) {
flowVars.put("bizProcInstId", flowVars.get("procInstId"));
if(StringUtils.hasText((String) flowVars.get("xmTaskId"))){
XmTask xmTask=new XmTask();
xmTask.setId((String) flowVars.get("taskId"));
xmTask.setBizFlowState(flowState);
xmTask.setBizProcInstId((String) flowVars.get("procInstId"));
this.updateSomeFieldByPk(xmTask);
} }
this.update("updateProcessApprova", flowVars);
} }
@Transactional @Transactional
public void batchImportFromTemplate(List<XmTask> xmTasks) { public void batchImportFromTemplate(List<XmTask> xmTasks) {

Loading…
Cancel
Save