|
|
@@ -26,6 +26,8 @@ import com.ruoyi.tool.service.ITUnifyFileService;
|
|
|
import org.flowable.engine.repository.ProcessDefinition;
|
|
|
import org.flowable.engine.runtime.ProcessInstance;
|
|
|
import org.flowable.task.api.Task;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -42,27 +44,17 @@ import java.util.*;
|
|
|
@Service
|
|
|
public class DecisionServiceImpl extends FlowServiceFactory implements IDecisionService
|
|
|
{
|
|
|
+ protected final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
@Autowired
|
|
|
private DecisionMapper decisionMapper;
|
|
|
@Autowired
|
|
|
private ITProjectDecisionService tProjectDecisionService;
|
|
|
@Autowired
|
|
|
- private TProjectPoolMapper tProjectPoolMapper;
|
|
|
- @Autowired
|
|
|
private ITProjectPoolService tProjectPoolService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private ITProjectCompanyService tProjectCompanyService;
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private ITProjectContactsService tProjectContactsService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private ITProjectCirculationService tProjectCirculationService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private ITUnifyFileService tUnifyFileService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private IFlowBaseInfoService activitiBaseInfoService;
|
|
|
@Autowired
|
|
|
@@ -71,9 +63,6 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
private ISysUserService sysUserService;
|
|
|
@Autowired
|
|
|
private SysDeptMapper sysDeptMapper;
|
|
|
- @Autowired
|
|
|
- private ITProjectReviewService tProjectReviewService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private IFlowService flowService;
|
|
|
@Autowired
|
|
|
@@ -203,13 +192,15 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
flowBaseInfo.setFlag(true);
|
|
|
flowBaseInfo.setComment(tProjectDecision.isFlag() ? "[提交]" : "[暂存]");
|
|
|
flowBaseInfo.setStatus(FlowStatusEnum.STARTED.getName());
|
|
|
-
|
|
|
+ flowBaseInfo.setFlag(tProjectDecision.isFlag());
|
|
|
activitiBaseInfoService.addActivitiBaseInfo(flowBaseInfo);
|
|
|
TProjectPool tProjectPool=new TProjectPool();
|
|
|
tProjectPool.setId(tProjectDecision.getProjectPoolId());
|
|
|
tProjectPool.setProjectStage("5");//项目阶段-项目投决
|
|
|
tProjectPool.setProjectState("h");//项目状态-准备项目投决材料
|
|
|
tProjectPoolService.updateTProjectPool(tProjectPool);
|
|
|
+ // todo 短信
|
|
|
+ //sendMessage(flowBaseInfo,"");
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
return AjaxResult.error();
|
|
|
@@ -374,8 +365,9 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
}
|
|
|
flow.setTaskName(task.getName());
|
|
|
flow.setCreateBy(SecurityUtils.getLoginUser().getUserId().toString());
|
|
|
-
|
|
|
+ flow.setFlag(tProjectDecision.isFlag());
|
|
|
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).active().singleResult();
|
|
|
+ String result="";
|
|
|
// 表示流程已经审批结束了
|
|
|
if (processInstance == null) {
|
|
|
flow.setStatus(FlowStatusEnum.ENDED.getName());
|
|
|
@@ -396,8 +388,10 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
if(StringUtils.isNotBlank(tProjectDecision.getIsTerminate())) {
|
|
|
tProjectDecision.setStatus(4);//流程状态为关闭
|
|
|
if ("1".equals(tProjectDecision.getIsTerminate())) {
|
|
|
+ result="【终止】";
|
|
|
tProjectPool.setProjectStatus("1");//终止
|
|
|
} else {
|
|
|
+ result="【观望】";
|
|
|
tProjectPool.setProjectStatus("2");//观望
|
|
|
}
|
|
|
}
|
|
|
@@ -408,6 +402,8 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
|
|
|
tProjectDecisionService.updateTProjectDecision(tProjectDecision);
|
|
|
activitiBaseInfoService.addActivitiBaseInfo(flow);
|
|
|
+ //todo 短信
|
|
|
+ //sendMessage(flow,result);
|
|
|
}
|
|
|
return AjaxResult.success();
|
|
|
}
|
|
|
@@ -434,5 +430,93 @@ public class DecisionServiceImpl extends FlowServiceFactory implements IDecision
|
|
|
}
|
|
|
return sumScore;
|
|
|
}
|
|
|
+ // todo 短信
|
|
|
+ public void sendMessage(FlowBaseInfo flowBaseInfo,String result) {
|
|
|
+ boolean flag = flowBaseInfo.isFlag();
|
|
|
+ String procInsId = flowBaseInfo.getProcInsId();
|
|
|
+ // 待办任务
|
|
|
+ List<Task> tasks = taskService.createTaskQuery().processInstanceId(procInsId).list();
|
|
|
+ // 对应业务单据
|
|
|
+ ProjectDecisionVo projectDecision = decisionMapper.selectProjectDecisionByProcInstId(procInsId);
|
|
|
+ if (projectDecision == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 申请人
|
|
|
+ SysUser applyUserInfo = sysUserService.selectUserById(Long.valueOf(projectDecision.getCreateBy()));
|
|
|
+ // 当前登录人
|
|
|
+ SysUser loginUser = SecurityUtils.getLoginUser().getUser();
|
|
|
+
|
|
|
+ if(tasks.size()>0) {
|
|
|
+ for (int i = 0; i < tasks.size(); i++) {
|
|
|
+ Task task = tasks.get(i);
|
|
|
+ if (task != null) {
|
|
|
+ if (Objects.equals(applyUserInfo.getUserId(), loginUser.getUserId()) && !flag) {
|
|
|
+ // 如果是申请人暂存或者关闭或者自己驳回,不用给自己发审批短信
|
|
|
+ continue;
|
|
|
+ } else {
|
|
|
+ // 申请人提交,给下一个审批人发短信
|
|
|
+ // 审批人同意,给下一个审批人发短信
|
|
|
+ if (flag) { //给审批人发送短信
|
|
|
+ if ("decision".equals(flowBaseInfo.getTaskDefKey())&&"decision".equals(task.getTaskDefinitionKey())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String assignee = task.getAssignee();
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotBlank(assignee)) { // 给审批人发送短信
|
|
|
+ SysUser auditUser = sysUserService.selectUserById(Long.valueOf(assignee));
|
|
|
+ String auditContents = auditUser.getNickName() + ",您好。投资系统中" + projectDecision.getProjectName() + "的项目投决流程待处理";
|
|
|
+ System.out.println(auditContents);
|
|
|
+ if (auditUser != null && StringUtils.isNotBlank(auditUser.getPhonenumber())) {
|
|
|
+ /*try{
|
|
|
+ SmsSenderUtils.sendSms(auditUser.getPhonenumber(), auditContents);
|
|
|
+ } catch (IOException e) {
|
|
|
+ logger.error("短信发送失败"+e.getMessage());
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else { // 审批人驳回,给申请人发短信
|
|
|
+ String rejectContents = applyUserInfo.getNickName()+",您好。你在投资系统中提交" + projectDecision.getProjectName() + "的项目投决申请已审核,结果为【驳回】";
|
|
|
+ System.out.println(rejectContents);
|
|
|
+ if (applyUserInfo != null && StringUtils.isNotBlank(applyUserInfo.getPhonenumber())) {
|
|
|
+ /*try{
|
|
|
+ SmsSenderUtils.sendSms(rejectUser.getPhonenumber(), rejectContents);
|
|
|
+ } catch (IOException e) {
|
|
|
+ logger.error("短信发送失败"+e.getMessage());
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ String completeContents ="";
|
|
|
+ if(flag) {
|
|
|
+ // 审批完成,给申请人发短信
|
|
|
+ //XXX,您好。你在投资系统中提交“XXX”的项目投决申请已审核,结果为【通过】/【驳回】/【观望】!
|
|
|
+ completeContents = applyUserInfo.getNickName()+",您好。你在投资系统中提交" + projectDecision.getProjectName() + "的项目投决申请已审核,结果为【同意】";
|
|
|
+ System.out.println(completeContents);
|
|
|
+ if (applyUserInfo != null && StringUtils.isNotBlank(applyUserInfo.getPhonenumber())) {
|
|
|
+ /*try{
|
|
|
+ SmsSenderUtils.sendSms(completeUser.getPhonenumber(), completeContents);
|
|
|
+ } catch (IOException e) {
|
|
|
+ logger.error("短信发送失败"+e.getMessage());
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ if(StringUtils.isNotEmpty(result)){//代表是终止或者观望
|
|
|
+ completeContents = applyUserInfo.getNickName()+",您好。你在投资系统中提交" + projectDecision.getProjectName() + "的项目投决申请已审核,结果为"+result;
|
|
|
+ System.out.println(completeContents);
|
|
|
+ if (applyUserInfo != null && StringUtils.isNotBlank(applyUserInfo.getPhonenumber())) {
|
|
|
+ /*try{
|
|
|
+ SmsSenderUtils.sendSms(completeUser.getPhonenumber(), completeContents);
|
|
|
+ } catch (IOException e) {
|
|
|
+ logger.error("短信发送失败"+e.getMessage());
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
}
|