diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java
index 28ddef7..4f1a911 100644
--- a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java
+++ b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java
@@ -121,6 +121,7 @@ public class ProcessController {
   @GetMapping("/new")
   public String newProcess(Model model) {
     model.addAttribute("sealTypes", SealType.values());
+    model.addAttribute("procurementMode", ProcurementMode.values());
     model.addAttribute("taxRate", Arrays.asList(0, 1, 3, 4, 5, 6, 9, 10, 13));
     return "/admin/business/process-new";
   }
@@ -198,9 +199,7 @@ public class ProcessController {
   }
 
   private BigDecimal getRepaidAmount(int id) {
-    Map<String, Object> map = jdbcTemplate.queryForMap(
-            "select ifnull(sum(underwritten_plan), 0) repaidAmount from project_budget_plan_detail where project_id = ?", id);
-    return (BigDecimal) map.values().iterator().next();
+    return processService.getProjectRepaidAmount(id);
   }
 
   @ResponseBody
@@ -281,8 +280,8 @@ public class ProcessController {
             .build();
   }
 
-  private static String isPrepaid(Project project) {
-    return project.getUnderwrittenMode() == 2 || project.getUnderwrittenMode() == 3 ? "是" : "否";
+  private String isPrepaid(Project project) {
+    return processService.isProjectPrepaid(project) ? "是" : "否";
   }
 
   @ResponseBody
@@ -342,20 +341,17 @@ public class ProcessController {
 
     entityManager.persist(entity);
 
-    HashMap<String, Object> variables = new HashMap<>();
     if (entity.getProcessType() != null) {
       switch (entity.getProcessType()) {
         case sale_contract:
           SaleContract saleContract = SaleContract.from(form);
           saleContract.setProcessId(entity.getId());
           entityManager.persist(saleContract);
-          variables.put("contract", saleContract);
           break;
         case business_procurement:
           ProcurementContract procurementContract = ProcurementContract.from(form);
           procurementContract.setProcessId(entity.getId());
           entityManager.persist(procurementContract);
-          variables.put("contract", procurementContract);
           break;
         default:
           throw new UnsupportedOperationException("还不支持");
@@ -365,7 +361,8 @@ public class ProcessController {
     processService.updateIncomeDetails(form.getIncomeDetails());
 
     if (form.getStatus() == ProcessStatus.to_be_audit) {
-      processService.startAuditProgress(entity, variables);
+      // 发起流程
+      processService.startAuditProgress(entity);
     }
   }
 
@@ -385,16 +382,13 @@ public class ProcessController {
 
     entityManager.merge(entity);
 
-    HashMap<String, Object> variables = new HashMap<>();
     switch (entity.getProcessType()) {
       case sale_contract: {
         SaleContract contract = processService.findSaleContract(form.getId());
         contract.setClientName(form.getClientName());
         contract.setPaymentTerms(form.getPaymentTerms());
         contract.setApplyPersonPhone(form.getApplyPersonPhone());
-
         entityManager.merge(contract);
-        variables.put("contract", contract);
         break;
       }
       case business_procurement: {
@@ -402,9 +396,7 @@ public class ProcessController {
         contract.setMode(form.getProcurementMode());
         contract.setPaymentTerms(form.getPaymentTerms());
         contract.setSupplierName(form.getSupplierName());
-
         entityManager.merge(contract);
-        variables.put("contract", contract);
         break;
       }
       default:
@@ -414,7 +406,7 @@ public class ProcessController {
     processService.updateIncomeDetails(form.getIncomeDetails());
 
     if (form.getStatus() == ProcessStatus.to_be_audit) {
-      processService.startAuditProgress(entity, variables);
+      processService.startAuditProgress(entity);
     }
   }
 
diff --git a/src/main/java/cn/palmte/work/service/ProjectProcessService.java b/src/main/java/cn/palmte/work/service/ProjectProcessService.java
index 1828070..b9c9dc0 100644
--- a/src/main/java/cn/palmte/work/service/ProjectProcessService.java
+++ b/src/main/java/cn/palmte/work/service/ProjectProcessService.java
@@ -1,11 +1,11 @@
 package cn.palmte.work.service;
 
-import cn.palmte.work.config.activiti.ActProjectTypeEnum;
 import org.springframework.jdbc.core.BatchPreparedStatementSetter;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.util.HashMap;
@@ -16,8 +16,14 @@ import java.util.stream.Collectors;
 import javax.persistence.EntityManager;
 import javax.persistence.TypedQuery;
 
+import cn.palmte.work.config.activiti.ActProjectTypeEnum;
 import cn.palmte.work.model.Admin;
+import cn.palmte.work.model.Project;
+import cn.palmte.work.model.ProjectRepository;
+import cn.palmte.work.model.enums.CooperationType;
+import cn.palmte.work.model.enums.Enumerable;
 import cn.palmte.work.model.enums.ProcessStatus;
+import cn.palmte.work.model.enums.ProjectType;
 import cn.palmte.work.model.process.ProcurementContract;
 import cn.palmte.work.model.process.ProjectProcess;
 import cn.palmte.work.model.process.SaleContract;
@@ -36,6 +42,7 @@ public class ProjectProcessService {
   private final JdbcTemplate jdbcTemplate;
   private final EntityManager entityManager;
   private final ProjectInstanceService projectInstanceService;
+  private final ProjectRepository projectRepository;
 
   /**
    * 更新流程 审批人,和状态
@@ -126,21 +133,46 @@ public class ProjectProcessService {
     }
   }
 
+  public BigDecimal getProjectRepaidAmount(int projectId) {
+    Map<String, Object> map = jdbcTemplate.queryForMap(
+            "select ifnull(sum(underwritten_plan), 0) repaidAmount from project_budget_plan_detail where project_id = ?", projectId);
+    return (BigDecimal) map.values().iterator().next();
+  }
+
   /**
    * 发起流程审批
    */
   public void startAuditProgress(ProjectProcess entity) {
     HashMap<String, Object> variables = new HashMap<>();
+    Project project = projectRepository.findById(entity.getProjectId());
+    // 是否垫资
+    variables.put("isPrepaid", isProjectPrepaid(project));
+    // 垫资金额
+    BigDecimal repaidAmount = getProjectRepaidAmount(entity.getProjectId());
+    variables.put("repaidAmount", repaidAmount);
+    // 合同金额
+    variables.put("contractAmount", project.getContractAmount());
+    // 项目类型
+    variables.put("projectType", Enumerable.of(ProjectType.class, project.getType()));
+    // 合作类型
+    variables.put("cooperationType", Enumerable.of(CooperationType.class, project.getCooperateType()));
+
     startAuditProgress(entity, variables);
   }
 
+  /**
+   * 是否垫资
+   */
+  public boolean isProjectPrepaid(Project project) {
+    return project.getUnderwrittenMode() == 2 || project.getUnderwrittenMode() == 3;
+  }
+
   /**
    * 发起流程审批
    */
   @SneakyThrows
   public void startAuditProgress(ProjectProcess entity, Map<String, Object> variables) {
     if (entity.getStatus() == ProcessStatus.to_be_audit) {
-      variables.put("process", entity);
       switch (entity.getProcessType()) {
         case sale_contract:
           projectInstanceService.startProcessByProjectId(entity.getId(), ActProjectTypeEnum.SALE_CONTRACT, variables);