|
@@ -1,19 +1,28 @@
|
|
|
package com.platform.service.workflow.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.platform.common.bean.AbstractPageResultBean;
|
|
|
+import com.platform.common.constant.CommonConstants;
|
|
|
+import com.platform.common.util.IdGeneratorUtils;
|
|
|
+import com.platform.common.util.ListUtils;
|
|
|
+import com.platform.common.util.SecurityUtils;
|
|
|
import com.platform.dao.bean.MyPage;
|
|
|
import com.platform.dao.dto.workflow.WorkflowDTO;
|
|
|
import com.platform.dao.entity.workflow.Workflow;
|
|
|
+import com.platform.dao.entity.workflow.WorkflowNode;
|
|
|
import com.platform.dao.mapper.workflow.WorkflowMapper;
|
|
|
import com.platform.dao.vo.query.workflow.WorkflowVO;
|
|
|
import com.platform.service.base.impl.BaseServiceImpl;
|
|
|
import com.platform.service.workflow.WorkflowService;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.apache.tomcat.jni.Local;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import tk.mybatis.mapper.weekend.Weekend;
|
|
|
import tk.mybatis.mapper.weekend.WeekendCriteria;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -43,12 +52,50 @@ public class WorkflowServiceImpl extends BaseServiceImpl<WorkflowMapper, Workflo
|
|
|
|
|
|
@Override
|
|
|
public Workflow saveByDTO(WorkflowDTO workflowDTO) {
|
|
|
+ JSONArray array = JSONArray.parseArray(workflowDTO.getJson());
|
|
|
// 计算总节点数
|
|
|
+ int total = array.size();
|
|
|
// 计算层级数
|
|
|
+ saveModelByDTO(workflowDTO);
|
|
|
+ List<WorkflowNode> nodeList = ListUtils.newArrayList();
|
|
|
// 解析json,生成workflowNode,发起表单或者其他审批根据workflowNode来生成任务
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ private void parseJson(JSONArray array,WorkflowDTO record,List<WorkflowNode> nodeList) {
|
|
|
+ int maxNodeNum = 1;
|
|
|
+ for(Object object : array) {
|
|
|
+ JSONObject jsonObject = (JSONObject) object;
|
|
|
+ int sortNum = jsonObject.getInteger("sortNum"); // 节点层级
|
|
|
+ if(sortNum > maxNodeNum) {
|
|
|
+ maxNodeNum = sortNum;
|
|
|
+ }
|
|
|
+ if(sortNum > 1) {
|
|
|
+ int type = jsonObject.getInteger("type");
|
|
|
+ // 存储节点
|
|
|
+ WorkflowNode node = new WorkflowNode();
|
|
|
+ node.setId(IdGeneratorUtils.getObjectId());
|
|
|
+ node.setNodeLevel(sortNum);
|
|
|
+ node.setType(type);
|
|
|
+ node.setCreatedTime(LocalDateTime.now());
|
|
|
+ node.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
|
|
|
+ node.setCreatedUserName(SecurityUtils.getUserInfo().getRealName());
|
|
|
+ switch(type) {
|
|
|
+ case CommonConstants.CONDITION_TYPE: // 条件分支
|
|
|
+ node.setSwitchJson(jsonObject.getString("switchJson"));
|
|
|
+ node.setSwitchHandleId(jsonObject.getString("handleNameId"));
|
|
|
+ break;
|
|
|
+ case CommonConstants.VERIFY_USER_TYPE: // 审核人
|
|
|
+ node.setUserId(jsonObject.getString("verifier"));
|
|
|
+ node.setUserName(jsonObject.getString("userName"));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ nodeList.add(node);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ record.setLevelNode(maxNodeNum);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public AbstractPageResultBean<Workflow> selectPageInfo(WorkflowDTO record, int pageNum, int pageSize) {
|
|
|
PageHelper.startPage(pageNum, pageSize);
|