|
@@ -14,15 +14,26 @@ import com.platform.dao.entity.custom.CustomForm;
|
|
import com.platform.dao.entity.custom.CustomFormBom;
|
|
import com.platform.dao.entity.custom.CustomFormBom;
|
|
import com.platform.dao.entity.custom.CustomFormBomField;
|
|
import com.platform.dao.entity.custom.CustomFormBomField;
|
|
import com.platform.dao.entity.custom.CustomFormData;
|
|
import com.platform.dao.entity.custom.CustomFormData;
|
|
|
|
+import com.platform.dao.entity.workflow.Workflow;
|
|
|
|
+import com.platform.dao.entity.workflow.WorkflowTask;
|
|
|
|
+import com.platform.dao.entity.workflow.WorkflowTaskBom;
|
|
|
|
+import com.platform.dao.entity.workflow.WorkflowTaskRecord;
|
|
|
|
+import com.platform.dao.enums.FlowTaskStatusEnum;
|
|
|
|
+import com.platform.dao.enums.TaskRecordStatusEnum;
|
|
|
|
+import com.platform.dao.enums.YesNoEnum;
|
|
import com.platform.dao.mapper.custom.CustomFormBomFieldMapper;
|
|
import com.platform.dao.mapper.custom.CustomFormBomFieldMapper;
|
|
import com.platform.dao.mapper.custom.CustomFormBomMapper;
|
|
import com.platform.dao.mapper.custom.CustomFormBomMapper;
|
|
import com.platform.dao.mapper.custom.CustomFormDataMapper;
|
|
import com.platform.dao.mapper.custom.CustomFormDataMapper;
|
|
import com.platform.dao.mapper.custom.CustomFormMapper;
|
|
import com.platform.dao.mapper.custom.CustomFormMapper;
|
|
|
|
+import com.platform.dao.mapper.workflow.WorkflowMapper;
|
|
|
|
+import com.platform.dao.mapper.workflow.WorkflowTaskBomMapper;
|
|
|
|
+import com.platform.dao.mapper.workflow.WorkflowTaskMapper;
|
|
import com.platform.dao.vo.query.custom.CustomFormDataVO;
|
|
import com.platform.dao.vo.query.custom.CustomFormDataVO;
|
|
import com.platform.service.base.impl.BaseServiceImpl;
|
|
import com.platform.service.base.impl.BaseServiceImpl;
|
|
import com.platform.service.custom.CustomFormDataService;
|
|
import com.platform.service.custom.CustomFormDataService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import tk.mybatis.mapper.weekend.Weekend;
|
|
import tk.mybatis.mapper.weekend.Weekend;
|
|
import tk.mybatis.mapper.weekend.WeekendCriteria;
|
|
import tk.mybatis.mapper.weekend.WeekendCriteria;
|
|
@@ -49,6 +60,11 @@ public class CustomFormDataServiceImpl extends BaseServiceImpl<CustomFormDataMap
|
|
private CustomFormMapper customFormMapper;
|
|
private CustomFormMapper customFormMapper;
|
|
@Resource
|
|
@Resource
|
|
private CustomFormBomMapper customFormBomMapper;
|
|
private CustomFormBomMapper customFormBomMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private WorkflowMapper workflowMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private WorkflowTaskMapper workflowTaskMapper;
|
|
|
|
+ private WorkflowTaskBomMapper workflowTaskBomMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public int batchDelete(List<String> ids) {
|
|
public int batchDelete(List<String> ids) {
|
|
@@ -80,16 +96,75 @@ public class CustomFormDataServiceImpl extends BaseServiceImpl<CustomFormDataMap
|
|
// 新增bom表(存储查询的value值)
|
|
// 新增bom表(存储查询的value值)
|
|
CustomFormBom bom = addBom(data,fieldList,form);
|
|
CustomFormBom bom = addBom(data,fieldList,form);
|
|
// 流程ID不为空处理
|
|
// 流程ID不为空处理
|
|
- handleFlow(bom);
|
|
|
|
|
|
+ handleFlow(data);
|
|
mapper.insert(data);
|
|
mapper.insert(data);
|
|
customFormBomMapper.insert(bom);
|
|
customFormBomMapper.insert(bom);
|
|
return data;
|
|
return data;
|
|
}
|
|
}
|
|
|
|
|
|
- private void handleFlow(CustomFormBom bom) {
|
|
|
|
|
|
+ private void handleFlow(CustomFormData bom) {
|
|
|
|
+ // 获取流程
|
|
|
|
+ Workflow flow = workflowMapper.selectByPrimaryKey(bom.getFlowId());
|
|
|
|
+ // 建立task
|
|
|
|
+ WorkflowTask task = new WorkflowTask();
|
|
|
|
+ task.setId(IdGeneratorUtils.getObjectId());
|
|
|
|
+ saveTask(task,bom,flow);
|
|
|
|
+ // 存储发起人taskBom
|
|
|
|
+ saveTaskBom(task.getId());
|
|
|
|
+ // 处理记录存储
|
|
|
|
+ saveTaskRecord(task.getId());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void saveTaskRecord(String taskId) {
|
|
|
|
+ WorkflowTaskRecord record = new WorkflowTaskRecord();
|
|
|
|
+ record.setId(IdGeneratorUtils.getObjectId());
|
|
|
|
+ record.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
|
|
|
|
+ record.setCreatedTime(LocalDateTime.now());
|
|
|
|
+ record.setCreatedUserName(SecurityUtils.getUserInfo().getRealName());
|
|
|
|
+ record.setHandleStatus(TaskRecordStatusEnum.APPLY.getValue());
|
|
|
|
+ record.setTaskId(taskId);
|
|
|
|
+ record.setHandleRemark("任务待发起");
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 存储任务bom
|
|
|
|
+ * @param taskId
|
|
|
|
+ */
|
|
|
|
+ private void saveTaskBom(String taskId) {
|
|
|
|
+ WorkflowTaskBom bom = new WorkflowTaskBom();
|
|
|
|
+ bom.setCreatedTime(LocalDateTime.now());
|
|
|
|
+ bom.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
|
|
|
|
+ bom.setCreatedUserName(SecurityUtils.getUserInfo().getRealName());
|
|
|
|
+ bom.setTaskId(taskId);
|
|
|
|
+ bom.setId(IdGeneratorUtils.getObjectId());
|
|
|
|
+ bom.setStatus(YesNoEnum.NO.getValue());
|
|
|
|
+ bom.setPersonalType(YesNoEnum.YES.getValue());
|
|
|
|
+ workflowTaskBomMapper.insert(bom);
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 任务存储
|
|
|
|
+ * @param task
|
|
|
|
+ * @param bom
|
|
|
|
+ */
|
|
|
|
+ private void saveTask(WorkflowTask task, CustomFormData bom,Workflow flow) {
|
|
|
|
+ task.setFormDataId(bom.getId());
|
|
|
|
+ task.setCreatedTime(LocalDateTime.now());
|
|
|
|
+ // 发起人
|
|
|
|
+ task.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
|
|
|
|
+ task.setCreatedUserName(SecurityUtils.getUserInfo().getRealName());
|
|
|
|
+ task.setFlowId(bom.getFlowId());
|
|
|
|
+ task.setNodeSort(YesNoEnum.YES.getValue());
|
|
|
|
+ task.setTaskName(getTaskName(task.getCreatedUserName(),flow.getName()));
|
|
|
|
+ task.setStatus(FlowTaskStatusEnum.APPLY.getValue());
|
|
|
|
+ workflowTaskMapper.insert(task);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String getTaskName(String userName,String flowName) {
|
|
|
|
+ // 审批任务名称 规则 发起人发起-审批流名称-日期
|
|
|
|
+ String date = DateUtils.dateToString(LocalDateTime.now(),DateUtils.PATTERNYMD);
|
|
|
|
+ return userName + "-" + flowName + "-" + date;
|
|
|
|
+ }
|
|
private void packageData(CustomFormData data) {
|
|
private void packageData(CustomFormData data) {
|
|
data.setId(IdGeneratorUtils.getObjectId());
|
|
data.setId(IdGeneratorUtils.getObjectId());
|
|
data.setCreatedTime(LocalDateTime.now());
|
|
data.setCreatedTime(LocalDateTime.now());
|
|
@@ -101,6 +176,9 @@ public class CustomFormDataServiceImpl extends BaseServiceImpl<CustomFormDataMap
|
|
if(StringUtils.isBlank(record.getFormId())){
|
|
if(StringUtils.isBlank(record.getFormId())){
|
|
throw new DeniedException("表单模板ID不能为空");
|
|
throw new DeniedException("表单模板ID不能为空");
|
|
}
|
|
}
|
|
|
|
+ if(StringUtils.isBlank(record.getFlowId())){
|
|
|
|
+ throw new DeniedException("流程ID不能为空");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
private CustomFormBom addBom(CustomFormData record, List<CustomFormBomField> fieldList,CustomForm form){
|
|
private CustomFormBom addBom(CustomFormData record, List<CustomFormBomField> fieldList,CustomForm form){
|