|
@@ -1,20 +1,23 @@
|
|
|
package com.platform.service.customize;
|
|
|
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.platform.activiti.dao.entity.ActApplyInfo;
|
|
|
import com.platform.activiti.dao.entity.ActAuditRecord;
|
|
|
import com.platform.activiti.dao.entity.ActAuditRequest;
|
|
|
-import com.platform.common.bean.AbstractPageResultBean;
|
|
|
import com.platform.common.constant.CommonConstants;
|
|
|
import com.platform.common.exception.BusinessException;
|
|
|
import com.platform.common.model.UserInfo;
|
|
|
+import com.platform.common.util.JsonUtils;
|
|
|
import com.platform.common.util.SecurityUtils;
|
|
|
+import com.platform.dao.dto.activiti.SbAllocateFormActiviti;
|
|
|
import com.platform.dao.entity.activiti.ActivitiUserModel;
|
|
|
import com.platform.dao.entity.customize.CustomFieldTemplateData;
|
|
|
import com.platform.dao.entity.upms.SysUser;
|
|
|
+import com.platform.dao.enums.ActivitiFormStatusEnum;
|
|
|
import com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper;
|
|
|
import com.platform.dao.mapper.sb.SbInfoMapper;
|
|
|
-import com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO;
|
|
|
import com.platform.service.activiti.ActivitiAssignStrategy;
|
|
|
import com.platform.service.activiti.ActivitiUserModelService;
|
|
|
import com.platform.service.upms.SysUserService;
|
|
@@ -64,21 +67,6 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
|
|
|
|
|
|
protected BaseFormCheckServiceAbstract(){}
|
|
|
|
|
|
- @Override
|
|
|
- public String checkPrepare(String data) {
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public String packageData(String data, String no) {
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void resultWrite(AbstractPageResultBean<CustomFieldTemplateDataVO> pageInfos) {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void start(ActAuditRequest actAuditRequest) {
|
|
@@ -89,7 +77,20 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
|
|
|
|
|
|
protected abstract void doCheck(ActAuditRequest actAuditRequest);
|
|
|
|
|
|
- protected abstract void doUpdate(ActAuditRequest actAuditRequest);
|
|
|
+ protected abstract void doStartUpdate(ActAuditRequest actAuditRequest);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据需要插入值
|
|
|
+ * @param maps
|
|
|
+ * @param dataId
|
|
|
+ */
|
|
|
+ private void insertNecessaryValue(Map<String, String> maps,String dataId){
|
|
|
+ CustomFieldTemplateData data = getById(dataId);
|
|
|
+ if(CommonConstants.SB_ALLOCATE_FORM.equals(data.getRemark())){
|
|
|
+ SbAllocateFormActiviti activiti = JsonUtils.jsonToModel(data.getData(),SbAllocateFormActiviti.class);
|
|
|
+ maps.put("targetDept",activiti.getTargetDept());
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* @see com.platform.activiti.controller.ActivitiController#showTaskListStart
|
|
@@ -115,21 +116,18 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
|
|
|
instance = runtimeService.startProcessInstanceByKey(actAuditRequest.getAuditModelKey(), actAuditRequest.getId(), map);
|
|
|
actAuditRequest.setProcessInstanceId(instance.getId());
|
|
|
} else { // 再次提交审批的,之前被拒绝的
|
|
|
- ProcessInstance instanceExsit = runtimeService.createProcessInstanceQuery()
|
|
|
+ ProcessInstance instanceExist = runtimeService.createProcessInstanceQuery()
|
|
|
.processInstanceId(actAuditRequest.getProcessInstanceId()).singleResult();
|
|
|
- if (instanceExsit == null) {
|
|
|
+ if (instanceExist == null) {
|
|
|
instance = runtimeService.startProcessInstanceByKey(actAuditRequest.getAuditModelKey(), actAuditRequest.getId(), map);
|
|
|
actAuditRequest.setProcessInstanceId(instance.getId());
|
|
|
} else {
|
|
|
- instance = runtimeService.startProcessInstanceById(actAuditRequest.getProcessInstanceId(), actAuditRequest.getId(), map);
|
|
|
+ runtimeService.startProcessInstanceById(actAuditRequest.getProcessInstanceId(), actAuditRequest.getId(), map);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
// 第一个审批人为发起人,为自动审批。557501
|
|
|
// 设置审批对象,保存到task实例中,每次审核都要更新追加这个对象
|
|
|
Task task = taskService.createTaskQuery().processInstanceId(actAuditRequest.getProcessInstanceId()).orderByTaskCreateTime().desc().singleResult();
|
|
|
-
|
|
|
List<ActAuditRecord> records = new ArrayList<>();
|
|
|
records.add(new ActAuditRecord(user.getUserId(), user.getRealName(), "提交",
|
|
|
LocalDateTime.now(), true, task.getId(), task.getName()));
|
|
@@ -150,6 +148,7 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
|
|
|
Map<String, String> maps = new HashMap<>();
|
|
|
maps.put("userId", user.getUserId());
|
|
|
modifyTaskAssign(model.getId(), maps, nextTask, list);
|
|
|
+ doStartUpdate(actAuditRequest);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -173,6 +172,7 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
|
|
|
Map<String, String> maps = new HashMap<>();
|
|
|
maps.put("userId", user.getUserId());
|
|
|
Task nextTask = taskService.createTaskQuery().processInstanceId(actAuditRequest.getProcessInstanceId()).orderByTaskCreateTime().desc().singleResult();
|
|
|
+ insertNecessaryValue(maps,actAuditRequest.getId());
|
|
|
modifyTaskAssign(model.getId(), maps, nextTask, list);
|
|
|
} else {
|
|
|
doFinish(actAuditRequest);
|
|
@@ -182,10 +182,6 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- protected abstract void doRefuse(ActAuditRequest actAuditRequest);
|
|
|
-
|
|
|
- protected abstract void doFinish(ActAuditRequest actAuditRequest);
|
|
|
-
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
protected boolean doAudit(ActAuditRequest actAuditRequest) {
|
|
|
UserInfo user = SecurityUtils.getUserInfo();
|
|
@@ -245,8 +241,6 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
|
|
|
doStop(actAuditRequest);
|
|
|
}
|
|
|
|
|
|
- protected abstract void doStop(ActAuditRequest actAuditRequest);
|
|
|
-
|
|
|
/**
|
|
|
* 签收
|
|
|
* 审批设置对象:ActApplyInfo
|
|
@@ -360,11 +354,57 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
|
|
|
ActivitiAssignStrategy activitiAssignStrategy =
|
|
|
activitiAssignStrategyList.stream().filter(strategy -> strategy.getType().equals(type)).collect(Collectors.toList()).get(0);
|
|
|
activitiAssignStrategy.handleAssign(task, map, userTaskModel);
|
|
|
- userTaskModel.setDeploymentId(model.getDeploymentId());
|
|
|
- // activitiUserModelService.updateBatch(list);
|
|
|
+ //userTaskModel.setDeploymentId(model.getDeploymentId());
|
|
|
}
|
|
|
|
|
|
protected CustomFieldTemplateData getById(String id){
|
|
|
return customFieldTemplateDataMapper.selectByPrimaryKey(id);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String doUpdate(ActAuditRequest actAuditRequest) {
|
|
|
+ CustomFieldTemplateData updInfo = getById(actAuditRequest.getId());
|
|
|
+ updInfo.setId(actAuditRequest.getId());
|
|
|
+ updInfo.setStatus(ActivitiFormStatusEnum.EXECUTING.getValue());
|
|
|
+ JSONObject jsonObject = JSON.parseObject(updInfo.getData());
|
|
|
+ jsonObject.put("status",ActivitiFormStatusEnum.EXECUTING.getValue());
|
|
|
+ jsonObject.put("processInstanceId",actAuditRequest.getProcessInstanceId());
|
|
|
+ updInfo.setData(JsonUtils.objectToJson(jsonObject));
|
|
|
+ customFieldTemplateDataMapper.updateByPrimaryKeySelective(updInfo);
|
|
|
+ return updInfo.getObjId();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void doRefuse(ActAuditRequest actAuditRequest) {
|
|
|
+ CustomFieldTemplateData updInfo = getById(actAuditRequest.getId());
|
|
|
+ updInfo.setStatus(ActivitiFormStatusEnum.REFUSE.getValue());
|
|
|
+ JSONObject jsonObject = JSON.parseObject(updInfo.getData());
|
|
|
+ jsonObject.put("status",ActivitiFormStatusEnum.REFUSE.getValue());
|
|
|
+ updInfo.setData(JsonUtils.objectToJson(jsonObject));
|
|
|
+ customFieldTemplateDataMapper.updateByPrimaryKeySelective(updInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String doFinish(ActAuditRequest actAuditRequest) {
|
|
|
+ CustomFieldTemplateData updInfo = getById(actAuditRequest.getId());
|
|
|
+ updInfo.setStatus(ActivitiFormStatusEnum.FINISH.getValue());
|
|
|
+ JSONObject jsonObject = JSON.parseObject(updInfo.getData());
|
|
|
+ jsonObject.put("status",ActivitiFormStatusEnum.FINISH.getValue());
|
|
|
+ updInfo.setData(JsonUtils.objectToJson(jsonObject));
|
|
|
+ customFieldTemplateDataMapper.updateByPrimaryKeySelective(updInfo);
|
|
|
+ return updInfo.getObjId();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public String doStop(ActAuditRequest actAuditRequest) {
|
|
|
+ CustomFieldTemplateData updInfo = getById(actAuditRequest.getId());
|
|
|
+ updInfo.setId(actAuditRequest.getId());
|
|
|
+ JSONObject jsonObject = JSON.parseObject(updInfo.getData());
|
|
|
+ jsonObject.put("status",ActivitiFormStatusEnum.NOT_EXECUTE.getValue());
|
|
|
+ jsonObject.put("processInstanceId",null);
|
|
|
+ updInfo.setData(JsonUtils.objectToJson(jsonObject));
|
|
|
+ updInfo.setStatus(ActivitiFormStatusEnum.NOT_EXECUTE.getValue());
|
|
|
+ customFieldTemplateDataMapper.updateByPrimaryKeySelective(updInfo);
|
|
|
+ return updInfo.getObjId();
|
|
|
+ }
|
|
|
}
|